2014-12-07 40 views
0

我有下面的代碼,它會產生一些編譯器錯誤。我已經在網上關注了幾個例子來使用這些聲明和FROM DUAL概念,但不能識別問題。謝謝!觸發器編譯錯誤 - 語句被忽略,缺少值關鍵字,

Error1: SQL statement Ignored (referencing line 9 - "DECLARE") 
Error2: missing VALUE keyword (referencing line 15 - "FROM DUAL;") 


---delete or replace trigger------------------------------ 

CREATE OR REPLACE TRIGGER videoAuditDeleteTrigger 

BEFORE DELETE OR UPDATE 
    ON video 
    FOR EACH ROW 

DECLARE 
    v_username VARCHAR2(20); 

BEGIN 

SELECT USER INTO v_username 
FROM DUAL; 

INSERT INTO videoAudit 
    (videoID 
    ,title 
    ,releaseDate 
    ,category 
    ,username 
    ,datetimestamp); 

VALUES 
    (:OLD.videoID 
    ,:OLD.title 
    ,:OLD.releaseDate 
    ,:OLD.category 
    ,v_username 
    ,SYSDATE); 

END; 
/
+1

不應該有在包含'INSERT INTO' – tvCa 2014-12-07 23:40:10

回答

1

試試這個,你用多餘的分號在INSERT語句

CREATE OR REPLACE TRIGGER videoAuditDeleteTrigger 

BEFORE DELETE OR UPDATE ON video FOR EACH ROW 

DECLARE v_username VARCHAR2(20); 

BEGIN 

SELECT USER INTO v_username FROM DUAL; 

INSERT INTO videoAudit (videoID ,title ,releaseDate ,category ,username ,datetimestamp) 
VALUES (:OLD.videoID ,:OLD.title ,:OLD.releaseDate ,:OLD.category ,v_username ,SYSDATE); 

END; 
+0

固定行結束一個分號。我掃描了40次,沒有看到這種疏漏。謝謝!!!! – kmd 2014-12-07 23:46:49

+0

@kmd。 。 。如果這解決了你的問題,那麼你應該接受答案。 – 2014-12-08 00:07:53

+0

我該如何接受? – kmd 2015-02-09 17:16:09