SELECT
INTO
文は、(SQLのSELECT
文と同様に)1つ以上のデータベース表から値を取り出し、それらの値を変数またはレコードに格納します(SQLのSELECT
文ではこの処理は実行されません)。
デフォルトでは、SELECT
INTO
文は、単一の行から1つ以上の列を取り出します。 BULK
COLLECT
INTO
句を使用すると、この文は結果セット全体を一度に取り出します。
構文
select_into_statement ::=
select_item ::=
table_reference ::=
キーワードとパラメータの説明
alias
参照される列、表またはビューの別名(通常は短縮名)です。
1つ以上のコレクションに結果の値を格納します。FETCH
文を使用したループよりも高速な問合せが可能です。 詳細は、「バルクSQLによる、DML文および問合せのループ・オーバーヘッドの削減」を参照してください。
collection_name
フェッチしたselect_item
値を格納するための、宣言されたコレクションを識別します。 select_item
ごとに、リストの中に、対応する型互換のコレクションが存在している必要があります。
function_name
ユーザー定義のファンクションを識別します。
host_array_name
フェッチしたselect_item
値を格納するための配列を識別します。この配列は、PL/SQLホスト環境で宣言され、バインド引数としてPL/SQLに渡されます。 select_item
ごとに、リストの中に、対応する型互換の配列が存在している必要があります。 ホスト配列には、接頭辞としてコロンが必要です。
numeric_literal
数値または暗黙的に数値に変換可能な値を表すリテラルです。
parameter_name
ユーザー定義ファンクションの仮パラメータを識別します。
record_name
フェッチした行の値を格納する、ユーザー定義のレコードまたは%ROWTYPE
レコードを識別します。 問合せが戻すselect_item
値に対して、レコードの中に、対応する型互換のフィールドが存在している必要があります。
rest_of_statement
SAMPLE
句を除く、SQLのSELECT
文のFROM
句に続けることができる任意の構造体です。
schema_name
表またはビューが含まれているスキーマを識別します。 schema_name
を省略すると、表またはビューはユーザーのスキーマ内に存在するとみなされます。
subquery
処理する行セットを提供するSELECT
文です。 構文はselect_into_statement
の構文と似ていますが、INTO
句は使用できません。
table_reference
表またはビューを指定します。指定された表またはビューは、SELECT
文の実行時にアクセスできる必要があり、ユーザーはSELECT
権限を持っている必要があります。
TABLE (subquery2)
TABLE
のオペランドは、1つの列値を戻すSELECT
文です。これはネストした表またはVARRAYである必要があります。 演算子TABLE
は、値がスカラー値ではなくコレクションであることをデータベースに通知します。
variable_name
フェッチしたselect_item
値を格納するための、事前に宣言された変数を識別します。 問合せが戻すselect_item
値に対して、リストの中に、対応する型互換の変数が存在している必要があります。
view_name
データベース・ビューの名前。
使用上の注意
デフォルトでは、SELECT
INTO
文は1行のみを戻す必要があります。 それ以外の場合、PL/SQLは事前定義の例外TOO_MANY_ROWS
を呼び出して、INTO
句内の変数の値は未定義になります。 WHERE
句が1行とのみ一致するように指定してください。
行が戻されなかった場合は、PL/SQLによってNO_DATA_FOUND
が呼び出されます。 この例外は、条件に一致する行がない場合でも、単一の値を戻す集計ファンクションCOUNT(*)
の結果を選択することによって回避できます。
SELECT
BULK
COLLECT
INTO
文は、複数の行を戻すことができます。 結果を保持するようにコレクション変数を設定する必要があります。 必要に応じて、拡張される結合配列またはネストした表を宣言して、結果セット全体を保持することもできます。
暗黙カーソルSQL
とカーソル属性%NOTFOUND
、%FOUND
、%ROWCOUNT
および%ISOPEN
を使用すると、SELECT
INTO
文の実行についての情報が得られます。
関連トピック
参照: SQLのSELECT 文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |