DROP TRIGGER EPI_BOREHOLE_INI;
CREATE OR REPLACE TRIGGER EPI_BOREHOLE_INI
INSTEAD of Insert ON EPI_BOREHOLE for each row
DECLARE
V_ID number(10);
V_USER varchar2(100);
BEGIN
if (:new.UBHI is null or :new.NAME is null or) then
Raise_Application_Error(-20101, 'Insert failed. The key values of BOREHOLE(UBHI, NAME) cannot be null');
end if;
begin
select BOREHOLE_ID.nextval into V_ID from dual;
SELECT USER INTO V_USER FROM DUAL;
INSERT INTO EPI_BOREHOLE (ID, UBHI, NAME, INSERT_DATE ,INSERT_NAME, UPDATE_DATE,UPDATE_NAME) VALUES (V_ID,:NEW.UBHI, :NEW.NAME, SYSDATE, V_USER, SYSDATE, V_USER);
end;
END;
Antwort
Ich sehe wenig Fehler im Code: Bitte siehe unten:
if (:new.UBHI is null or :new.NAME is null or) then <-- An additional OR written.
es entfernen und versuchen oder eine weitere Bedingung setzen.
ohh ich habe bereits entfernt OR –
ein neues Fenster geöffnet und fragen Sie die Bind-Variablen eingeben –
ORA-00911: ungültiges Zeichen –
Ich sehe kein Problem mit dem Code. Versuchen Sie,
SET DEFINE OFF
sorry sir bt ich diidnt bekommen Sie ....... was mit SET DEFINE OFF –
Gehen Sie zum Befehlsfenster .. SQL> SET DEFINE OFF SQL> - - Löse hier deinen Triggerblock –
Normalerweise ist SET DEFINE OFF für Substitutionsvariablen. Der OP hat nicht daran gedacht zu erwähnen, welches Werkzeug er benutzt, also ist alles möglich. –
Wenn Sie nicht die Mühe haben, zu erklären, WIE das nicht funktioniert, können wir nicht bemüht sein, zu versuchen und ZU SCHÄTZEN, was das Problem sein könnte. –
wenn ich auf "run" klicke ... ein neues Fenster wurde geöffnet und es wurde nach "enter bind variables" gefragt. –
meine Syntax ist korrekt –