Không có gì sai với cú pháp của trình kích hoạt của bạn. Tôi có thể chạy nó trong môi trường SQL * Plus (vani) của mình:
SQL> CREATE OR REPLACE TRIGGER test_trigger
2 BEFORE INSERT ON test
3 REFERENCING NEW AS NEW FOR EACH ROW
4 BEGIN
5 SELECT test_sequence.nextval INTO :NEW.ID FROM dual;
6 END;
7 /
Trigger created.
SQL>
Và lo! trình kích hoạt hoạt động:
SQL> insert into test (col1) values ('Simples!')
2 /
1 row created.
SQL> select * from test
2 /
ID COL1
---------- ------------
1 Simples!
SQL>
Tất cả những gì tôi có thể nghĩ là bạn có một số dòng trống trong mã mà bạn đang nhập. Nếu đây là tình huống, bạn có thể ghi đè hành vi mặc định bằng lệnh SQL * Plus này:
SQL> set sqlblanklines on