ページの先頭行へ戻る
Symfoware Server V10.0.0 コマンドリファレンス

2.53 rdbsloader

名前

rdbsloader -- データベースの創成

形式(表のDSIの創成)

rdbsloader -mi
          { -i データベース名.表のDSI名 |  -v {DSI一覧ファイル名| -} }
           [ -h ]
           [{ -f インデックスのページ内未使用率
           [ ,インデックスのDSI名]} ... ]
           [{ -s [ DSI名,] 作業用ディレクトリパス名}...]
           [ { -t | -o } ]
           [ -j { EUC_S90 | SJIS | UNICODE } ]
           [ -n ]
           [ -p 区切り文字 ]
           [ -l { 囲み文字 | NONE_VALIDSPACE | NONE } ]
           [ -e ]
           [ -c 列名 [{ ,列名 } ...] ]
           [ -k ]
           [ -u 件数 ]
           [ -r { エラー件数 |  ALL} ,エラーデータ出力ファイル名 ]
           [ -d ]
           [ -U NCHAR=UCS2B ]
           [ -E OUTER_SPLIT_VALUE ]
           入力ファイル名 [{ 入力ファイル名} ...]

形式(インデックスのDSIの創成)

rdbsloader -x
           -i データベース名.インデックスのDSI名
            [ { -g XMLグループ名 | -v XMLGRP,{XMLグループ一覧ファイル名 | -}} ]
            [ -f インデックスのページ内未使用率 ]
            [{ -s  作業用ディレクトリパス名 }... ]
            [ -z IGNORE_STORED_DATA ]

機能説明

オプション(表のDSIの創成)

-mi

表のDSI内のデータを、入力ファイルで指定したデータで置換します。
表のDSIを創成するときに指定します。

-i データベース名.表のDSI名

創成の対象とする表のDSIのDSI名を指定します。

-v {DSI一覧ファイル名 | -}

創成の対象とする表のDSI名を記述したファイル名を絶対パス名で指定します。
同一の表に対するDSIを、同時に複数創成する場合に指定します。
“-”を指定すると、標準入力からの読込みとなります。
DSI一覧ファイル名に指定できる長さは、256バイトまでです。
以下に、ファイル内の形式を説明します。

# コメント
データベース名.表のDSI名<改行>

先頭に“#”がある行は、コメント行として読みとばされます。
このとき“#”は必ず行の先頭に記述する必要があります。
ファイル内には空行を含むことができます。

データベース名.表のDSI名

創成の対象とする表のDSIのDSI名を指定します。

-h

表のDSIにインデックスが定義されている場合、DSIの創成を高速に処理したいときに指定します。
本オプションを指定した場合は、本オプションの省略時よりも作業用領域を多く必要とします。
作業用領域の見積りについては、-sオプションを参照してください。

-f インデックスのページ内未使用率[,インデックスのDSI名]

インデックスのページ内未使用率を百分率で指定します。
0から99までの値が指定できます。
本オプションは、表のDSIに定義しているインデックス単位に複数指定することができます。
インデックスのDSI名を省略した場合、インデックスのページ内未使用率は、すべてのインデックスに適用されます。
また、本オプションを省略した場合、インデックスのページ内未使用率は0となります。
表のDSIに、IXDSI1、IXDSI2、IXDSI3の3個のインデックスのDSIが定義されている場合の-fオプションの指定例と各インデックスの未使用率について以下に示します。

-fオプションの指定例

IXDSI1

IXDSI2

IXDSI3

1)

-fオプションの指定なし

0

0

0

2)

-f 10,IXDSI1
-f 20,IXDSI2
-f 30,IXDSI3

10

20

30

3)

-f 10,IXDSI2

0

10

0

4)

-f 10,IXDSI2 -f 20

20

10

20

5)

-f 10

10

10

10

以下のような指定は、エラーとなります。
6)-f 10 -f 20 : 構文エラー
7)-f 20,IXDSI4 : 意味エラー

-s [DSI名,] 作業用ディレクトリパス名

本コマンドが利用する作業用領域のディレクトリパス名を絶対パス名で指定します。
省略すると、Symfoware/RDBがインストールされているディレクトリ\TMP(たとえば、C:\SFWSV\RDB\TMP)が使用されます。
なお、作業用ディレクトリパス名に指定できる長さは、228バイトまでです。
-hオプションを指定した場合のみDSI名を指定することができます。
DSI名を指定すると、DSIごとに作業用領域を割り当てることができます。
このことにより、作業用領域に対するI/O負荷を減らすことができます。
作業用領域として必要な容量の見積りを以下に示します。

-t

入力ファイルがテキスト形式の場合に指定します。
本オプションを省略した場合、バイナリ形式となります。

-o

入力ファイルが可変長バイナリ形式である場合に指定します。
可変長バイナリ形式とは、可変長属性の列に対するデータが、その有効長分だけで表現されている形式です。
本オプションを省略した場合は、可変長属性の列に対するデータが、定義長分で表現されている形式とみなされます。

-j { EUC_S90 | SJIS | UNICODE }

入力データのコード系を指定します。
入力データのコード系は、以下のものが指定できます。
EUC_S90 : EUCコードのS90コード
SJIS : シフトJISコード
UNICODE : UTF8
本オプションを省略した場合は、処理対象のデータベースのコード系が指定されたものとみなします。
なお、本オプションは、入力ファイルのデータがテキスト形式の場合にのみ指定できます。

-n

入力ファイルの全カラムの先頭に、NULL表示用の領域を持たない場合に指定します。
本オプションを省略した場合は、全カラムの先頭にNULL表示用の領域を持つものとして処理されます。
なお、本オプションは、バイナリ形式の場合にのみ指定できます。

-p 区切り文字

入力ファイルがテキスト形式の場合に、列データ間の区切り記号として使用する1文字(区切り文字)を指定します。
区切り文字は、ASCII文字の範囲内( 0x7f以下)で 指定します。
ただし、改行文字(\n)と空文字(\0)を区切り文字として指定することはできません。
また、区切り文字としてシステムに特別の意味をもつ文字を指定する場合は、二重引用符(")はエスケープ記号(\)を直前に指定する必要があり、それ以外の文字の場合は二重引用符(")で囲む必要があります。
本オプションを省略した場合、区切り記号としてコンマ(,)を使用するものとして処理します。
なお、テキスト形式のデータに含まれる可能性のある文字(たとえば、英数字、プラス(+)、マイナス(-)、ピリオド(.)など)を区切り文字に指定した場合、テキスト形式のデータにある、これらの文字は区切り文字として扱われますので、指定する場合は注意してください。
以下にテキスト形式のデータでの区切り文字の扱いを示します。

  • 区切り文字に空白を指定した場合、連続する空白は1つの区切り文字として扱います。

  • 区切り文字に空白を指定した場合、テキスト形式のデータにNULL値を含めることができなくなりますので注意してください。

  • 空白以外の区切り文字を指定した場合、区切り文字間の空白や、囲み文字の外側と区切り文字の間の空白は読みとばされます。

  • 空白以外の区切り文字が連続する場合、それぞれの区切り文字の間にNULL値のデータが1個あるものとして扱います。

  • 行の最後の区切り文字と改行文字の間は1項目として扱います。あるデータ項目以降がすべてNULL値であっても、最後の項目まで区切り文字を指定する必要があります。

  • 文字属性以外の項目データに区切り文字が存在する場合でも囲み文字で囲むことはできません。したがって、浮動小数点型のデータのように、ピリオド(.)や符号(+または-)などを含む数値型データを記述する場合、これらの文字を区切り文字に指定しないようにしてください。

-l{囲み文字 | NONE_VALIDSPACE | NONE}

入力ファイルがテキスト形式の場合に、文字列型、各国語文字列型、日時型またはBLOB型のデータの囲み記号の扱いを指定します。
囲み記号で文字列データの前後を囲む場合は、囲み記号として使用する1文字(囲み文字)を指定します。
囲み文字には、二重引用符(")、単一引用符(')のいずれかの1文字を指定します。
ただし、-pオプションで指定した区切り文字と同じ文字を指定することはできません。
囲み記号で文字列データの前後を囲まない場合は、NONE_VALIDSPACEまたはNONEを指定します。
ただし、文字列データ中に、-pオプションで指定した区切り文字を含む場合、または改行記号を含む場合は、必ず囲み記号を指定し、NONE_VALIDSPACEまたはNONEを指定できません。
NONE_VALIDSPACEを指定した場合には、区切り文字から区切り文字までをそのまま格納します。
ただし、-pオプションで区切り文字に空白を指定できません。
NONEを指定した場合には、前後の空白を削除して格納します。
本オプションを省略した場合、囲み文字として二重引用符(")を使用するものとして処理します。
以下にテキスト形式のデータでの囲み文字の扱いを示します。

  • 囲み記号で囲まれた文字列データ内に、囲み記号と同じ文字を使用する場合、連続する囲み文字を2つ指定することにより、1つの文字データとみなします。

囲み記号に二重引用符(")を指定した場合
テキストの指定 :
~ ,"A""BC", ~
データの値 :
A"BC

  • 囲み文字を指定した場合、すべての文字列データは必ず指定した囲み文字で囲む必要があります。

  • 囲み文字の種類と指定形式について以下に示します。

    単一引用符(') :
    形式1(二重引用符で囲む)
    -l "'"
    二重引用符(") :
    形式1(直前に(\)を付加)
    -l \"

-e

入力ファイルがテキスト形式の場合に、1レコード中の最終のデータ項目の後(間に空白があってもよい)に区切り文字がある場合に指定します。
本オプションを省略した場合、1レコード中の最終のデータ項目の後に区切り文字(空白を除く)は指定できません。

-c 列名[{,列名}…]

入力ファイルのデータの並びを表の列名で指定します。
本オプションを省略した場合、表定義の列名の並び順となります。
表定義の列名を選択しない場合、表の列には表定義で指定したDEFAULT句の値を補います。
DEFAULT句が未定義の場合には、NULL値を補います。
なお、格納構造がOBJECTである表のDSIに対しては、本オプションを指定することができません。

-k

表定義のプライマリキーの列でソート後に創成します。
表のDSIがSEQUENTIALの場合のみ指定することができます。
表のレコードの定義長がページ長を超える場合は、本オプションを指定することはできません。
表のレコードの定義長は、“RDB運用ガイド(データベース定義編)”の“データベーススペースの所要量の見積り”を参照して算出してください。

-u 件数

表のDSIの創成において、処理通過メッセージを出力する場合に指定します。
件数は、処理通過メッセージを出力する単位(件数)を指定します。

-r {エラー件数 | ALL},エラーデータ出力ファイル名

表のDSIの創成中にカラム属性エラーが発生した場合、コマンド処理を中断するまでの発生エラー件数の限界値を指定します。
エラー件数に指定した件数に達するまでカラム属性エラーが発生しても、カラム属性エラーを含んだレコードを処理の対象としないで処理を続行します。
エラー件数には1以上の数値を指定し、エラーデータ出力ファイル名は絶対パス名で指定します。
エラーデータ出力ファイル名に指定できる長さは、256バイトまでです。
エラーデータ出力ファイルには、カラム属性エラーを検出したすべてのレコードが、入力ファイルに指定した内容で出力されます。
エラー件数にキーワード“ALL”を指定すると、入力ファイル中でカラム属性エラーを検出しても入力データの最後まで処理を続行し、エラーを検出したすべてのレコードがエラーデータ出力ファイルに出力されます。
本オプションを省略した場合は、入力ファイル中に1件でもカラム属性エラーを含む誤りのファイルを検出した場合、コマンド処理を中断します。
分割値範囲外データをエラー対象に含める場合には-Eオプションを指定してください。-Eオプションを省略した場合、本オプションを指定しても処理対象のDSIの分割値の範囲外であるデータは読みとばされ、エラーデータ出力ファイルには出力されません。
コマンドが異常終了した場合は、エラーデータ出力ファイルは削除されます。
一意性制約違反のデータは対象となりません。

-d

入力ファイルのディスクを切り替える場合に指定します。
要求メッセージに従って、続行の指示(“y”または“n”)を標準入力します。
「入力ファイル名.3桁の通番」のファイルが入力ファイルとして要求されます。
(通番は001~) 続行の指示入力において、以下の入力誤りの場合は再試行が可能です。

  • ディスクが用意されていない

  • ディレクトリ名が存在しない

  • ファイルが存在しない

  • ファイルが読み込みできない(権限なしなど) 続行の指示の入力において、以下の場合は再入力が要求されます。

  • 空Enter(または“y”、“n”以外)

なお、本オプションを指定した場合、入力ファイル名は1つしか指定できません。

-U NCHAR=UCS2B

入力データの各国語文字列型についてのコード系がUCS2のバイトスワップ形式(リトルエンディアン)の場合に指定します。

なお、本オプションは、対象データベースのコード系がUNICODEかつ入力データがバイナリ形式の場合のみ指定できます。

-E OUTER_SPLIT_VALUE

分割格納が定義された表のDSIを処理するとき、入力ファイルにDSIの分割値の範囲外であるデータが存在した場合、異常データとして扱います。本指定を省略した場合は、そのデータを処理の対象外として処理を続行します。
本機能はコマンド実行時の環境変数での指定もできます。
環境変数での指定の詳細については、“RDB運用ガイド”の“初期創成のためのコマンド”を参照してください。

入力ファイル名 [{入力ファイル名} ...]

入力するデータのファイル名を指定します。
ファイル名は、絶対パス名で指定します。
入力ファイルの形式には、バイナリ形式およびテキスト形式があります。
複数の入力ファイルを指定した場合は、すべてのファイルからデータが入力されます。
ただし、バイナリ形式とテキスト形式のファイルを混在して指定することはできません。
入力ファイル名に指定できる長さは、256バイトまでです。
なお、入力ファイルの形式の詳細については、“RDB運用ガイド”の“外部ファイルの形式”を参照してください。

オプション(インデックスのDSIの創成)

-x

インデックスのDSIを創成する場合に指定します。

-i データベース名.インデックスのDSI名

創成するインデックスのDSI名を指定します。

-g XMLグループ名

-iオプションで指定したDSI内の特定のXMLグループに対する未創成の検索パスを創成する場合に指定します。
インデックスのDSIがXMLの場合のみ指定することができます。

-v XMLGRP,{XMLグループ一覧ファイル名 | -}

-iオプションで指定したDSI内の複数のXMLグループに対する未創成の検索パスを同時に創成する場合に指定します。
対象とするXMLグループ名を記述したファイル名を絶対パス名で指定します。
インデックスのDSIがXMLの場合のみ指定することができます。
“-”を指定すると、標準入力からの読込みとなります。
XMLグループ一覧ファイル名に指定できる長さは、256バイトまでです。
以下に、ファイル内の形式を説明します。

# コメント
XMLグループ名 [,IGNORE_STORED_DATA]<改行>

先頭に“#”がある行は、コメント行として読みとばされます。
このとき“#”は必ず行の先頭に記述する必要があります。
ファイル内には空行を含むことができます。

XMLグループ名

XMLグループ名を指定します。
同じXMLグループ名を複数指定することはできません。

IGNORE_STORED_DATA

検索対象を新規に格納されるXMLデータのみに限定し、すでに表に格納されているXMLデータを検索対象としない場合に指定します。

-f インデックスのページ内未使用率

インデックスのページ内未使用率を百分率で指定します。
0から99までの値が指定できます。
本オプションを省略した場合、インデックスのページ内未使用率は、0となります。

-s 作業域用ディレクトリパス名

本コマンドが利用する作業用領域のディレクトリパス名を絶対パス名で指定します。
省略すると、Symfoware/RDBがインストールされているディレクトリ\TMP(たとえば、C:\SFWSV\RDB\TMP)が使用されます。
なお、作業域用ディレクトリパス名に指定できる長さは、228バイトまでです。

-z IGNORE_STORED_DATA

検索対象を新規に格納されるXMLデータのみに限定し、すでに表に格納されているXMLデータを検索対象としない場合に指定します。
インデックスのDSIがXMLの場合のみ指定することができます。
なお、本オプションは、-fオプション、-sオプションおよび-vオプションと同時に指定することはできません。

使用例

例1

在庫管理DBに属する在庫表DSIを創成します。
入力ファイル名は、“c:\rdb\data\load.dat”とします。
ファイルはバイナリ形式で、各国語文字列型がUCS2のバイトスワップ形式(リトルエンディアン)とします。

rdbsloader -mi -i 在庫管理DB.在庫表DSI
           -f 20,在庫表インデックスDSI -f 10
           -s c:\rdb\work
           -U NCHAR=UCS2B 
           c:\rdb\data\load.dat
例2

倉庫番号と製品名にのみデータを挿入します。
ファイルのデータは、テキスト形式とします。

rdbsloader -mi -i 在庫管理DB.在庫表DSI
           -s c:\rdb\work -t -c 倉庫番号,製品名
            c:\rdb\data\load.txt
例3

正常なレコードのみを挿入し、属性エラーを検出した誤りのレコードを、“c:\rdb\data\rr.txt”に出力します。

rdbsloader -mi -i 在庫管理DB.在庫表DSI
           -t -r ALL,c:\rdb\data\rr.txt c:\rdb\data\load.txt
例4

ファイル指定により、同一の表に対するDSIを同時に複数創成します。
創成するDSI名は“c:\rdb\data\list.txt”にあらかじめ記述しておきます。

rdbsloader -mi -v c:\rdb\data\list.txt -t c:\rdb\data\load.txt
ファイル(list.txt)の例
在庫管理DB.在庫表DSI1
在庫管理DB.在庫表DSI2
在庫管理DB.在庫表DSI3
例5

在庫表インデックスDSIを創成します。

rdbsloader -x -i 在庫管理DB.在庫表インデックスDSI -f 10
           -s c:\rdb\work
例6

在庫表インデックスDSI内のXMLグループである製品情報に対する検索パスを創成します。

rdbsloader -x -i 在庫管理DB.在庫表インデックスDSI
           -g 製品情報
           -f 10

終了ステータス

以下の終了ステータスが返されます。

0 : 正常終了
0以外 : 異常終了

注意