测试代码:
begin
DBMS_OUTPUT.PUT_LINE('Result:');
IF '' = 'ALL' THEN
DBMS_OUTPUT.PUT_LINE('Equal');
END IF;
IF '' != 'ALL' THEN
DBMS_OUTPUT.PUT_LINE('Not Equal');
END IF;
DBMS_OUTPUT.PUT_LINE('None');
end;
output:
Result:
None
按道理说,绿色和蓝色是对立的,应该有一句输出来。但是,实际上都没有结果输出。
注意:跟‘ALL’作比较的是空字符串,引号里没有空格。若‘ ’有空格,则会输出Not Equal。
结论: 空(Null)参与任何运算的结果都是Null,而Null在Oracle里被当做false处理,从而Null将会跳过所有逻辑判断。正所谓,本来无一物,何处惹尘埃!
一切皆空(,因果不空。善恶之报,如影随形)!