【问题标题】:how to save stored procedures in oracle toad to script files如何将oracle toad中的存储过程保存到脚本文件
【发布时间】:2014-08-22 18:18:24
【问题描述】:

我在 oracle toad 中有 1300 个存储过程。我想将每个存储过程保存到一个单独的脚本文件中,因为我需要将它更新到另一个数据库。如何执行此操作

【问题讨论】:

  • 这可以单独完成,但如何一次性完成?

标签: oracle plsql toad


【解决方案1】:

最简单的方法是不需要这样做。最佳实践是在编辑器中编写脚本并使用 TOAD 将它们运行到数据库中。

为什么这是最佳做法?两个字:源代码管理

但鉴于你现在不在,你可以使用 DBMS_METADATA.GET_DDL 来吸出所有的包源。 In the docs.


这是另一种方法,它可以轻松地为每个对象生成单独的文件,即每个包规范和主体的文件。单独的文件是对 PL/SQL 进行源代码控制的最佳方式。 (您可以将此方法扩展为独立的过程和函数、类型和触发器。

这些查询将生成您可以在 TOAD 中运行的 SQL*Plus 脚本。

select 'spool '||object_name||'_spec.sql'||chr(10)
       ||'select text from user_source where type=''PACKAGE'' and name = '''||object_name||''' order by line;'||chr(10)
       ||'spool off'
from user_objects 
where object_type='PACKAGE'
order by object_name
/

select 'spool '||object_name||'_body.sql'||chr(10)
       ||'select text from user_source where type=''PACKAGE BODY'' and name = '''||object_name||''' order by line;'||chr(10)
       ||'spool off'
from user_objects 
where object_type='PACKAGE BODY'
order by object_name
/

您可能需要调整 LINESIZE 并关闭 HEADINGS,具体取决于您的环境设置。

【讨论】:

    【解决方案2】:

    在 Toad 中,请查看“导出”弹出下方主数据库菜单中的“导出 DDL”功能。在那里添加你的对象。您有几个输出选项和脚本生成选项。例如,如果你想在另一个模式中编译它们,你可以省略模式名称,等等。尝试一下,因为我认为它会做你需要的任何事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2014-06-09
      • 2012-02-28
      相关资源
      最近更新 更多