欢迎来到天天文库
浏览记录
ID:34722835
大小:47.07 KB
页数:3页
时间:2019-03-10
《errorstack使用简介》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、我们经常在跑一些比较大的包、过程(比如已经达到上万行)之类,里面有许多小的SQL语句,跑的时候,报错。但警告日志中只会告诉你这个包有问题,但不会告诉你具体里面的哪个SQL语句有问题。这时,我们就需要使用ErrorStack这个功能了。ErrorStack是Oracle提供的一种对于错误堆栈进行跟踪的方法,通过设置跟踪可以将一些错误的后台信息详尽地转储出来,写入跟踪文件,对于错误的研究与诊断非常有效。设置ErrorStack主要有4个级别:0仅转储错误堆栈(0级已经被逐渐废弃)1转储错误堆栈和函数调用堆栈2Level1+ProcessSta
2、te3Level2+Contextarea(显示所有cursors,着重显示当前cursor)ErrorStack可以在实例级或会话级别设置,也可以在参数文件中设置,这个设置仅当某个特定的错误出现时才被触发,如设置ORA-00942事件的跟踪:altersessionsetevents'942tracenameerrorstacklevel1′;诊断事件可以在Session级设置,也可以在系统级设置,通常如果要诊断全局错误,最好在系统级设置,我们来示范下:假设执行一个语句块或者包体,报错ORA-12899,则:SQL>altersyste
3、msetevents='12899tracenameerrorstackforever,level3';Systemaltered.SQL>declare 2 v_count number(1); 3 begin 4 selectcount(1)intov_countfromuser_tableswheretable_name='T'; 5 if(v_count=0)then 6 executeimmediate'createtablet(avarchar2(5))'; 7 else 8 executeim
4、mediate'insertintotvalues(''abcdef'')'; 9 commit;10 endif;11 end;12 /PL/SQLproceduresuccessfullycompleted.SQL>declare 2 v_count number(1); 3 begin 4 selectcount(1)intov_countfromuser_tableswheretable_name='T'; 5 if(v_count=0)then 6 executeimmediate'createt
5、ablet(avarchar2(5))'; 7 else 8 executeimmediate'insertintotvalues(''abcdef'')'; 9 commit;10 endif;11 end;12 /declare*ERRORatline1:ORA-12899:valuetoolargeforcolumn"SYS"."T"."A"(actual:6,maximum:5)ORA-06512:atline8SQL>altersystemsetevents='12899tracenameerrorsta
6、ckoff';Systemaltered.SQL>![oracle@dbp~]$cd/u01/app/oracle/diag/rdbms/test/test/trace[oracle@dbptrace]$ls-sorttotal18468……..……….. 80-rw-r-----1oracle 76305Sep1813:27test_ora_2684.trm3484-rw-r-----1oracle3562550Sep1813:27test_ora_2684.trc 4-rw-r-----1oracle 132Sep1813:
7、27test_diag_28362.trm 4-rw-r-----1oracle 2448Sep1813:27test_diag_28362.trc 4drwxr-xr-x2oracle 4096Sep1813:27cdmp_20120918132757220-rw-r-----1oracle 218978Sep1813:28alert_test.log[oracle@dbptrace]$tail-30alert_test.log…..……..TueSep1811:11:432012OSPid:29534executedalt
8、ersystemsetevents'12899tracenameerrorstackforever,level3'Errorsinfile/u01/app/oracle/diag/rdbms/
此文档下载收益归作者所有