【问题标题】:Scripting Oracle database : all objects from selected schemas编写 Oracle 数据库脚本:来自选定模式的所有对象
【发布时间】:2014-03-05 08:09:47
【问题描述】:

目前,我们正在使用 Oracle SQL Developer 为选定模式中的所有对象编写脚本。但这是一个非常不舒服的解决方案,因为我们应该选择模式,搜索所有对象,选择所有对象并将所有选择的对象移动到列表中。而且每一步都耗费时间。并重复 12 次(应导出 12 个 shcemas)。

是否可以通过 Oracle SQL Developer 插件改进导出对话框?或者更好的方法是使用 shell/命令提示实用程序来编写 Oracle DB 脚本...使用哪个实用程序?

【问题讨论】:

  • 导出是为了什么?你可以改用expdp 吗?或者,如果您只获取对象定义,请自动生成 dbms_metadata 调用自己 - 无论如何这就是幕后发生的事情。您还可以查看数据建模器,因为它可以生成 DDL,但我对它不是很熟悉。不过,这取决于您实际在做什么,以及为什么...
  • @AlexPoole : exdp 可能是一个解决方案,我会检查它。谢谢你。这是为了将 Oracle db 迁移到 SQL Server 项目。由于当前 Oracle 解决方案是并行开发的,因此我们会在每次迭代开始时定期生成 Meta/DDL 快照。
  • 是的,通常的方法是编写一个批处理脚本来创建您需要的模式并 expdp/impdp 数据库对象和数据。要么创建一个包含数据库对象的构建脚本并插入你可能在某些时候需要的脚本

标签: oracle oracle11g oracle-sqldeveloper


【解决方案1】:

使用 SQLcl!

编写一些 javascript,利用内置的 SPOOL 和 DDL 命令。比使用我们的 GUI 快得多。

此处的示例(来自Kris) - 它实际上通过了 ALL_OBJECTS https://gist.github.com/krisrice/de6f694b5241682059968bd5beadbcf7

SQLcl 使用与 SQL Developer 相同的代码库,但它是一个命令行界面,并提供客户端脚本,因此您可以执行诸如循环一组对象并与操作系统交互之类的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 2011-11-07
    • 2015-12-26
    相关资源
    最近更新 更多