13.59 SELECT INTO文
SELECT
INTO
文は、(SQLのSELECT
文と同様に)1つ以上のデータベース表から値を取り出し、それらの値を変数に格納します(SQLのSELECT
文ではこの処理は実行されません)。
注意:
SELECT
INTO
文をBULK
COLLECT
句とともに使用すると、エイリアシングに対して脆弱になり、予期しない結果が発生する場合があります。詳細は、「SELECT BULK COLLECT INTO文およびエイリアシング」を参照してください。
関連項目:
SQLのSELECT
文の構文は、『Oracle Database SQL言語リファレンス』を参照してください。
ここでのトピック
構文
select_into_statement ::=
( bulk_collect_into_clause ::=, into_clause ::=、select_list構文の詳細はOracle Database SQL言語リファレンスを参照)
セマンティクス
select_into_statement
DISTINCT | UNIQUE
DISTINCT
またはUNIQUE
を指定すると、選択された重複行の1行のみを戻すことができます。これらの2つのキーワードは同義です。重複行とは、SELECT構文のリスト中のそれぞれの式で一致する値を持つ行のことです。
DISTINCT問合せおよびUNIQUE問合せの制限事項
-
すべてのselect list式の総バイト数は、データ・ブロックからオーバーヘッドを除いたサイズに制限されます。このサイズは、初期化パラメータ
DB_BLOCK_SIZE
で指定されます。 -
select_listにLOB列が含まれている場合、
DISTINCT
は指定できません。
ALL
(デフォルト)すべての重複行のコピーを含め、選択された行がすべて戻されるようにできます。
select_list
SELECT
INTO
文によって行が戻されない場合、PL/SQLによって事前定義の例外NO_DATA_FOUND
が呼び出されます。この例外を回避するには、条件に一致する行がない場合でも、単一の値を戻す集計ファンクションCOUNT(*)
の結果を選択します。
into_clause
この句を使用すると、SELECT
INTO
文は、単一の行から1つ以上の列を取り出し、それらの値を1つ以上のスカラー変数または1つのレコード変数に格納します。詳細は、into_clause ::=を参照してください。
bulk_collect_into_clause
この句を使用すると、SELECT
INTO
文は結果セット全体を取り出し、それを1つ以上のコレクション変数に格納します。詳細は、bulk_collect_into_clause ::=を参照してください。
rest_of_statement
SQLのSELECT
文のキーワードFROM
に続けることができる任意の構造体(『Oracle Database SQL言語リファレンス』を参照)。
例