• 主页
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
  • 职位交流

请教写一个触发器的问题

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'

请大家多指教。或者对这种情况想个别的方法。
...全文
35 点赞 收藏 5
写回复
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的状态。

不知道整个流程是否太麻烦?
回复 点赞
发动态
发帖子
Oracle
创建于2007-09-28

6421

社区成员

5.4w+

社区内容

Oracle开发相关技术讨论
社区公告
暂无公告