Получить символьное представление значения по умолчанию столбца таблицы.
::=
::=
::=
<Идентификатор таблицы>
задает системный идентификатор таблицы (поле $$$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" |