xtrepコマンドで指定する,次のファイルの内容について説明します。
列名記述ファイルには,SELECT文の選択式を指定します。
SELECT文での選択式の指定方法については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
抽象データ型関数extractsの指定形式を次に示します。
extracts(列名) |
表式記述ファイルには,SELECT文の次の句を指定します。
SELECT文でのWHERE句およびORDER BY句の指定方法については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
ナル値情報ファイルは,次のときに指定します。
{列名|フィールド番号=NUM} |
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 | 0※1 | - | - | 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)バイト) |
表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) |
| 同左 |
NCHAR(n) NVARCHAR(n) |
| 同左 |
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) |
| 同左 |
TIMESTAMP(n) | 0001年01月01日00時00分00.000000秒※ | X'FF…FF' (7+(N)÷2バイト) |
出力ファイルは抽出したデータを格納するファイルです。
HiRDB Dataextractorが抽出したデータを出力ファイルへ格納するときの記述形式について説明します。出力ファイルでの記述形式は,HiRDBのデータベース作成ユティリティの入力ファイルの形式を基にしています。
出力ファイルには,次の二つの形式があります。
バイナリ形式の場合,抽出したデータをHiRDBのDBに格納されている形式で記述します。環境変数XTNLDFLTの指定により,データ形式が異なります。
次に環境変数XTNLDFLTの指定によるデータ形式を示します。
表4-15 列データの記述形式(バイナリ形式)
データ型 | 列データ記述形式 | |
---|---|---|
数データ | INTEGER,SMALLINT | ![]() |
DECIMAL(m,n) 1≦m≦38 0≦n≦38 m≧n | ![]() | |
FLOAT,SMALLFLT | ![]() | |
文字データ, 各国文字データ, 混在文字データ | CHARACTER(n),VARCHAR(n),MCHAR(n),MVARCHAR(n) | ![]() |
NCHAR(n),NVARCHAR(n) | ![]() | |
日付データ | DATE | ![]() |
日間隔データ | INTERVAL YEAR TO DAY | ![]() |
時刻データ | TIME | ![]() |
時刻印データ | TIMESTAMP(n) n=0,2,4,6 | ![]() |
時間隔データ | INTERVAL HOUR TO SECOND | ![]() |
長大データ | BLOB | ![]() |
![]() | ||
BINARY(n) 1≦n≦2,147,483,647 | ![]() | |
抽象データ型 | SGMLTEXT | ![]() |
XML | ![]() | |
FREEWORD | ![]() |
次の図を参照してください。
図4-1 環境変数XTNLDFLTに2を指定した場合のデータの記述形式(バイナリ形式)
表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の表への反映時およびバイナリ形式のファイル作成時の繰返し列のデータ形式」を参照してください。 |
DAT形式の場合,抽出したデータを文字データで記述します。記述方法を次に示します。
各データ型に対する,列データの記述形式(DAT形式)を,次の表に示します。
表4-17 列データの記述形式(DAT形式)
データ型 | 列データ記述形式 | |
---|---|---|
数データ | INTEGER |
小数点(例:-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の場合,""と記述します。 |
反映情報ファイルには,データ型を変換する列情報とデータ型を指定します。
反映情報ファイルは,次の場合に指定します。
FORMAT |
表4-18 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 | ○※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) | ○ | × |
単位 | 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 |
排他情報ファイルには,データ抽出時の排他情報について指定します。
排他情報ファイルの指定内容を次に示します。
IN EXCLUSIVE MODE NOWAIT |
表名 IN EXCLUSIVE MODE NOWAIT |
実際に発行されるLOCK文
LOCK TABLE 表名 IN EXCLUSIVE MODE NOWAIT |
LOCK文の指定方法については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。