在线等,触发器不能操作它本身的表?

tjm1 2005-01-11 11:01:59
CREATE OR REPLACE TRIGGER tri_del_depre
before delete
on dev_depre
for each row

declare
ls_max_month varchar2(6);

begin
select max(depre_mon) into ls_max_month from dev_depre;
end;

执行后报错:触发器/函数不能读
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ORARichard 2005-01-11
  • 打赏
  • 举报
回复
for each row 表示行级触发,在你delete记录时,表在行上会发生变化,这时取和行相关的数据时是不正确的。也是ORACLE中不允许的
GerryYang 2005-01-11
  • 打赏
  • 举报
回复
去掉for each row
试试
tjm1 2005-01-11
  • 打赏
  • 举报
回复
3楼的前辈能否解释一下为啥把for each给去掉了?
ORARichard 2005-01-11
  • 打赏
  • 举报
回复
用表级触发,去掉for each row
CodeMagic 2005-01-11
  • 打赏
  • 举报
回复
CREATE OR REPLACE TRIGGER tri_del_depre before delete on dev_depre
declare
ls_max_month varchar2(6);
begin
select max(depre_mon) into ls_max_month from dev_depre;
end;
tjm1 2005-01-11
  • 打赏
  • 举报
回复
ding a
tjm1 2005-01-11
  • 打赏
  • 举报
回复
我想操作怎么办?oracle不支持?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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