Problem bei trigger erstellung
-
Hallo Leute,
bin ziemlich neu bei der Sache Datenbank erstellung...
ich wollte zum Probe eine aufgabe machen..
Habe mir TOAD heruntergeladen
in ORACLE alle einstelungen usw gemacht
Tabellen hab ich auch erstellt mit primary schlüsseln, foreign schlüsseln..ich kann aber irgendwie kein trigger erstellen
hier ist mein trigger codeCREATE OR REPLACE TRIGGER HR.TRIGGER_LAGER BEFORE INSERT OR UPDATE ON HR.GELIEFERT REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE tmpVar NUMBER; BEGIN tmpVar := 0; tmpVar := lieferungpruefen(:NEW.artikelnr); tmpVar := tmpVar - :NEW.anzhal; IF tmpVar < 0 THEN RAISE_APPLICATION_ERROR(-7937, 'Nicht genug auf Lager!'); ELSE tmpVar := leferungumbuchen(:NEW.artikelnr, :NEW.anzhal); END IF; END;
fehler code ist es das hier:
**5/13 PLS-00201: Bezeichner 'LIEFERUNGPRUEFEN' muss deklariert werden
5/3 PL/SQL: Statement ignored
11/16 PLS-00201: Bezeichner 'LEFERUNGUMBUCHEN' muss deklariert werden
11/6 PL/SQL: Statement ignored
**wie kann ich sie deklarieren
-
Na wenn du Funktionen verwendest dann sollten die auch vorhanden sein.
Sagt doch schon die Fehlermeldung.
-
Die Funktionen sind in deinem Scope nicht sichtbar, also sind sie entweder nicht vorhanden oder dir fehlen die Rechte. Vllt. fehlt auch nur die Angabe das Schemas bzw. Packages, in dem die Funktionen liegen.
Grüße
don_basto
-
@don_basto: wolltest Du nur irgendetwas schreiben oder unterscheidet sich deine Antwort von meiner.
-
Hi Unix-Tom,
ich wollte darauf hinweisen, dass 'nicht vorhanden' nicht heißt, dass sie nicht da ist. Ich bin schon mehrmals drüber gestolpert, dass ich eine Funktion nicht finde, obwohl ich sie kurz vorher eingespielt habe. Deswegen die Bemerkung zu den Rechten.
Grüße
don_bastoPS: Jippie, schon wieder ein Posting
-
Unix-Tom schrieb:
Na wenn du Funktionen verwendest dann sollten die auch vorhanden sein.
Sagt doch schon die Fehlermeldung.da hast du recht gehabt ^^
-
MuMi schrieb:
Hallo Leute,
bin ziemlich neu bei der Sache Datenbank erstellung...
ich wollte zum Probe eine aufgabe machen..
Habe mir TOAD heruntergeladen
in ORACLE alle einstelungen usw gemacht
Tabellen hab ich auch erstellt mit primary schlüsseln, foreign schlüsseln..ich kann aber irgendwie kein trigger erstellen
hier ist mein trigger codeCREATE OR REPLACE TRIGGER HR.TRIGGER_LAGER BEFORE INSERT OR UPDATE ON HR.GELIEFERT REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE tmpVar NUMBER; BEGIN tmpVar := 0; tmpVar := lieferungpruefen(:NEW.artikelnr); tmpVar := tmpVar - :NEW.anzhal; IF tmpVar < 0 THEN RAISE_APPLICATION_ERROR(-7937, 'Nicht genug auf Lager!'); ELSE tmpVar := leferungumbuchen(:NEW.artikelnr, :NEW.anzhal); END IF; END;
fehler code ist es das hier:
**5/13 PLS-00201: Bezeichner 'LIEFERUNGPRUEFEN' muss deklariert werden
5/3 PL/SQL: Statement ignored
11/16 PLS-00201: Bezeichner 'LEFERUNGUMBUCHEN' muss deklariert werden
11/6 PL/SQL: Statement ignored
**wie kann ich sie deklarieren