|
バルク データ ユーティリティ(BDU)はコマンド ライン ユーティリティで、区切り文字付きテキスト ファイルのデータを Pervasive PSQL テーブルに読み込むことができます。テーブルおよびデータベースは既に存在している必要があります。
BDU、テーブル、データベースおよび Pervasive PSQL データベース エンジンはすべて同じコンピューター上に存在する必要があります。区切り文字付きテキスト ファイルは、ローカル ドライブ、マップ ドライブ、マウントされたフォルダーまたは共有フォルダーの中でデータベース エンジンがローカルにアクセス可能である必要があります。
デフォルトの区切り文字を使うこともできますし、ユーザー指定の区切り文字を使用することもできます。区切り文字に使用する文字がデータ自体に含まれていてはいけません。次の表は許可されている区切り文字の一覧です。
区切り文字
|
表示
|
---|---|
タブ
|
¥t(デフォルト)
|
印刷可能な任意の 1 文字(制御文字は印刷不能ですが、ヌル、タブ、改行(LF)および復帰(CR)は例外です。)
|
(*、A、t、l など)
|
メモ
Pervasive PSQL では、ヌル終端文字(¥0)や二重引用符(")は列の区切り文字として使用できません。
BDU では、一重引用符(')および二重引用符(")のみがテキストの囲み文字として使用できます。データ ファイルには、一重引用符または二重引用符で囲まれた列値を含むことができます。たとえば、"Fred"¥t"22"¥t"2459"¥t"Sales"¥t という列値は二重引用符で囲まれ、タブ文字で区切られています。
BDU は、連続した区切り文字をヌル値として扱います。ユーティリティは、連続した列区切り文字を検出すると列にヌル値を挿入し、その列をヌル値許可とします。
ヌル値には囲み文字は使用できません。次の列データでは、2 番目の列がヌル値です。この列には囲み文字が使用されていないことに注意してください。
"Fred"¥t¥t"2459"¥t"Sales"¥t
メモ
BDU を使用してセキュリティが設定されているデータベース(Btrieve セキュリティ ポリシーが[混合]に設定されている)にデータを読み込む場合、提供される資格情報(ユーザー名およびパスワード)が Pervasive PSQL データベースのユーザー アカウントおよびシステムのユーザー アカウントと一致する必要があります。
BDU を使用するのに Pervasive PSQL 設定パラメーターを変更する必要はありません。
BDU はアクセラレイティド モードを使用してデータをテーブルに読み込みます。データの読み込み中、MicroKernel はトランザクション ログを実行しません。
アーカイブ ログを使用している場合は、データ ファイルを再度バックアップします。
デフォルトで、BDU はすべての情報とエラー メッセージを標準エラー ストリーム(stderr)に記録します。ユーティリティが情報またはエラー メッセージを書き込むログ ファイルを指定することができます。
重大なエラーと回復可能なエラーの 2 種類は記録されません。重大なエラーが起きた場合、BDU はエラーからの復旧を行うことができないため、終了します。たとえば、区切り文字の欠落したデータ ファイルは重大なエラーです。
回復可能なエラーが起きた場合、BDU はエラーをスキップして処理を継続します。ユーティリティは、スキップしたエラーの回数を保持していて、ユーザーが指定したスレッショルドに達すると終了します。デフォルトで、スレッショルドにはゼロが設定されています。
BDU を使用してデータを読み込む際には、以下の制約が適用されます。
可能であれば、データベース読み込みが最小のとき、または、読み込み中のテーブルに同時セッションが存在しないときに 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 を実行するには次のように記述します。
たとえば、エラーが 100 個続くまで読み込むには、次のように記述します。
特定の列区切り文字オプションを使用して BDU を実行するには次のように記述します。
たとえば、
ソース ファイルに、各行を分離するテキストが含まれる場合は次のように記述します。
特定の行区切り文字オプションを使用して BDU を実行するには次のように記述します。
たとえば、ソース ファイルに各行が ¥n で分離されるテキストを含まれている場合は、次のように記述します。
特定の開始行オプションを使用して BDU を実行するには次のように記述します。
特定の行終端オプションを使用して BDU を実行するには次のように記述します。
パラメーターは組み合わせて使用することができます。|で区切られ、' で囲まれたデータを含むソース ファイルの先頭 15 行を読み込むには次のように記述します。
|