关于oracle 10g中嵌套表扩展的困惑
Posted
技术标签:
【中文标题】关于oracle 10g中嵌套表扩展的困惑【英文标题】:Confusion regarding Nested Table Extend in oracle 10g 【发布时间】:2015-04-25 00:24:54 【问题描述】:这可能是一个非常基本的问题,但我只是对 oracle 10g 中嵌套表的使用感到困惑。我们是否真的需要在插入之前初始化它们并扩展它们,或者在 10g 版本中不需要它。我正在查看一些旧代码,发现它们在包中声明嵌套表,然后使用批量收集在其中插入值,并且在嵌套变量中插入值之前没有使用初始化(构造函数)或扩展方法。这段代码工作正常。请确认我在这里缺少什么?
【问题讨论】:
查看documentation 了解如何初始化和引用嵌套表类型。 对不起,但我没有在上面共享的文档链接中找到不初始化和扩展嵌套表的概念..你能指向确切的页面吗... 【参考方案1】:使用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
为你进行初始化和扩展。
【讨论】:
以上是关于关于oracle 10g中嵌套表扩展的困惑的主要内容,如果未能解决你的问题,请参考以下文章