2015-03-31 105 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行,那麼這是你的問題。