我想查询以下内容:所有表及其列和数据类型
我从http://www.firebirdfaq.org/faq174/
那里得到了这个select f.rdb$relation_name, f.rdb$field_name, f.rdb$field_source
from rdb$relation_fields f
join rdb$relations r on f.rdb$relation_name = r.rdb$relation_name
and r.rdb$view_blr is null
and (r.rdb$system_flag is null or r.rdb$system_flag = 0)
order by 1, f.rdb$field_position
我刚刚添加了上面的代码" f.rdb $ field_source"向我展示该表上的信息,这应该允许我在此表中找到以下列的数据类型RDB $ FIELDS
SELECT * from RDB$FIELDS
我想在上面的查询中添加如下内容:
select f.rdb$relation_name, f.rdb$field_name, f.rdb$field_source
from rdb$relation_fields f
join rdb$relations r on f.rdb$relation_name = r.rdb$relation_name
and r.rdb$view_blr is null
and (r.rdb$system_flag is null or r.rdb$system_flag = 0)
order by 1, f.rdb$field_position
另外需要发生以下情况:
select a.RDB$FIELD_TYPE from RDB$FIELDS
where RDB$FIELD_NAME is equal to the .rdb$field_source
from rdb$relation_fields
所以我有一个Tablename / Columnname / TypeofData的表。
我在SQL方面经验不足。我希望我的问题很清楚
答案 0 :(得分:5)
只需加入RDB $ FIELDS表:
SELECT
R.RDB$RELATION_NAME,
R.RDB$FIELD_NAME,
R.RDB$FIELD_SOURCE,
F.RDB$FIELD_LENGTH,
F.RDB$FIELD_TYPE,
F.RDB$FIELD_SCALE,
F.RDB$FIELD_SUB_TYPE
FROM
RDB$RELATION_FIELDS R
JOIN RDB$FIELDS F
ON F.RDB$FIELD_NAME = R.RDB$FIELD_SOURCE
JOIN RDB$RELATIONS RL
ON RL.RDB$RELATION_NAME = R.RDB$RELATION_NAME
WHERE
COALESCE(R.RDB$SYSTEM_FLAG, 0) = 0
AND
COALESCE(RL.RDB$SYSTEM_FLAG, 0) = 0
AND
RL.RDB$VIEW_BLR IS NULL
ORDER BY
R.RDB$RELATION_NAME,
R.RDB$FIELD_POSITION