如何将oracle toad中的存储过程保存到脚本文件

Ajw*_*wad 2 oracle toad plsql

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

APC*_*APC 5

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

为什么这是最佳实践?两个字:源头控制

但考虑到这不是你现在所处的位置,你可以使用 DBMS_METADATA.GET_DDL 来获取所有包源。 在文档中


这是另一种方法,可以轻松地为每个对象生成单独的文件,即每个包规范和主体的文件。单独的文件是对 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
/
Run Code Online (Sandbox Code Playgroud)

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