处理oracle中的触发器中的异常

时间:2016-10-31 05:22:47

标签: oracle triggers

我是oracle中的新手,我希望在(expAnnee * 100 + expMois)< YYMM(SYSTATE的YYMM)用于检查信用卡的有效性。

expAnnee和expMois是数字。

我收到以下错误:

PLS-00201: identifier 'NEW.EXPANNEE' must be declared

但这是一个触发器,在我的" InfoCredit" table expAnnee和expMois确实存在。

CREATE OR REPLACE TRIGGER VALID_CARD
BEFORE INSERT ON INFOCREDIT
FOR EACH ROW
DECLARE
    ex_expired EXCEPTION;
    testdate NUMBER;
BEGIN
    SELECT to_number(to_char(to_date(SYSDATE, 'DD-MM-YYYY'), 'YYMM'))
    INTO testdate
    FROM Dual;

    if ((new.expAnnee*100+new.expMois) < testdate)
    Then RAISE ex_expired;
    END IF;

EXCEPTION

    WHEN ex_expired
    THEN DBMS_OUTPUT.PUT_LINE('CARD EXPIRED');

END;
/

1 个答案:

答案 0 :(得分:0)

new称为:new

例如

if ((:new.expAnnee*100+:new.expMois) < testdate)