Skip to content

Instantly share code, notes, and snippets.

@avandrevitor
Created April 3, 2018 11:33
Show Gist options
  • Select an option

  • Save avandrevitor/ad708024e0bc379706e8fe809e9753df to your computer and use it in GitHub Desktop.

Select an option

Save avandrevitor/ad708024e0bc379706e8fe809e9753df to your computer and use it in GitHub Desktop.
Consulta para trazer os detalhes dos campos ( dominios ), criados no Firebird
--
-- https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref-appx04-fields.html
-- http://docwiki.embarcadero.com/InterBase/XE7/en/RDB$FIELDS
--
SELECT
RDB$FIELD_NAME AS FIELD_NAME,
RDB$DESCRIPTION AS FIELD_DESCRIPTION,
RDB$FIELD_TYPE AS FIELD_TYPE_CODE,
RDB$FIELD_SUB_TYPE AS SUB_TYPE_CODE,
RDB$FIELD_LENGTH AS SIZE_IN_BYTES,
RDB$FIELD_SCALE AS SCALE,
RDB$FIELD_PRECISION AS FIELD_PRECISION,
CASE RDB$FIELD_TYPE
WHEN 7 THEN
CASE RDB$FIELD_SUB_TYPE
WHEN 0 THEN 'SMALLINT'
WHEN 1 THEN 'NUMERIC(' || RDB$FIELD_PRECISION || ',' || (-RDB$FIELD_SCALE) || ')'
WHEN 2 THEN 'DECIMAL'
ELSE
'SMALLINT'
END
WHEN 8 THEN
CASE RDB$FIELD_SUB_TYPE
WHEN 0 THEN 'INTEGER'
WHEN 1 THEN 'NUMERIC(' || RDB$FIELD_PRECISION || ',' || (-RDB$FIELD_SCALE) || ')'
WHEN 2 THEN 'DECIMAL'
ELSE
'INTEGER'
END
WHEN 9 THEN 'QUAD'
WHEN 10 THEN 'FLOAT'
WHEN 12 THEN 'DATE'
WHEN 13 THEN 'TIME'
WHEN 14 THEN 'CHAR'
WHEN 16 THEN
CASE RDB$FIELD_SUB_TYPE
WHEN 0 THEN 'BIGINT'
WHEN 1 THEN 'NUMERIC(' || RDB$FIELD_PRECISION || ',' || (-RDB$FIELD_SCALE) || ')'
WHEN 2 THEN 'DECIMAL'
ELSE
'BIGINT'
END
WHEN 23 THEN 'BOOLEAN'
WHEN 27 THEN
CASE RDB$FIELD_SUB_TYPE
WHEN 0 THEN 'DOUBLE PRECISION'
WHEN 1 THEN 'NUMERIC(' || RDB$FIELD_PRECISION || ',' || (-RDB$FIELD_SCALE) || ')'
WHEN 2 THEN 'DECIMAL'
ELSE
'DOUBLE PRECISION'
END
WHEN 35 THEN 'TIMESTAMP'
WHEN 37 THEN 'VARCHAR'
WHEN 40 THEN 'CSTRING'
WHEN 261 THEN 'BLOB'
END FIELD_TYPE_NAME,
CASE RDB$SYSTEM_FLAG
WHEN 0 THEN 'USER'
WHEN 1 THEN 'SYSTEM'
END CREATED_BY
FROM RDB$FIELDS
ORDER BY RDB$SYSTEM_FLAG DESC,FIELD_NAME ASC;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment