SELECT INTO
DECLARE
the_variable NUMBER;
BEGIN
SELECT my_column INTO the_variable FROM my_table;
END;
クエリが単一の行のみを返すことを確認してください:
デフォルトでは、SELECTINTOステートメントは1行のみを返す必要があります。それ以外の場合、PL / SQLは事前定義された例外TOO_MANY_ROWSを発生させ、INTO句の変数の値は未定義です。 WHERE句が1つの行にのみ一致するように十分に具体的であることを確認してください
行が返されない場合、PL/SQLはNO_DATA_FOUNDを発生させます。実用的な場合は、COUNT(*)やAVG()などの集計関数の結果を選択することで、この例外を防ぐことができます。これらの関数は、条件に一致する行がない場合でも、単一の値を返すことが保証されています。
SELECT ... BULK COLLECT INTOステートメントは、複数の行を返すことができます。結果を保持するには、コレクション変数を設定する必要があります。結果セット全体を保持するために必要に応じて大きくなる連想配列またはネストされたテーブルを宣言できます。
暗黙カーソルSQLとその属性%NOTFOUND、%FOUND、%ROWCOUNT、および%ISOPENは、SELECTINTOステートメントの実行に関する情報を提供します。