Oracle 如何检查plsql嵌套表中的null元素?
我有一个记录的PLSQL嵌套表Oracle 如何检查plsql嵌套表中的null元素?,oracle,plsql,Oracle,Plsql,我有一个记录的PLSQL嵌套表 type rec is record (a number, b number); type tab is table of rec; v_tab tab; 我通过批量查询填充此集合 select x,y bulk collect into v_tab from testtable; 现在我需要找到v_tab集合中有没有v_tab.a为空的记录。我可以不在收集中循环(通过使用某些方法)来完成吗?这可能超出了您想要的范围,我不知道您的数据,但是 将表类型
type rec is record
(a number,
b number);
type tab is table of rec;
v_tab tab;
我通过批量查询填充此集合
select x,y bulk collect into v_tab from testtable;
现在我需要找到v_tab集合中有没有v_tab.a为空的记录。我可以不在收集中循环(通过使用某些方法)来完成吗?这可能超出了您想要的范围,我不知道您的数据,但是 将表类型更改为INDEX BY并使用NVL(A,-999)作为索引怎么样 然后你就可以测试了
IF v_tab.EXISTS(-999)
THEN
-- Handle null value
...
END IF;
如果您的Oracle版本为12.1或更高版本,则可以使用TABLE()运算符查询集合,但如果是较旧版本,则需要在架构级别定义集合才能正常工作。请看这里:我已经在包级别定义了类型,并尝试了相同的方法。它在12C上对我有效。但不幸的是,我想让它在11g上工作(不幸的是,对于11G,它要么将集合重新定义为架构级别,要么在集合中循环。希望我能为您提供另一个选项。。。