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

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

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

(1) 列名記述ファイル

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

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

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

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

注意事項
  • 指定規則などの詳細については,SQL Serverマニュアルを参照してください。
  • HiRDB Dataextractorは,関数を指定した列名を認識できません。このため,関数を指定した列名には次の名称を仮定します。
    "#列番号"
    列番号は,先頭からの通番です。
  • 属性が異なる場合で,HiRDBのDECIMAL型に反映したいときは,列名記述ファイルに,CAST関数で反映先のDECIMAL属性での抽出を指定してください。
    CAST関数の指定形式を次に示します。
    形式

    CAST(列名 AS データ型)

(2) 表式記述ファイル

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

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

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

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

SELECT文でのWHERE句,およびORDER BY句の指定方法については,SQL Serverマニュアルを参照してください。

注意事項
  • 表式の指定値にスペース,ハイフン(-)を含むときは,引用符(")で囲みます。
  • 表式の指定値の英小文字と英大文字とを区別したい場合は,引用符(")で囲みます。引用符(")で囲まない場合は,すべて英大文字として扱われます。
  • 表式記述ファイルで指定できるデータ型の組み合わせについては,「表3-12 HiRDB Dataextractorで変換できるデータ型(SQL Serverの場合)(1/2)」,「表3-13 HiRDB Dataextractorで変換できるデータ型(SQL Serverの場合)(2/2)」を参照してください。
  • ORDER BY句を指定する場合,抽出時に属性,文字コード変換をすると,反映側システム上での並び順と異なることがあるため注意してください。
  • SQL Server抽出時に排他制御をする場合,表式記述ファイルにWITH句を記述する必要があります。WITH句の詳細については,SQL Serverマニュアルを参照してください。

(3) 反映情報ファイル

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

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

形式

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
データ型を指定します。
指定可能なデータ型を「表6-6 ATTRに指定できるデータ型」に示します。
注意事項
  • 1行に一つの列について記述してください。複数列分記述したい場合は,複数行記述してください。
  • 注釈は,"#"以降その行の終わりまでとします。
  • 列名にスペース,ハイフン(-)を含むときは,引用符(")で囲みます。
  • 列名の英小文字と英大文字とを区別したい場合は,引用符(")で囲みます。
    引用符(")で囲まない場合は,すべて英大文字として扱われます。

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

    SQL Serverのデータ型けた数仮定するデータ型
    char(n)CHAR(n)
    nchar(n)NCHAR(n)
    varchar(n)VARCHAR(n)
    nvarchar(n)NVARCHAR(n)
    bigintFLT
    intINT
    smallintSINT
    tinyintSINT
    bitCHAR(1)
    decimal(p,s)
    numeric(p,s)
    0<p≦29かつ0≦s≦pDEC(p,s)
    29<p≦38かつ0≦s≦pFLT
    moneyDEC(19,4)
    smallmoneyDEC(10,4)
    float(f)1≦f≦24SFLT
    25≦f≦53FLT
    realSFLT
    datetimeDATE
    smalldatetimeDATE
    binary(n)BINARY(n)
    varbinary(n)BINARY(n)
    sql_variantVARCHAR(8000)

    ユーザ定義型の場合は,データベース型マッピングに従います。


(凡例)
-:特に指定はありません。
注※
日付情報だけ取り出します。

表6-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
SQL Serverのデータ型と指定できるデータ型の組み合わせについては「表3-12 HiRDB Dataextractorで変換できるデータ型(SQL Serverの場合)(1/2)」,「表3-13 HiRDB Dataextractorで変換できるデータ型(SQL Serverの場合)(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で抽出する場合,サイズの変更はできません。

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

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

形式

{列名|フィールド番号=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属性列で,かつ環境変数XTSQLNCSETにutf-16を指定した場合,文字コード変換対象となりません。NCHAR属性列を文字コード変換対象にするためには,次の条件をすべて満たす必要があります。
  • すべての文字列がNCHAR属性である。
  • すべての文字列にCODECONVを指定する。
  • 抽出側の環境変数XTDATALOCALEにutf-16LEを指定する。
記述規則
  • 1行に一つの列について記述します。複数列分記述したい場合は,複数行記述してください。
  • 注釈は,"#"以降その行の終わりまでとします。
  • 列名にスペース,ハイフン(-)を含むときは,引用符(")で囲んでください。
  • 列名の英小文字と英大文字とを区別したい場合は,引用符(")で囲んでください。
  • 引用符(")で囲まない場合は,すべて英大文字として扱われます。
  • 定数値を指定する場合は,255バイト以下で指定してください。
  • 定数値中に「’)」は指定しないでください(アポストロフィ「’」と右括弧「)」は連続して指定しないでください)。
  • HiRDBの表へ反映する場合,反映側の列が非NULL属性のときは,ナル既定値がそのままデータとして格納されます。
  • ファイルの作成時,抽出側の列が非NULL属性のときは,指定を無視します。
記述例

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

 

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

表6-7 ナル値情報ファイルの指定規則(SQL Serverからのデータ抽出の場合)

ナル値情報ファイル
指定内容
環境変数XTNLDFLTの指定値
0または12
HiRDB反映ファイル作成HiRDB反映ファイル作成
バイナリ
形式
DAT形式バイナリ
形式
DAT形式
列名|フィールド番号=NUM
ナル値の既定値×××
NOCODECONV|CODECONV
(凡例)
◎:必ず指定してください。
○:指定できます。
×:指定できません。