我可以切片PL/SQL集合吗?

Tho*_*ten 6 oracle plsql varray

我有一个PL/SQL VArray,我正在填写像这样的BULK COLLECT查询:

SELECT id
BULK COLLECT INTO myarray
FROM aTable
Run Code Online (Sandbox Code Playgroud)

现在我想把这个集合的一部分传递给另一个集合,如下所示:

newarray := myarray(2..5)
Run Code Online (Sandbox Code Playgroud)

这应该将元素2,3,4和5从myarray传递给newarray.

我可以写一个循环并复制元素,但是有更简洁的方法吗?

Ada*_*kes 3

一般来说,您不想这样做。您的内存中有一个很大的集合,现在您想要为其创建一个副本。这会使用更多的内存。通常在这种情况下,您传递整个集合(通过引用,而不是值),并提供开始和停止索引。让其他函数只处理指定的范围。