SELECT INTO

構文
>>---EXEC SQL--.-------------------.---.------------.---->
               +-FOR :host_integer-+   +-AT db_name-+

                                        +- ,-+
                                        V    | 
 >----SELECT----.-------------.---INTO--:hvar------------->
                +-select_list-+

 >----select_options----END-EXEC---><
 
パラメータ
:host_integer 処理されるホスト配列要素の最大数を指定するホスト変数。 PIC S9(4) COMP-5 で宣言する必要があります。
db_name DECLARE DATABASE を使用して宣言されているデータベースの名前。
select_list データを検索するテーブル部分。
:hvar select_list 項目を受け取る 1 つ以上のホスト変数。
select_options SQL SELECT 文で使用できる 1 つ以上の文またはその他のオプション (FROM 句または WHERE 句など)。
目的

シングルトン SELECT には FROM 句を含める必要があります。

SELECT INTO 文により、結果の 1 行が検索され、select_list の項目の値が INTO リストで指定されたホスト変数に割り当てられます。 受け取るホスト変数の数よりも多くの列を選択した場合、sqlwarn3 の値が「W」に設定されます。 ホスト変数のデータ型と長さは、それに割り当てられた値と互換する必要があります。 データが切り捨てられた場合、sqlwarn1 の値は「W」に設定されます。

SELECT INTO 文がデータベースから複数の行を返す場合、最初の行以外のすべての行が廃棄され、sqlwarn4 が「W」に設定されます。 最初の行以降の行も返す場合には、カーソルを使用します。 または、INTO 句で配列項目を指定します。 配列には、配列の最大サイズ、host_integer の値、または、返される行数の中で、最も小さい値まで設定されます。

ANSI92ENTRY が設定され、シングルトン SELECT により複数の行が検索される場合は、SQLCODE が -811、SQLSTATE が 21000 および SQLWARN4 が W になります。ANSI92ENTRY が設定されていない場合は、エラー条件または警告条件は設定されません。

注: INTO 句のホスト変数のいずれか 1 つが配列の場合には、ホスト変数をすべて配列にする必要があります。

例:
  ...
     MOVE 99 TO staff-id
     EXEC SQL
        SELECT last_name
           INTO :lname
           FROM staff
           WHERE staff_id=:staff-id
     END-EXEC
     EXEC SQL
        SELECT staff_id
           INTO :staff-id
           FROM staff
           WHERE first_name = 'Phil'
     END-EXEC
他参照:

関連項目