我試圖得到一個觸發器來更新reportnum和後綴,並與Coldfusion ORM兼容。要使用單個鍵爲表格工作,我已經使用了下面示例的第一部分。在這個表中,如果給出報告編號,我需要它將後綴更新爲下一個值。Oracle PL/SQL觸發器錯誤
CREATE TABLE tb1 (reportnum NUMBER, suffix NUMBER);
CREATE SEQUENCE seq1 START WITH 1;
CREATE OR REPLACE TRIGGER "TRG1_TB1" BEFORE INSERT ON
tb1 FOR EACH ROW
BEGIN
IF :NEW.reportnum IS NULL THEN
SELECT seq1.NEXTVAL INTO :NEW.reportnum FROM dual;
ELSIF :NEW.REPORTNUM = '' THEN
SELECT seq1.NEXTVAL INTO :NEW.reportnum FROM dual;
ELSIF :NEW.suffix = '' THEN
SELECT MAX(suffix)+1 INTO :NEW.suffix FROM tb1 WHERE reportnum = :NEW.reportnum
ELSIF :NEW.suffix = NULL THEN
SELECT MAX(suffix)+1 INTO :NEW.suffix FROM tb1 WHERE reportnum = :NEW.reportnum
END IF;
END;
我得到的錯誤是他們的命令沒有正確結束。
'REPORTNUM'和'SUFFIX'是數字。不會將它們與「'總是評估爲假?如果是這樣,你將不需要'COALESCE'。 – 2013-03-26 21:06:59
這很簡單,我應該看到。感謝合併我認爲那裏可以簡化這個陳述。 – Aaron 2013-03-26 21:08:16
@EdGibbs,你是對的,我沒有注意到數據類型,我看到OP正在檢查''並假定它們是字符類型。 – 2013-03-26 21:09:36