【问题标题】:Can I slice a PL/SQL collection?我可以对 PL/SQL 集合进行切片吗?
【发布时间】:2010-12-11 04:44:17
【问题描述】:

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

SELECT id
BULK COLLECT INTO myarray
FROM aTable

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

newarray := myarray(2..5)

这应该将元素 2、3、4 和 5 从 myarray 传递到 newarray。

我可以编写一个循环并复制元素,但有更紧凑的方法吗?

【问题讨论】:

  • 好主意,但我没有找到比循环更短的方法。
  • 为什么要这样做而不是另一个更具选择性的选择?
  • 因为我想确定某个条件的最大“切片”。检查在代码中更复杂的部分,我用越来越小的切片来调用它。

标签: oracle plsql varray


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2012-01-31
  • 1970-01-01
  • 2017-12-28
  • 1970-01-01
  • 2015-05-30
  • 2021-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多