在Oracle Forms 10g中,我在WHEN-VALIDATE-RECORD触发器中有以下代码。
if(some_condition > 0) then
message('test');
RAISE FORM_TRIGGER_FAILURE;
end if;
问题是message('test');
多次出现。我怎样才能确保它只出现一次。
答案 0 :(得分:1)
触发器WHEN-VALIDATE-RECORD
将关闭需要验证的记录after leaving the record
或按commit
。
在您的情况下,我假设消息显示在commit
和changed
所有行之后,或者至少多于一行,例如post-query
触发器。
因为更改了一行,触发器将针对所有这些行触发,您将多次收到该消息。
在查询记录后立即尝试,而不更改任何要提交的内容。 它应该说没有改变提交。如果它只提交10行,那么这就是你的问题。