我有一个包含空元素的PL/SQL集合(在最小的工作示例中它只是那个,但行为与其他元素相同).当我现在查询此集合是否具有特定数字作为元素时,它将false按预期返回.但事实是,否定查询也会产生答案false.
任何人都可以证实这种行为或指导我在这里失败的假设吗?
DECLARE
TYPE number_t IS TABLE OF NUMBER;
nt1 number_t := number_t();
BEGIN
nt1.extend();
dbms_output.put_line('Start'); -- prints 'Start'
IF 1 member of nt1 THEN
dbms_output.put_line('Member'); -- does not execute
END IF;
IF not 1 member of nt1 THEN
dbms_output.put_line('Not member'); -- does not execute
END IF;
IF not (1 member of nt1) THEN
dbms_output.put_line('Not member'); -- does not execute
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
观察:Oracle数据库11g企业版11.2.0.4.0版 - 64位
尚未在其他安装上测试过.