Oracle Db 11g触发器语法
本文关键字:语法 触发器 11g Db Oracle | 更新日期: 2023-09-27 18:01:16
我尝试在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:遇到符号","时,期望下列之一:in out…时间戳间隔日期二进制国家字符编译失败,第3行(18:23:50)PLS-00103:当期望下列情况之一时遇到符号"BEGIN": not null of nan infinite悬空编译失败,第5行(18:23:50)pl -00103:当期望下列操作之一时,遇到了符号"END":,;返回返回
所以一切都是问题,但什么?我的列类型在数据库是好的,但我仍然得到这个错误?
将"FOR EACH ROW"替换为:
REFERENCING OLD AS old NEW AS new FOR EACH ROW
我在11g中有几个类似的触发器,它们遵循相同的语法。
编辑:你可能还需要在那之后,在开始之前声明。如果没有声明任何变量,我这样做:
DECLARE
-- no variables
BEGIN
--Code
编辑2:示例文章中的语法在其他方面是正确的。这些错误似乎表明缺少(或多了)引号、逗号或分号。