2016-04-29 2 views
3

Я хочу запросить следующее: все таблицы, с их колоннами и типаПолучение всех таблиц/столбцов и их типов данных Firebird в одном запросе

данных Я получил это так далеко от 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 

Plus, то следующие должно произойти:

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. Я надеюсь, что мой вопрос достаточно ясно

ответ

3

Просто присоединиться 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 

 Смежные вопросы

  • Нет связанных вопросов^_^