2016-06-04 7 views
1

Mein Ziel ist es, einen Auslöser zu erstellen, die überprüft, ob die Nummer, die Sie versuchen, sich geben NR_RECIBO in der Tabelle ist Doc_cabecalho mit dem Attribut TIPO_DOC = 4Wenn Anweisung innerhalb Auslöser nicht funktioniert SQL (Oracle)

CREATE OR REPLACE TRIGGER ValidaRecibo 
BEFORE INSERT ON Recibo 
FOR EACH ROW 
DECLARE val NUMBER; 
BEGIN 
    SELECT COUNT(*) INTO val 
    FROM Doc_cabecalho 
    WHERE (TIPO_DOC = 4 AND NR_DOCUMENTO = :NEW.NR_RECIBO); 

    IF val = 0 
    THEN (-20502, ' Only from department 4 '); 
    END IF; 
END ValidaRecibo; 

Noch dies wirft die folgende Fehlermeldung:

PLS-00103: Encountered the symbol "," when expecting one of the following:
* & = - + </> at in is mod remainder not rem <> or != or ~= >= <= <> and or like like2 like4 likec as between || member submultiset

Antwort

1

IF val = 0 THEN raise_application_error (-20502, 'Nur von Abteilung 6');

Und Sie sollten zwischen DOC_TIPO und TIPO_DOC entscheiden;)

+0

Oh, vielen Dank Kumpel !! Ich habe stundenlang versucht, dieses Problem zu lösen – Safirah

Verwandte Themen