3.2.3 抽出したデータのデータ型変換

データを反映するときに変換できるデータ型について説明します。

HiRDB Dataextractorで変換できるデータ型を,「表3-10 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(1/2)」,「表3-11 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(2/2)」に示します。

データを反映するとき,HiRDB Dataextractorは抽出対象の列と反映対象の列とを比較し,「表3-10 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(1/2)」,「表3-11 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(2/2)」に示すデータ型の組み合わせであればデータ型を変換します。

また抽出する行を選択する場合,表式記述ファイルの条件の指定が「表3-10 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(1/2)」,「表3-11 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(2/2)」に示すデータ型の組み合わせであれば,HiRDB Dataextractorは指定されたデータを比較します。

表3-10 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(1/2)

抽出側のデータ型(ORACLE内部データ型)反映側(HiRDB)のデータ型
数データ8
INT,SMALLINT,DECIMAL,FLOAT,SMALLFLT
文字データ,混在文字データ5 7
CHAR,VARCHAR,MCHAR,MVARCHAR
各国文字データ6 7
NCHAR,NVARCHAR
日付データ
DATE
時刻データ
TIME
NUMBER×××
CHAR
VARCHAR2
※1※11××
NCHAR
NVARCHAR2
×××
DATE4××※2※3
LONG×××××
LONG RAW×××××
RAW×××××
BLOB
CLOB
NCLOB
BFILE
×××××

表3-11 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(2/2)

抽出側のデータ型(ORACLE内部データ型)反映側(HiRDB)のデータ型
日間隔データ
YEAR
時間隔データ
HOUR
時刻印データ
TIMESTAMP
長大データ9
BLOB,BINARY
抽象データ型
SGMLTEXT,XML,FREEWORD
NUMBER×××××
CHAR
VARCHAR2
×××××
NCHAR
NVARCHAR2
×××××
DATE4※2※3※10××
LONG××××
LONG RAW××××
RAW××××
BLOB
CLOB
NCLOB
BFILE
××××
(凡例)
○:変換できます。
×:変換できません。
注※1
文字属性を数データに変換する場合,文字属性のデータは1バイトコードの数値文字列である必要があります。
注※2
日付情報だけを取り出します。また,日付情報が紀元前の場合はエラーとし処理を中止します。
注※3
時刻情報だけを取り出します。
注※4
一つのDATE属性列を反映側の日付データと時刻データの2列に変換したい場合は,DATE属性列を2列分抽出する必要があります。
注※5
この組み合わせで実行する場合の注意を次に示します。
  • 抽出側のデータ長<反映側のデータ長の場合,1バイトの空白を設定します。
  • 抽出側のデータ内容を,そのまま反映側に格納します。
注※6
この組み合わせで実行する場合の注意を次に示します。
  • 抽出側のデータ長≦2×反映側の文字数である必要があります。
  • 抽出側のデータ長<反映側のデータ長の場合,2バイトの空白を設定します。
  • 抽出側のデータ長が奇数バイトの場合,1バイトの空白を付加して偶数バイトに調整します。
注※7
次の場合は,データの切り捨てが発生するため注意してください。
ただし,環境変数XTERRLEVELに0以外を指定した場合は,指定に従って処理されます。
  • 文字データ,混在文字データ,各国文字データの場合
    抽出側のデータ長>反映側のデータ長
注※8
次の場合は,データの切り捨てが発生するため注意してください。
  • DECの場合
    抽出側の整数部のけた数>反映側の整数部のけた数
注※9
次の場合は,データの変換はできません。
ただし,環境変数XTLOBBUFSIZEが指定された場合は,環境変数XTERRLEVELの指定に従って処理されます。
抽出側のデータ長>反映側のデータ長
注※10
日付情報が紀元前の場合はエラーとなります。反映側に小数秒が定義されているとき(TIMESTAMP(0)以外),余った後ろに0x00を埋めます。
注※11
反映側が文字データの場合,環境変数XTORANCSETにutf-16を指定して文字集合列を抽出・反映するときの注意を次に示します。
  • 2×抽出側NCHARの文字数=反映側CHARの文字数である必要があります。
  • 2×抽出側NVARCHARの文字数=反映側VARCHARの文字数である必要があります。