假设我BOOLEAN
在 Oracle 表单的 PL/SQL 块中有一个变量:
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
初步测试表明,这种行为仅限于在 Oracle Forms 中运行的 PL/SQL 代码,而不是直接在数据库中运行的 PL/SQL 代码(尽管我可能是错的)。
我可以通过明确比较is_viewable
来解决这个问题FALSE
:
IF is_viewable = FALSE THEN
raise_my_error();
END IF;
我仍然很好奇为什么NOT is_viewable
从不评估到TRUE
。
更新:看来我的调试器没有显示正确的值,这个问题不再有效。对这种混乱感到抱歉。