SQL-Trigger WHEN-Klausel Kompilierungsfehler

Ich bin versucht, einen trigger erstellen, der prüft, ob das eingegebene Datum ist in Reichweite, wenn die Prog_Type eingetragen ist 'FILM' jedoch erhalte ich einen Kompilierungsfehler, jedes mal, wenn die Anweisung ausgeführt wird.

Den Fehler code ist 00103, "Begegnete ; wenn man von Ihnen erwartet ....."

dann eine Liste von vielen Satzzeichen. Von der Erforschung des Problems, die ich gesehen habe Verweise auf eine DECLARE Aussage, jedoch bin ich nicht sicher, ich würde erklären müssen, wenn die Prog_Type erstellt, in der Program_Table, und ich habe Referenz, die Tabelle im trigger.

CREATE OR REPLACE TRIGGER Prog_Made_Limits
BEFORE INSERT OR UPDATE OF Prog_Made ON Program_Table
 FOR EACH ROW
  WHEN (NEW.Prog_Type <> 'FILM')
BEGIN
  IF (:new.Prog_Made < date '1864-12-31' or 
      :new.Prog_Made > sysdate );
  THEN
    RAISE_APPLICATION_ERROR( -20001, 'Program Made date must be later than Dec 31st 1864, and earlier than today, if FILM is inserted');
  END IF;
END Prog_Made_Limits;
/
  • Was passiert, wenn Sie entfernen die ; zwischen ) und THEN?
  • Erstaunlich, die Fehlermeldung sagt Ihnen genau, was das problem ist...
Schreibe einen Kommentar