3.1.4 データ型の変換
抽出側DBから抽出された更新データのデータ型は,抽出側Datareplicator Extensionによって反映側DBに反映できるデータ型に変換され,抽出情報キューファイルに格納されます。
データ型の対応については,「4.1.2 データ型の対応の設計」を参照してください。
なお,抽出側DBが他社DBMSの場合,変換ができるデータ型であっても抽出情報キューファイルに格納できないデータがあります。これらのデータを例外データといいます。
例外データを検出した場合は,これらを抽出情報キューファイルに格納できるデータに置換することで,抽出処理を続行できます。
Oracleの場合の例外データを次に示します。
データ型 |
抽出情報キューファイルに格納できないデータ |
理由 |
---|---|---|
NUMBER型 |
「表4-3 SQL Serverから抽出するデータのデータ型対応」の注※1に従ってデータ型を変換した列に対する,各数値型の表現範囲外のデータ。 |
抽出情報キューファイルに格納するためには,各数値型に相当する形式に変換する必要がありますが,表現範囲外であるため変換できません。 |
DATE型 |
紀元前の日付データ。 |
抽出情報キューファイルに格納するためには,日付データは4バイトのパック形式に変換する必要がありますが,紀元前の日付データは変換できません。 |
次にSQL Serverの場合の例外データを次に示します。
データ型 |
抽出情報キューファイルに格納できないデータ |
理由 |
---|---|---|
CHAR(n)型 |
時間又は日付用の情報を格納しているCHAR型データ(n≠8,10)。 |
時間及び日付のデータ形式が,'HH:MM:SS'及び'YYYY-MM-DD'のため,n=8,10以外では変換できません。 |
(1) 例外データを検出したときの抽出側Datareplicator Extensionの動作
例外データを検出したときの抽出側Datareplicator Extensionの動作は,次に示すどちらかを選択できます。
例外データを検出したときの抽出側Datareplicator Extensionの動作 |
出力メッセージ |
---|---|
抽出処理を停止します。 |
KFRB05028-E |
例外データを置換して,抽出処理を続行します。 |
KFRB05029-W |
例外データを検出したときの抽出側Datareplicator Extensionの動作は,抽出環境定義のexterrlevelオペランドで指定します。
また,例外データを置換して抽出処理を続行する場合,どの値に置換するかは,抽出環境定義のcvt_datakindオペランドで指定します。
各オペランドの詳細については,「5.1.2 抽出環境定義」を参照してください。
(2) 例外データを置換する場合の置換値
Oracleの場合の例外データを置換する場合の置換値を次に示します。
データ型 |
置換値 |
||
---|---|---|---|
ナル値 |
最大値 |
最小値 |
|
NUMBER型 |
ナル値 |
各数値型の表現範囲の最大値 |
0 |
DATE型 |
ナル値 |
9999/12/31 23:59:59 |
0001/01/01 00:00:00 |
SQL Serverの場合の例外データを置換する場合の置換値を次に示します。
データ型 |
置換値 |
||
---|---|---|---|
ナル値 |
最大値 |
最小値 |
|
CHAR(n)型 |
ナル値 |
9999/12/31 |
0001/01/01 |
23:59:59 |
00:00:00 |