4.8 1行SELECT表の1行検索

<この節の構成>
(1) 機能
(2) 形式
(3) 共通規則
(4) 使用例

(1) 機能

表のデータを検索します。

表から1行だけデータを取り出す場合は,カーソルを使用しないでデータを取り出す1行SELECT文を指定します。

1行SELECT文は,問合せ指定とオペランドは同じですが,問合せ指定のように集合に対する操作をする文ではありません。

また,1行SELECT文は検索した結果を受け取る領域を指定するINTO句を含んでいます。

(2) 形式

1行SELECT文::=SELECT 選択リスト
 INTO :埋め込み変数〔:標識変数〕
 〔,:埋め込み変数〔:標識変数〕〕…
  表式

選択リストについては「2.2 問合せ指定」を,表式については「2.3 表式」をそれぞれ参照してください。

(a) INTO句

SELECT文を単独でUAPに直接記述する場合は,INTO句を必ず指定してください。ただし,カーソル宣言中のSELECT文には指定できません。

(b) :埋め込み変数

一つの行の列の値を読み込む埋め込み変数を指定します。

(c) :標識変数

埋め込み変数に読み込まれる列の値がナル値の可能性がある場合に指定します。

(3) 共通規則

  1. 検索結果が1行以下の場合は,カーソルを使用しないでINTO句を指定して検索できます。ただし,検索結果が2行以上の場合,検索できません。
    • 検索結果の列の個数と,INTO句で指定した埋め込み変数の個数は同じにしてください。列の個数と,埋め込み変数の個数が同じでない場合は,SQL連絡領域のSQLWARN3領域に'W'(警告フラグ)が設定されます。また,列の個数より埋め込み変数の個数が多い場合,列に対応していない埋め込み変数の値は保証されません。
    • INTO句で指定する埋め込み変数のデータ型およびデータ長は,対応する列のデータ型およびデータ長にしてください。
    • 検索結果の列の値がナル値の場合,対応する埋め込み変数の値は保証されません。
    • 検索結果の列の値がナル値の場合は,埋め込み変数に対応する標識変数を指定してください。
  2. 取り出す行がない場合,次の個所にリターンコード100が設定されます。
    • SQL連絡領域のSQLCODE領域
    • SQLCODE変数
  3. 2.1 カーソル指定」の説明に従って,ORDER BY句およびLIMIT句を指定できます。

(4) 使用例

使用例については,「4.2 DECLARE CURSOR(カーソルの宣言)」を参照してください。