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