В этом разделе в таблице 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. (Приведены только измененные строки
таблицы.)
Табл. 20. Поддерживаемые преобразования между встроенными типами данных
Конечный тип данных > Исходный тип данных 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 | Y | Y | Y | Y | Y1 | Y1 | - | - |
VARCHAR | Y | Y | Y | Y | Y1 | Y1 | - | - |
LONGVARCHAR | Y | Y | Y | Y | - | - | Y1 | Y1 |
CLOB | Y | Y | Y | Y | - | - | - | Y1 |
GRAPHIC | Y1 | Y1 | - | - | Y | Y | Y | Y |
VARGRAPHIC | Y1 | Y1 | - | - | Y | Y | Y | Y |
LONGVARGRAPHIC | - | - | Y1 | Y1 | Y | Y | Y | Y |
DBCLOB | - | - | - | Y1 | Y | Y | Y | Y |
Назначения и сравнения, включающие в себя символьные и графические данные поддерживаются только тогда, когда одна из строк является литералом. Для разрешения функций и графические, и символьные литералы будут соответствовать и символьным, и графическим параметрам функций.
Далее приводятся изменения в Таблице 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
Первый абзац этого подраздела изменен следующим образом:
Назначения графических строк обрабатываются аналогично назначениям символьных строк. Для баз данных не 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", добавлено:
В конец этого раздела добавлено следующее предложение:
В базе данных Unicode все скалярные функции, принимающие графическую или символьную строку, будет принимать любые типы строк, для которых поддерживается преобразование.