我尝试在Oracle DB 11g中创建触发器,但没有成功。
CREATE OR REPLACE TRIGGER mytable_JOBUPD
AFTER UPDATE OF jedan, trip ON mytable
FOR EACH ROW
BEGIN
ADD_mytable_JOB ( :old.jedan, :old.trip, 'update', sysdate);
END mytable_JOBUPD;
发送此错误:
Compilation failed,line 1 (18:23:50)
PLS-00103:遇到符号","当期待以下之一时:out ... long double ref char time timestamp interval date二进制国家字符nchar编译失败,第3行(18:23:50) PLS-00103:遇到了符号" BEGIN"当期待下列之一:没有空的无限悬空空编译失败,第5行(18:23:50) PLS-00103:遇到符号" END"当期待以下之一:,;返回
所以永远是问题,但是什么?我在数据库中键入的列是可以的,但我仍然遇到此错误?
答案 0 :(得分:0)
将“FOR EACH ROW”改为:
REFERENCING OLD AS old NEW AS new FOR EACH ROW
我在11g中有一些类似的触发器遵循相同的语法。
编辑:在开始之前,您可能还需要声明。如果没有声明任何变量,我这样做:
DECLARE
-- no variables
BEGIN
--Code
编辑2:
示例帖子中的语法是正确的。这些错误似乎表明缺少(或额外)引号,逗号或分号。