Oracle 获取表的包含约束的结构信息


环境 Oracle 9 Release 2

用户sys

测试表名ATTRIBUTE_TRANSFORMATIONS$

使用到的数据字典中的表和视图

USER_TAB_COLUMNS:用户表基本机构信息

user_constraints:用户约束基本信息

user_cons_columns:用户约束与字段对应信息

select a.column_name,a.data_type,a.data_length,b.constraint_type,b.r_table_name,b.r_column_name
 from
(select column_name,Data_type,data_length from USER_TAB_COLUMNS WHERE USER_TAB_COLUMNS.TABLE_NAME='ATTRIBUTE_TRANSFORMATIONS$') a,
(  select a.column_name,a.constraint_type ,b.table_name r_table_name ,b.column_name r_column_name
    from
    (   select a.constraint_name,a.constraint_type,a.r_constraint_name,b.table_name,b.column_name
        from user_constraints a, user_cons_columns b
        WHERE   a.constraint_name=b.constraint_name and a.table_name='ATTRIBUTE_TRANSFORMATIONS$') a
    left join user_cons_columns b on a.r_constraint_name=b.constraint_name
) b
where a.column_name=b.column_name(+)

运行结果

相关内容