2013-02-22 144 views
-3
CREATE OR REPLACE TRIGGER OBU 
BEFORE INSERT ON BOOKING 
REFERENCING NEW AS n 
    FOR EACH ROW 
BEGIN 
INSERT INTO BOOKINGLOG VALUES(n.HOTELID,n.ROOMNO,n.GUESTID,n.STARTDATE,n.ENDDATE,'SYSTEM',SYSDATE); 
ENG; 
. 
/

当我尝试执行它即时收到此错误:Oracle之前INSERT触发器

LINE/COL ERROR 
-------- ----------------------------------------------------------------- 
3/4  PLS-00103: Encountered the symbol "end-of-file" when expecting 
     one of the following: 
     (begin case declare end exception exit for goto if loop mod 
     null pragma raise return select update while with 
     <an identifier> <a double-quoted delimited-identifier> 
     <a bind variable> << continue close current delete fetch lock 
     insert open rollback savepoint set sql execute commit forall 
     merge pipe purge 
+1

@DCookie - 谢谢你 – LittleBobbyTables 2013-02-22 01:19:59

回答

3

你可能想改变ENG;结束;

并且,失去与/之间的时间间隔。

要提升注释以回答:INSERT语句中引用表值的值需要以冒号(:)作为前缀。所以,n.HOTELID应该是:n.HOTELID等

+0

哦,我现在不好即时得到触发OBU这个错误的错误: LINE/COL ERROR ------! - ------------------------------------------------ ----------------- 2/1 PL/SQL:SQL语句被忽略 2/74 PL/SQL:ORA-00984:列不允许在这里 – 2013-02-22 01:27:30

+0

将您的值引用前缀“n”用冒号(:),例如:n.HOTELID – DCookie 2013-02-22 01:30:14

+0

非常感谢:) – 2013-02-22 01:38:24