Creating an Oracle Sequence Trigger

I am trying to create a seuqunce trigger, but an error occurs when I run the trigger to create sql in SQL Developer. I do not understand, in fact, everything looks good. I share the details below, please help me, thanks.

My sql trigger:

CREATE OR REPLACE TRIGGER "TRIGGER1" BEFORE INSERT ON ACCOUNTS FOR EACH ROW WHEN (new."ID" IS NULL) BEGIN SELECT ACCOUNTS_SEQ.NEXTVAL INTO :new."ID" FROM dual; END; / 

And the error description:

 Error starting at line : 5 in command - CREATE OR REPLACE TRIGGER "TRIGGER1" BEFORE INSERT ON ACCOUNTS FOR EACH ROW WHEN (new."ID" IS NULL) BEGIN SELECT ACCOUNTS_SEQ.NEXTVAL INTO :new."ID" FROM dual Error report - SQL Command: trΔ±gger "TRIGGER1" Failed: Warning: completed with warning Error starting at line : 12 in command - END Error report - Unknown Command 
+6
source share
2 answers

Try the following:

 CREATE OR REPLACE TRIGGER TRIGGER1 BEFORE INSERT ON ACCOUNTS FOR EACH ROW WHEN (new.ID IS NULL) BEGIN SELECT ACCOUNTS_SEQ.NEXTVAL INTO :new.ID FROM dual; END; / 

Your sequence should look like this

 CREATE OR REPLACE SEQUENCE ACCOUNT_SEQ START WITH 1 INCREMENT BY 1; 

Hope this helps.

+10
source
 CREATE OR REPLACE TRIGGER TRIGGER1 BEFORE INSERT ON ACCOUNTS FOR EACH ROW BEGIN IF :new.ID IS NULL THEN SELECT ACCOUNTS_SEQ.NEXTVAL INTO :new.ID FROM dual; END IF; END; 
0
source

Source: https://habr.com/ru/post/974810/


All Articles