Oracle when other,Oracle PL/SQL之EXCEPTION -- WHEN OTHERS THEN

在处理EXCEPTION时应特别注意WHEN OTHERS THEN的使用,因为WHEN OTHERS THEN会吃掉所有的EXCEPTION。如果在WHEN OTHERS THEN后不抛出任何信息,即:WHEN OTHERS THEN NULL; 这可能会极大地增加以后程序排错的难度,因为即使出错了,也没有任何提示。所以我们需要特别留意WHEN OTHERS THEN,除了一个一个的手工查找外,还可以采用如下命令以便在编译时就进行检查:

ALTER SESSION SET plsql_warnings = 'enable:all';

测试样例:

Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.7.0

Connected as xxpo

SQL> set serveroutput on

SQL> ALTER SESSION SET plsql_warnings = 'enable:all';

Session altered

SQL> @"D:/test/xxpotest.plb";

Package body created

SQL> sho err;

Errors for PACKAGE BODY XXPO.XXPO_TEST_PKG:

LINE/COL ERROR

-------- --------------------------------------------------------------------------------------------------

88/13 PLW-05004: identifier LOG is also declared in STANDARD or is a SQL builtin

285/5 PLW-07203: parameter 'X_MESSAGE' may benefit from use of the NOCOPY compiler hint

504/5 PLW-07203: parameter 'X_MESSAGE' may benefit from use of the NOCOPY compiler hint

569/5 PLW-07203: parameter 'X_MESSAGE' may benefit from use of the NOCOPY compiler hint

1008/14 PLW-07204: conversion away from column type may result in sub-optimal query plan

1027/14 PLW-07204: conversion away from column type may result in sub-optimal query plan

2027/12 PLW-07204: conversion away from column type may result in sub-optimal query plan

1667/14 PLW-06009: procedure "SET_STG_TBL" OTHERS handler does not end in RAISE or RAISE_APPLICATION_ERROR

1716/14 PLW-06009: procedure "SET_STG_TBL" OTHERS handler does not end in RAISE or RAISE_APPLICATION_ERROR

1773/14 PLW-06009: procedure "SET_STG_TBL" OTHERS handler does not end in RAISE or RAISE_APPLICATION_ERROR

1755/14 PLW-06009: procedure "SET_STG_TBL" OTHERS handler does not end in RAISE or RAISE_APPLICATION_ERROR

1737/14 PLW-06009: procedure "SET_STG_TBL" OTHERS handler does not end in RAISE or RAISE_APPLICATION_ERROR

1789/10 PLW-06009: procedure "SET_STG_TBL" OTHERS handler does not end in RAISE or RAISE_APPLICATION_ERROR

2046/10 PLW-06009: procedure "MAIN" OTHERS handler does not end in RAISE or RAISE_APPLICATION_ERROR

1910/11 PLW-06002: Unreachable code

SQL>

原文链接:

http://blog.csdn.net/t0nsha/article/details/6444343

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值