oracle怎么获取exception信息

u010640458 2013-07-02 06:02:37
之前项目写了个存储过程,对异常的处理很粗略,现在出了问题,想查看是不是这个异常出了问题,不知道oracle有没有自动记录异常到日志文件,如果有,怎么获取。

EXCEPTION
WHEN OTHERS THEN
STATE:=0;
ROLLBACK;


...全文
349 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
linwaterbin 2013-07-03
1)要在声明部分捕获还是在异常处理部分? 2)WHEN OTHERS THEN 这种方法来处理异常不粗糙才怪
回复
hh7yx 2013-07-03
引用 9 楼 u010640458 的回复:
[quote=引用 8 楼 u010412956 的回复:] [quote=引用 7 楼 u010640458 的回复:] [quote=引用 5 楼 u010412956 的回复:] [quote=引用 4 楼 u010640458 的回复:] [quote=引用 2 楼 sych888 的回复:] sqlcode函数用来返回pl/sql执行内部异常代码。 sqlerrm函数返回指定错误代码的错误信息
我现在存储过程执行已经出了异常,我想知道出的问题在哪里,还可以查出来错误信息吗?[/quote] 2个办法: 1。单步调试 2。每段小代码前面弄个变量标志,代表执行到这里了,exception里面打印出来,就可以大概判断哪里出错[/quote]就是说我之前已经发生的异常已经查不到了吗?因为我这个存储过程已经用到了生产环境。[/quote] 那肯定查不到啊,你又没建日志表自己保存起来。。 [/quote]如果用了 dbms_output.put_line(sqlerrm);怎么能查出这些信息。不好意思,数据库方面只是新手[/quote] 我开始认为你只是想看下本次出错的信息。。。所以这么写。 你的要求满足不了。
回复
u010640458 2013-07-03
引用 8 楼 u010412956 的回复:
[quote=引用 7 楼 u010640458 的回复:] [quote=引用 5 楼 u010412956 的回复:] [quote=引用 4 楼 u010640458 的回复:] [quote=引用 2 楼 sych888 的回复:] sqlcode函数用来返回pl/sql执行内部异常代码。 sqlerrm函数返回指定错误代码的错误信息
我现在存储过程执行已经出了异常,我想知道出的问题在哪里,还可以查出来错误信息吗?[/quote] 2个办法: 1。单步调试 2。每段小代码前面弄个变量标志,代表执行到这里了,exception里面打印出来,就可以大概判断哪里出错[/quote]就是说我之前已经发生的异常已经查不到了吗?因为我这个存储过程已经用到了生产环境。[/quote] 那肯定查不到啊,你又没建日志表自己保存起来。。 [/quote]如果用了 dbms_output.put_line(sqlerrm);怎么能查出这些信息。不好意思,数据库方面只是新手
回复
hh7yx 2013-07-03
引用 7 楼 u010640458 的回复:
[quote=引用 5 楼 u010412956 的回复:] [quote=引用 4 楼 u010640458 的回复:] [quote=引用 2 楼 sych888 的回复:] sqlcode函数用来返回pl/sql执行内部异常代码。 sqlerrm函数返回指定错误代码的错误信息
我现在存储过程执行已经出了异常,我想知道出的问题在哪里,还可以查出来错误信息吗?[/quote] 2个办法: 1。单步调试 2。每段小代码前面弄个变量标志,代表执行到这里了,exception里面打印出来,就可以大概判断哪里出错[/quote]就是说我之前已经发生的异常已经查不到了吗?因为我这个存储过程已经用到了生产环境。[/quote] 那肯定查不到啊,你又没建日志表自己保存起来。。
回复
u010640458 2013-07-03
引用 5 楼 u010412956 的回复:
[quote=引用 4 楼 u010640458 的回复:] [quote=引用 2 楼 sych888 的回复:] sqlcode函数用来返回pl/sql执行内部异常代码。 sqlerrm函数返回指定错误代码的错误信息
我现在存储过程执行已经出了异常,我想知道出的问题在哪里,还可以查出来错误信息吗?[/quote] 2个办法: 1。单步调试 2。每段小代码前面弄个变量标志,代表执行到这里了,exception里面打印出来,就可以大概判断哪里出错[/quote]就是说我之前已经发生的异常已经查不到了吗?因为我这个存储过程已经用到了生产环境。
回复
sych888 2013-07-03
引用 4 楼 u010640458 的回复:
[quote=引用 2 楼 sych888 的回复:] sqlcode函数用来返回pl/sql执行内部异常代码。 sqlerrm函数返回指定错误代码的错误信息
我现在存储过程执行已经出了异常,我想知道出的问题在哪里,还可以查出来错误信息吗?[/quote] 在PL DEV里面单步调试一下,可以看到出异常的地方,和抛出的异常信息
回复
hh7yx 2013-07-03
引用 4 楼 u010640458 的回复:
[quote=引用 2 楼 sych888 的回复:] sqlcode函数用来返回pl/sql执行内部异常代码。 sqlerrm函数返回指定错误代码的错误信息
我现在存储过程执行已经出了异常,我想知道出的问题在哪里,还可以查出来错误信息吗?[/quote] 2个办法: 1。单步调试 2。每段小代码前面弄个变量标志,代表执行到这里了,exception里面打印出来,就可以大概判断哪里出错
回复
u010640458 2013-07-03
引用 2 楼 sych888 的回复:
sqlcode函数用来返回pl/sql执行内部异常代码。 sqlerrm函数返回指定错误代码的错误信息
我现在存储过程执行已经出了异常,我想知道出的问题在哪里,还可以查出来错误信息吗?
回复
Wentasy 2013-07-02
引用 2 楼 sych888 的回复:
sqlcode函数用来返回pl/sql执行内部异常代码。 sqlerrm函数返回指定错误代码的错误信息
回复
sych888 2013-07-02
sqlcode函数用来返回pl/sql执行内部异常代码。 sqlerrm函数返回指定错误代码的错误信息
回复
hh7yx 2013-07-02
EXCEPTION WHEN OTHERS THEN dbms_output.put_line(sqlerrm); STATE:=0; ROLLBACK;
回复
相关推荐
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2013-07-02 06:02
社区公告
暂无公告