假設我有一個Oracle表一個PL/SQL塊內的BOOLEAN
變量:評估表
DECLARE
is_viewable BOOLEAN;
BEGIN
is_viewable := ...;
IF NOT is_viewable THEN
raise_my_error(); // pseudo-code
END IF;
END;
通過這個代碼幾次調試器步進之後,我有確定raise_my_error()
從來沒有被調用。爲了澄清:
raise_my_error()
不不得到,如果is_viewable = TRUE
raise_my_error()
不不被調用,如果is_viewable = FALSE
初步試驗表明,這種行爲被限制在PL/SQL代碼的運行叫在Oracle Forms中,而不是在數據庫中直接運行PL/SQL代碼(儘管我可能是錯的)。
我可以明確地比較is_viewable
到FALSE
解決這個問題:
IF is_viewable = FALSE THEN
raise_my_error();
END IF;
我仍然好奇,爲什麼NOT is_viewable
從不計算TRUE
。
更新:看來我的調試器沒有顯示正確的值,並且此問題不再有效。對於這種困惑感到抱歉。
[友情提示]因爲你是有經驗的用戶,我想你只是忘了接受一個答案(dcp's或Jeffrey's)。 –
@AlexanderMalakhov:我有幾次想接受一個答案,但是現在問題似乎是無法回答的,因爲代碼似乎運行正常。除非我誤解了,否則答案都不能解釋爲什麼NOT_viewable'總是**評估爲FALSE(不管is_viewable的值如何),而is_viewable = FALSE將評估爲TRUE或' FALSE',取決於'is_viewable'的值。由於問題停止發生,我無法驗證任何答案。 :( –
瞭解。我有類似的(「沒有正確答案,無法驗證」)[question](http://stackoverflow.com/questions/2233856/oracle-forms-6i-crashes-with-0xc0000005-at因爲其他人永遠不會回答我的Q,所以我決定接受*最有用的*(而不是正確的)回答。他的時間和努力,對於我的問題沒有在懸而未決的問題列表中懸而未決,雖然很清楚,我完全沒有問題,不跟隨我的策略的人(更重要的是,你顯然爲SO社區做了很棒的工作) –