[英]Oracle Db 11g trigger syntax
我尝试在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 ... long double ref char time timestamp interval date date binary national character nchar编译失败,第3行(18:23:50)PLS-00103:遇到以下情况之一时遇到符号“ BEGIN”:不为nan无限悬空的空悬挂编译失败,第5行(18:23:50)PLS-00103:遇到以下其中一项时遇到符号“ END”: ,; 返回返回
因此,一切都是问题,但是什么呢? 我在数据库中输入的列可以,但是仍然出现此错误?
将“ FOR EACH ROW”替换为:
REFERENCING OLD AS old NEW AS new FOR EACH ROW
我在11g中有一些类似的触发器,它们遵循相同的语法。
编辑:在开始之前,您可能还需要声明。 如果不声明任何变量,我可以这样做:
DECLARE
-- no variables
BEGIN
--Code
编辑2:
否则示例示例中的语法是正确的。 这些错误似乎确实表明缺少(或多余)引号,逗号或分号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.