2014-12-07 2 views
0

У меня есть следующий код, который создает несколько ошибок компилятора. Я использовал несколько примеров в Интернете, чтобы использовать эти понятия declare и 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

Там не должно быть точка с запятой в конце строки 'ВСТАВИТЬ INTO' – tvCa

ответ

1

Попробуйте это, вы использовали дополнительную точку с запятой в заявлении вставки

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

Fixed. Я просмотрел его 40 раз и не видел этого недосмотра. Благодаря!!!! – kmd

+0

@kmd. , , Если это устранит вашу проблему, вы должны принять ответ. –

+0

Как я могу принять? – kmd

Смежные вопросы