В этом разделе в таблице 5 показан список приоритетов типов данных. Обратите внимание:
Если такие дублирующие функции все же существуют, выбор из них при вызове выполняет двухпроходный алгоритм. На первом проходе для поиска совпадения используется тот же алгоритм, что и при разрешений функций в других базах данных (не Unicode). Если совпадение не обнаружено, будет выполнен второй проход с учетом следующих процедур расширения для строк CHAR и GRAPHIC:
GRAPHIC-->CHAR-->VARGRAPHIC-->VARCHAR-->LONG VARGRAPHIC-->LONG VARCHAR--> -->DBCLOB-->CLOB
К списку с заголовком "The following casts involving distinct types are supported" (Поддерживаются следующие преобразования особых типов) добавлена следующая запись:
Далее приводятся изменения к таблице 6 "Supported Casts between Built-in
Data Types" (Поддерживаемые преобразования между встроенными типами
данных). (Приведены только измененные строки таблицы.)
Табл. 18. Поддерживаемые преобразования между встроенными типами данных
Конечный тип данных > Исходный тип данных V |
C H A R |
V A R C H A R |
L O N G V A R C H A R |
C L O B |
G R A P H I C |
V A R G R A P H I C |
L O N G V A R G R A P H I C |
D B C L O B |
---|---|---|---|---|---|---|---|---|
CHAR | Д | Д | Д | Д | Д1 | Д1 | - | - |
VARCHAR | Д | Д | Д | Д | Д1 | Д1 | - | - |
LONGVARCHAR | Д | Д | Д | Д | - | - | Д1 | Д1 |
CLOB | Д | Д | Д | Д | - | - | - | Д1 |
GRAPHIC | Д1 | Д1 | - | - | Д | Д | Д | Д |
VARGRAPHIC | Д1 | Д1 | - | - | Д | Д | Д | Д |
LONGVARGRAPHIC | - | - | Д1 | Д1 | Д | Д | Д | Д |
DBCLOB | - | - | - | Д1 | Д | Д | Д | Д |
Присваивания и сравнения, включающие в себя символьные и графические данные, поддерживаются только тогда, когда одна из строк является литералом. Для разрешения функций и графические, и символьные литералы будут соответствовать и символьным, и графическим параметрам функций.
Далее приводятся изменения в Таблице 7 "Data Type Compatibility for
Assignments and Comparisons" (Совместимость типов данных при присваивании и
сравнении). Приведены только измененные строки таблицы и новое
примечание 6 к этой таблице.
Операнды | Двоичное целое | Десятичное число | Плавающее | Символьная строка | Графическая строка | Дата | Время | Отметка времени | Двоичная строка | Пользователь- ский тип |
---|---|---|---|---|---|---|---|---|---|---|
Символьная строка | Нет | Нет | Нет | Да | Да 6 | 1 | 1 | 1 | Нет 3 | 2 |
Графическая строка | Нет | Нет | Нет | Да 6 | Да | Нет | Нет | Нет | Нет | 2 |
Storage Assignment (Выделение памяти)
Последний абзац этого подраздела изменен так:
Когда символьная строка присваивается столбцу фиксированной длины и длина строки меньше атрибута длины потребителя, эта строка справа дополняется необходимым числом пробелов (однобайтных, двухбайтных или UCS-22). Заполняющий символ - всегда пробел даже для столбцов, определенных с атрибутом FOR BIT DATA.
Retrieval Assignment
Третий абзац этого подраздела изменен так:
Когда символьная строка присваивается переменной фиксированной длины и длина строки меньше атрибута длины потребителя, строка дополняется справа необходимым числом пробелов (однобайтных, двухбайтных или UCS-22). Заполняющий символ - всегда пробел даже для строк, определенных с атрибутом FOR BIT DATA.
Conversion Rules for String Assignments (Правила преобразования для присваивания строк)
В конец этого подраздела был добавлен следующий абзац:
Для баз данных Unicode символьные строки могут быть назначены графическому столбцу, а графические строки - символьному столбцу.
DBCS Considerations for Graphic String Assignments (Особенности DBCS для присваивания графических строк)
Первый абзац этого подраздела изменен следующим образом:
Присваивания графических строк обрабатываются аналогично присваиваниям символьных строк. Для баз данных не Unicode типы данных графических строк совместимы только с другими типами данных графических строк и никогда не совместимы с типами данных численных и символьных строк, а также с типами данных даты и времени. Для баз данных Unicode типы данных графических строк совместимы с типами данных символьных строк.
Conversion Rules for Comparison (Правила преобразования для сравнений)
Этот подраздел изменен так:
При сравнении двух строк, если это необходимо, одна из них сначала преобразуется в схему кодировки и кодовую страницу другой строки. Подробности смотрите в разделе "Rules for String Conversions" (Правила преобразования строк) главы 3 "Language Elements" (Элементы языка) справочника SQL Reference.
Это новый подраздел, вставленный после подраздела "Graphic Strings" (Графические строки).
В базе данных Unicode символьные и графические строки совместимы.
Если один из операндов... | А другой операнд... | Тип данных результата будет... |
---|---|---|
GRAPHIC(x) | CHAR(y) или GRAPHIC(y) | GRAPHIC(z), где z = max(x,y) |
VARGRAPHIC(x) | CHAR(y) или VARCHAR(y) | VARGRAPHIC(z), где z = max(x,y) |
VARCHAR(x) | GRAPHIC(y) или VARGRAPHIC | VARGRAPHIC(z), где z = max(x,y) |
LONG VARGRAPHIC | CHAR(y) или VARCHAR(y) или LONG VARCHAR | LONG VARGRAPHIC |
LONG VARCHAR | GRAPHIC(y) или VARGRAPHIC(y) | LONG VARGRAPHIC |
DBCLOB(x) | CHAR(y) или VARCHAR(y) или CLOB(y) | DBCLOB(z), где z = max(x,y) |
DBCLOB(x) | LONG VARCHAR | DBCLOB(z), где z = max(x,16350) |
CLOB(x) | GRAPHIC(y) или VARGRAPHIC(y) | DBCLOB(z), где z = max(x,y) |
CLOB(x) | LONG VARGRAPHIC | DBCLOB(z), где z = max(x,16350) |
К следующему списку в этом разделе был добавлен третий пункт:
Для каждой пары кодовых страниц результат определяется последовательным применением следующих правил:
Добавлено следующее:
В базе данных Unicode выражение, принимающее графическую или символьную строку, будет принимать любые типы строк, для которых поддерживается преобразование.
В конец этого подраздела было добавлено следующее:
В базе данных Unicode конкатенация, включающая как операнды символьных строк, так и операнды графических строк, сперва будет преобразовывать символьные операнды в графические операнды. Обратите внимание на то, что в других базах данных (не Unicode) конкатенация не может включать и символьные, и графические операнды.
К списку, начинающемуся с предложения "The following rules apply to all types of predicates", добавлено: