我可以切片PL/SQL集合吗?
问题描述:
我已经得到了我一个BULK COLLECT填充像这样的查询PL/SQL VARRAY:我可以切片PL/SQL集合吗?
SELECT id
BULK COLLECT INTO myarray
FROM aTable
现在,我想这个集合的切片传递到另外一个集合,这样的事情:
newarray := myarray(2..5)
这应该将元素2,3,4和5从myarray传递给newarray。
我可以编写一个循环并复制这些元素,但有没有更简洁的方法来做到这一点?
答
通常,你不想这样做。你在内存中有大量的集合,现在你想制作它的副本。即使使用更多内存。通常在这种情况下,你传递整个集合(通过引用,而不是值),并提供一个启动和停止索引。将它留给其他函数只处理指定的范围。
好主意,但我没有发现任何短于循环。 – Christian13467 2009-10-29 13:53:43
你为什么要这样做,而不是另一个更具选择性的选择? – David 2009-11-05 13:27:19
因为我想确定一个特定条件的最大“切片”。该检查位于代码的更复杂部分,我用更小或更小的切片进行调用。 – Thorsten 2009-11-05 15:29:29