Символьное представление значения по умолчанию столбца

Функция

Получить символьное представление значения по умолчанию столбца таблицы.

Спецификация
 
< идентификатор таблицы >::=
целое положительное число
< идентификатор столбца >::=
целое положительное число
Синтаксические правила
  1. < Идентификатор таблицы > задает системный идентификатор таблицы (поле $$$S11 системной таблицы $$$SYSRL), в которой находится нужный столбец.

    Получить системный идентификатор таблицы AUTO:

    select $$$S11 from $$$SYSRL where $$$S13 = 'AUTO';
    |100 |
  2. < Идентификатор столбца > задает системный идентификатор нужного столбца (поле $$$S22 системной таблицы $$$ATTRI).

    Получить системный идентификатор столбца MODEL таблицы AUTO:

    1. Получить системный идентификатор таблицы AUTO:

      select $$$S11 from $$$SYSRL where $$$S13 = 'AUTO';
      |100 |
    2. Получить системный идентификатор столбца MODEL:

      select $$$S22 from $$$ATTRI where $$$S21 = 100 and $$$S23='MODEL';
      |2 |
  3. < Строка > задает строку, которая должна выдаваться в случае, если DEFAULT-значение для столбца не задано или имеет NULL-значение. По умолчанию используется фраза «NULL».

    Получить значение по умолчанию столбца MODEL таблицы AUTO:

    select deftext(100,2,'unknown');
    |unknown |
  4. Аргументы < идентификатор таблицы > и < идентификатор столбца > могут быть заданы < SQL-параметром >, который должен содержать спецификацию типа данных параметра.

    select deftext(? (int), ? (int), 'нет значения по умолчанию');
    173
    2
    |нет значения по умолчанию |

Возвращаемое значение
  1. Возвращаемое значение имеет тип VARCHAR(2048).

  2. DEFAULT-значения столбца возвращаются в двойных кавычках.

  3. Если длина DEFAULT-значения столбца больше 2048, это значение обрезается.

  4. В случае если DEFAULT-значение обрезано, возвращается значение без кавычек.

  5. Для типов BYTE/VARBYTE значение возвращается в шестнадцатеричном виде (HEX-строка). Соответственно, для этих типов максимальное число выведенной информации о DEFAULT-значении равно 1024, т.к. 1 байт соответствует 2 текстовым символам.

  6. Если DEFAULT-значение не установлено или равно NULL, возвращается фраза NULL без двойных кавычек.

  7. Для столбцов с атрибутом 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" |