更新日期:2024年09月11日
在本例中,您可能期望运行的语句序列,因为x和y看起来不相等。但是,空值是不确
定的,不论x = y是否未知。因此, IF条件为NULL,那么语句的序列就被忽略了。
DECLARE
x NUMBER := 5;
y NUMBER := NULL;
BEGIN
IF x != y THEN -- yields NULL, not TRUE
DBMS_OUTPUT.PUT_LINE('x != y'); -- not run
ELSIF x = y THEN -- also yields NULL
DBMS_OUTPUT.PUT_LINE('x = y');
ELSE
DBMS_OUTPUT.PUT_LINE
('Can''t tell if x and y are equal or not.');
END IF;
END;
--Result:
--Can't tell if x and y are equal or not.