请教:我的触发器为何无效?

sinfee 2004-12-09 09:18:52
我想在一个表其中的行被删除或更新时把原来的列内容复制到另一个类似创建的表中,写了以下的触发器,可是老是显示状态无效,请高手指点,谢谢!
CREATE OR REPLACE TRIGGER "MYDB"."BAKMATCODETRIGGER" BEFORE
DELETE OR
UPDATE OF "MATCODE", "MATNAME", "MODITIME", "MODIUSER"
ON "MYDB"."MATCODE"
FOR EACH ROW
BEGIN
insert into "MYDB"."matcodebak"
(matcode,matname,moditime,modiuser)
values
(:old.matcode,:old.matname,:old.moditime,:old.modiuser)
end
...全文
348 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bighunt 2004-12-09
  • 打赏
  • 举报
回复
matcodebak这个表名称是否应该大写,还有检查字段名是否有错误
sinfee 2004-12-09
  • 打赏
  • 举报
回复
我点击编译,什么都错误提示都没有,是不是创建完后还要设置个什么地方?
已经点击了启用,但底下的状态还是显示:Invalid?
CodeMagic 2004-12-09
  • 打赏
  • 举报
回复
1 end 改为 end;

2 (:old.matcode,:old.matname,:old.moditime,:old.modiuser)
改为:
(:old.matcode,:old.matname,:old.moditime,:old.modiuser);

3 "MYDB" 中的符号 " 可以去掉
bzszp 2004-12-09
  • 打赏
  • 举报
回复
重新编译一下,看是否有问题。
sinfee 2004-12-09
  • 打赏
  • 举报
回复
感谢大家,没想到oracle如此变态,连错误提示都没有,只说是Invalid,
表名大小写也要不能错,语法错误也不提示。

结帐!

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧