आपके ट्रिगर के सिंटैक्स में कुछ भी गलत नहीं है। मैं इसे अपने (वेनिला) एसक्यूएल*प्लस वातावरण में चला सकता हूं:
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>
और लो! ट्रिगर काम करता है:
SQL> insert into test (col1) values ('Simples!')
2 /
1 row created.
SQL> select * from test
2 /
ID COL1
---------- ------------
1 Simples!
SQL>
मैं बस इतना सोच सकता हूं कि आप जो कोड टाइप कर रहे हैं उसमें कुछ खाली लाइनें हैं। यदि यह स्थिति है तो आप इस SQL*Plus कमांड के साथ डिफ़ॉल्ट व्यवहार को ओवरराइड कर सकते हैं:
SQL> set sqlblanklines on