Hitachi

HiRDB データ連動機能 HiRDB Datareplicator Version 10


4.3.4 データ型の対応の設計

表のデータ型とDatareplicatorで反映するデータ形式の関係を次の表に示します。

表4‒7 表のデータ型とDatareplicatorで反映するデータ形式の関係

データ型

データ形式,データ長

文字コード変換の可否

INTEGER

HiRDBのデータ形式,データ長と同じ

×

SMALLINT

×

DECIMAL

×

LARGE DECIMAL

×

FLOAT

×

SMALLFLT

×

CHAR

VARCHAR

LONG VARCHAR

VARCHARとして認識

NCHAR

HiRDBのデータ形式,データ長と同じ

NVARCHAR

LONG NVARCHAR

NVARCHARとして認識

MCHAR

HiRDBのデータ形式,データ長と同じ

MVARCHAR

LONG MVARCHAR

MVARCHARとして認識

DATE

HiRDBのデータ形式,データ長と同じ

×

TIME

×

TIMESTAMP

×

INTERVAL YEAR TO DATE

×

INTERVAL HOUR TO SECOND

×

SGMLTEXT

FREEWORD

XML

×

BLOB

×

BINARY

×

繰返し列

×

(凡例)

○:文字コード変換できます。

×:文字コード変換できません。

抽出側DBによって,抽出側と反映側とでデータ型が異なることがあります。このため,反映対象表の作成時には,抽出対象表と反映対象表のデータ型を対応させる必要があります。データ型が対応していないと,反映処理がエラーになります。

データ型の対応について,抽出側DBごとに説明します。

〈この項の構成〉

(1) 抽出側DBがHiRDBの場合のデータ型の対応

抽出側DBがHiRDBの場合の,抽出対象表と反映対象表のデータ型の対応を次の表に示します。

表4‒8 HiRDBの場合の抽出対象表と反映対象表のデータ型の対応

抽出対象表のデータ型

反映対象表のデータ型

INTEGER

INTEGER

SMALLINT

SMALLINT

DECIMAL

DECIMAL

LARGE DECIMAL

LARGE DECIMAL

FLOAT

FLOAT

SMALLFLT

SMALLFLT※1

CHAR

CHAR又はMCHAR

VARCHAR

VARCHAR又はMVARCHAR

NCHAR

NCHAR

NVARCHAR

NVARCHAR

MCHAR

CHAR 又は MCHAR

MVARCHAR

VARCHAR 又は MVARCHAR

DATE

DATE

TIME

TIME

TIMESTAMP

TIMESTAMP

INTERVAL YEAR TO DAY

INTERVAL YEAR TO DAY

INTERVAL HOUR TO SECOND

INTERVAL HOUR TO SECOND

SGMLTEXT※2

SGMLTEXT※2

FREEWORD

FREEWORD

XML

XML

BLOB※2

BLOB※2

BINARY

BINARY

  • 反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。

  • 繰返し列を指定できます。ただし,繰返し列の要素単位では抽出できません。

注※1

データ連動できますが,概数のため丸め誤差が発生します。

注※2

データ連動する場合は,HiRDBの表定義のRECOVERYオペランドにALLを指定してください。HiRDBの表定義については,マニュアル「HiRDB SQLリファレンス」を参照してください。

(2) 抽出側DBがXDM/SD E2の場合のデータ型の対応

抽出側DBがXDM/SD E2の場合の,抽出対象のデータと反映対象表のデータ型の対応を次の表に示します。

表4‒9 XDM/SD E2の場合の抽出対象のデータと反映対象表のデータ型の対応

抽出対象のデータ※1

反映対象表のデータ型

データ属性

データの長さ

CHAR(n)

1≦n≦30000

CHAR(n)

CHAR(n)

n>30000

VARCHAR(n) ※3

NCHAR(n)

1≦n≦15000

NCHAR(n)

NCHAR(n)

n>15000

NVARCHAR(n) ※3

PACK(m,n)

DECIMAL(m+n,n) ※4

UNPACK(m,n)※2

DECIMAL(m+n,n) ※4

COMP(m,n)

1≦m≦4,n=0

SMALLINT

COMP(m,n)

5≦m≦9,n=0

INTEGER

COMP(m,n)

m=0又はm>10又はn≠0

DECIMAL(29,n)※6

BINARY(m,n)

1≦m≦15,n=0

SMALLINT

BINARY(m,n)

16≦m≦31,n=0

INTEGER

BINARY(m,n)

m=0又はm>32

又はn≠0

DECIMAL(29,n) ※5

(凡例)

−:該当しません。

反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。

注※1

XDM/DSでRESTRUCT文を指定している場合は,RESTRUCT文で定義した属性と長さになります。

注※2

UNPACK型のデータ変換で,次の条件のどれかを満たすとエラーになります。

  • ゾーン部の値が (F)16以外の場合

  • 符号部の値が (F)16,(C)16,(D)16以外の場合

  • 数値部の値が (0)16以上 (9)16以下 以外の場合

エラーになると,エラーメッセージと未反映情報が出力されて,エラーになった反映グループの反映処理が停止します。UOCを使った反映処理では,UNPACK型のデータ変換をしないで,抽出データをそのままUNPACK型データとしてUOCに渡し,反映処理を続行します。

注※3

空白サプレスはしません。

注※4

符号の正規化はしません。

注※5

BINARY型は,小数部けた数が0以外のときには,DECIMAL型に変換されます。そのとき,XDM/DSで扱えるDECIMAL型の精度の最大値は29のため,小数点以下30けた以降は切り捨てられます。

注※6

XDM/DSで扱えるDECIMAL型の精度の最大値は29になります。

(3) 抽出側DBがXDM/RD E2の場合のデータ型の対応

抽出側DBがXDM/RD E2の場合の,抽出対象表と反映対象表のデータ型の対応を次の表に示します。

表4‒10 XDM/RD E2の場合の抽出対象表と反映対象表のデータ型の対応

抽出対象表のデータ型

反映対象表のデータ型

INTEGER

INTEGER

SMALLINT

SMALLINT

DECIMAL

DECIMAL

LARGE DECIMAL

LARGE DECIMAL

FLOAT

FLOAT

SMALLFLT

SMALLFLT※1

CHAR

CHAR 又は MCHAR

VARCHAR

VARCHAR

LONG VARCHAR

NCHAR

NCHAR

NVARCHAR

NVARCHAR

LONG NVARCHAR

MCHAR

CHAR又はMCHAR

MVARCHAR

VARCHAR又はMVARCHAR

LONG MVARCHAR

DATE

DATE

TIME※3

TIME

INTERVAL YEAR TO DAY

INTERVAL YEAR TO DAY

INTERVAL HOUR TO SECOND※3

INTERVAL HOUR TO SECOND

BLOB※2

BLOB※2

  • 反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。

  • 繰返し列と配列列は指定できません。

注※1

データ連動できますが,概数のため丸め誤差が発生します。

注※2

BLOB型の列をデータ連動する場合は,HiRDBの表定義のRECOVERYオペランドにALLを指定してください。HiRDBの表定義については,マニュアル「HiRDB SQLリファレンス」を参照してください。

注※3

小数部を指定した列はデータ連動できません。

(4) 抽出側DBがADMの場合のデータ型の対応

抽出側DBがADMの場合の,抽出対象のデータと反映対象表のデータ型の対応を次の表に示します。

表4‒11 ADMの場合の抽出対象のデータと反映対象表のデータ型の対応

ADMでのデータ型

Datareplicatorでのデータ型

反映対象表のデータ型

Cn

CHAR(n)

CHAR(n)

Xn

CHAR(n)

CHAR(n)

Pn

  n≦15

PACK(2n−1,0)

DECIMAL(2n−1,0)

  n>15

CHAR(n)

CHAR(n)

注1

反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。

注2

XDM/DSのRESTRUCT文でADMのデータ型をUNPACK属性とした場合に,抽出された更新情報に次に示すデータが含まれるときは,反映処理が停止します。

  • ゾーン部の値が,(F)16以外の場合

  • 符号部の値が (F)16,(C)16,(D)16以外の場合

  • 数値部の値が (0)16以上 (9)16以下 以外の場合

エラーになると,エラーメッセージと未反映情報が出力されて,エラーになった反映グループの反映処理が停止します。UOCを使った反映処理では,UNPACK型のデータ変換をしないで,抽出データをそのままUNPACK型データとしてUOCに渡し,反映処理を続行します。

(5) 抽出側DBがPDMII E2の場合のデータ型の対応

抽出側DBがPDMII E2の場合の,抽出再定義フィールドと反映対象表のデータ型の対応を表4-12に,PDMII E2のフィールド属性と反映対象表のデータ型の対応を表4-13に示します。

表4‒12 抽出再定義フィールドと反映対象表のデータ型の対応

抽出再定義文のフィールド属性

データの長さ

反映対象表のデータ型

CHAR(n)

n≦30000

CHAR(n)

NCHAR(n)

n≦15000

NCHAR(n)

PACK(m,n)

DECIMAL(m+n,n)

PACKNS(m,n)

DECIMAL(m+n,n)

UNPACK(m,n)

DECIMAL(m+n,n)

UNPACKNS(m,n)

DECIMAL(m+n,n)

COMP(m,n)

1≦m≦4,n=0

SMALLINT

5≦m≦9,n=0

INTEGER

m=0又はm>10又はn!=0

DECIMAL(29,n)

BINARY(m,n)

1≦m≦15,n=0

SMALLINT

16≦m≦31,n=0

INTEGER

上記以外

FLOAT

FLOAT(n)

n=4,8

FLOAT

反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。

注※

XDM/DSで扱えるDECIMAL型の精度の最大値は29になります。

表4‒13 PDMII E2のフィールド属性と反映対象表のデータ型の対応

PDMII E2のフィールド属性

データの長さ

反映対象表のデータ型

X(n)

n<=30000

CHAR(n)

P(m,n),AP(m,n)

n>0,2m−1>n

DECIMAL(2m−1,n)

n>0,2m−1<=n

DECIMAL(n,n)

n<=0

DECIMAL(2m−1−n,0)

Z(m,n),AZ(m,n)

n>0,m>n

DECIMAL(m,n)

n>0,m<=n

DECIMAL(n,n)

n<=0

DECIMAL(m−n,0)

B(m,n),AB(m,n)

n>0,2.5m>n

DECIMAL(2.5m,n)

n>0,2.5m<=n

DECIMAL(n,n)

n<=0

DECIMAL(2.5m−n,0)

F(n)

n=4,8

FLOAT

N(n)

n<=30000

NCHAR(↑n÷2↑)

反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。

(6) 抽出側DBがTMS-4V/SPの場合のデータ型の対応

抽出側DBがTMS-4V/SPの場合は,TMS-4V/SP/データ連携支援のユーザオウンコーディング(UOC)でデータ型を設定します。抽出側DBがTMS-4V/SPの場合のデータ型については,マニュアル「VOS3 TMS-4V/SP データ連携支援機能 TMS-4V/SP/データ連携支援」を参照してください。

(7) 抽出側DBがRDB1 E2の場合のデータ型の対応

抽出側DBがRDB1 E2の場合の,抽出対象表と反映対象表のデータ型の対応を次の表に示します。

表4‒14 RDB1 E2の場合の抽出対象表と反映対象表のデータ型の対応

抽出対象表のデータ型

反映対象表のデータ型

INTEGER

INTEGER

SMALLINT

SMALLINT

DECIMAL

DECIMAL

FLOAT

FLOAT

SMALLFLT

SMALLFLT

CHAR

CHAR 又は MCHAR

VARCHAR

VARCHAR

LONG VARCHAR

NCHAR

NCHAR

NVARCHAR

NVARCHAR

(凡例)

−:反映の対象にできません。

  • 反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。

  • 繰返し列は指定できません。

注※

データ連動できますが,概数のために丸め誤差が発生します。