6.1.4 xtrepSコマンドで指定するファイルの内容
(1) 列名記述ファイル
列名記述ファイルには,SELECT文での抽出列情報について指定します。
HiRDB Dataextractorでは,列名記述ファイルの指定値を用いてSELECT文を組み立て,SQL Serverからデータを抽出します。
select 列名記述ファイルの指定値 FROM 抽出表名 |
-sオプションを省略した場合,アスタリスク(*)を仮定します。
- 注意事項
- 指定規則などの詳細については,SQL Serverマニュアルを参照してください。
- HiRDB Dataextractorは,関数を指定した列名を認識できません。このため,関数を指定した列名には次の名称を仮定します。
"#列番号"
列番号は,先頭からの通番です。
- 属性が異なる場合で,HiRDBのDECIMAL型に反映したいときは,列名記述ファイルに,CAST関数で反映先のDECIMAL属性での抽出を指定してください。
CAST関数の指定形式を次に示します。
形式
(2) 表式記述ファイル
表式記述ファイルには,SELECT文の次の句を指定します。
HiRDB Dataextractorでは,列名記述ファイルの指定値を用いてSELECT文を組み立て,SQL Serverからデータを抽出します。
select 列名記述ファイルの指定値 FROM 抽出表名 表式記述ファイルの指定値 |
-wオプションを省略した場合,条件は使用しません。
SELECT文でのWHERE句,およびORDER BY句の指定方法については,SQL Serverマニュアルを参照してください。
- 注意事項
(3) 反映情報ファイル
反映情報ファイルには,データ型を変換する列情報とデータ型を指定します。
反映情報ファイルは,次のときに指定します。
- 抽出データをファイルにだけ格納する場合
指定したデータ型でデータを抽出します。反映情報ファイルを省略(-Lオプション省略)した場合の列,およびデータ型を指定しない列に対する仮定値を,「表6-5 省略時に仮定するデータ型」に示します。
- 次のデータ型をHiRDBのBLOB,BINARY型で抽出し,反映またはファイルに格納する場合
列単位に最大データ長を指定します。これによって,指定された長さのバッファを使用するためにバッファを節約できます。反映情報ファイルを省略(-Lオプション省略),またはデータ型を指定しない列に対するバッファサイズは環境変数XTLOBBUFSIZEに従います。
- 形式
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に指定できるデータ型」に示します。
- 注意事項
- (凡例)
- -:特に指定はありません。
- 注※
- 日付情報だけ取り出します。
表6-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
- 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 | 同左 |
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で抽出する場合,サイズの変更はできません。
(4) ナル値情報ファイル
ナル値情報ファイルは,次のときに指定します。
- ナル値の既定値を変更するとき
反映対象の列にナル値を格納する場合に,ナル値とみなす値を変更したいときに指定します。抽出したデータと,ここでの指定で設定した値が同じ場合に,表の列にナル値が格納されます。
また,ファイル作成の場合には,抽出データのナル値をどのような既定値としてファイルに格納するかを指定します。
ナル値情報ファイルを省略(-vオプション省略)した場合のナル値,およびここでの指定によって設定されるナル値の既定値については,「表4-11 ナル値の既定値」を参照してください。
- 形式
{列名|フィールド番号=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または1 | 2 |
---|
HiRDB反映 | ファイル作成 | HiRDB反映 | ファイル作成 |
---|
バイナリ 形式 | DAT形式 | バイナリ 形式 | DAT形式 |
---|
列名|フィールド番号=NUM | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ |
ナル値の既定値 | ○ | ○ | ○ | × | × | × |
NOCODECONV|CODECONV | ○ | ○ | ○ | ○ | ○ | ○ |
- (凡例)
- ◎:必ず指定してください。
- ○:指定できます。
- ×:指定できません。