Могу ли я нарезать коллекцию PL / SQL? - PullRequest
6 голосов
/ 29 октября 2009

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

SELECT id
BULK COLLECT INTO myarray
FROM aTable

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

newarray := myarray(2..5)

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

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

1 Ответ

3 голосов
/ 29 октября 2009

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

...