如何以与 toad 相同的方式在 PL/SQL 中导出数据库对象?

Posted

技术标签:

【中文标题】如何以与 toad 相同的方式在 PL/SQL 中导出数据库对象?【英文标题】:How can I export database objects in PL/SQL the same way toad does? 【发布时间】:2013-12-04 02:39:40 【问题描述】:

我正在从 toad 切换到 pl/sql 开发人员,并且想要备份架构。在 toad 中,我选择 Database->Export->Generate Schema Script,有一个名为 object types 的选项卡,我可以选择我想要的对象。

有人在 pl/sql 开发人员中如何做到这一点吗?我得到了工具->导出用户对象.. 我正在查看列表,它没有蟾蜍拥有的所有东西,而且我找不到任何地方来选择我想要的对象。例如,作业不在用户对象中(并且用户拥有它们)。

我有版本 8.0.4.1514。任何帮助表示赞赏!

【问题讨论】:

在Database Administrators 上回答这个问题可能会更好。这更像是一个数据库管理类型的问题,而不是编程问题,而且它与备份有关,根据他们的帮助中心,这使它成为主题。 感谢您的建议!这里的每个人都很有帮助:) 【参考方案1】:

在 PL/SQL Developer 中,我不知道解决方案。 8.0.4 也确实过时了。我没有可用的 8.0.4 来检查它,但也许那个版本已经有包 dbms_metadata。如果是这样,请使用类似:

  l_clob   clob;
  l_return varchar2(240);
begin
  dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'DEFAULT', true);
  dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'STORAGE', false);
  dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'SEGMENT_ATTRIBUTES', false);
  dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'TABLESPACE', false);
  dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'REF_CONSTRAINTS', false);
  dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'CONSTRAINTS', false);
  dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'PARTITIONING', false);
  dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'SIZE_BYTE_KEYWORD', true);
  begin
    l_clob   := dbms_metadata.get_ddl(p_object_type, p_object_name, p_owner);
    ...

如果不是,您可能需要考虑 Oracle 导入/导出(带有 8.0.4 的旧版本,而不是数据泵)。使用 'imp show=yes' 我想记住你可以打印所有 DDL 并使用 'log=xxx' 将其假脱机到一个文本文件。

最后一种选择是查询数据字典并自己构建语句,但我没有它的代码了。

【讨论】:

很遗憾,我无法访问控制台。我将着眼于尝试获取新版本的 sql developer。感谢您花时间帮助我:) 对于导入/导出或查询,您不需要访问控制台。旧的 imp/exp 可以在 SQL*Net 上可靠地运行,因此如果您可以使用 SQL Developer 进行连接,您也可以运行 exp/imp。如果在您的 PC 上不可用,请安装带有管理软件的客户端。在客户端安装期间,该选项占用 500 MB 存储空间:-)

以上是关于如何以与 toad 相同的方式在 PL/SQL 中导出数据库对象?的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 过程和 Toad 执行?

使用 Toad 在 PL/SQL 中进行数据迁移

如何使用 Toad 工具显示 sys_refcursor 输出 pl sql

Toad Oracle Pl/sql 调试作为从断点跳转到断点

如何在调试 PL SQL 脚本时获得 clob 的全部价值

用于格式化 Oracle PL/SQL 代码的标准 Toad 模板?