触发编译错误 - 语句被忽略,缺少值关键字,

时间:2014-12-07 23:02:35

标签: sql oracle triggers

我有以下代码会产生一些编译器错误。我已经在网上使用了几个例子来使用这些声明和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 个答案:

答案 0 :(得分: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;