4.3.4 データ型の対応の設計

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

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

データ型データ形式,データ長文字コード変換の可否
INTEGERHiRDBのデータ形式,データ長と同じ×
SMALLINT×
DECIMAL×
LARGE DECIMAL×
FLOAT×
SMALLFLT×
CHAR
VARCHAR
LONG VARCHARVARCHARとして認識
NCHARHiRDBのデータ形式,データ長と同じ
NVARCHAR
LONG NVARCHARNVARCHARとして認識
MCHARHiRDBのデータ形式,データ長と同じ
MVARCHAR
LONG MVARCHARMVARCHARとして認識
DATEHiRDBのデータ形式,データ長と同じ×
TIME×
TIMESTAMP×
INTERVAL YEAR TO DATE×
INTERVAL HOUR TO SECOND×
SGMLTEXT
FREEWORD
XML×
BLOB×
BINARY×
繰返し列×
(凡例)
○:文字コード変換できます。
×:文字コード変換できません。
 

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

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

<この項の構成>
(1) 抽出側DBがHiRDBの場合のデータ型の対応
(2) 抽出側DBがXDM/SD E2の場合のデータ型の対応
(3) 抽出側DBがXDM/RD E2の場合のデータ型の対応
(4) 抽出側DBがADMの場合のデータ型の対応
(5) 抽出側DBがPDMII E2の場合のデータ型の対応
(6) 抽出側DBがTMS-4V/SPの場合のデータ型の対応
(7) 抽出側DBがRDB1 E2の場合のデータ型の対応

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

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

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

抽出対象表のデータ型反映対象表のデータ型
INTEGERINTEGER
SMALLINTSMALLINT
DECIMALDECIMAL
LARGE DECIMALLARGE DECIMAL
FLOATFLOAT
SMALLFLTSMALLFLT1
CHARCHAR又はMCHAR
VARCHARVARCHAR又はMVARCHAR
NCHARNCHAR
NVARCHARNVARCHAR
MCHARCHAR 又は MCHAR
MVARCHARVARCHAR 又は MVARCHAR
DATEDATE
TIMETIME
TIMESTAMPTIMESTAMP
INTERVAL YEAR TO DAYINTERVAL YEAR TO DAY
INTERVAL HOUR TO SECONDINTERVAL HOUR TO SECOND
SGMLTEXT2SGMLTEXT2
FREEWORDFREEWORD
XMLXML
BLOB2BLOB2
BINARYBINARY
  • 反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。
  • 繰返し列を指定できます。ただし,繰返し列の要素単位では抽出できません。
注※1
データ連動できますが,概数のため丸め誤差が発生します。
注※2
データ連動する場合は,HiRDBの表定義のRECOVERYオペランドにALLを指定してください。HiRDBの表定義については,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。

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

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

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

抽出対象のデータ1反映対象表のデータ型
データ属性データの長さ
CHAR(n)1≦n≦30000CHAR(n)
CHAR(n)n>30000VARCHAR(n) 3
NCHAR(n)1≦n≦15000NCHAR(n)
NCHAR(n)n>15000NVARCHAR(n) 3
PACK(m,n)DECIMAL(m+n,n) 4
UNPACK(m,n)2DECIMAL(m+n,n) 4
COMP(m,n)1≦m≦4,n=0SMALLINT
COMP(m,n)5≦m≦9,n=0INTEGER
COMP(m,n)m=0又はm>10又はn≠0DECIMAL(29,n)6
BINARY(m,n)1≦m≦15,n=0SMALLINT
BINARY(m,n)16≦m≦31,n=0INTEGER
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の場合の抽出対象表と反映対象表のデータ型の対応

抽出対象表のデータ型反映対象表のデータ型
INTEGERINTEGER
SMALLINTSMALLINT
DECIMALDECIMAL
LARGE DECIMALLARGE DECIMAL
FLOATFLOAT
SMALLFLTSMALLFLT1
CHARCHAR 又は MCHAR
VARCHARVARCHAR
LONG VARCHAR
NCHARNCHAR
NVARCHARNVARCHAR
LONG NVARCHAR
MCHARCHAR又はMCHAR
MVARCHARVARCHAR又はMVARCHAR
LONG MVARCHAR
DATEDATE
TIME※3TIME
INTERVAL YEAR TO DAYINTERVAL YEAR TO DAY
INTERVAL HOUR TO SECOND※3INTERVAL HOUR TO SECOND
BLOB2BLOB2
  • 反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。
  • 繰返し列と配列列は指定できません。
注※1
データ連動できますが,概数のため丸め誤差が発生します。
注※2
BLOB型の列をデータ連動する場合は,HiRDBの表定義のRECOVERYオペランドにALLを指定してください。HiRDBの表定義については,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。
注※3
小数部を指定した列はデータ連動できません。

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

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

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

ADMでのデータ型Datareplicatorでのデータ型反映対象表のデータ型
CnCHAR(n)CHAR(n)
XnCHAR(n)CHAR(n)
Pn  n≦15PACK(2n-1,0)DECIMAL(2n-1,0)
  n>15CHAR(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≦30000CHAR(n)
NCHAR(n)n≦15000NCHAR(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=0SMALLINT
5≦m≦9,n=0INTEGER
m=0又はm>10又はn!=0DECIMAL(29,n)
BINARY(m,n)1≦m≦15,n=0SMALLINT
16≦m≦31,n=0INTEGER
上記以外FLOAT
FLOAT(n)n=4,8FLOAT
反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。
注※
XDM/DSで扱えるDECIMAL型の精度の最大値は29になります。

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

PDMII E2のフィールド属性データの長さ反映対象表のデータ型
X(n)n<=30000CHAR(n)
P(m,n),AP(m,n)n>0,2m-1>nDECIMAL(2m-1,n)
n>0,2m-1<=nDECIMAL(n,n)
n<=0DECIMAL(2m-1-n,0)
Z(m,n),AZ(m,n)n>0,m>nDECIMAL(m,n)
n>0,m<=nDECIMAL(n,n)
n<=0DECIMAL(m-n,0)
B(m,n),AB(m,n)n>0,2.5m>nDECIMAL(2.5m,n)
n>0,2.5m<=nDECIMAL(n,n)
n<=0DECIMAL(2.5m-n,0)
F(n)n=4,8FLOAT
N(n)n<=30000NCHAR(↑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の場合の抽出対象表と反映対象表のデータ型の対応

抽出対象表のデータ型反映対象表のデータ型
INTEGERINTEGER
SMALLINTSMALLINT
DECIMALDECIMAL
FLOATFLOAT
SMALLFLTSMALLFLT
CHARCHAR 又は MCHAR
VARCHARVARCHAR
LONG VARCHAR
NCHARNCHAR
NVARCHARNVARCHAR
(凡例)
-:反映の対象にできません。
  • 反映対象表の列よりも長いデータや,数値がオーバフローするデータを反映しようとすると,反映側HiRDBでエラーになります。
  • 繰返し列は指定できません。
注※
データ連動できますが,概数のために丸め誤差が発生します。