plsql里面,有个复杂的存储过程p1,里面包含许多子存储过程p11,p12,p13......,如何把存储过程的sql倒出来,看看?我只想要导出p1、p11、p12、p13.....的存储过程sql,别的存储过程sql不需要,这个在plsql工具里面怎么弄呢?怎么实现呢?

解决方案 »

  1.   

    选中导出哟,或者是用sqlSQL>set trimout on; 
    SQL>set heading off;
    SQL>set pagesize 0;
    SQL>spool on;
    SQL>spool '你的文件路径';
    SQL>select text from user_source where name in ('P1', 'P2','P3',....) order by name asc, line asc;
    SQL>spool off;
      

  2.   

    1.根据你的过程
    alter system set events '10046 trace name context forever, level 12';
    exec 你的过程;
    alter system set events '10046 trace name context off';2.找出你的跟踪日志
    SELECT       d.VALUE
             || '/'
             || LOWER (RTRIM (i.INSTANCE, CHR (0)))
             || '_ora_'
             || p.spid
             || '.trc' trace_file_name
        FROM (SELECT p.spid
                FROM v$mystat m, v$session s, v$process p
               WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,
             (SELECT t.INSTANCE
                FROM v$thread t, v$parameter v
               WHERE v.NAME = 'thread'
                 AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
             (SELECT VALUE
                FROM v$parameter
               WHERE NAME = 'user_dump_dest') d
    /3.转换日志
    tkprof 你的日志.trc output.txt参考:
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96533/sqltrace.htm#1018
      

  3.   

    是要倒存储过程,还是倒存储过程里的sql。
      

  4.   

    用专门的Oracle管理工具Toad,可以很方便的管理Oracle对象。
      

  5.   

    用PL/SQL导出来很容易啊,在PL SQL里有个导出USER OBJECTS,可以选择存储过程,找出你要的存储过程导出就可以了
      

  6.   

    PL/SQL? 工具--导出用户对象--(找见你要的过程)  导出不知道你想要的是不是这个! 
      

  7.   

    select text from user_source where name in ('P1', 'P2','P3',....) ;