>>---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