问一个有关ORACLE触发器的菜鸟问题!

lipingcool 2001-01-19 03:32:00
我现在在A表上有一个after update for each row的trigger,怎么用CURSOR取出A表中新更新的记录(可能有多行),处理后进行其他SQL操作。
我的这段代码:
CURSOR cu_act IS SELECT msg_dt,bp_corp FROM A;
有问题,系统报错:
ORA-04091: 表 A 发生了变化,触发器/函数不能读

我现在想要问的是:怎么用CURSOR取出A表中新更新的记录(可能有多行)?是我上面这样写的吗?
...全文
108 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
michaelzhang 2001-01-20
  • 打赏
  • 举报
回复
ORACLE不允许对正在更新的表进行操作。
你可以去掉FOR EACH ROW。
但我觉得你的方法不是很好,还不如用临时表。
lipingcool 2001-01-20
  • 打赏
  • 举报
回复
我发现自己的考虑错了,既然是行级触发器,那对每一行的操作都会生效,就没有必要要用游标了。
所以,我基本上解决了问题。
cheat 2001-01-19
  • 打赏
  • 举报
回复
你的表结构是不是变动了?重新编译一次试试.
lipingcool 2001-01-19
  • 打赏
  • 举报
回复
怎么没有人帮帮我?:(

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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