这可能是一个非常基本的问题,但我只是对oracle 10g中嵌套表的用法感到困惑。我们真的需要在插入之前对它们进行初始化和扩展吗?还是在10g版本中不需要。我审查了一些旧代码,发现它们在包中声明嵌套表,然后使用大容量收集在其中插入值,并且在插入嵌套变量之前没有使用初始化(构造函数)或扩展方法。这段代码工作正常。请确认我在这里错过了什么?
发布于 2015-02-23 16:25:05
在使用bulk collect
时,不需要初始化或扩展嵌套表,但在PL/SQL代码中显式添加行时确实需要这样做。
散装收集:
declare
l_tab some_table_type;
begin
select a, b, c
bulk collect into l_tab
from mytable;
end;
对于PL/SQL:
declare
l_tab some_table_type;
begin
l_tab := some_table_type(); -- Initialise before use
for r in
( select a, b, c
from mytable
)
loop
l_tab.extend(); -- Extend before adding row
l_tab(l_tab.count) := r;
end loop;
end;
我想您可以说bulk collect
为您进行初始化和扩展。
https://stackoverflow.com/questions/28677860
复制相似问题