私のプロジェクトには、以下に書かれたコードがあります。私は以下のコードで.deleteが何をするのか理解しようとしています。カーソル変数.deleteとは何ですか?
CURSOR cur_somecur IS
select * from SomeTable;
TYPE my_cur_ty IS TABLE OF MyTable%ROWTYPE INDEX BY BINARY_INTEGER;
my_cur my_cur_ty;
FETCH cur_somecur BULK COLLECT
INTO my_cur LIMIT 1000;
...
LOOP
FORALL idx IN 1 .. my_cur.count SAVE EXCEPTIONS /* This is understood */
...
my_cur.delete; /* What does this do ? */
END LOOP;
...
'delete'はカーソル変数ではありません。あなたの場合、コレクション全体を削除するコレクションメソッドです: 'my_cur' –
コードの最後にDELETEを使用しないとどうなりますか?いくつかのメモリをクリアするためにDELETEが使用されていますか?ちょうど推測 – user2488578
'my_cur'はコレクション(配列)です。名前は誤解を招きます。なぜなら、それはカーソルとは何か関係があり、そうではないことを示唆しているからです。通常、PL/SQLで変数を削除する必要はありません(独自の[ガベージ・コレクション](https://en.wikipedia.org/wiki/Garbage_collection_(computer_science))。 –