PL/SQL Cursor FOR LOOP (日本語)
概要:このチュートリアルでは、PL/SQL cursorFOR LOOP
文を使用して、カーソルからすべてのレコードをフェッチ
PL/SQL cursor FOR LOOP文の概要
cursorFOR LOOP
文は、数値のFOR LOOP
文のエレガントな拡張です。
数値FOR LOOP
指定された範囲内のすべての整数値に対して、ループの本体を一度実行します。, 同様に、cursorFOR LOOP
は、カーソルに関連付けられたクエリによって返された各行に対して、ループの本体を一度実行します。
カーソルFOR LOOP
ステートメントの素晴らしい機能は、実行サイクルを手動で管理することなく、カーソルからすべての行をフェッチできることです。OPEN
、FETCH
、およびCLOSE
。
カーソルFOR LOOP
カーソルが戻ってからカーソルを開く行タイプを持つレコード変数として暗黙的にループインデックスを作成します。,
各ループ繰り返しでは、cursorFOR LOOP
ステートメントは、結果セットからループインデックスに行をフェッチします。 フェッチする行がない場合、カーソルFOR LOOP
はカーソルを閉じます。
ループ内のステートメントがEXIT
およびGOTO
など、ループ外で制御を転送する場合、カーソルも閉じられます。,
以下は、カーソルFOR LOOP
ステートメントの構文を示しています。
1)レコード
record
は、カーソルFOR LOOP
ステートメントが%ROWTYPE
カーソルのタイプのレコード変数。
record
変数は、カーソルFOR LOOP
ステートメントに対してローカルです。 これは、ループ内でのみ参照でき、外部では参照できないことを意味します。, カーソルFOR LOOP
ステートメントの実行が終了すると、record
変数は未定義になります。
2)cursor_name
cursor_name
は、ループの開始時に開かれない明示的なカーソルの名前です。
カーソル名のほかに、以下に示すようにSELECT
ステートメントを使用できることに注意してください。
この場合、カーソルFOR LOOP
は暗黙のカーソルを宣言、開き、フェッチ、および閉じます。, ただし、暗黙カーソルは内部カーソルであるため、参照することはできません。Oracle Databaseでは、カーソルFOR LOOP
がBULK COLLECT
問合せと同様に機能するように自動的に最適化されることに注意してください。 コードは一度に一つの行をフェッチしたかのように見えますが、Oracle Databaseでは一度に複数の行をフェッチし、各行を個別に処理できます。
PL/SQL cursor FOR LOOP examples
cursorFOR LOOP
ステートメントを使用して、どのように動作するかを確認しましょう。,
A)PL/SQL cursor FOR LOOP example
次の例では、明示的なカーソルを宣言し、それをcursorFOR LOOP
文で使用します。
この例では、カーソルのSELECT
ステートメントは、products
テーブルからデータを取得します。 FOR LOOP
ステートメントが開かれ、結果セットの各行がフェッチされ、製品情報が表示され、カーソルが閉じられました。,
B)Selectステートメントを使用したループ用カーソル
次の例は、上記の例と同じですが、カーソルFOR LOOP
ステートメントでクエリを使用します。
このチュートリアルでは、PL/SQLカーソルFOR LOOP
を使用してカーソルからデータをフェッチする方法を学習しました。/p>
- このチュートリアルは役に立ちましたか?
- イェスノ