请教写一个触发器的问题

Jarky 2004-07-23 03:02:00
我要实现的功能如下:
每次从数据库表ht_ybnsr_dab中率选出新增或者被修改的数据出来,格式化成xml文件传出去(这个部分已实现)。为了判断那些记录是新增加的或者刚被修改过得,我在ht_ybnsr_dab表中加了一个packedtag标记。
然后想写一个触发器在insert or update时就把packedtag标记置成N。我如下写,大家看看问题出在那(可能比较rz的问题,呵呵,我对数据库不太懂。)数据库为oracle8i:
****************
create or replace trigger "TRIG_DAB_MODI_AF" AFTER UPDATE OR INSERT ON ht_ybnsr_dab FOR EACH ROW
BEGIN
UPDATE ht_ybnsr_dab
SET PACKEDTAG = 'N';
END;
*************
这样好像会死循环似的??而且执行如下的语句时有错误:
update ht_ybnsr_dab set fielda = 'xxxxx' where fieldb = 'YYYY'

请大家多指教。或者对这种情况想个别的方法。
...全文
56 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jarky 2004-07-23
  • 打赏
  • 举报
回复
刚才试了一下成功了,谢谢您。给分,对了,能不能解释一下after和before细节上的区别么?
Jarky 2004-07-23
  • 打赏
  • 举报
回复
呵呵,好奇怪哦,把after改成before就可以了
Jarky 2004-07-23
  • 打赏
  • 举报
回复
谢谢楼上的,但是我执行好像有问题,出项一个对话框上面显示 “??????new?”

怎么回事?
bzszp 2004-07-23
  • 打赏
  • 举报
回复
create or replace trigger "TRIG_DAB_MODI_AF"
AFTER UPDATE OR INSERT ON ht_ybnsr_dab
FOR EACH ROW
BEGIN
:new.PACKEDTAG:='N';
END;
Jarky 2004-07-23
  • 打赏
  • 举报
回复
在取完数据之后我再执行一个语句把packedtag标记置成Y的状态。

不知道整个流程是否太麻烦?

17,140

社区成员

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

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