Firebird获取表字段及定义

IBExpert中SubString函数不可用,找不到原因,所以取不到精确的默认值

SELECT
  B.RDB$FIELD_POSITION+1 "序号"
  ,B.RDB$FIELD_NAME "英文名称"
  ,(CASE D.RDB$TYPE_NAME
    WHEN 'TEXT' THEN 'CHAR' || '(' || C.RDB$FIELD_LENGTH || ')'
    WHEN 'LONG' THEN 'INTEGER' || '(' || C.RDB$FIELD_LENGTH || ')' 
    WHEN 'SHORT' THEN 'SMALLINT' || '(' || C.RDB$FIELD_LENGTH || ')'
    WHEN 'DOUBLE' THEN 'DOUBLE PRECISION' || '(' || C.RDB$FIELD_LENGTH || ')'
    WHEN 'VARYING' THEN 'VARCHAR' || '(' || C.RDB$FIELD_LENGTH || ')'
    WHEN 'FLOAT' THEN 'FLOAT'      || '(' || C.RDB$FIELD_LENGTH || ')'
    WHEN 'BLOB' THEN 'BLOB'     
    WHEN 'TIMESTAMP' THEN 'TIMESTAMP'
  END) "数据类型"
  ,B.RDB$DEFAULT_SOURCE "默认值"
FROM RDB$RELATIONS A
INNER JOIN RDB$RELATION_FIELDS B
  ON A.RDB$RELATION_NAME = B.RDB$RELATION_NAME
INNER JOIN RDB$FIELDS C
  ON B.RDB$FIELD_SOURCE = C.RDB$FIELD_NAME
INNER JOIN RDB$TYPES D
  ON C.RDB$FIELD_TYPE = D.RDB$TYPE
WHERE A.RDB$SYSTEM_FLAG = 0
AND D.RDB$FIELD_NAME = 'RDB$FIELD_TYPE'
AND A.RDB$RELATION_NAME = 'CORPS'
ORDER BY B.RDB$FIELD_POSITION


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值