6

次のような BULK COLLECT クエリを入力する PL/SQL VArray があります。

SELECT id
BULK COLLECT INTO myarray
FROM aTable

ここで、このコレクションのスライスを別のコレクションに渡したいと思います。たとえば、次のようになります。

newarray := myarray(2..5)

これにより、要素 2、3、4、および 5 が myarray から newarray に渡されます。

ループを記述して要素をコピーすることもできますが、これを行うよりコンパクトな方法はありますか?

4

1 に答える 1

3

通常、これは行いません。メモリ内に大量のコレクションがあり、そのコピーを作成したいとします。それはさらに多くのメモリを使用します。通常、このような場合、コレクション全体を (値ではなく参照によって) 渡し、開始インデックスと停止インデックスも提供します。指定された範囲のみを処理するために、他の関数に任せます。

于 2009-10-29T16:01:03.840 に答える