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

[目次][索引][前へ][次へ]

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
    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 ○ ○ ○ ○ ○ ○

(凡例)
◎:必ず指定してください。
○:指定できます。
×:指定できません。