Замечания по выпуску


40.2 SQL Reference

40.2.1 Глава 3. Language Elements

40.2.1.1 Расширение типов данных

В этом разделе в таблице 5 показан список приоритетов типов данных. Обратите внимание:

  1. Для базы данных Unicode считаются эквивалентными следующие типы данных:
  2. В базе данных Unicode можно создать такие функции, у которых единственной разницей в записи будут только эквивалентные типы данных CHAR и GRAPHIC, например, foo(CHAR(8)) и foo(GRAPHIC(8)). Мы настоятельно не рекомендуем определять такие дублирующие функции, поскольку при обновлении до следующего выпуска одну из них придется отбросить.

    Если такие дублирующие функции все же существуют, выбор из них при вызове выполняет двухпроходный алгоритм. На первом проходе для поиска совпадения используется тот же алгоритм, что и при разрешений функций в других базах данных (не Unicode). Если совпадение не обнаружено, будет выполнен второй проход с учетом следующих процедур расширения для строк CHAR и GRAPHIC:

    GRAPHIC-->CHAR-->VARGRAPHIC-->VARCHAR-->LONG VARGRAPHIC-->LONG VARCHAR-->DBCLOB-->CLOB
    

40.2.1.2 Преобразование типов данных

К списку с заголовком "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

1
Преобразование типов поддерживается только для баз данных Unicode.

40.2.1.3 Назначения и сравнения

Назначения и сравнения, включающие в себя символьные и графические данные поддерживаются только тогда, когда одна из строк является литералом. Для разрешения функций и графические, и символьные литералы будут соответствовать и символьным, и графическим параметрам функций.

Далее приводятся изменения в Таблице 7 Data Type Compatibility for Assignments and Comparisons. (Приведены только измененные строки таблицы и новое примечание 6 к этой таблице.)
Операнды Двоичн. целое Десятичн. число Плавающее Симв. строка Графич. строка Дата Время Отм. времени Двоичн. строка Польз. тип
Симв. строка Нет Нет Нет Да Да 6 1 1 1 Нет 3 2
Граф. строка Нет Нет Нет Да 6 Да Нет Нет Нет Нет 2

6
Поддерживается только для баз данных Unicode.

Назначения строк


Storage Assignment

Последний абзац этого подраздела изменен так:

Когда символьная строка назначается столбцу фиксированной длины и длина строки меньше атрибута длины потребителя, эта строка справа дополняется необходимым числом пробелов (однобайтных, двухбайтных или UCS-22). Заполняющий символ - всегда пробел даже для столбцов, определенных с атрибутом FOR BIT DATA.

Retrieval Assignment

Третий абзац этого подраздела изменен так:

Когда символьная строка назначается переменной фиксированной длины и длина строки меньше атрибута длины потребителя, строка дополняется справа необходимым числом пробелов (однобайтных, двухбайтных или UCS-22). Заполняющий символ - всегда пробел даже для строк, определенных с атрибутом FOR BIT DATA.

2
В UCS-2 определено несколько символов SPACE с разными свойствами. Для базы данных Unicode менеджер баз данных в качестве пробела UCS-2 всегда использует ASCII SPACE с кодом x'0020'. Для базы данных EUC для заполнения строк GRAPHIC используется IDEOGRAPHIC SPACE с кодом x'3000'.

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.

40.2.1.4 Правила для типов данных результатов

Символьные и графические строки в базе данных Unicode

Это новый подраздел, вставленный после подраздела "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)

40.2.1.5 Rules for String Conversions

К следующему списку в этом разделе был добавлен третий пункт:

Для каждой пары кодовых страниц результат определяется последовательным применением следующих правил:

1
В базах данных не Unicode преобразование между разными схемами кодирования не поддерживается.

40.2.1.6 Expressions

Добавлено следующее:

В базе данных Unicode выражение, принимающее графическую или символьную строку, будет принимать любые типы строк, для которых поддерживается преобразование.

With the Concatenation Operator

В конец этого подраздела было добавлено следующее:

В базе данных Unicode конкатенация, включающая как операнды символьных строк, так и операнды графических строк, сперва будет преобразовывать символьные операнды в графические операнды. Обратите внимание на то, что в других базах данных (не Unicode) конкатенация не может включать и символьные, и графические операнды.

40.2.1.7 Predicates

К списку, начинающемуся с предложения "The following rules apply to all types of predicates", добавлено:

40.2.2 Глава 4. Functions

40.2.2.1 Scalar Functions

В конец этого раздела добавлено следующее предложение:

В базе данных Unicode все скалярные функции, принимающие графическую или символьную строку, будет принимать любые типы строк, для которых поддерживается преобразование.


[ Начало страницы | Страница назад | Страница вперед | Содержание | Индекс ]