列出数据字典中的主键

时间:2015-10-15 14:33:48

标签: sql database oracle

我正在开发一个负责数据复制到新数据库的团队。

对于脚本,我们需要将架构中的每个主键复制到脚本中。现在,访问每个表并获得PK并不困难。

有没有办法动态列出datadictionary中的所有PK来加速这个过程?

1 个答案:

答案 0 :(得分:1)

我认为这可能接近你所寻找的。如果您需要DBA_CONSTRAINTSDBA_CONS_COLUMNS,可以提供更多信息。

SELECT c.owner,
       c.constraint_name,
       c.table_name,
       c.status,
       LISTAGG (cc.column_name, ',') WITHIN GROUP (ORDER BY cc.position) key_columns
FROM   dba_constraints c
       INNER JOIN dba_cons_columns cc
         ON cc.owner = c.owner
         AND cc.constraint_name = c.constraint_name
         AND cc.table_name = c.table_name
WHERE  c.constraint_type = 'P'
GROUP BY c.owner,
         c.constraint_name,
         c.table_name,
         c.status