SQL 解説書

SELECT INTO

SELECT INTO ステートメントは、多くても 1 つの行から成る結果表を作成し、 その行の値をホスト変数に割り当てます。 その表が空の場合、ステートメントは、SQLCODE に +100、 および SQLSTATE に '02000' を割り当て、 ホスト変数には値を割り当てません。 複数の行が検索条件を満たしている場合、 ステートメントの処理は終了し、エラーが発生します (SQLSTATE 21000)。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込む方法のみ可能です。 これは、動的に作成できない実行可能ステートメントです。

許可

この SELECT INTO ステートメントの許可 ID の特権には、 このステートメントで参照される各表または視点に対する以下の特権の少なくとも 1 つが含まれている必要があります。

静的 SELECT INTO ステートメントの場合、GROUP 特権は検査されません。

構文

                          .-,----------------.
                          V                  |
>>-select-clause--INTO-------host-variable---+--from-clause----->
 
>----+--------------+--+-----------------+--+---------------+--><
     '-where-clause-'  '-group-by-clause-'  '-having-clause-'
 

説明

select-clause (SELECT 文節)、 from-clause (FROM 文節)、 where-clause (WHERE 文節)、 group-by-clause (GROUP BY 文節)、 および having-clause (HAVING 文節) についての説明は、 照会 の項を参照してください。

INTO
この後にホスト変数のリストを指定します。

host-variable
ホスト変数の宣言規則に従ってプログラムに記述されている変数を指定します。

結果行の最初の値はリストの最初の変数、 2 番目値は 2 番目の変数に割り当てられます。 以下同様です。 ホスト変数の数が列の値の数より少ない場合は、 SQLCA の SQLWARN3 フィールドに値 'W' が割り当てられます (付録 B, SQL 連絡 (SQLCA) を参照)。

各変数には、割り当てと比較で説明されている規則に基づいて値が割り当てられます。 割り当ては、リストに指定された順序で行われます。

エラーが発生すると、値はホスト変数に割り当てられません。

例 1: この C の例では、EMP における給与の最高額をホスト変数 MAXSALARY に割り当てています。

   EXEC SQL SELECT MAX(SALARY)
     INTO :MAXSALARY
     FROM EMP;

例 2: この C の例では、EMP の従業員 528671 の行をホスト変数に割り当てています。

   EXEC SQL SELECT * INTO :h1, :h2, :h3, :h4
     FROM EMP
     WHERE EMPNO = '528671';


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]