- - PR -
bcpについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-07-04 14:24
現在VB6.0+MSDEで開発しています。
CSVでデータを渡したり、データの取込を行っています。 ただ、ファイルを一件ずつ読込でinsertする為、時間がかかってしまいます。 その為、BCPを使用して、データの出力、取込を行おうと考えているのですが、 データの取込の際は、一意キーエラー等がおきる場合がありますが、 データを出力する際でも、エラーが発生する場合はあるのでしょうか? テーブルに1万件データがあったが、出力されなかったデータが 存在する事はありますか? その場合、-e[errfile]を指定すれば、わかるのでしょうか? 初めてBCPを使用する為、分からない事ばかりです。 お分かりの方は、教えて下さい。 お願いします。 | ||||||||
|
投稿日時: 2005-07-04 18:16
結論から申し上げますと,エラーが発生する状況はあります。 例えば, DB上では文字が入っている領域を SQLINT にキャストするようなフォーマット指定をして bcp を呼び出す などとすると, 該当部分のデータ(この場合は該当のセルのみ)が抜け落ちたデータが出力されてしまいます。 -e オプションのエラーファイルには出力されない情報もありますので, VB6.0 から bcp を呼び出す箇所で,適当なテキストファイルに「>」リダイレクトしてあげるのが実際には状況をよく把握することができます。 何はともあれ,まずは実際に使ってみてはいかがでしょうか? bcp は取り回しのよい面と悪い面と両面あって体感していただくのが一番だと思います。 | ||||||||
|
投稿日時: 2005-07-04 19:09
確かに。 一意キーエラーが発生するデータを取込場合、-o[outfile]と-e[errFile]を 指定しましたが、-eのファイルには、何も出力されていませんでした。 データの切り捨てが発生する場合、-eに切り捨てのエラー内容とデータが 出力され、-oのファイルには、切り捨てのエラーが出力されましたが、 処理は続行され、正常終了になっていました。 ※切り捨てが10件以上ある場合は、-oのファイルには「〜失敗しました」が出力され、 取込が行われませんでした。 bcpを使用してデータの取込、出力を行うテーブルは複数ある為、 batを使用して、vb.6.0からbatを呼び出そうと思っていました。 その際のbcp に-o -eを付けてログを出力して確認するつもりでしたが、
上記は、-oを使用して出力したファイルを確認することで、 状況をよく把握できるという事でしょうか? それとも、vb6.0側でログの出力を行えるのでしょうか? | ||||||||
|
投稿日時: 2005-07-04 19:27
-o -e オプションの組み合わせで取れる情報量で問題ないと思います。 bcp コマンドにファイルの引数を与えるか,バッチ呼び出しの中でリダイレクトするか 実装の段階で取り回しのよい方を選択していただければと思います。 エラーの最大許容については 「-m」オプションで制御できたと思います。(すいません未確認) テーブルの構造がわかりませんのでなんとも申し上げられませんが, データ取り込み/出力の際に問題が起こらないようにフォーマットファイルを調整していただけるようでしたら,それを第一にしていただければと。 とりいそぎ。 | ||||||||
|
投稿日時: 2005-07-04 19:36
TLCさん返信ありがとうございます。
分かりました。 あとはプログラムを作成してみて、試してみます。 ありがとうございました。 |
1