意外的标记\“CREATE TRIGGER(An unexpected token \"CREATE

2019-06-18 23:46发布

CREATE TRIGGER TRG_EFMREFNO 
   BEFORE 
   INSERT ON FEEDBACK_CASE_TB 
   FOR EACH ROW 
   BEGIN 
   SELECT SEQ_EFMREFNO.NEXTVAL INTO:NEW.EFMREFNO FROM DUAL;
   END;

please help me it's give errors

An unexpected token "CREATE TRIGGER TRG_EFMREFNO
BEFOR" was found following "BEGIN-OF-STATEMENT". Expected tokens may include: "<revoke>".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.12.79

An unexpected token "END-OF-STATEMENT" was found following "END". Expected tokens may include: "JOIN <joined_table>".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.12.79

Please give the solution for that errors

Answer 1:

你有两件事情会在这里 -

1)当 “;” 性格是SQL语句的一部分,有必要使用不同的字符来终止语句。 我通常使用“@”。 说句“DB2”命令,你选择一个不同的角色,使用

db2 -td@

或者,如果你想从文件中读取

db2 -td@ -f <somefile>

2)在触发更新新行的正确方法是设置一个别名为新行,并使用一套条款:

CREATE TRIGGER TRG_EFMREFNO 
   BEFORE 
   INSERT ON FEEDBACK_CASE_TB 
   REFERENCING NEW AS N
   FOR EACH ROW 
   BEGIN 
       SET N.EFMREFNO = SEQ_EFMREFNO.NEXTVAL;
   END
@

可能有其他的方式与在创建表的语句,将完成同样的事情默认子句中使用序列:



文章来源: An unexpected token \"CREATE TRIGGER
标签: db2