繁体   English   中英

Oracle Db 11g触发器语法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM