結果の 1 行を検索し、指定した 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 または PIC S9(9) COMP-5 として宣言する必要があります。 |
db_name |
DECLARE DATABASE を使用して宣言されているデータベースの名前。 |
select_list |
データを検索するテーブル部分。 |
:hvar |
select_list 項目を受け取る 1 つ以上のホスト変数。 |
select_options |
SQL SELECT 文で使用できる 1 つ以上の文またはその他のオプション (FROM 句または WHERE 句など)。 |
例:
...
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
説明:
単選択文、SELECT には、FROM を含める必要があります。
受け取るホスト変数の数よりも多くの列を選択した場合、sqlwarn3 の値が「W」に設定されます。ホスト変数のデータ型と長さは、 それに割り当てられた値と互換性がなければなりません。データが切り捨てられた場合、sqlwarn1 の値は「W」に設定されます。
SELECT INTO 文がデータベースから複数の行を返す場合、最初の行以外のすべての行が廃棄され、sqlwarn4 が「W」に設定されます。最初の行以降の行も返す場合には、カーソルを使用します。あるいは、INTO 句で配列項目を指定します。配列は、配列の最大数、 host_integer の値、返される行数のうちの最小の値まで書き込むことができます。