2015-03-31 102 views
0

在Oracle Forms 10g中,我在WHEN-VALIDATE-RECORD触发器中具有以下代码。Oracle Forms弹出窗口多次出现

if(some_condition > 0) then 
message('test'); 
RAISE FORM_TRIGGER_FAILURE; 
end if; 

问题是message('test');多次出现。我怎样才能确保它只出现一次。

回答

1

触发器WHEN-VALIDATE-RECORD将关闭需要验证的记录after leaving the record或按commit

在你的情况下,我假设消息出现在commit和你的changed后面的所有行或至少多于一个,例如post-query触发器。

因为多于一行被更改,触发器将触发所有这些行,并且您将多次获取该消息。

试着在查询记录之后立即修改任何提交内容。 应该说没有什么改变提交。如果它只提交例如10行,那么这是你的问题。