批量获得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
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号