通过对session进行trace的方式查看。
1、获取当前session的sid和serial#
2、他通过sid获取操作系统的pid
select p.spid
from v$session s,v$process p
where s.paddr=p.addr
and s.sid=3214
;
3、对session进行trace
exec dbms_system.set_sql_trace_in_session(3214,48681,true);
4、在3214 session 下执行存储过程
var o_result_flag varchar2(200);
var o_error_msg varchar2(200);
declare
begin
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx('20200706','20070706',:o_result_flag ,:o_error_msg);
end;
/
5、关闭对session的trace
exec dbms_system.set_sql_trace_in_session(3214,48681,false);
6、找到对应的trc文件
cd $ORACLE_BASE/diag/rdbms/iltdb/iltdb/trace 下
ora_xxxx文件即是。其中xxxx即为步骤2中查询出来的pid
7、对trc文件进行格式转换
tkprof ora_xxxx.trc ora_xxxx.txt
最终的ora_xxxx.txt中包含了整个存储过程的执行计划。