Oracle - 快速提取alter table脚本

问题描述:

在Toad for Oracle中,可以查看特定表的DDL脚本。我试图找出一种方法来快速拉取近50张桌子的ALTER TABLE ADD FOREIGN KEY CONSTRAINT ddl,而不是去所有的桌子并抓住它们。有没有一个目录表或这种方式只拉那部分?Oracle - 快速提取alter table脚本

+0

你的意思是使用特定的蟾蜍工具(包含它们的表。) ,而不是'dbms_metadata'包? –

+0

从未使用过该软件包。任何方法,只要达到那个结果。 – user3224907

+0

假设这与你在这里发布的其他问题有关http://stackoverflow.com/questions/37196117/oracle-delete-all-child-records-for-a-parent - 如果实际上你需要的是找到所有外键,为什么不能运行'select * from all_constraints where constraint_type ='R''?或者只需选择你需要的列,比如'table_name,constraint_name,r_constraint_name'? – mathguy

是的,蟾蜍肯定有可能。 (NB我的架构浏览器设置为使用的标签,我不知道,如果你没有标签下面的工作!)

这里是你如何能得到它在蟾蜍:

  1. 点击约束标签
  2. 为了用图列
  3. 向下滚动到外键约束(蓝色键与F旁边)
  4. Ctrl +单击您要生成
  5. 脚本外键约束
  6. Ri约束名称列表上向右鼠标点击
  7. 选择从弹出菜单中

这带来了一个窗口,让您选择的选项,你想怎样显示结果“创建脚本”。

的工具独立版本:

SELECT dbms_metadata.get_dependent_ddl('REF_CONSTRAINT', table_name) 
    FROM user_tables t -- may want to change this to all_tables... 
WHERE EXISTS (SELECT 1 
       FROM user_constraints 
       WHERE table_name = t.table_name 
       AND constraint_type = 'R'); 

这将产生ALTER所有外键约束TABLE语句

http://przemyslawkruglej.com/archive/2014/09/how-to-get-referential-constraints-using-dbms_metadata/