2014-08-27 95 views
0

我一直堅持這個錯誤了一段時間,你能幫助我嗎? 這就是我試圖運行的代碼:第9行錯誤:甲骨文的聲明忽略錯誤

CREATE OR REPLACE TRIGGER set_gal_trig 
     BEFORE INSERT ON MEDIA_CONTENUTI 
     FOR EACH ROW 
DECLARE 
     tipo_coll VARCHAR2(15); 
     user2 VARCHAR2(30); 
     user1 VARCHAR2(30); 
BEGIN 
    SELECT C.Tipo INTO tipo_coll FROM Collezione C WHERE :new.Cod_Collezione =  C.Cod_Collezione; 
    SELECT C.Nome_Utente INTO user1 FROM Collezione C WHERE :new.Cod_Collezione = C.Cod_Collezione; 
    SELECT M.Nome_Utente INTO user2 FROM Media M WHERE :new.Cod_Media = M.Cod_Media; 
    IF (tipo = 'SET' AND user1 <> user2) 
     THEN 
     Raise_application_error(-20075, 'Inserimento non valido, un SET puo contenere solo media appartenenti al proprietario'); 
    ELSIF (tipo = 'GALLERIA' AND user1= user2) 
     THEN 
     Raise_application_error(-20076, 'Inserimento non valido, una GALLERIA puo contenere solo media non appartenenti al proprietario'); 
    END IF; 
END; 

的錯誤是PL/SQL:語句被忽略。謝謝您的幫助!

+0

這是唯一的錯誤?你通常會得到堆棧中的幾個;將它們全部添加會有所幫助 – 2014-08-27 10:48:47

回答

2

在不完整的錯誤堆棧,明顯的錯誤是在第9行作爲頂層錯誤消息指出(這裏行號只在聲明,而不是前三個非PL /的PL/SQL部分計數SQL行):

IF (tipo = 'SET' AND user1 <> user2) 

你沒有一個叫tipo變量,所以這應該是:

IF (tipo_coll = 'SET' AND user1 <> user2) 
    ... 
ELSIF (tipo_coll = 'GALLERIA' AND user1= user2)