COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

9.4.2 埋め込み変数(データベースアクセス機能)

機能
手続き部の埋め込みSQL文中に指定する変数によってデータベースに値を渡す,またはデータベースから値を取得する。

構文規則
埋め込み変数定義に指定できるデータ記述項は次のどれかでなければならない。ただし,集団項目は下位項目のデータ構造が次のどれかでなければならない。
データ項目 条件
英数字項目 なし
数字項目 外部10進形式
[SIGN IS] LEADING SEPARATE CHARACTERの指定があること
2進形式 項目が占めるバイト数が 1バイト,2バイトおよび 4バイトであり,小数点指定がないこと
内部浮動小数点形式(4バイト) なし
内部浮動小数点形式(8バイト) なし
集団項目 可変長型形式
L2 xxxx PIC S9(9) USAGE COMP.
L2 xxxx PIC X(n).
ビット型形式
L2 xxxx PIC 1(7)  USAGE BIT.
FILLER PIC 1(1)  USAGE BIT.
日付型形式
L2 xxxx PIC S9(4)  USAGE COMP.
L2 xxxx PIC  9(4)  USAGE COMP.
L2 xxxx PIC  9(4)  USAGE COMP.
時刻型形式
L2 xxxx PIC  9(4)  USAGE COMP.
L2 xxxx PIC  9(4)  USAGE COMP.
L2 xxxx PIC  9(4)  USAGE COMP.
日付/時刻型形式
L2 xxxx PIC S9(4)  USAGE COMP.
L2 xxxx PIC  9(4)  USAGE COMP.
L2 xxxx PIC  9(4)  USAGE COMP.
L2 xxxx PIC  9(4)  USAGE COMP.
L2 xxxx PIC  9(4)  USAGE COMP.
L2 xxxx PIC  9(4)  USAGE COMP.
L2 xxxx PIC  9(9)  USAGE COMP.

(凡例)
L2:下位項目のレベル番号
xxxx:任意のデータ名
n:データ長

このシステムでは,COBOLの規則に従っていれば,ほかの句を指定してもよい。
注1 JUSTIFIED句の機能はSQL文では無効となる。
注2 BLANK WHEN ZERO句を指定した項目は,SQL文に指定できない。
注3 OCCURS句を指定してもよいが,表要素はSQL文に指定できない。

一般規則
  1. 埋め込み変数は,指定する埋め込みSQL文で対応する列,式,またはパラメタのデータ型に対し,有効な埋め込み変数の型でなければならない。
  2. 埋め込み変数の型とデータ項目の対応を次に示す。
    埋め込み変数の型 データ項目 -SQL,ODBC
    オプション指定
    文字列型 固定長形式 英数字項目
    可変長形式 集団項目 可変長型形式
    数値型 数字項目 外部10進形式
    集団項目 数値型形式 ×
    整数型 符号付き1バイト2進形式 1バイト英数字項目
    数字項目 2進形式
    (1バイト,符号付き)
    符号なし1バイト2進形式 数字項目 2進形式
    (1バイト,符号なし)
    符号付き2バイト2進形式 数字項目 2進形式
    (2バイト,符号付き)
    符号なし2バイト2進形式 数字項目 2進形式
    (2バイト,符号なし)
    符号付き4バイト2進形式 数字項目 2進形式
    (4バイト,符号付き)
    符号なし4バイト2進形式 数字項目 2進形式
    (4バイト,符号なし)
    符号付き8バイト2進形式 20バイトの英数字項目
    符号なし8バイト2進形式 20バイトの英数字項目
    浮動
    小数点型
    単精度形式 数字項目 内部浮動小数点形式
    (4バイト)
    倍精度形式 数字項目 内部浮動小数点形式
    (8バイト)
    バイナリデータ型 固定長形式 英数字項目
    可変長形式 集団項目 可変長型形式
    可変長形式 集団項目 バイナリデータ型形式 ×
    ビット列型 集団項目 ビット型形式
    日時型 日付形式 集団項目 日付型形式
    時刻形式 集団項目 時刻型形式
    日付/時刻形式 集団項目 日付/時刻型形式
    集団項目 Signメンバ付日付時間型形式 ×
    (凡例)
       ○:使用できる
       ×:使用できない
  3. 埋め込み変数を手続き部の埋め込みSQL文に指定する場合,次の形式で指定する。
    : [ データ名1 . ] … データ名2
    このデータ名を添字付けおよび部分参照してはならない。ただし,修飾はピリオド(.)でデータ名1を連結することでデータ名2を修飾できる。例えば,:AAA.BBBと記述した場合,COBOLの言語規則の BBB OF AAAと表されたとみなされる。