PL/SQL Cursor FOR LOOP (日本語)

0 Comments

概要:このチュートリアルでは、PL/SQL cursorFOR LOOP文を使用して、カーソルからすべてのレコードをフェッチ

PL/SQL cursor FOR LOOP文の概要

cursorFOR LOOP文は、数値のFOR LOOP文のエレガントな拡張です。

数値FOR LOOP指定された範囲内のすべての整数値に対して、ループの本体を一度実行します。, 同様に、cursorFOR LOOPは、カーソルに関連付けられたクエリによって返された各行に対して、ループの本体を一度実行します。

カーソルFOR LOOPステートメントの素晴らしい機能は、実行サイクルを手動で管理することなく、カーソルからすべての行をフェッチできることです。OPENFETCH、および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 LOOPBULK 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>

  • このチュートリアルは役に立ちましたか?
  • イェスノ


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です