2013-03-01 1 views

答えて

12

カーソルから返される一連の行は、カーソルが(OPEN明示的にまたはFORループによって)開かれた時点で決定されます。この場合、削除した行はループに戻されません。

通常、クエリは一度に実行されません。 Oracleは問合せを実行して次の行セットをフェッチし、PL/SQL VMに戻します。 11gでは、一度に100行の暗黙のBULK COLLECTを実行します。したがって、戻される行がなくなるまで、ループの100回の繰り返しごとに問合せが実行されます。複数バージョンの読取り一貫性のため、Oracleは、コードの実行中に他のセッションが変更を加えてコミットしていても、カーソルがオープンされたときに存在していたデータを常に返します。

+0

私が探していたちょっとした説明です。ありがとう! – DiscoInfiltrator