Символьное представление значения по умолчанию столбца
Функция
Получить символьное представление значения по умолчанию столбца таблицы.
Спецификация
::=
::=
::=
Синтаксические правила
-
< Идентификатор таблицы >
задает системный идентификатор таблицы (поле$$$S11
системной таблицы$$$SYSRL
), в которой находится нужный столбец.Получить системный идентификатор таблицы
AUTO
:select $$$S11 from $$$SYSRL where $$$S13 = 'AUTO'; |100 |
-
< Идентификатор столбца >
задает системный идентификатор нужного столбца (поле$$$S22
системной таблицы$$$ATTRI
).Получить системный идентификатор столбца
MODEL
таблицыAUTO
:-
Получить системный идентификатор таблицы
AUTO
:select $$$S11 from $$$SYSRL where $$$S13 = 'AUTO'; |100 |
-
Получить системный идентификатор столбца
MODEL
:select $$$S22 from $$$ATTRI where $$$S21 = 100 and $$$S23='MODEL'; |2 |
-
-
< Строка >
задает строку, которая должна выдаваться в случае, если DEFAULT-значение для столбца не задано или имеет NULL-значение. По умолчанию используется фраза «NULL».Получить значение по умолчанию столбца
MODEL
таблицыAUTO
:select deftext(100,2,'unknown'); |unknown |
-
Аргументы
< идентификатор таблицы >
и< идентификатор столбца >
могут быть заданы< SQL-параметром >
, который должен содержать спецификацию типа данных параметра.select deftext(? (int), ? (int), 'нет значения по умолчанию'); 173 2 |нет значения по умолчанию |
Возвращаемое значение
-
Возвращаемое значение имеет тип
VARCHAR(2048)
. -
DEFAULT-значения столбца возвращаются в двойных кавычках.
-
Если длина DEFAULT-значения столбца больше 2048, это значение обрезается.
-
В случае если DEFAULT-значение обрезано, возвращается значение без кавычек.
-
Для типов
BYTE/VARBYTE
значение возвращается в шестнадцатеричном виде (HEX-строка). Соответственно, для этих типов максимальное число выведенной информации о DEFAULT-значении равно 1024, т.к. 1 байт соответствует 2 текстовым символам. -
Если DEFAULT-значение не установлено или равно NULL, возвращается фраза NULL без двойных кавычек.
-
Для столбцов с атрибутом
GENERATED BY DEFAULT AS
или DEFAULT в качестве< значимого выражения >
возвращается строка NULL. Это связано с тем, что< значимое выражение >
в данном случае вычисляется непосредственно в момент добавления новой записи (т.е. заранее неизвестно). Получить текстовый вид< значимого выражения >
по умолчанию можно с помощью функции LINTER_DICT_INFO, например:create or replace table q1(j int, i int default 10); alter table q1 alter column i set default (j + 9); select LINTER_DICT_INFO(2,$$$S11,2) from LINTER_SYSTEM_USER.$$$SYSRL where $$$S13='Q1'; |("J"+9) |
Пример
create table tab1 (i int default 100); select cast rtrim($$$S13) as varchar(66), /*таблица*/ cast rtrim($$$S23) as varchar(66), /*столбец*/ deftext($$$S11, $$$S22) /*значение по умолчанию*/ from LINTER_SYSTEM_USER.$$$SYSRL, LINTER_SYSTEM_USER.$$$ATTRI where $$$S13 = 'TAB1' and $$$S11=$$$S21; |TAB1 |I |"100" |