RDB$FIELDS

Версии сервера

0.91.01.5.31.5.41.5.52.02.0.32.0.42.12.53.0
ДаДаДаДаДаДаДаДаДаДаДа

Доступно в

DSQL, ESQL, ISQL, PSQL

Формат

rdb fields

Описание

Информация о доменах базы данных

Имя столбцаТипОписание
RDB$FIELD_NAMECHAR(31)Имя поля, должно быть уникальное для таблицы
RDB$QUERY_NAMECHAR(31)
RDB$VALIDATION_BLRBLOB
RDB$VALIDATION_SOURCEBLOB
RDB$COMPUTED_BLRBLOB
RDB$COMPUTED_SOURCEBLOBСодержит выражение для вычисления значения поля
RDB$DEFAULT_VALUEBLOB
RDB$DEFAULT_SOURCEBLOBСодержит значение по умолчанию для этого поля
RDB$FIELD_LENGTHSMALLINTДлина поля
RDB$FIELD_SCALESMALLINTМасштаб числовых типов данных
RDB$FIELD_TYPESMALLINTТип данных
RDB$FIELD_SUB_TYPESMALLINTПодтип данных
RDB$MISSING_VALUEBLOB
RDB$MISSING_SOURCEBLOB
RDB$DESCRIPTIONBLOB
RDB$SYSTEM_FLAGSMALLINT
RDB$QUERY_HEADERBLOB
RDB$SEGMENT_LENGTHSMALLINT
RDB$EDIT_STRINGVARCHAR(127)
RDB$EXTERNAL_LENGTHSMALLINT
RDB$EXTERNAL_SCALESMALLINT
RDB$EXTERNAL_TYPESMALLINT
RDB$DIMENSIONSSMALLINT
RDB$NULL_FLAGSMALLINT
RDB$CHARACTER_LENGTHSMALLINT
RDB$COLLATION_IDSMALLINT
RDB$CHARACTER_SET_IDSMALLINT
RDB$FIELD_PRECISIONSMALLINT

Типы данных

КодТипНачиная сДиалект
7SHORT-1-3
8LONG-1-3
9QUAD-
10FLOAT-1-3
12DATE-1-3
13TIME-3
14TEXT-1-3
16INT64-3
23BOOLEAN3.03
27DOUBLE-1-3
35TIMESTAMP-3
37VARYING-1-3
40CSTRING-1-3
45BLOB_ID-
261BLOB-1-3

Подтипы данных

КодПодтип
0BINARY
1TEXT
2BLR
3ACL
4RANGES
5SUMMARY
6FORMAT
7TRANSACTION_DESCRIPTION
8EXTERNAL_FILE_DESCRIPTION

Пример

старый и данные устаревшие, поэтому вы получите не то, что запросили

select
cast(
  'CREATE DOMAIN '||trim(RDB$FIELD_NAME)||' as '||

    case RDB$FIELD_TYPE
        when 7 then 'SMALLINT'
        when 8 then 'INTEGER'
        when 12 then 'DATE'
        when 13 then 'TIME'
        when 14 then 'CHAR('||rdb$field_length||')'
        when 16 then
          iif(rdb$field_sub_type = 0,'BIGINT', 'NUMERIC('||RDB$FIELD_PRECISION||','||(-1*rdb$field_scale)||')')
        when 35 then 'TIMESTAMP'
        when 37 then 'VARCHAR('||rdb$field_length||')'
        when 261 then 'BLOB SUB_TYPE '||rdb$field_sub_type||' SEGMENT SIZE '||rdb$segment_length
        else cast(RDB$FIELD_TYPE as varchar(10))
    end
    ||trim(iif(RDB$NULL_FLAG = 1,' NOT NULL ',' ')
      ||coalesce(' '||RDB$DEFAULT_SOURCE,'')
      ||coalesce(' '||rdb$validation_SOURCE,''))
    ||';'
as varchar(1000))
from RDB$FIELDS where (not (RDB$FIELD_NAME starting with 'RDB$')) and RDB$SYSTEM_FLAG = 0
order by RDB$FIELD_NAME

См. также

Системные таблицы

Таблицы мониторинга

Источник

%Firebird%\doc\

Обсуждение