PL / SQL SELECT INTO (日本語)
要約:このチュートリアルでは、PL / SQL SELECT INTO
文。
PL / SQL SELECT INTO
文は、単一行をフェッチする最も簡単で最速の方法です。テーブルから変数へ。以下に、PL / SQL SELECT INTO
ステートメントの構文を示します。
この構文では、 variable_list
の列は、select_list
の変数の数(またはレコードのコンポーネントの数)と同じである必要があります。さらに、対応するデータ型に互換性がある必要があります。
WHERE
句のほかに、SELECT
INNER JOIN
、GROUP BY
、HAVING
、UNION
。
SELECT
ステートメントが複数の行を返す場合、OracleはTOO_MANY_ROWS
例外。 SELECT
ステートメントが行を返さない場合、OracleはNO_DATA_FOUND
例外を発生させます。
PL / SQL SELECT INTOの例
サンプルデータベースのcustomers
テーブルとcontacts
テーブルをデモ用に使用してみましょう。
A)PL / SQL SELECT INTO –1つの列の例を選択
次の例では、SELECT INTO
ステートメントを使用して、テーブル。
この例では:
- 最初に、データ型がデータ型である変数
l_customer_name
を宣言します。 Customers表の名前列にアンカーします。この変数は顧客名を保持します。 - 次に、
SELECT INTO
ステートメントを使用して名前列から値を選択し、それを変数。 - 3番目に、
dbms_output.put_line
プロシージャを使用して顧客名を表示します。
customers
テーブルに顧客ID100の行が1つしかない場合、コードブロックには顧客名が表示されます。
Ifそのような行がなかった場合、コードブロックは未処理のNO_DATA_FOUND
例外で失敗します。
B)PL / SQL SELECT INTO –完全な行の例を選択する
次の例では、特定の顧客IDのcustomers
テーブルから行全体をフェッチします。
出力は次のとおりです。
この例では:
- 最初に、
customers
テーブル。このレコードは、customers
テーブルの行全体を保持します。 - 次に、IDが100の顧客を
r_customer
レコード。 - 3番目に、顧客の名前とWebサイトを表示します。
C)PL / SQL SELECT INTO –データを複数の変数に選択する例
次の例では、特定の顧客IDのcustomers
テーブルとcontacts
テーブルから顧客と連絡先の名前を取得します。
Oracleは次の出力を発行しました。
この例では:
- 最初に、3つの変数を宣言します
l_customer_name
、l_contact_first_name
、l_contact_last_name
は、顧客と連絡先の名前を保持します。 - 次に、
SELECT INTO
ステートメントを使用して、customers
およびテーブルを対応する変数に変換します -
l_customer_name
、l_contact_first_name
、l_contact_last_name
。 - 3番目に、顧客名と連絡先名。
PL / SQL SELECTINTOの一般的なエラー
SELECT
句がINTO
句の変数の数より大きい場合、Oracleは次のエラーを発行します:
Oracle SELECT
句の列と式の数がINTO
句の変数の数より少ない場合、次のエラーを発行します。
選択リストの変数と要素の数は同じであるが、対応するデータ型に互換性がないため、Oracleが暗黙的に1つの型からに変換できない場合もう1つ。次のエラーが発生します。
これで、PL / SQL SELECT INTO
の使用方法を理解する必要があります。テーブルから変数に単一の行をフェッチするステートメント。
- このチュートリアルは役に立ちましたか?
- はいいいえ