ご使用のブラウザはJavaScriptをサポートしていません。このヘルプ・ページを正しく表示するにはJavaScriptが必要です。 COBOLデータ構造のリレーショナル・データ構造としての再解釈
ヘッダーをスキップ
前へ
前へ
 
次へ
次へ

COBOLデータ構造のリレーショナル・データ構造としての再解釈

COBOLファイルをリレーショナル・データベースにインポートする場合、データをリレーショナル・データベースにマップする方法を検討しておく必要があります。

レコード

各レコード・タイプの最上位レベルであるレベル01構造は、表にマッピングされるものとみなされています。多くの場合、ファイル内のレコードは独立した情報ソースとして設計されています。これがファイルと表の間の大きな違いです。一般的に、表は密接に関連しあう情報を格納するために設計されています。ファイル内のレコードについて考える場合、その情報について複数の表を定義したほうがよいかどうかを検討する必要があります。多くの場合、独立型である表に使用するのは、関連しあう情報を編成するためのグループが適しています。たとえば、アドレス情報用に定義したグループは、名前と住所からなる表に自然に適合します。同様に、配列も、可変長または固定長を問わず、独立型である表に適合していることがよくあります。

配列

Warehouse Builderは、配列を定義するために、配列内の各要素を個別に指定して配列を正規化します。この技法は、可変長配列の定義にも使用されます。SQL*Loaderを使用してすべての可変長配列をロードすることはできません。可変長配列がレコード末尾にある場合は、SQL*Loaderでロードできます。埋め込まれた可変長配列のあるレコードは、物理的に可変として格納されるとはかぎりません。そこで、この技法を使用してこれらのレコードもロードできます。詳細は、「例: 単一のレコード・タイプの可変長配列コピーブックのインポート」を参照してください。

COBOLデータ型のSQLデータ型へのマッピング

USAGE句とPICTURE句は、データ要素の形式と文字を定義するために使用します。PICTURE句とUSAGE句を両方使用して、スカラー・データ型、長さ、精度およびスケールを指定します。「表: COBOLデータ型および同等のSQL*Loaderデータ型」には、COBOLファイルに適用されるデータ要素定義が示されています。各データ型の表記、およびそのデータ型のSQL*Loaderデータ型定義へのマッピング方法が記載されています。PICTUREは、データを記述するマスクを表します。カッコ内の値は、直前のPICTURE要素の繰返し回数です。したがって、X(n)でn = 5の場合は、X型(英数字)の文字が5つあることを示します。

COBOLデータ型および同等のSQL*Loaderデータ型

COBOLデータ型 SQL*Loaderデータ型 説明

X(n)

  • CHAR(n)

  • データに有効な日付が含まれているときはDATE(n)でマスクされます

  • TIME

  • TIMESTAMP

  • INTERVAL

英数字データ。各Xは、指定したキャラクタ・セットで使用可能な1文字を表します。

A(n)

CHAR(n)

アルファベットのデータ。各Aは、アルファベットまたは空白の任意の文字を表します。

9(n)

  • INTEGER EXTERNAL(n)

  • DECIMAL EXTERNAL(n)

  • ZONED EXTERNAL(n)

  • データに有効な日付が含まれているときはDATE(n)でマスクされます

数値データ。各9は、1桁を表します。

+- mantissa +- exponent

FLOAT EXTERNAL (length)

外部浮動小数点データ。

S9(n)v9(m) SIGN TRAILING

ZONED(precision, scale)、precision = n+m、scale = m

数値データ。各9は、1桁を表します。vは、暗黙の小数点位置を表します。符号は、最後のバイトで保持されます。

9(n)v9(m)

ZONED(precision, scale)、precision = n+m、scale = m

数値データ。各9は、1桁を表します。vは、暗黙の小数点位置を表します。

9(n)v9(m)

S9(n)v9(m)

SMALLINT

INTEGER(length 2、4または8)

SIGNED|を使用する場合もあります

UNSIGNED

BYTEORDER句が必要な場合もあります

式で処理されたスケール

2を基数とする内部形式のデータ。

フィールドのサイズは値mで変わります。

n+m = 1-4、length = 2

n+m = 5-9、length = 4

n+m = 10-18、length =8

使用不可

FLOAT

BYTEORDER句が必要な場合もあります。

単精度浮動小数点数、4バイト長

使用不可

DOUBLE

BYTEORDER句が必要な場合もあります。

倍精度浮動小数点数、8バイト長

9(n)v9(m)

S9(n)v9(m)

DECIMAL (precision, scale)、precision = n+m、scale = m

10を基数とする内部形式の数値データ。この句は、各桁が最小記憶領域を使用する必要があることを示します。一般に、各バイトは2桁から構成され、最後の半バイトに符号が格納されます。

X(n)

9(n)v9(m)

S9(n)v9(m)

通常は使用されません

データの内部形式は未定義です。多くの場合、BINARYと同じように格納されますが、基数は反転することがあります。

G(n)

GRAPHIC(n)

シフトインおよびシフトアウト文字を含まないグラフィック・データ

05 V

49 V-LN PIC S9(4)

COMP

05 V-DATA PIC X(n)

VARCHAR(max length)は、SMALLINTのサイズが同じシステム間でのみ正しくロードできます

可変長文字フィールド

05 V

49 V-LN PIC S9(4)

COMP

05 V-DATA PIC G(n)

VARGRAPHIC(max length)は、SMALLINTのサイズが同じシステム間でのみ正しくロードできます。

シフトインおよびシフトアウト文字を含まない可変長グラフィック・データ