【发布时间】:2018-08-28 08:04:12
【问题描述】:
我正在尝试创建一个触发器,该触发器将在更新表 DETAILRENTAL 后更新名为 VIDEO 的表。我正在尝试使用 IF ELSE 条件来满足多种情况。
这是我的代码:
CREATE OR REPLACE TRIGGER TRG_VIDEORENTAL_UP
AFTER UPDATE OF DETAIL_RETURNDATE ON DETAILRENTAL
FOR EACH ROW
BEGIN
IF :NEW.DETAIL_RETURNDATE IS NULL THEN
UPDATE VIDEO
SET VID_STATUS = 'OUT'
WHERE :NEW.VID_NUM = VID_NUM;
ELSEIF
:NEW.DETAIL_RETURNDATE > SYSDATE
UPDATE VIDEO
SET VID_STATUS = 'OUT'
WHERE:NEW.VID_NUM = VID_NUM;
ELSEIF
:NEW.DETAIL_RETURNDATE < SYSDATE OR :NEW.DETAIL_RETURNDATE = SYSDATE
UPDATE VIDEO
SET VID_STATUS = 'IN'
WHERE :NEW.VID_NUM = VID_NUM;
ELSE
:NEW.DETAIL_RETURNDATE = '01/01/01'
UPDATE VIDEO
SET VID_STATUS = 'LOST'
WHERE :NEW.VID_NUM = VID_NUM ;
END IF;
end;
这是我运行此代码时收到的错误消息:
第 8 行出现错误:PLS-00103:在预期以下情况之一时遇到符号“”::=。 (@%;
我已经测试了每个条件,以确保每个语句单独工作,但似乎不能一起工作。
【问题讨论】:
标签: sql oracle triggers conditional