Oracle - 快速提取alter table脚本
问题描述:
在Toad for Oracle中,可以查看特定表的DDL脚本。我试图找出一种方法来快速拉取近50张桌子的ALTER TABLE ADD FOREIGN KEY CONSTRAINT
ddl,而不是去所有的桌子并抓住它们。有没有一个目录表或这种方式只拉那部分?Oracle - 快速提取alter table脚本
答
是的,蟾蜍肯定有可能。 (NB我的架构浏览器设置为使用的标签,我不知道,如果你没有标签下面的工作!)
这里是你如何能得到它在蟾蜍:
- 点击约束标签
- 为了用图列
- 向下滚动到外键约束(蓝色键与F旁边)
- Ctrl +单击您要生成 脚本外键约束
- Ri约束名称列表上向右鼠标点击
- 选择从弹出菜单中
这带来了一个窗口,让您选择的选项,你想怎样显示结果“创建脚本”。
答
的工具独立版本:
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/
你的意思是使用特定的蟾蜍工具(包含它们的表。) ,而不是'dbms_metadata'包? –
从未使用过该软件包。任何方法,只要达到那个结果。 – user3224907
假设这与你在这里发布的其他问题有关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