批量获得oracle存储过程等

  同事想把项目组写的存储过程保存下来,不是dump那种,而是可以随时看,每个存储过程以独立文件存放。首先想到的是开发工具PL/SQL developer有保存存储过程的功能,但是批量和筛选功能有限。toad倒是有这方面的功能,但是这些工具不是任何场合就能用的。所以,还是原始的脚本比较可靠…

举例:把datacore用户下所有以CFA或者以AAC开头的存储过程保存到C:\procedures下。

1、创建以下存储过程
create or replace procedure get_procedure is
begin
  for x in (select distinct t.name
              from all_source t
             where t.TYPE = 'PROCEDURE'
               and t.owner = 'DATACORE'
               AND (t.name like 'ACC%' or t.name like 'CFA%')) loop
    dbms_output.put_line('spool C:\procedures\' || x.name || '.sql');
    dbms_output.put_line('select text from dba_source t where t.name =''' || x.name || '''' || ';');
    dbms_output.put_line('spool off');
  end loop;
end;

2、运行存储过程
得到输出结果命令文本
3、设置命令窗口并运行脚本
set pagesize 999999
set fedback off

原文地址:https://www.cnblogs.com/AlbertCQY/p/3103241.html