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

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

<この項の構成>
(1) 列名記述ファイル
(2) 表式記述ファイル
(3) 排他情報ファイル
(4) 反映情報ファイル
(5) ナル値情報ファイル

(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
    NUMBERNUMBER(p)
    または
    NUMBER(p,0)
    p<5SINT
    p<10INT
    9<p<30DEC(p)
    NUMBER(p,s)
    かつ
    s<>0
    p<30かつ0<s≦pDEC(p,s)
    p<sかつs<30DEC(s,s)
    s<0かつp+|s|<30DEC(p+|s|,0)
    上記以外FLT
    DATEDATE2
    LONGBLOB(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反映
INTINTEGER
SINTSMALLINT
DEC(m,n)2DECIMAL(m,n)
FLTFLOAT
SFLTSMALLFLT
CHAR(n)310CHAR(n)
VARCHAR(n)310VARCHAR(n)
MCHAR(n)3MCHAR(n)
MVARCHAR(n)3MVARCHAR(n)
NCHAR(n)4NCHAR(n)
NVARCHAR(n)4NVARCHAR(n)
DATEDATE
TIMETIME
YEARINTERVAL YEAR TO DAY
HOURINTERVAL HOUR TO SECOND
BLOB(n〔{K|M|G}〕)5BLOB(n〔{K|M|G}〕)67
SGMLTEXT(n〔{K|M|G}〕)5SGMLTEXT××
XML(n〔{K|M|G}〕)5XML××
FREEWORD(n)3FREEWORD××
BINARY(n)8BINARY(n)67
TIMESTAMP(n)9TIMESTAMP(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同左
K1≦n≦2,097,152n×1,024
M1≦n≦2,048n×1,048,576
G1≦n≦2n×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または12
HiRDB反映ファイル作成HiRDB反映ファイル作成
バイナリ
形式
DAT形式バイナリ
形式
DAT形式
列名|フィールド番号=NUM
ナル値の既定値×××
NOCODECONV|CODECONV
(凡例)
◎:必ず指定してください。
○:指定できます。
×:指定できません。