FUJITSU Linkexpress Replication option説明書
目次 索引 前ページ次ページ

第6章 コマンドリファレンス> 6.20 lxrpocreコマンド> 6.20.5 DATATYPEの指定値について

6.20.5.2 DATATYPEの指定の判断方法

DATATYPEの指定は、複写元データベースであるOracleデータ属性、扱うデータおよび複写先データベースのデータ属性により決定します。

DATATYPEの指定値はSymfoware/RDBの属性に合わせた指定値です。その判断方法は、基本的には複写先データベースであるSymfoware/RDBのデータ属性に合わせます。ただしOracleとSymfoware/RDBで扱えるデータの範囲が異なるため、実際に扱うデータの範囲を考慮して決定する必要があります。指定したDATATYPEで扱えるデータの範囲を超えたデータが発生した場合は、複写元データベースと複写先データベースのデータの整合性が保証されません。

DATATYPEの指定方の目安を下表に示します。

Oracleの項目
属性

DATATYPEの
指定

判断の目安

備考

CHARACTER(size)

CHAR(n)

複写先項目が
CHARACTERの場合

n=size

VARCHAR(size)
VARCHAR2(size)

VCHAR(n)

複写先項目が
CHARACTER VARYINGの場合

n=size

NCHAR(size)

NCHAR(n)

複写先項目が
NATIONAL CHARACTERの場合(各国語文字だけの場合)
(注)

バイト単位の場合
n=size/2
文字数単位の場合
n=size

CHAR(n)

複写先項目が
CHARACTERの場合(各国語文字とASCII系文字が混在する場合)
(注)

バイト単位の場合
n=size
文字数単位の場合
n=size*2

NVARCHAR2(size)

NVCHAR(n)

複写先項目が
NATIONAL CHARACTER VARYINGの場合(各国語文字だけの場合)

バイト単位の場合
n=size/2
文字数単位の場合
n=size

VCHAR(n)

複写先項目が
CHARACTER VARYINGの場合(各国語文字とASCII系文字が混在する場合)

バイト単位の場合
n=size
文字数単位の場合
n=size*2

NUMBER(p,0)
p:1〜4

INT

複写先項目が
INTEGERの場合

INTEGERの範囲だけが可能

SINT

複写先項目が
SMALLINTの場合

SMALLINTの範囲だけが可能

NUMBER(p,0)
p:1〜9

INT

複写先項目が
INTEGERの場合

INTEGERの範囲だけが可能

NUMBER(p,q)
p:1〜18
q:0<=q<=p

NUMERIC(p,q)

複写先項目が
NUMERIC(p,q)の場合

DATATYPEの精度・位取りを複写先の項目と同じにする。扱える範囲はその精度・位取りの範囲だけが可能

DECIMAL(p,q)

複写先項目が
DECIMAL(p,q)の場合

NUMBER(p,q)
p:19〜38
q:0<=q<=p

DOUBLE

複写先項目が
DOUBLE PRECISIONの場合

格納時に正規化された値(近似値)に変更される場合がある。

NUMBER(p,q)
p:1〜18
q:p<q<=18

NUMERIC(q,q)

複写先項目が
NUMERIC(p,q)の場合

位取り値が精度より大きい場合、位取り値を精度とする。
例:
Oracle:
NUMBER(3,7)
値[.0000123]
Symfoware/RDB:
DECIMAL(7,7)
値[.0000123]

DECIMAL(q,q)

複写先項目が
DECIMAL(p,q)の場合

NUMBER(p,q)
p:1〜38
q:p<qかつq>18

DOUBLE

複写先項目が
DOUBLE PRECISIONの場合

正規化された値(近似値)に変更される場合がある。
近似値にならない例:
Oracle:
NUMBER(3,19)
値[.0〜0123]
(小数点以下19けた)
Symfoware/RDB:
DOUBLE PRECISION
値[.0〜0123]
(小数点以下19けた)

NUMBER(p,q)
p:1〜18
q:-p<q<0

NUMERIC(p,0)

複写先項目が
NUMERIC(p,0)の場合

例:
Oracle:
NUMBER(7,-2)
値[1234500]
Symfoware/RDB:
DECIMAL(7,0)
値[1234500]

DECIMAL(p,0)

複写先項目が
DECIMAL(p,0)の場合

NUMBER(p,q)
p:19〜38
q:-p<q<0

DOUBLE

複写先項目が
DOUBLE PRECISIONの場合

格納時に正規化された値(近似値)に変更される場合がある。

FLOAT(p)
p:1〜23

FLOAT(p)

複写先項目が
FLOAT(p)の場合

格納時に正規化された値(近似値)に変更される場合がある。

REAL

複写先項目が
REALの場合

DOUBLE

複写先項目が
DOUBLE PRECISIONの場合

FLOAT(p)
p:24〜52

FLOAT(p)

複写先項目が
FLOAT(p)の場合

格納時に正規化された値(近似値)に変更される場合がある。

DOUBLE

複写先項目が
DOUBLE PRECISIONの場合

DATE

DATE

複写先項目が
DATEの場合

複写先で日付部分だけが必要な場合
0001/01/01〜
9999/12/31以外は不可

TIME

複写先項目が
TIMEの場合

複写先で時間部分だけが必要な場合

TIMESTAMP

複写先項目が
TIMESTAMPの場合

日付部分が
0001/01/01〜
9999/12/31以外は不可

注)複写元データベースが、Oracle8iであり、更新するデータの長さがDATATYPEに指定した属性の長さを満たさない場合、属性の長さまでの残りスペースは、全角の空白でパディングした差分ログを取得します。
複写元データベースが、Oracle9iまたはOracle10gであり、更新するデータの長さがDATATYPEに指定した属性の長さを満たさない場合、属性の文字数までの残りスペースは、以下のDATATYPEに指定した属性に従い差分ログを取得します。
DATATYPEがNCHARの場合、全角の空白でパディングします。
DATATYPEがCHARの場合、半角の空白でパディングします。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 1998-2005