アプリケーション開発の手引き


COBOL でサポートされる SQL データ・タイプ

特定の定義済み 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)



1<=n<=2 147 483 647

ラージ・オブジェクト可変長 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 バイトの文字ストリング
注:以下のデータ・タイプは、DBCS 環境でのみ使用可能です。

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)



1<=n<=1 073 741 823

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 データを含むファイルの記述子
注:
  1. SQL 列タイプの下の最初の数字は標識変数が提供されないことを示し、 2 番目の数字は標識変数が提供されることを示します。標識変数は、ヌル値を示したり、切り捨てられたストリングの長さを保留するのに必要です。これらは、これらのデータ・タイプの SQLDA の SQLTYPE フィールドに示される値です。
  2. FLOAT(n) ここで 0 < n < 25 の場合、REAL と同義。 SQLDA での REAL と DOUBLE の違いは長さの値です (4 または 8)。
  3. 次の SQL タイプは、DOUBLE と同義語。
    • FLOAT
    • FLOAT(n)。ここで、n の取る範囲は 24 < n < 54。
    • DOUBLE PRECISION
  4. これは列タイプではなく、ホスト変数タイプである。

サポートされている 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 データ・タイプのその他の規則を示します。

COBOL での FOR BIT DATA

一定のデータベース列には FOR BIT DATA を宣言できます。通常は文字を含むこれらの列は、2 進情報を保持するために使用されます。 2 進データを含めることのできる COBOL ホスト変数のタイプは、 CHAR(n)、VARCHAR、 LONG VARCHAR、および BLOB データ・タイプです。これらのデータ・タイプは、FOR BIT DATA 属性を用いて処理を行う場合に使用してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]