【发布时间】:2013-05-21 12:35:20
【问题描述】:
我是 DB Oracle 的新手,当我在 Clarity(即项目和项目组合管理应用程序)中创建新请求或更改请求状态时,我想将字段 status 更新为mb_status_idea 的新值。
以下查询在更新的情况下运行良好,但如果我创建一个新请求,它不会更新状态。 (所以状态不等于状态 MB)。
IF ( :old.mb_status_idea != :new.mb_status_idea)
THEN update inv_investments a
set a.status = stat
where a.id=:new.id ;
END IF;
我认为问题在于,在创建新请求时,由于插入触发器 OLD 包含 NO VALUE,因此条件为 false,并且不会更新状态。
注意:status 字段位于表 INV_INVETMENTS 中,(stat := :new.mb_status_idea) 状态 MB 的数据库列是 mb_status_idea
我也加了这个条件 --> 或者(:old.mb_status_idea 为空),但是当我再次创建一个新请求时,“状态”和“状态 MB”的值是不同的(状态没有更新)。
如果有人可以帮助解决这个问题,我将不胜感激。
高度赞赏所有想法,
莫娜
【问题讨论】:
标签: triggers insert request clarity