2016-07-18 8 views
-1
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; 
+2

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. –

+0

wenn ich auf "run" klicke ... ein neues Fenster wurde geöffnet und es wurde nach "enter bind variables" gefragt. –

+0

meine Syntax ist korrekt –

Antwort

0

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.

+0

ohh ich habe bereits entfernt OR –

+0

ein neues Fenster geöffnet und fragen Sie die Bind-Variablen eingeben –

+0

ORA-00911: ungültiges Zeichen –

0

Ich sehe kein Problem mit dem Code. Versuchen Sie,

SET DEFINE OFF

+0

sorry sir bt ich diidnt bekommen Sie ....... was mit SET DEFINE OFF –

+0

Gehen Sie zum Befehlsfenster .. SQL> SET DEFINE OFF SQL> - - Löse hier deinen Triggerblock –

+0

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. –