Могу ли я нарезать коллекцию PL/SQL?

У меня есть PL/SQL VArray, который я заполняю запросом BULK COLLECT следующим образом:

SELECT id
BULK COLLECT INTO myarray
FROM aTable

Теперь я хотел бы передать часть этой коллекции в другую коллекцию, что-то вроде этого:

newarray := myarray(2..5)

Это должно передать элементы 2,3,4 и 5 из myarray в newarray.

Я мог бы написать цикл и скопировать элементы, но есть ли более компактный способ сделать это?

1 ответ

Как правило, вы не хотите этого делать. У вас есть большая коллекция в памяти, и теперь вы хотите сделать ее копию. Это будет использовать еще больше памяти. Обычно в подобных случаях вы передаете всю коллекцию (по ссылке, а не по значению), а также предоставляете начальный и конечный индексы. Оставьте это другим функциям, чтобы обработать только указанный диапазон.

Другие вопросы по тегам