コマンド ライン インターフェイス ユーティリティ : bdu
 
このページをシェアする                  
bdu
説明
バルク データ ユーティリティ(BDU)はコマンド ライン ユーティリティで、区切り文字付きテキスト ファイルのデータを Pervasive PSQL テーブルに読み込むことができます。テーブルおよびデータベースは既に存在している必要があります。
BDU、テーブル、データベースおよび Pervasive PSQL データベース エンジンはすべて同じコンピューター上に存在する必要があります。区切り文字付きテキスト ファイルは、ローカル ドライブ、マップ ドライブ、マウントされたフォルダーまたは共有フォルダーの中でデータベース エンジンがローカルにアクセス可能である必要があります。
デフォルトの区切り文字を使うこともできますし、ユーザー指定の区切り文字を使用することもできます。区切り文字に使用する文字がデータ自体に含まれていてはいけません。次の表は許可されている区切り文字の一覧です。
表 15 列の区切り文字
区切り文字
表示
タブ
\t(デフォルト)
印刷可能な任意の 1 文字(制御文字は印刷不能ですが、ヌル、タブ、改行(LF)および復帰(CR)は例外です。)
(*、A、t、l など)
 
メモ: Pervasive PSQL では、ヌル終端文字(\0)や二重引用符(")は列の区切り文字として使用できません。
 
表 16 行の区切り文字
区切り文字
表示
改行文字
\n(デフォルト)
復帰(CR)
\r
復帰改行(CR LF)
\r\n
BDU では、一重引用符(')および二重引用符(")のみがテキストの囲み文字として使用できます。データ ファイルには、一重引用符または二重引用符で囲まれた列値を含むことができます。 たとえば、次の列値は二重引用符で囲まれ、タブ文字で区切られています。
"Fred"\t"22"\t"2459"\t"Sales"\t
BDU は、連続した区切り文字をヌル値として扱います。ユーティリティは、連続した列区切り文字を検出すると列にヌル値を挿入し、その列をヌル値許可とします。
ヌル値には囲み文字は使用できません。次の列データでは、2 番目の列がヌル値です。この列には囲み文字が使用されていないことに注意してください。"Fred"\t\t"2459"\t"Sales"\t
概要
bdu {database_name} {table_name} {data_file}
[-e max_errors]
[-r reject_file]
[-f first_row]
[-l last_row]
[-t field_term]
[-n row_term]
[-o output_file]
[{-u login_id} {-p password}]
[-q text_qualifier]
[-h]
メモ: BDU を使用してセキュリティが設定されているデータベース(Btrieve セキュリティ ポリシーが[混合]に設定されている)にデータを読み込む場合、提供される資格情報(ユーザー名およびパスワード)が Pervasive PSQL データベースのユーザー アカウントおよびシステムのユーザー アカウントと一致する必要があります。
オプション
表 17 バルク データ ユーティリティのパラメーター
パラメーター
必須/省略可能
デフォルト値
説明
database_name
必須
 
ローカル Pervasive PSQL エンジンに接続するデータベース名
table_name
必須
 
そこに含まれるテーブルの名前
data_file
必須
 
区切り文字付きテキスト ファイルの名前とロケーション
max_errors
省略可能
0(ゼロ)
BDU は最初のエラーが発生すると終了します。
BDU が終了するまでに無視するエラーの数。
reject_file
省略可能
stderr
読み込みに失敗した行を書き出すファイルの名前。指定するディレクトリが存在している必要があります。ただし、指定したディレクトリにファイルが存在しない場合は作成されます。
first_row
省略可能
行 1
読み込みを開始する区切り文字付きテキスト ファイルの最初の行。このパラメーターを使用すると、ヘッダー行をスキップすることができます。たとえば、ヘッダー行が 1 行目の場合は、first_row に 2 を設定します。
last_row
省略可能
ソース ファイルの終わり。
ソース ファイルの最終行(この行は読み込まれます)。最終行が読み込まれると、読み込みは停止します。
field_term
省略可能
カンマやタブ文字などの文字。
ソース ファイルの列区切り文字。
row_term
省略可能
改行文字
ソース ファイルの行区切り文字。
output_file
省略可能
stderr
読み込み中の情報およびエラー メッセージを書き出すファイルの名前。指定するディレクトリが存在している必要があります。ただし、指定したディレクトリにファイルが存在しない場合は作成されます。
login_id
省略可能
 
Pervasive SQL エンジンに接続するユーザーの名前。
password
省略可能
 
Pervasive SQL エンジンに接続するパスワード。
text_qualifier
省略可能
 
 
注記
各種設定
BDU を使用するのに Pervasive PSQL 設定パラメーターを変更する必要はありません。
BDU はアクセラレイティド モードを使用してデータをテーブルに読み込みます。データの読み込み中、MicroKernel はトランザクション ログを実行しません。
アーカイブ ログを使用している場合は、データ ファイルを再度バックアップします。
エラー ログ
デフォルトで、BDU はすべての情報とエラー メッセージを標準エラー ストリーム(stderr)に記録します。ユーティリティが情報またはエラー メッセージを書き込むログ ファイルを指定することができます。
重大なエラーと回復可能なエラーの 2 種類は記録されません。重大なエラーが起きた場合、BDU はエラーからの復旧を行うことができないため、終了します。たとえば、区切り文字の欠落したデータ ファイルは重大なエラーです。
回復可能なエラーが起きた場合、BDU はエラーをスキップして処理を継続します。ユーティリティは、スキップしたエラーの回数を保持していて、ユーザーが指定したスレッショルドに達すると終了します。デフォルトで、スレッショルドにはゼロが設定されています。
制約
BDU を使用してデータを読み込む際には、以下の制約が適用されます。
制約
説明
参照整合性(RI)エラーは RI 違反と見なされる
行は拒否されます。
任意の一意のキーまたは主キーの違反
行は拒否されます。
非ヌル列に値が指定されていない 1
列のデフォルト値に無関係に、行は拒否されます。
ヌル値を許可する列に値が指定されていない 1
列のデフォルト値に無関係に、ヌルが挿入されます。
データがロードされているテーブルには、INSERT トリガーが含まれています。
BDU はエラーを返し、そのテーブルを読み込みません。テーブルの INSERT トリガーを削除し、BDU を再実行してください。
データが読み込まれているテーブルには CLOB または BLOB 列が含まれています。
BDU はそのテーブルを読み込みません。
行の順序
BDU は、区切り文字付きデータ ファイルを順不同と見なします。行の元の順序は保持されない可能性があります。
データ フィールド
サポートされる唯一の形式は yyyy-mm-dd です。
時刻フィールド
サポートされる唯一の形式は yyyy-mm-dd です。
タイムスタンプ フィールド
サポートされる唯一の形式は yyyy-mm-dd HH:MM:SS.MS です。
1BDU は、テーブルの作成中または更新中に定義した列のデフォルト値を認識しません。
最良の設定
可能であれば、データベース読み込みが最小のとき、または、読み込み中のテーブルに同時セッションが存在しないときに BDU を実行してください。
読み込み中のテーブルにインデックスが含まれている場合は、BDU を使用する前にインデックスを削除します。読み込みの完了後インデックスを再作成します。
読み込み中のテーブルに CHECK 制約がかけられている列がある場合は、BDU を使用する前に CHECK 制約を削除してください。読み込み完了後に制約を再指定します。
サンプル ソース ファイル
以下のデータ内容を使用して、サンプルの文字区切りテキスト ファイルが作成されています。使用例を検証するのに、このファイルを使用することができます。例では、このファイルを data_file.txt として使用しています。
以下のデータ内容はカンマ区切りになっているため、BDU では -t パラメーターを指定する必要があることに注意してください。-t パラメーターは、タブ文字以外の区切り文字では必須です。
pervasiveBDUsample_1,12345,pervasive,101,18446744073709551615
pervasiveBDUsample_2,12346,pervasive,102,18446744073709551614
pervasiveBDUsample_3,12347,pervasive,103,18446744073709551613
pervasiveBDUsample_4,12348,pervasive,104,18446744073709551612
pervasiveBDUsample_5,12349,pervasive,105,18446744073709551611
pervasiveBDUsample_6,12350,pervasive,106,18446744073709551610
pervasiveBDUsample_7,12351,pervasive,107,18446744073709551609
pervasiveBDUsample_8,12352,pervasive,108,18446744073709551608
pervasiveBDUsample_9,12353,pervasive,109,18446744073709551607
pervasiveBDUsample10,12354,pervasive,110,18446744073709551606
以下の例では、BDU_Table という名前のテーブルが Demodata サンプル データベースに含まれているものと仮定しています。Demodata にこのようなテーブルを追加するには、次のクエリを使用します。
CREATE TABLE BDU_Table (Name CHAR(20) NOT NULL CASE, PhoneNo INTEGER,BuildingName CHAR(25) NOT NULL CASE, RoomNo UINT NOT NULL,HeadOfDept UBIGINT NOT NULL)
BDU をデフォルトのオプションで実行するには次のように記述します。
bdu demodata BDU_Table C:\data_file.txt
メモ: 入力データはタブ区切りで、デフォルトのオプションを使用する必要があります。入力データがタブ区切りでない場合は、-t パラメーターを使用して区切り文字を指定する必要があります。

たとえば、カンマ区切りであるのデータを使用する場合、次のように BDU を実行します。

bdu demodata BDU_Table C:\data_file.txt -t ,
============ 
ユーザー名とパスワードを必要とするデータベースで BDU を実行するには次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -u <ユーザー名> -p <パスワード>
============ 
最大のエラー数オプションを使用して BDU を実行するには次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -e <ユーザーが許可するエラーの数>
たとえば、エラーが 100 個続くまで読み込むには、次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -e 100
============ 
特定の列区切り文字オプションを使用して BDU を実行するには次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -t <列区切り文字>
たとえば、
ソース ファイルに、各行を分離するテキストが含まれる場合は次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -t ,
============ 
特定の行区切り文字オプションを使用して BDU を実行するには次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -n <行区切り文字>
たとえば、ソース ファイルに各行が \n で分離されるテキストを含まれている場合は、次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -n \n
============ 
特定の開始行オプションを使用して BDU を実行するには次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -f <読み込みを開始する行番号>
============ 
特定の行終端オプションを使用して BDU を実行するには次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -l <読み込みを終了する行番号>
============ 
パラメーターは組み合わせて使用することができます。|で区切られ、' で囲まれたデータを含むソース ファイルの先頭 15 行を読み込むには次のように記述します。
bdu demodata BDU_Table C:\data_file.txt -f 1 -l 15 -t |