特定の定義済み COBOL のデータ・タイプは、列のタイプに対応しています。ホスト変数として宣言できるのは、これらの COBOL データ・タイプのみです。
表 33 は、それぞれの列タイプに対応する COBOL データ・タイプを示します。プリコンパイラーはホスト変数宣言を検出すると、該当する SQL データ・タイプの値を判別します。データベース・マネージャーはこの値を使用して、アプリケーションとの間でやりとりするデータを変換します。
ホスト変数で使用できるデータ記述すべてが認識されるわけではありません。 COBOL データ項目は、次の表に説明されているデータ項目と一致しなければなりません。他のデータ項目を使用すると、エラーが発生します。
注: | DB2 ホスト言語で、DATALINK データ・タイプをサポートするホスト変数はありません。 |
表 33. COBOL 宣言にマップされた SQL データ・タイプ
SQL 列タイプ1 | COBOL データ・タイプ | SQL 列タイプ記述 | ||
---|---|---|---|---|
SMALLINT (500 または 501) | 01 name PIC S9(4) COMP-5 | 16 ビットの符号付き整数 | ||
INTEGER (496 または 497) | 01 name PIC S9(9) COMP-5 | 32 ビットの符号付き整数 | ||
BIGINT (492 または 493) | 01 name PIC S9(18) COMP-5 | 64 ビットの符号付き整数 | ||
DECIMAL(p,s) (484 または 485) | 01 name PIC S9(m)V9(n) COMP-3 | パック 10 進数 | ||
REAL2 (480 または 481) | 01 name USAGE IS COMP-1 | 単精度浮動小数点 | ||
DOUBLE3 (480 または 481) | 01 name USAGE IS COMP-2 | 倍精度浮動小数点 | ||
CHAR(n) (452 または 453) | 01 name PIC X(n) | 固定長文字ストリング | ||
VARCHAR(n) (448 または 449) |
01 name 49 length PIC S9(4) COMP-5. 49 name PIC X(n) 1<=n<=32 672 | 可変長文字ストリング | ||
LONG VARCHAR (456 または 457) |
01 name 49 length PIC S9(4) COMP-5. 49 data PIC X(n) 32 673<=n<=32 700 | long 可変長文字ストリング | ||
CLOB(n) (408 または 409) |
01 MY-CLOB USAGE IS SQL TYPE IS CLOB(n) 1<=n<=2 147 483 647 | ラージ・オブジェクト可変長文字ストリング | ||
CLOB ロケーター変数4 (964 または 965) | 01 MY-CLOB-LOCATOR USAGE IS SQL TYPE IS CLOB-LOCATOR. | サーバー上の CLOB 実体を識別する | ||
CLOB ファイル参照変数4 (920 または 921) | 01 MY-CLOB-FILE USAGE IS SQL TYPE IS CLOB-FILE. | CLOB データを含むファイルの記述子 | ||
BLOB(n) (404 または 405) | 01 MY-BLOB USAGE IS SQL TYPE IS BLOB(n)
| ラージ・オブジェクト可変長 2 進ストリング | ||
BLOB ロケーター変数4 (960 または 961) | 01 MY-BLOB-LOCATOR USAGE IS SQL TYPE IS BLOB-LOCATOR. | サーバー上の BLOB 実体を識別する。 | ||
BLOB ファイル参照変数4 (916 または 917) | 01 MY-CLOB-FILE USAGE IS SQL TYPE IS CLOB-FILE. | CLOB データを含むファイルの記述子 | ||
DATE (384 または 385) | 01 identifier PIC X(10) | 10 バイトの文字ストリング | ||
TIME (388 または 389) | 01 identifier PIC X(8) | 8 バイトの文字ストリング | ||
TIMESTAMP (392 または 393) | 01 identifier PIC X(26) | 26 バイトの文字ストリング | ||
| ||||
GRAPHIC(n) (468 または 469) | 01 name PIC G(n) DISPLAY-1 | 固定長 2 バイト文字ストリング | ||
VARGRAPHIC(n) (464 または 465) |
01 name 49 length PIC S9(4) COMP-5. 49 name PIC G(n) DISPLAY-1 1<=n<=16 336 | 2 バイトのストリング長標識を持つ、可変長 2 バイト文字ストリング | ||
LONG VARGRAPHIC (472 または 473) |
01 name 49 length PIC S9(4) COMP-5. 49 name PIC G(n) DISPLAY-1 16 337<=n<=16 350 | 2 バイトのストリング長標識を持つ、可変長 2 バイト文字ストリング | ||
DBCLOB(n) (412 または 413) | 01 MY-DBCLOB USAGE IS SQL TYPE IS DBCLOB(n)
| 4 バイトのストリング長標識を持つラージ・オブジェクト可変長の 2 バイト文字ストリング。 | ||
DBCLOB ロケーター変数4 (968 または 969) | 01 MY-DBCLOB-LOCATOR USAGE IS SQL TYPE IS DBCLOB-LOCATOR. | サーバー上の DBCLOB 実体を識別する | ||
DBCLOB ファイル参照変数4 (924 または 925) | 01 MY-DBCLOB-FILE USAGE IS SQL TYPE IS DBCLOB-FILE. | DBCLOB データを含むファイルの記述子 | ||
サポートされている SQL データ・タイプそれぞれについて宣言されたホスト変数を含んだ、 SQL 宣言のサンプルを次に示します。
EXEC SQL BEGIN DECLARE SECTION END-EXEC. * 01 age PIC S9(4) COMP-5. 01 divis PIC S9(9) COMP-5. 01 salary PIC S9(6)V9(3) COMP-3. 01 bonus USAGE IS COMP-1. 01 wage USAGE IS COMP-2. 01 nm PIC X(5). 01 varchar. 49 leng PIC S9(4) COMP-5. 49 strg PIC X(14). 01 longvchar. 49 len PIC S9(4) COMP-5. 49 str PIC X(6027). 01 MY-CLOB USAGE IS SQL TYPE IS CLOB(1M). 01 MY-CLOB-LOCATOR USAGE IS SQL TYPE IS CLOB-LOCATOR. 01 MY-CLOB-FILE USAGE IS SQL TYPE IS CLOB-FILE. 01 MY-BLOB USAGE IS SQL TYPE IS BLOB(1M). 01 MY-BLOB-LOCATOR USAGE IS SQL TYPE IS BLOB-LOCATOR. 01 MY-BLOB-FILE USAGE IS SQL TYPE IS BLOB-FILE. 01 MY-DBCLOB USAGE IS SQL TYPE IS DBCLOB(1M). 01 MY-DBCLOB-LOCATOR USAGE IS SQL TYPE IS DBCLOB-LOCATOR. 01 MY-DBCLOB-FILE USAGE IS SQL TYPE IS DBCLOB-FILE. 01 MY-PICTURE PIC G(16000) USAGE IS DISPLAY-1. 01 dt PIC X(10). 01 tm PIC X(8). 01 tmstmp PIC X(26). 01 wage-ind PIC S9(4) COMP-5. * EXEC SQL END DECLARE SECTION END-EXEC.
以下に、サポートされる COBOL データ・タイプのその他の規則を示します。
01 identifier PIC S9(m)V9(n) COMP-3
01 identifier PIC S9(3)V COMP-3 01 identifier PIC SV9(3) COMP-3 01 identifier PIC S9V COMP-3 01 identifier PIC SV9 COMP-3
一定のデータベース列には FOR BIT DATA を宣言できます。通常は文字を含むこれらの列は、2 進情報を保持するために使用されます。 2 進データを含めることのできる COBOL ホスト変数のタイプは、 CHAR(n)、VARCHAR、 LONG VARCHAR、および BLOB データ・タイプです。これらのデータ・タイプは、FOR BIT DATA 属性を用いて処理を行う場合に使用してください。