oracle - 我可以对 PL/SQL 集合进行切片吗?

标签 oracle plsql varray

我有一个 PL/SQL VArray,我正在填充一个 BULK COLLECT 查询,如下所示:

SELECT id
BULK COLLECT INTO myarray
FROM aTable

现在我想将这个集合的一部分传递到另一个集合中,如下所示:
newarray := myarray(2..5)

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

我可以编写一个循环并复制元素,但是有没有更紧凑的方法来做到这一点?

最佳答案

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

关于oracle - 我可以对 PL/SQL 集合进行切片吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1642794/

相关文章:

mysql - 如何将数据从oracle数据库迁移到mysql数据库?

oracle - 除非我存储值,否则序列不会增加

sql - Oracle PL/SQL CASE 语句可以包含 SELECT 查询吗?

Oracle 用户定义的 varchar 的 vararray 聚合函数

sql - 如何在 PL/SQL 中将 SQL 'IN'(或 'ANY')运算符与 VARRAY 一起使用

sql - 如何在 TYPE OBJECT 的 VARRAY 中正确插入?

sql - oracle sql - 选择具有多个 "case when"的语句并检查包含文本

mysql - HAVING 子句如何真正起作用?

database - Oracle 外部表 - 指定动态文件名

oracle - 在 PL/SQL 中列出过程参数