DBMS_TRACE包学习

DBMS_TRACE 包可能主要是开发调试的时候用的比较多,主要是将trace信息记录到系统表里.

开始使用前需要使用sys用户执行$ORACLE_HOME/rdbms/admin/tracetab.sql语句,该脚本创建plsql_trace_runs和plsql_trace_events两个表和一个sequence,详细可以参考脚本内容.

通常使用的可能是dbms_trace.set_plsql_trace(trace_level);和dbms_trace.clear_plsql_trace两个procedure.

trace_level可以参考dbms_trace package中的定义:

trace_all_calls constant integer := 1; -- Trace calls/returns
trace_enabled_calls constant integer := 2;

trace_all_exceptions constant integer := 4; -- trace exceptions
trace_enabled_exceptions constant integer := 8; -- (and handlers)

trace_all_sql constant integer := 32; -- trace SQL statements
trace_enabled_sql constant integer := 64; -- at PL/SQL level (does
-- not invoke SQL trace)

trace_all_lines constant integer := 128; -- trace each line
trace_enabled_lines constant integer := 256;

即1就代表trace_all_calls。

下面参考网上找了一个例子写了个简单的存储过程:

create or replace procedure cur_trace_test as
in_rand number :=0;
lv_lang varchar2(30);
begin

select userenv('LANGUAGE') into lv_lang from dual;
dbms_trace.set_plsql_trace(1);

for i in 1 .. 2 LOOP
in_rand:=1+i;
if (MOD(in_rand,100) = 0) then
dbms_output.put_line(to_char(in_rand));
end if;
END LOOP;
dbms_trace.clear_plsql_trace;
end cur_trace_test;

执行后可以根据sys.plsql_trace_runs和sys.plsql_trace_events表中的信息跟踪存储过程的执行.

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23850820/viewspace-1034419/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23850820/viewspace-1034419/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值