【发布时间】:2021-08-07 14:22:29
【问题描述】:
我能够列出所需的大部分信息,但不知道如何列出引用的表和列
需要的信息是:
- 表名
- 列名
- 数据类型
- 约束类型
- 参考表
- 参考栏目
SELECT at.owner, at.table_name, atc.column_name AS column_names, atc.data_type AS data_type, ac.constraint_type FROM all_tables at JOIN all_tab_columns atc ON at.table_name = atc.table_name LEFT JOIN all_cons_columns acc ON atc.column_name = acc.column_name AND acc.table_name = at.table_name LEFT JOIN all_constraints ac ON ac.constraint_name = acc.constraint_name WHERE at.owner NOT IN ( 'SYS', 'SYSTEM', 'DBSNMP', 'DVSYS', 'GSMADMIN_INTERNAL', 'LBACSYS', 'MDSYS', 'OJVMSYS', 'ORDDATA', 'WMSYS', 'XDB', 'CTXSYS', 'APPQOSSYS', 'AUDSYS', 'OUTLN', 'DBSFWUSER', 'ORDSYS', 'OLAPSYS' ) GROUP BY at.owner, at.table_name, ac.constraint_type, atc.column_name, atc.data_type, ac.r_owner ORDER BY at.owner;
有没有一种方法可以获取所有约束以及引用的键和表名?我已经尝试了很多,但无法弄清楚。
【问题讨论】:
标签: sql oracle constraints