注册
达梦数据库-错误码-[-2007]-分析处理
专栏/技术分享/ 文章详情 /

达梦数据库-错误码-[-2007]-分析处理

PYZ 2024/07/19 1464 1 0
摘要

错误码:-2007
错误内容:创建触发器时报"语法分析出错"

原因:

触发器语法问题,REFERENCING 子句 指明相关名称可以在元组级触发器的触发器体和WHEN子句中利用相关名称来访问当前行的新值或旧值,缺省的相关名称为OLD和NEW;
Oracle触发器中"REFERENCING NEW AS NEW OLD AS OLD"没有语法顺序;DM目前只能"REFERENCING OLD AS OLD NEW AS NEW"

示例:

--创建表 create table test as select * from dba_objects; --创建触发器报错 CREATE OR REPLACE TRIGGER TRG_TEST BEFORE UPDATE ON TEST REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW BEGIN dbms_output.put_line('UPDATE TIME :'||sysdate); END TRG_TEST; -2007: 第 4 行, 第 1 列[FOR]附近出现错误: 语法分析出错

问题处理:

DM采用OLD AS OLD NEW AS NEW的语法可以创建成功

CREATE OR REPLACE TRIGGER TRG_TEST AFTER UPDATE ON TEST REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW BEGIN dbms_output.put_line('UPDATE TIME :'||sysdate); END TRG_TEST; / 执行成功, 执行耗时154毫秒. 执行号:600 影响了0条记录
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服