2016-12-18 7 views
0

nicht sicher, warum im diesen Fehler, keine wirkliche Ahnung von dem, was im mit psql zu tun, aber wenn jemand id schätzen helfen kannORA-24344: Erfolg mit Kompilierungsfehler/Trigger

create or replace trigger gender_check 
before insert or update of gender 
on volunteer 
for each row 
begin 
    if (:new.volunteer.gender != 'M' or :new.volunteer.gender != 'F') 
     then raise_application_error(-20601, 
     'Gender is invalid, please insert M or F'); 
    end if; 
end; 

Antwort

0

Ihr if Zustand sein sollte :

if (:new.gender <> 'M' and :new.gender <> 'F') 

Mit dem or, alle nicht-NULL-Werte wird die Bedingung, weil 'M' <>'F' passieren.

Die wichtige Änderung ist die und und die Entfernung von volunteer, die der Tabellenname scheint.

Ein besserer Weg, dies zu schreiben ist:

if (:new.gender not in ('M', 'F'))