[Oracle] - 使用 DBMS_UTILITY 查看异常详情
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
说明:这是在Oracle 10g数据库引入的,DBMS_UTILITY.FORMAT_ERROR_BACKTRACE内置函数返回一个格式化的字符串堆栈,堆栈中的程序及其行号可以回溯到错误被最先抛出的那一行。
范例:ORA-06512: at "DB.TEST", line 22
DBMS_UTILITY.FORMAT_ERROR_STACK
说明:这是在Oracle7中引入的,DBMS_UTILITY.FORMAT_ERROR_STACK 这个内置函数和SQLERRM一样,返回的是和当前错误(SQLCODE返回的值)所关联的错误信息。
范例:ORA-01476: divisor is equal to zero
DBMS_UTILITY.FORMAT_CALL_STACK
说明:这是在Oracle7中引入的,DBMS_UTILITY.FORMAT_CALL_STACK这个内置函数返回一个格式化的字符串,它显示了执行调用堆栈:直至此函数的调用点处的所有过程或者函数的调用顺序。换句话说,这个函数回答了这个问题:“我是怎么来到这里的?”
范例:
----- PL/SQL Call Stack -----
object line object
handle number name
00007FFA6A87CB30 31 function LTR.TEST_PAYMENT_LOGGING
00007FFA6A7C8268 3 anonymous block
SP 应用范例
create or replace procedure spTest(pId number, res out number) is
begin
/* SQL query */
commit;
res := 1;
exception
when others then
DBMS_OUTPUT.PUT_LINE(SQLCODE||'---'||SQLERRM);
DBMS_OUTPUT.PUT_LINE('FORMAT_ERROR_BACKTRACE:' || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
DBMS_OUTPUT.PUT_LINE('FORMAT_ERROR_STACK:' || DBMS_UTILITY.FORMAT_ERROR_STACK);
DBMS_OUTPUT.PUT_LINE('FORMAT_CALL_STACK:' || DBMS_UTILITY.FORMAT_CALL_STACK);
rollback;
res := 0;
end;
SP 异常详情
-1---ORA-00001: brott mot unik begransning (XXX.PK_YYY)
FORMAT_ERROR_BACKTRACE:ORA-06512: vid "XXX.TB", rad 23 FORMAT_ERROR_STACK:ORA-00001: brott mot unik begransning (XXX.PK_YYY) FORMAT_CALL_STACK:----- PL/SQL Call Stack -----
object line object
handle number name
00007FFCBF6193E8 57 procedure XXX.TB
00007FFCCC9ECC98 3 anonymous block
转载来源
http://www.cnblogs.com/pompeii2008/p/7382640.html
最新文章
- openresty 前端开发入门三之JSON篇
- Listview的Item中有CheckBox、Button等的焦点处理
- 《Inside UE4》目录
- strcmp
- mq安装参考
- HDU 4059 容斥原理+快速幂+逆元
- float label 提示
- android开发之使用shape来画线,有一些注意点
- C#指定某用户对某文夹件的访问权限
- 无锁模式的Vector
- Linux系统vi模式下显示行号
- js基于谷歌地图API绘制可编辑圆形与多边形
- BSA Network Shell系列-nsh命令
- java 学习必备的软件,持续更新中
- stylus含有的特性
- POJ 1488 - TEX Quotes
- Vue中 export default 和 export 区别
- Appium的工作原理
- linux下php环境的装配以及php storm的链接
- I.MX6 Ar8031 device register hacking