errorstack使用简介

errorstack使用简介

ID:34722835

大小:47.07 KB

页数:3页

时间:2019-03-10

errorstack使用简介_第1页
errorstack使用简介_第2页
errorstack使用简介_第3页
资源描述:

《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/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。