Hitachi

データベース抽出・反映サービス機能 HiRDB Dataextractor Version 10


5.1.4 xtrepOコマンドで指定するファイルの内容

xtrepOコマンドで指定するファイルのうち,次のファイルの内容について説明します。その他のファイルについては「4.2.4 xtrepコマンドで指定するファイルの内容」を参照してください。

〈この項の構成〉

(1) 列名記述ファイル

列名記述ファイルには,SELECT文での抽出列情報について指定します。

HiRDB Dataextractorでは,列名記述ファイルの指定値を用いてSELECT文を組み立て,ORACLEからデータを抽出します。

select 列名記述ファイルの指定値 FROM 抽出表名

−sオプションを省略した場合,アスタリスク(*)を仮定します。

SELECT文での選択式の指定方法については,ORACLEマニュアルを参照してください。

(2) 表式記述ファイル

表式記述ファイルには,SELECT文での条件を指定します。

HiRDB Dataextractorでは,列名記述ファイルの指定値を用いてSELECT文を組み立て,ORACLEからデータを抽出します。

select 列名記述ファイルの指定値 FROM 抽出表名 表式記述ファイルの指定値

−wオプションを省略した場合,条件は使用しません。

SELECT文での条件の指定方法については,ORACLEマニュアルを参照してください。

注意事項
  • 指定値の末尾にセミコロン(;)は指定しないでください。

(3) 排他情報ファイル

排他情報ファイルには,データ抽出時の排他情報について指定します。

排他情報ファイルの指定内容を次に示します。

実際に発行されるLOCK文

LOCK TABLE 表名 IN EXCLUSIVE MODE NOWAIT

LOCK文の指定方法については,ORACLEマニュアルを参照してください。

注意事項

指定値の末尾にセミコロン(;)は指定しないでください。

(4) 反映情報ファイル

反映情報ファイルには,データ型を変換する列情報とデータ型を指定します。

反映情報ファイルは,次のときに指定します。

形式
FORMAT
 {FIELD_NUM フィールド番号|FIELD_NAME 列名}ATTR データ型
    〔{FIELD_NUM フィールド番号|FIELD_NAME}ATTR データ型〕…

説明

●FORMAT

データ型を変換することを示します。

●FIELD_NUM

データ型変換の対象とする抽出列の先頭からの通番を指定します。

  • −sオプション指定なしの場合

    抽出表の定義上の先頭からの通番

  • −sオプション指定ありの場合

    列名記述ファイルに指定した列名の先頭からの通番

指定値範囲は1〜99,999です。また,フィールド番号は重複して指定できません。

●FIELD_NAME

データ型変換の対象とする抽出列名を指定します。

−sオプション指定時は指定できないので,FIELD_NUMを指定してください。

列名は重複して指定できません。

●ATTR

データ型を指定します。

指定可能なデータ型を「表5-6 ATTRに指定できるデータ型」に示します。

注意事項
  • 1行に一つの列について記述してください。複数列分記述したい場合は,複数行記述してください。

  • 注釈は,"#"以降その行の終わりまでとします。

  • 列名にスペース,ハイフン(−)を含むときは,引用符(")で囲みます。

  • 列名の英小文字と英大文字とを区別したい場合は,引用符(")で囲みます。

    引用符(")で囲まない場合は,すべて英大文字として扱われます。

    表5‒5 省略時に仮定するデータ型

    ORACLEのデータ型

    けた数

    仮定するデータ型

    CHAR(n)

    VARCHAR2(n)

    NCHAR(n)

    NVARCHAR2(n)

    −

    MCHAR(x)※1

    NUMBER

    NUMBER(p)

    または

    NUMBER(p,0)

    p<5

    SINT

    p<10

    INT

    9<p<30

    DEC(p)

    NUMBER(p,s)

    かつ

    s<>0

    p<30かつ0<s≦p

    DEC(p,s)

    p<sかつs<30

    DEC(s,s)

    s<0かつp+|s|<30

    DEC(p+|s|,0)

    上記以外

    FLT

    DATE

    −

    DATE※2

    LONG

    −

    BLOB(x)※3

    LONG RAW

    RAW

    BLOB

    CLOB

    NCLOB

    BFILE

(凡例)

−:特に指定はありません。

注※1

ORACLEのデータ型がNCHARまたはNVARCHAR2の場合,x=n×2となり,その他はx=nとなります。

注※2

日付情報だけ取り出します。また,データの内容が紀元前の場合,エラーで終了します。

注※3

xの値は,環境変数XTLOBBUFSIZEの指定に従います。

表5‒6 ATTRに指定できるデータ型

指定できるデータ型※1

対応するHiRDBのデータ型

ファイル作成

HiRDB反映

INT

INTEGER

○

△

SINT

SMALLINT

○

△

DEC(m,n)※2

DECIMAL(m,n)

○

△

FLT

FLOAT

○

△

SFLT

SMALLFLT

○

△

CHAR(n)※3※10

CHAR(n)

○

△

VARCHAR(n)※3※10

VARCHAR(n)

○

△

MCHAR(n)※3

MCHAR(n)

○

△

MVARCHAR(n)※3

MVARCHAR(n)

○

△

NCHAR(n)※4

NCHAR(n)

○

△

NVARCHAR(n)※4

NVARCHAR(n)

○

△

DATE

DATE

○

△

TIME

TIME

○

△

YEAR

INTERVAL YEAR TO DAY

○

△

HOUR

INTERVAL HOUR TO SECOND

○

△

BLOB(n〔{K|M|G}〕)※5

BLOB(n〔{K|M|G}〕)

○※6

○※7

SGMLTEXT(n〔{K|M|G}〕)※5

SGMLTEXT

×

×

XML(n〔{K|M|G}〕)※5

XML

×

×

FREEWORD(n)※3

FREEWORD

×

×

BINARY(n)※8

BINARY(n)

○※6

○※7

TIMESTAMP(n)※9

TIMESTAMP(n)

○

△

(凡例)

○:指定できます。

△:指定できません(指定を無視し,反映側のデータ型を仮定します)。

×:指定できません(エラーになります)。

注※1

ORACLEのデータ型と指定できるデータ型の組み合わせについては「表3-10 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(1/2)」,「表3-11 HiRDB Dataextractorで変換できるデータ型(ORACLEの場合)(2/2)」を参照してください。

注※2

mおよびnは,1≦m≦38,0≦n≦38,m≧nです。

注※3

nは,バイト数を符号なし整数を指定します。指定値範囲は1≦n≦32,767です。

注※4

nは,文字数を符号なし整数を指定します。指定値範囲は1≦n≦16,383です。

注※5

この指定値長は,環境変数XTLOBBUFSIZEと同等の意味があり,環境変数XTLOBBUFSIZEの指定値よりも優先されます。また,指定値の指定範囲と実際の最大長を次に示します。

単位

nの指定範囲

実際のサイズ(バイト)

なし

1≦n≦2,147,483,647

同左

K

1≦n≦2,097,152

n×1,024

M

1≦n≦2,048

n×1,048,576

G

1≦n≦2

n×1,073,741,824

ただし,実際の最大長の計算結果が2,147,483,648の場合は,2,147,483,647になります。

注※6

環境変数XTLOBBUFSIZEを省略した場合は必ず指定します。指定がない場合,バッファが確保できずにエラー終了することがあります。

注※7

指定した長さが反映側のBLOBデータ型の定義長よりも長い場合,この指定は無効とし,定義長を仮定します。

注※8

nは,バイト数を符号なし整数で指定します。指定値範囲は,1≦n≦2,147,483,647です。

注※9

nは,0,2,4,6のどれかになります。

注※10

文字集合列,またはNCHAR属性の文字データをUTF-16で抽出する場合,サイズの変更はできません。

(5) ナル値情報ファイル

ナル値情報ファイルは,次のときに指定します。

形式
{列名|フィールド番号=NUM}
 {〔={HIGH|LOW|ZERO|SPACE|(’定数値’)|
     (X’16進定数値’)}〕|
  〔,{NOCODECONV|CODECONV}〕}

説明

●列名

ナル値の既定値を変更する列を指定します。

  • HiRDBの表に反映する場合

    反映側の表の列名で指定してください。

  • ファイルだけを作成する場合

    抽出側の表の列名で指定してください。

    −sオプション指定時は指定できません。

●フィールド番号=NUM

ナル値の既定値を変更する列の先頭からの通番を指定します。

指定値範囲は1〜99999

フィールド番号は重複して指定できません。

HiRDBの表に反映する場合

反映表の定義上の先頭からの通番。

ファイルだけを作成する場合
  • −sオプション指定なしの場合

    抽出表の定義上の先頭からの通番。

  • −sオプション指定ありの場合

    列名記述ファイルに指定した列名の先頭からの通番。

●{HIGH|LOW|ZERO|SPACE|(’定数値’)|(X’16進定数値’)}

ナル値の既定値を指定します。

ここでの指定によって設定される値については,「表4-11 ナル値の既定値」を参照してください。

●{NOCODECONV|CODECONV}

列単位にコード変換の有無を指定します。

NOCODECONV:文字コード変換機能を使わない場合に指定します。この指定値は,環境変数XTLOCALEを指定してコード変換を行う場合だけ有効となります。

CODECONV:文字コード変換機能を使う場合に指定します。この指定値は,環境変数XTLOCALEを指定してコード変換を行う場合だけ有効となります。

注意事項

NCHAR属性列で,かつ環境変数XTORANCSETにutf-16を指定した場合,文字コード変換対象となりません。NCHAR属性列を文字コード変換対象にするためには,次の条件をすべて満たす必要があります。

  • すべての文字列がNCHAR属性である。

  • すべての文字列にCODECONVを指定する。

  • 抽出側の環境変数XTDATALOCALEにutf-16BE,またはutf-16LEを指定する。

記述規則
  • 1行に一つの列について記述します。複数列分記述したい場合は,複数行記述してください。

  • 注釈は,"#"以降その行の終わりまでとします。

  • 列名にスペース,ハイフン(−)を含むときは,引用符(")で囲んでください。

  • 列名の英小文字と英大文字とを区別したい場合は,引用符(")で囲んでください。

  • 引用符(")で囲まない場合は,すべて英大文字として扱われます。

  • 定数値を指定する場合は,255バイト以下で指定してください。

  • 定数値中に「’)」は指定しないでください(アポストロフィ「’」と右括弧「)」は連続して指定しないでください)。

  • HiRDBの表へ反映する場合,反映側の列が非NULL属性のときは,ナル既定値がそのままデータとして格納されます。

  • ファイルの作成時,抽出側の列が非NULL属性のときは,指定を無視します。

記述例
CLM01=HIGH                        #INT
CLM02=LOW                         #DATE
CLM03=('FFFF')                    #CHAR(4)
4=NUM=SPACE                       #CHAR(4)

環境変数XTNLDFLTの指定によって,ナル値情報ファイルの指定規則が異なります。環境変数XTNLDFLTの指定によるナル値情報ファイルの指定規則を次の表に示します。

表5‒7 ナル値情報ファイルの指定規則(ORACLEからのデータ抽出の場合)

ナル値情報ファイル

指定内容

環境変数XTNLDFLTの指定値

0または1

2

HiRDB反映

ファイル作成

HiRDB反映

ファイル作成

バイナリ

形式

DAT形式

バイナリ

形式

DAT形式

列名|フィールド番号=NUM

◎

◎

◎

◎

◎

◎

ナル値の既定値

○

○

○

×

×

×

NOCODECONV|CODECONV

○

○

○

○

○

○

(凡例)

◎:必ず指定してください。

○:指定できます。

×:指定できません。