1.6.1 埋め込み変数および標識変数

<この項の構成>
(1) 機能
(2) 形式
(3) 規則
(4) 用途および指定個所
(5) 埋め込み変数および標識変数のデータ型とCOBOL言語のデータ記述の関係
(6) 埋め込み変数および標識変数の修飾指定(COBOL言語)

(1) 機能

UAPのSQL中に埋め込み変数および標識変数を指定できます。指定すると,そのSQLとUAPとの間で値の受け渡しができます。

(2) 形式

:埋め込み変数〔:標識変数〕

(3) 規則

  1. SQLの文字列中に埋め込み変数および標識変数を指定した場合,そのデータ型およびデータ長は,埋め込み変数および標識変数を指定した個所によって,システムが仮定します。
    埋め込み変数および標識変数を指定した個所,ならびに仮定されるデータ型およびデータ長を次の表に示します。

    表1-18 埋め込み変数および標識変数を指定した個所,ならびに仮定されるデータ型およびデータ長

    項番埋め込み変数および標識変数を指定した個所仮定されるデータ型およびデータ長
    1述語中に単独で指定した場合比較相手となる値式の結果のデータ型およびデータ長
    2挿入値,更新値に単独で指定した場合格納代入相手の列のデータ型およびデータ長
    3そのほかの個所に指定した場合各項目の説明を参照してください。
  2. SQLの中に指定する埋め込み変数の数は,3000以下にしてください。
  3. 埋め込み変数および標識変数に値を渡す場合,システムが仮定したデータ型およびデータ長の値を指定してください。

(4) 用途および指定個所

埋め込み変数および標識変数の機能,ならびにその用途および指定個所を次の表に示します。

表1-19 埋め込み変数および標識変数の機能,ならびにその用途および指定個所

項番機能用途指定個所
埋め込み変数標識変数
1検索結果の列の値の受け取りナル値以外の値を受け取ります。ナル値も含む列の値を受け取るために,埋め込み変数とともに使用します。埋め込み変数に読み込んだ値がナル値かどうかを知ることができます。1行SELECT文,FETCH文のINTO句
2定数値の変更ナル値以外の値を受け取ります。ナル値を指定するために,埋め込み変数とともに使用します。SQLに渡す埋め込み変数の値がナル値かどうかを指示します。SQL中に指定する定数の値を変えて実行する場合に,定数の代わりに指定します。
3埋め込み変数の変更カーソル宣言中で指定したSELECT文中の埋め込み変数の代わりに,ほかの埋め込み変数を指定します。OPEN文のUSING句
(凡例)
-:該当しません。
注※
ナル値も扱う場合は,標識変数を指定する必要があります。標識変数の値については,「1.6.3 標識変数の値の設定」を参照してください。

(5) 埋め込み変数および標識変数のデータ型とCOBOL言語のデータ記述の関係

埋め込み変数および標識変数をUAP中に記述するときのデータ型とデータ記述の関係については,「1.3.5 SQLのデータ型とCOBOL言語のデータ記述の対応」を参照してください。

(6) 埋め込み変数および標識変数の修飾指定(COBOL言語)

埋め込み変数および標識変数を集団項目で修飾できます。

集団項目で修飾する場合の形式:

:〔変数名1.〕変数名2

修飾した結果,埋め込み変数または標識変数は一意に定まるように指定してください。修飾する必要のない名前を修飾してもかまいません。また,一意に修飾する組み合わせが幾つかある場合,どれを使用してもかまいません。

変数名1は,変数名2が従属する集団項目となります。