因为要分析旧系统的原因, 我需要得到一张表的各个字段的信息:列名,类型长度,是否为空,是PK还是FK,注释信息我已经写的SQL:
select t.COLUMN_NAME 列名, t.DATA_TYPE || '(' || t.DATA_LENGTH || ')' 类型长度, t.NULLABLE 是否为空
from user_tab_columns t
where table_name = '***'但是,还有“是PK还是FK”,“注释信息”这两个信息不知道在哪个表中获取,请达人告知。
select t.COLUMN_NAME 列名, t.DATA_TYPE || '(' || t.DATA_LENGTH || ')' 类型长度, t.NULLABLE 是否为空
from user_tab_columns t
where table_name = '***'但是,还有“是PK还是FK”,“注释信息”这两个信息不知道在哪个表中获取,请达人告知。
SELECT * FROM USER_COL_COMMENTS T;
是PK还是FK可以从这个表获得:
SELECT * FROM User_Constraints t;
column 类型长度 format a30
column 是否为空 format a20
column pk_or_fk format a10
column comments format a100select t.COLUMN_NAME 列名, t.DATA_TYPE || '(' || t.DATA_LENGTH || ')' 类型长度, t.NULLABLE 是否为空 , decode(d.constraint_type,'P','PK','R','FK',d.constraint_type) pk_or_fk, b.comments
from user_tab_columns t join user_col_comments b on(t.table_name=b.table_name and t.column_name=b.column_name)
join user_cons_columns c on(t.table_name=c.table_name and t.column_name=b.column_name)
join user_constraints d on(c.table_name=d.table_name and c.constraint_name=d.constraint_name)
where table_name = '***'