【问题标题】:Oracle - pull alter table scripts quicklyOracle - 快速拉取更改表脚本
【发布时间】:2016-05-14 00:34:22
【问题描述】:

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

【问题讨论】:

  • 您的意思是使用特定的 Toad 工具,而不是 dbms_metadata 包?
  • 从未使用过该软件包。任何方法,只要达到那个结果。
  • 假设这与您在此处发布的另一个问题 stackoverflow.com/questions/37196117/… 相关 - 如果实际上您只需要找到所有外键,为什么不能只运行 select * from all_constraints where constraint_type = 'R'?或者只选择您需要的列,例如table_name, constraint_name, r_constraint_name?

标签: oracle oracle11g toad


【解决方案1】:

是的,在 Toad 中绝对可以。 (注意,我的模式浏览器设置为使用选项卡;如果您的没有选项卡,我不确定以下是否可行!)

在 Toad 中获取它的方法如下:

  1. 单击“约束”选项卡
  2. 按 Img 列对约束进行排序
  3. 向下滚动到外键约束(蓝色键旁边有一个 F)
  4. Ctrl+单击要为其生成脚本的外键
  5. 在约束名称列表上单击鼠标右键
  6. 从弹出菜单中选择“创建脚本”

这会打开一个窗口,您可以在其中选择选项以及如何显示结果。

【讨论】:

    【解决方案2】:

    独立于工具的版本:

    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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 2015-01-08
      • 2012-03-21
      • 2018-12-13
      相关资源
      最近更新 更多