oracle – “其他其他人在做什么?

前端之家收集整理的这篇文章主要介绍了oracle – “其他其他人在做什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
作为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

第一行中的行号指向加注而不是实线号.它可以使跟踪错误更难.

原文链接:https://www.f2er.com/oracle/205593.html

猜你在找的Oracle相关文章