Доступные версии документации

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

Функция

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

Спецификация
 
<идентификатор таблицы>::=
целое положительное число
<идентификатор столбца>::=
целое положительное число
Синтаксические правила
  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" |
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter