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

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

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

xtrepコマンドで指定する,次のファイルの内容について説明します。

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

(1) 列名記述ファイル

列名記述ファイルには,SELECT文の選択式を指定します。

SELECT文での選択式の指定方法については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

注意事項
  • 列名にスペース,ハイフン(−)を含むときは,引用符(")で囲みます。
  • 列名の英小文字と英大文字とを区別したい場合は,引用符(")で囲みます。引用符(")で囲まない場合は,すべて英大文字として扱われます。
  • SGMLTEXT型XML型,またはFREEWORD型の列の抽出をする場合は,抽象データ型関数のextractsを指定してください。

 

抽象データ型関数extractsの指定形式を次に示します。

形式
 
extracts(列名)
 

(2) 表式記述ファイル

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

SELECT文でのWHERE句およびORDER BY句の指定方法については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

注意事項
  • 表式の指定値にスペース,ハイフン(−)を含むときは,引用符(")で囲みます。
  • 表式の指定値の英小文字と英大文字とを区別したい場合は,引用符(")で囲みます。引用符(")で囲まない場合は,すべて英大文字として扱われます。
  • 表式記述ファイルで指定可能なデータ型の組み合わせについては,「表3-7 HiRDB Dataextractorで変換および比較できるデータ型」を参照してください。
  • ORDER BY句を指定する場合,抽出時に属性,文字コード変換をすると,反映側システム上での並び順と異なることがあるため注意してください。

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

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

 

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

説明

列名
ナル値の既定値を変更する列を指定します。
  • HiRDBの表に反映する場合
    反映側の表の列名で指定してください。
  • ファイルだけを作成する場合
    抽出側の表の列名で指定してください。

フィールド番号NUM 
ナル値の既定値を変更する列の先頭からの通番を指定します。指定値範囲は1〜99,999です。
HiRDBの表に反映する場合
反映表の定義上の先頭からの通番を指定してください。
ファイルだけを作成する場合
  • −sオプション指定なし
    抽出表の定義上の先頭からの通番を指定してください。
  • −sオプション指定あり
    列名記述ファイルに指定した列名の先頭からの通番を指定してください。

●{HIGHLOWZEROSPACE|(’定数値’)|(X’16進定数値’)}
ナル値の既定値を指定します。
ここでの指定によって設定される値については,「表4-11 ナル値の既定値」を参照してください。

ARRAY={FF|FV|VV
繰返し列をファイルに格納する場合の,データの形式を指定します。
ARRAYとNULLELMの指定値の組み合わせ可否については,「表4-12 ARRAYとNULLELMの組み合わせ可否」を参照してください。
FF:列の先頭に要素数がなく,列の要素すべてにデータがある形式。
FV:列の先頭に要素数があり,列の要素すべてにデータがある形式。
VV:列の先頭に要素数があり,要素数分のデータがある形式。

NULLELM={|E}
繰返し列をファイルに格納する場合に,要素すべてがナル値のときのナル値の設定方法(ナル値反映方法)を指定します。
ARRAYとNULLELMの指定値の組み合わせ可否については,「表4-12 ARRAYとNULLELMの組み合わせ可否」を参照してください。
C:要素全体にデータがないとき,列全体をナル値として反映します。
E:要素全体にデータがないとき,各要素をナル値として反映します。

●{NOCODECONVCODECONV
列単位にコード変換の有無を指定します。
NOCODECONV:文字コード変換機能を使わない場合に指定します。この指定値は,環境変数XTLOCALE,またはXTDATALOCALEを指定してコード変換を行う場合だけ有効となります。
CODECONV:文字コード変換機能を使う場合に指定します。この指定値は,環境変数XTLOCALE,またはXTDATALOCALEを指定してコード変換を行う場合だけ有効となります。
注意事項
  • 次の条件をすべて満たす場合は,SGMLTEXT型の列に対して,必ずこの指定値を指定してください。指定しない場合は,SGMLTEXT型は文字コード変換対象となりません。
    ・文字コード変換を行う。
    ・データを抽出し,ファイルだけを作成する(HiRDBに反映しない)。
    ・抽出するデータにSGMLTEXT型が含まれる。
  • 文字集合列で,かつ環境変数XTCSETUSEにyesを指定した場合,文字コード変換対象となりません。文字集合列を文字コード変換対象にするためには,次の条件をすべて満たす必要があります。
    ・すべての文字列が文字集合である。
    ・すべての文字列にCODECONVを指定する。
    ・抽出側の環境変数XTDATALOCALEにutf-16BEを指定する。

記述規則
  • 1行に一つの列について記述します。複数列分記述したい場合は,複数行記述してください。
  • 注釈は,"#"以降その行の終わりまでとします。
  • 列名にスペース,ハイフン(−)を含むときは,引用符(")で囲んでください。
  • 列名の英小文字と英大文字とを区別したい場合は,引用符(")で囲んでください。
  • 引用符(")で囲まない場合は,すべて英大文字として扱われます。
  • 定数値を指定する場合は,255バイト以下で指定してください。
  • 定数値中に「’)」は指定しないでください(アポストロフィ「’」と右括弧「)」は連続して指定しないでください)。
  • HiRDBの表へ反映する場合,反映側の列が非NULL属性のときは,ナル既定値がそのままデータとして格納されます。
  • ファイルの作成時,抽出側の列が非NULL属性のときは,指定を無視します。
  • 抽象データ型の列は,列単位のコード変換の有無(NOCODECONVまたはCODECONV)以外は指定できません。
  • XML型の列にCODECONVは指定できません。
  • 反映情報ファイルにXMLを指定した列には,CODECONVを指定できません。
  • 繰返し列のデータ形式およびナル値反映方法の指定時の注意事項については,「3.1.1(6)繰返し列の抽出」を参照してください。
  • ナル既定値はコード変換を行わないため,バイナリファイル出力を行う場合は反映側の文字コードで定数を指定します。
  • 次のデータ型の変換を行う場合,文字コード変換を行わないため,変換が必要なときは,CODECONVを指定します。
    ・(VAR)CHAR → BINARY
    ・M(VAR)CHAR → BINARY
  • 数値属性に16進定数を指定する場合は,反映側のエンディアン表現で指定します。
  • FLT,SFLT属性に16進定数を指定する場合はIEEE浮動小数点規格の範囲で指定します。
  • DATファイルを作成する場合,ARRAYにFVは指定できません。
  • 対象の表に可変長文字列を含む場合,この環境変数にFF,FVは指定できません。
  • バイナリファイル,DATファイルを作成する場合,NULLEMは指定できません。
  • 通常列にARRAY,NULLEMを指定することはできません。

注意事項

記述例
 
CLM01=HIGH                        #INT
CLM02=LOW                         #DATE
CLM03=('FFFF')                    #CHAR(4)
CLM04=SPACE,ARRAY=FV,NULLELM=E    #CHAR(4)
CLM05, NOCODECONV
CLM06=(X'A4A2')

 

表4-11 ナル値の既定値

データ型 −vオプション
省略時
−vオプションでの指定
HIGH LOW ZERO SPACE 定数 16進定数
INTEGER −2147483648 2147483647 −2147483648 0 X’16進定数値’(4バイト)
SMALLINT −32768 32767 −32768 0 X’16進定数値’(2バイト)
DECIMAL(p, s) −99…99 99…99 −99…99 01 X’16進定数値’((p+1)÷2バイト)
FLOAT ※2 ※3 ※2 0 X’16進定数値’(8バイト)
SMALLFLT ※4 ※5 ※4 0 X’16進定数値’(4バイト)
CHAR(n)
VARCHAR(n)
MCHAR(n)
MVARCHAR(n)
n<4 nバイトの’#’(半角) nバイトの空白
(半角)
定数値
(nバイト)
X’16進定数値’(nバイト)
n≧4 4バイトの’#’(半角) 4バイトの空白
(半角)
定数値
(MAX255バイト)
X’16進定数値’(MAX127バイト)
NCHAR(n)
NVARCHAR(n)
n<2
(n=1)
2バイトの’#’
(全角)※6
2バイトの空白(全角)※6 定数値
(2バイト)
X’16進定数値’(2nバイト)
n≧2 4バイトの’##’
(全角)※6
4バイトの空白(全角)※6 定数値
(MAX254バイト)
X’16進定数値’(MAX127バイト)
DATE 0001年
01月01日
9999年
12月31日
0001年
01月01日
X’16進定数値’(4バイト)
INTERVAL YEAR TO DAY −9999年
11月99日間
9999年
11月99日間
−9999年
11月99日間
0000年00月00日間 X’16進定数値’(5バイト)
TIME 00時00分00秒 23時59分59秒 00時00分00秒 X’16進定数値’(3バイト)
INTERVAL HOUR
TO SECOND
−99時間59分59秒間 99時間59分59秒間 −99時間59分59秒間 00時間00分00秒間 X’16進定数値’(4バイト)
BLOB XTNL0
BINARY(n) n<128 X’00…00’
(nバイト)
X’FF…FF’(nバイト) X’00…00’
(nバイト)
X’16進定数値’(nバイト)
n≧128 X’00…00’
(127バイト)
X’FF…FF’(127バイト) X’00…00’
(127バイト)
X’16進定数値’(MAX127バイト)
TIMESTAMP(n) 0001年01月01日00時00分00.000000秒※7 9999年12月31日23時59分59.999999秒※7 0001年01月01日00時00分00.000000秒※7 X’16進定数値’(7+(n÷2)バイト)

(凡例)
―:指定できません。

注※1
値0は,符号部(C:正符号)付きを示します。

注※2
−1.7976931348623157e+308

注※3
1.7976931348623157e+308

注※4
−3.4028234663852886e+38

注※5
3.4028234663852886e+38

注※6
文字コードにかかわらず,空白はX'8140',’#’はX'8194'とします。

注※7
小数けたは定義によって0〜6けたになります。

表4-12 ARRAYとNULLELMの組み合わせ可否

機能 指定値 指定可否 処理
抽出側 反映側 ARRAY NULLELM
HiRDB HiRDB FF 続行
C
E
FV 続行
C × エラー
E
VV 続行
C × エラー
E
バイナリファイル FF 続行
C × エラー
E
FV 続行
C × エラー
E
VV 続行
C × エラー
E
DATファイル FF 続行
C × エラー
E
FV × エラー
C
E
VV 続行
C × エラー
E

(凡例)
−:指定値はありません。
○:指定できます。
×:指定できません。

表4-13 ナル値情報ファイルの指定規則(HiRDBからのデータ抽出の場合)

ナル値情報ファイル
指定内容
環境変数XTNLDFLTの指定値
0または1 2
HiRDB反映 ファイル作成 HiRDB反映 ファイル作成
バイナリ
形式
DAT形式 バイナリ
形式
DAT形式
列名|フィールド番号=NUM
ナル値の既定値 × × ×
ARRAY= FF × ×
FV × × × ×
VV × ×
NULLELM={C|E} × × × × ×
NOCODECONV|CODECONV

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

表4-14 環境変数XTNLDFLTの指定値と仮定するナル既定値の関係

データ型 −vオプション省略時仮定値
環境変数XTNLDFLTの指定値
0 1
INTEGER −2147483648 同左
SMALLINT −32768 同左
DECIMAL −99…99 X'FF…FF'
FLOAT −1.7976931348623157e+308 同左
SMALLFLT −3.4028234663852886e+38 同左
CHAR(n)
VARCHAR(n)
MCHAR(n)
MVARCHAR(n)

  • n≦4のとき
    nバイトの‘#‘
  • n>4のとき
    4バイトの‘#‘
同左
NCHAR(n)
NVARCHAR(n)

  • n≦2のとき
    n文字の‘#‘(全角)
  • n>2のとき
    2文字の‘#‘(全角)
同左
DATE 0001年01月01日 X'FFFFFFFF'
INTERVAL YEAR
TO DAY
−9999年11月99日間 X'FFFFFFFFFF'
TIME 00時00分00秒 X'FFFFFF'
INTERVAL HOUR
TO SECOND
−99時間59分59秒間 X'FFFFFFFF'
BLOB XTNL0 同左
BINARY(n)
  • n<128のとき
    X'00…00' (nバイト)
  • n≧128のとき
    X'00…00' (127バイト)
同左
TIMESTAMP(n) 0001年01月01日00時00分00.000000秒 X'FF…FF'
(7+(N)÷2バイト)

注※
小数けたは定義によって0〜6けたになります。

(4) 出力ファイル

出力ファイルは抽出したデータを格納するファイルです。

HiRDB Dataextractorが抽出したデータを出力ファイルへ格納するときの記述形式について説明します。出力ファイルでの記述形式は,HiRDBのデータベース作成ユティリティの入力ファイルの形式を基にしています。

出力ファイルには,次の二つの形式があります。

(a) バイナリ形式の場合

バイナリ形式の場合,抽出したデータをHiRDBのDBに格納されている形式で記述します。環境変数XTNLDFLTの指定により,データ形式が異なります。

次に環境変数XTNLDFLTの指定によるデータ形式を示します。

(i) 環境変数XTNLDFLTを省略,または0か1を指定した場合

注※
2進数で,実データ長を設定します。
長さ0のデータ(0バイト文字)の場合には,実データ長に0を設定し,実データ部がない形式で格納します。

(ii) 環境変数XTNLDFLTに2を指定した場合

次の図を参照してください。

図4-1 環境変数XTNLDFLTに2を指定した場合のデータの記述形式(バイナリ形式)

[図データ]

(説明)
行長:4バイトの領域に先頭から最終列データの末尾までの長さを設定します。
オフセット:4バイトの領域に先頭から各列データの先頭までの長さを設定します。
ナル値のデータの場合は0を設定し,列データおよび長大/抽象データは作成しません。
列データ:各データ型に対する,列データの記述形式を「表4-16 列データの記述形式(環境変数XTNLDFLTに2を指定した場合)」に示します。
長大/抽象データ:データ型がXML,BINARY,SGMLTEXT,またはBLOBで,列データ部にサイズを格納し実データを末尾に格納します。実データを格納するときの優先順位は次のとおりです。同一データ型が複数存在する場合は定義順に格納します。
  1. XML
  2. BINARY
  3. SGMLTEXT
  4. BLOB

 

表4-16 列データの記述形式(環境変数XTNLDFLTに2を指定した場合)

データ型 列データ記述形式
XML
BINARY

[図データ]

4バイトに2進数でBINARYデータの長さを格納し,BINARYデータはレコードの末尾に格納します。XML型の列が複数ある場合には,BINARYデータは列の並び順で格納されます。
SGMLTEXT
BLOB

[図データ]

先頭8バイトの末尾4バイトに2進数でLOBデータの長さを格納し,LOBデータはレコードの末尾に格納します。
上記以外 各データ型の記述形式は「表4-15 列データの記述形式(バイナリ形式)」を参照してください。ただし,繰返し列の場合に環境変数XTNLDFLTに2を指定したときのデータ形式が変更となります。詳細については,「表3-6 環境変数XTNLDFLTに2を指定した場合のHiRDBの表への反映時およびバイナリ形式のファイル作成時の繰返し列のデータ形式」を参照してください。
(b) DAT形式の場合

DAT形式の場合,抽出したデータを文字データで記述します。記述方法を次に示します。

各データ型に対する,列データの記述形式(DAT形式)を,次の表に示します。

表4-17 列データの記述形式(DAT形式)

データ型 列データ記述形式
数データ INTEGER
  • 数値を文字で記述します。
  • マイナスは,"−"符号を付けます。
  • 小数点は,整数.小数で記述します。
  • 浮動小数点は,仮数部e指数部で記述します。
整数(例:−1234 … 0 … 1234)
小数点(例:−1.56 … 0 … 1.56)
浮動小数点(例:−2.4e+9 … 0e0 … 2.4e+9)
SMALLINT
DECIMAL
FLOAT
SMALLFLT
文字データ CHARACTER 文字の前後を引用符(")で囲んで記述します。
(例:"abcd"や"ABCD"など)
可変長データ型で,長さ0の場合,""と記述します。
VARCHAR
各国文字データ NCHAR
NVARCHAR
混在文字データ MCHAR
MVARCHAR
日付データ DATE 数値yyyy-mm-ddの形式で記述します。
yyyy:西暦 mm:月 dd:日
(例:1998年1月1日→1998-01-01)
日間隔データ INTERVAL YEAR TO DAY 数値〔−〕yyyymmdd.の形式で記述します。マイナスは"−"符号を付けます。
(例:1111年1か月1日間→11110101.)
時刻データ TIME 数値hh:mm:ssの形式で記述します。
hh:時 mm:分 ss:秒
(例:12時1分1秒→12:01:01)
時刻印データ TIMESTAMP(n)
n=2, 4, 6
数値 YYYY-MM-DD_hh:mm:ss.nnnnnnの形式で記述します。
YYYY:西暦 MM:月 DD:日 hh:時 mm:分 
ss:秒 nnnnnn:小数秒(0〜6けた) _:半角スペース
(例:1997年10月15日15時30分25.666666秒
 →1997-10-15 15:30:25.666666)
時間隔データ INTERVAL HOUR TO SECOND 数値〔−〕hhmmss.の形式で記述します。マイナスは"−"符号を付けます。
(例:1時間1分1秒→010101.)
長大データ BLOB LOB入力ファイルの名称を絶対パス名で記述します。
LOBデータは,LOBデータ単位にLOB入力ファイルを作成し,LOB入力ファイル格納用ディレクトリ下に格納します。
BINARY(n)
1≦n≦2,147,483,647
データの前後を引用符(")で囲んで記述します。
(例:"abcdef")
抽象データ型 SGMLTEXT 原文書ファイルの名称を絶対パス名で記述します。
LOBデータは,LOBデータ単位にLOB入力ファイルを作成し,LOB入力ファイル格納用ディレクトリ下に格納します。
XML 記述形式はありません。
ファイル作成時は,反映情報ファイルにXMLの指定がない場合,BINARY属性として扱われます。XMLの指定がある場合はDATファイルへの出力はできません。
FREEWORD 文字の前後を引用符(")で囲んで記述します。
(例:"abcdef")
長さ0の場合,""と記述します。

(5) 反映情報ファイル

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

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

形式
 
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
データ型を指定します。
指定可能なデータ型を次の表に示します。

注意事項
  • 1行に一つの列について記述してください。複数列分記述したい場合は,複数行記述してください。
  • 注釈は,"#"以降から,その行の終わりまでとします。
  • 列名にスペース,ハイフン(−)を含むときは,引用符(")で囲んでください。
  • 列名の英小文字と英大文字とを区別したい場合は,引用符(")で囲んでください。
    引用符(")で囲まない場合は,すべて英大文字として扱われます。
  • 抽出データを反映する場合,反映情報ファイルでのバッファサイズが反映側のBLOBデータ型の定義長より大きいときは,この指定を無効とし,BLOB列定義長のバッファを使用します。

 

表4-18 ATTRに指定できるデータ型

指定できるデータ型1 対応するHiRDBのデータ型 ファイル作成 HiRDB反映
INT INTEGER ×
SINT SMALLINT ×
DEC(m,n)2 DECIMAL(m,n) ×
FLT FLOAT ×
SFLT SMALLFLT ×
CHAR(n)310 CHAR(n) ×
VARCHAR(n)310 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 6 6
XML(n〔{K|M|G}〕)5 XML 6 6
FREEWORD(n)3 FREEWORD ×
BINARY(n)8 BINARY(n) 6 7
TIMESTAMP(n)9 TIMESTAMP(n) ×

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

注※1
指定できるデータ型の組み合わせについては,「表3-7 HiRDB Dataextractorで変換および比較できるデータ型」を参照してください。

注※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で抽出する場合,サイズの変更はできません。

(6) 排他情報ファイル

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

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

 
 

実際に発行されるLOCK文

 
LOCK TABLE 表名 IN EXCLUSIVE MODE NOWAIT
 

LOCK文の指定方法については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

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