我正在开发一个负责数据复制到新数据库的团队。
对于脚本,我们需要将架构中的每个主键复制到脚本中。现在,访问每个表并获得PK并不困难。
有没有办法动态列出datadictionary中的所有PK来加速这个过程?
答案 0 :(得分:1)
我认为这可能接近你所寻找的。如果您需要DBA_CONSTRAINTS
或DBA_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