关于触发器更改标志位问题,急,万分感谢

happz 2004-04-30 03:35:07
表sales_control_bill上有个预发数量turn_num ,有个实发数量excute_num
我想实现 excute_num > turn_num 的时候,即实发数量大于预发数量时,执行状态变为结束。下面是我写的触发器,但执行出错,请高手指点。
错误信息:
ORA-04091: 表 JDSNAS.SALES_CONTROL_BILL 发生了变化,触发器/函数不能读
ORA-06512: 在"JDSNAS.UP_CONFLAG", line 3
ORA-04088: 触发器 'JDSNAS.UP_CONFLAG' 执行过程中出错

请高手指点,急,不胜感激
CREATE OR REPLACE TRIGGER up_conflag
after UPDATE OF excute_num ON sales_control_bill
FOR EACH ROW
BEGIN
if :new.excute_num >= :old.turn_num then
update sales_control_bill
set excute_flag = 'C'
where cortrolbill_no = :old.cortrolbill_no;
end if;
end;
...全文
17 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
foxjian 2004-05-09
CREATE OR REPLACE TRIGGER up_conflag
before UPDATE OF excute_num ON sales_control_bill
FOR EACH ROW
BEGIN
if :new.excute_num >= :new.turn_num then --根据你的规则,似乎该这样
:new.excute_flag = 'C';
end if;
end;

  • 打赏
  • 举报
回复
nyfor 2004-05-08
CREATE OR REPLACE TRIGGER up_conflag
before UPDATE OF excute_num ON sales_control_bill
FOR EACH ROW
BEGIN
if :new.excute_num >= :old.turn_num then
:new.excute_flag = 'C';
end if;
end;
  • 打赏
  • 举报
回复
ahalf 2004-05-07
用约束
  • 打赏
  • 举报
回复
相关推荐
发帖
Oracle
加入

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2004-04-30 03:35
社区公告
暂无公告