前端之家收集整理的这篇文章主要介绍了
oracle – “其他其他人在做什么?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
301_0@
作为PL /
sql中的新手,我一直在复制和粘贴以下触发器:
CREATE OR REPLACE TRIGGER FOO_TRG1
BEFORE INSERT
ON FOO
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF :NEW.FOO_ID IS NULL THEN
SELECT FOO_SEQ1.NEXTVAL INTO :NEW.FOO_ID FROM DUAL;
END IF;
EXCEPTION
WHEN OTHERS THEN RAISE;
END FOO_TRG1;
/
ALTER TRIGGER FOO_TRG1 ENABLE;
我怀疑包含的异常处理代码根本没有做任何事情,可以简单地删除,因为如果出现了问题,我会收到一条错误消息.我对吗?
(我猜这样的代码是进一步编辑之前的代码的结果.)
是的,这个异常什么也不做,但是提出相同的
错误.它也用于
屏蔽错误的真实行号.如果我是你,我会
删除
例如:
sql> declare
2 v number;
3 begin
4 select 1 into v from dual;
5 select 'a' into v from dual;
6 exception
7 when others
8 then
9 raise;
10 end;
11 /
declare
*
ERROR at line 1:
ORA-06502: PL/sql: numeric or value error: character to number conversion error
ORA-06512: at line 9
VS:
sql> declare
2 v number;
3 begin
4 select 1 into v from dual;
5 select 'a' into v from dual;
6 end;
7 /
declare
*
ERROR at line 1:
ORA-06502: PL/sql: numeric or value error: character to number conversion error
ORA-06512: at line 5
第一行中的行号指向加注而不是实线号.它可以使跟踪错误更难.