COBOL2002 ユーザーズガイド


23.2.5 埋め込み変数

SQL文中で指定する埋め込み変数は,対応する列,または式で有効なODBC SQLデータ型と対応づけられたCOBOLデータ定義で,定義する必要があります。

使用する表の列に対応するCOBOLデータ定義は,ODBCレコード定義生成を使って生成できます。詳細は,マニュアル「COBOL2002 操作ガイド」を参照してください。

ODBC SQLデータ型とCOBOLのデータ記述の対応を次に示します。

表23‒3 ODBC SQLデータ型に対応したCOBOLのデータ記述

ODBC SQLデータ型

埋め込み変数の型

データ記述

CHAR(n)

文字列型

固定長形式

Ln データ名     PIC X(n).

VARCHAR(n)

文字列型

可変長形式

L1 データ名.
 L2 ODBC-length PIC S9(9) USAGE COMP.
 L2 ODBC-char   PIC  X(n).

LONG VARCHAR

文字列型

可変長形式

L1 データ名.
 L2 ODBC-length PIC S9(9) USAGE COMP.
 L2 ODBC-char   PIC  X(max).

DECIMAL(p,s)

数値型

Ln データ名     PIC S9(p-s)V9(s)
                SIGN IS LEADING
                SEPARATE CHARACTER.

NUMERIC(p,s)

数値型

Ln データ名     PIC S9(p-s)V9(s)
                SIGN IS LEADING
                SEPARATE CHARACTER.

SMALLINT

整数型符号付き2バイト2進項目

または,整数型符号なし2バイト2進項目

Ln データ名    PIC S9(4) USAGE COMP.
Ln データ名    PIC  9(4) USAGE COMP.

INTEGER

整数型符号付き4バイト2進項目

または,整数型符号なし4バイト2進項目

Ln データ名    PIC S9(9) USAGE COMP.
Ln データ名    PIC  9(9) USAGE COMP.

REAL

内部浮動小数点型単精度形式

Ln データ名    USAGE COMPUTATIONAL-1.

FLOAT

内部浮動小数点型倍精度形式

Ln データ名    USAGE COMPUTATIONAL-2.

DOUBLE PRECISION

内部浮動小数点型倍精度形式

Ln データ名    USAGE COMPUTATIONAL-2.

BIT

ビット列型

L1 データ名.
 L2 FILLER     PIC  1(7) USAGE BIT.
 L2 ODBC-bit   PIC  1(1) USAGE BIT.

TINYINT

整数型符号付き1バイト2進形式

または整数型符号なし1バイト2進形式

Ln データ名    PIC  X(1).
Ln データ名    PIC S9(2) USAGE COMP.
Ln データ名    PIC  9(2) USAGE COMP.

BIGINT

整数型符号付き8バイト2進形式または整数型符号なし8バイト2進形式

Ln データ名    PIC  X(20).

BINARY(n)

バイナリデータ型固定長形式

Ln データ名    PIC  X(n).

VARBINARY(n)

バイナリデータ型可変長形式

L1 データ名.
 L2 ODBC-length PIC S9(9) USAGE COMP.
 L2 ODBC-binary PIC  X(n).

LONG VARBINARY

バイナリデータ型可変長形式

L1 データ名.
 L2 ODBC-length PIC S9(9) USAGE COMP.
 L2 ODBC-binary PIC  X(max).

DATE

日時型日付形式

L1 データ名.
 L2 ODBC-year   PIC S9(4) USAGE COMP.
 L2 ODBC-month  PIC  9(4) USAGE COMP.
 L2 ODBC-day    PIC  9(4) USAGE COMP.

TIME

日時型時刻形式

L1 データ名.
 L2 ODBC-hour   PIC  9(4) USAGE COMP.
 L2 ODBC-minute PIC  9(4) USAGE COMP.
 L2 ODBC-second PIC  9(4) USAGE COMP.

TIMESTAMP

日時型日付/時刻形式

L1 データ名.
 L2 ODBC-year   PIC S9(4) USAGE COMP.
 L2 ODBC-month  PIC  9(4) USAGE COMP.
 L2 ODBC-day    PIC  9(4) USAGE COMP.
 L2 ODBC-hour   PIC  9(4) USAGE COMP.
 L2 ODBC-minute PIC  9(4) USAGE COMP.
 L2 ODBC-second PIC  9(4) USAGE COMP.
 L2 ODBC-fraction PIC 9(9) USAGE COMP.
(凡例)

Ln:レベル番号01〜49,または77

L1:レベル番号01〜48

L2:レベル番号02〜49(ただし,L1<L2)

max:最大データ長

ODBC-xxx:任意のデータ名

データ名:SQL文中で指定する埋め込み変数名

上表以外のSQLデータ型には対応していません。

注※

1バイト2進項目は,COMP-X項目で定義するか,コンパイル時に-Bin1Byteオプションを指定する必要があります。1バイト2進項目の詳細については,マニュアル「COBOL2002 言語 拡張仕様編」 「25.6.1 1バイト2進機能」を参照してください。