ヘッダーをスキップ
Oracle Database PL/SQL言語リファレンス
11g リリース1(11.1)
E05670-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

SELECT INTO文

SELECT INTO文は、(SQLのSELECT文と同様に)1つ以上のデータベース表から値を取り出し、それらの値を変数またはレコードに格納します(SQLのSELECT文ではこの処理は実行されません)。

デフォルトでは、SELECT INTO文は、単一の行から1つ以上の列を取り出します。 BULK COLLECT INTO句を使用すると、この文は結果セット全体を一度に取り出します。

構文

select_into_statement ::=

select_into_statement
select_into_statement.gifの説明

select_item ::=

select_item
select_item.gifの説明

table_reference ::=

table_reference
table_reference.gifの説明

キーワードとパラメータの説明

alias

参照される列、表またはビューの別名(通常は短縮名)です。

BULK COLLECT INTO

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言語リファレンス』を参照してください。