- PR -

bcpについて

1
投稿者投稿内容
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2005-07-04 14:24
現在VB6.0+MSDEで開発しています。

CSVでデータを渡したり、データの取込を行っています。
ただ、ファイルを一件ずつ読込でinsertする為、時間がかかってしまいます。

その為、BCPを使用して、データの出力、取込を行おうと考えているのですが、
データの取込の際は、一意キーエラー等がおきる場合がありますが、
データを出力する際でも、エラーが発生する場合はあるのでしょうか?

テーブルに1万件データがあったが、出力されなかったデータが
存在する事はありますか?
その場合、-e[errfile]を指定すれば、わかるのでしょうか?

初めてBCPを使用する為、分からない事ばかりです。
お分かりの方は、教えて下さい。
お願いします。
TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2005-07-04 18:16
引用:

ケイさんの書き込み (2005-07-04 14:24) より:

その為、BCPを使用して、データの出力、取込を行おうと考えているのですが、
データの取込の際は、一意キーエラー等がおきる場合がありますが、
データを出力する際でも、エラーが発生する場合はあるのでしょうか?



結論から申し上げますと,エラーが発生する状況はあります。

例えば,
DB上では文字が入っている領域を
SQLINT にキャストするようなフォーマット指定をして bcp を呼び出す

などとすると,
該当部分のデータ(この場合は該当のセルのみ)が抜け落ちたデータが出力されてしまいます。

-e オプションのエラーファイルには出力されない情報もありますので,

VB6.0 から bcp を呼び出す箇所で,適当なテキストファイルに「>」リダイレクトしてあげるのが実際には状況をよく把握することができます。

何はともあれ,まずは実際に使ってみてはいかがでしょうか?
bcp は取り回しのよい面と悪い面と両面あって体感していただくのが一番だと思います。
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2005-07-04 19:09
引用:

TLCさんの書き込み (2005-07-04 18:16) より:
-e オプションのエラーファイルには出力されない情報もありますので,

VB6.0 から bcp を呼び出す箇所で,適当なテキストファイルに「>」リダイレクトしてあげるのが実際には状況をよく把握することができます。

何はともあれ,まずは実際に使ってみてはいかがでしょうか?
bcp は取り回しのよい面と悪い面と両面あって体感していただくのが一番だと思います。



確かに。

一意キーエラーが発生するデータを取込場合、-o[outfile]と-e[errFile]を
指定しましたが、-eのファイルには、何も出力されていませんでした。

データの切り捨てが発生する場合、-eに切り捨てのエラー内容とデータが
出力され、-oのファイルには、切り捨てのエラーが出力されましたが、
処理は続行され、正常終了になっていました。
※切り捨てが10件以上ある場合は、-oのファイルには「〜失敗しました」が出力され、
取込が行われませんでした。

bcpを使用してデータの取込、出力を行うテーブルは複数ある為、
batを使用して、vb.6.0からbatを呼び出そうと思っていました。
その際のbcp に-o -eを付けてログを出力して確認するつもりでしたが、

引用:

VB6.0 から bcp を呼び出す箇所で,適当なテキストファイルに「>」リダイレクトしてあげるのが実際には状況をよく把握することができます。



上記は、-oを使用して出力したファイルを確認することで、
状況をよく把握できるという事でしょうか?

それとも、vb6.0側でログの出力を行えるのでしょうか?

TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2005-07-04 19:27
引用:


bcpを使用してデータの取込、出力を行うテーブルは複数ある為、
batを使用して、vb.6.0からbatを呼び出そうと思っていました。
その際のbcp に-o -eを付けてログを出力して確認するつもりでしたが、




-o -e オプションの組み合わせで取れる情報量で問題ないと思います。
bcp コマンドにファイルの引数を与えるか,バッチ呼び出しの中でリダイレクトするか
実装の段階で取り回しのよい方を選択していただければと思います。

エラーの最大許容については 「-m」オプションで制御できたと思います。(すいません未確認)

テーブルの構造がわかりませんのでなんとも申し上げられませんが,
データ取り込み/出力の際に問題が起こらないようにフォーマットファイルを調整していただけるようでしたら,それを第一にしていただければと。

とりいそぎ。
ケイ
大ベテラン
会議室デビュー日: 2004/04/20
投稿数: 100
投稿日時: 2005-07-04 19:36
TLCさん返信ありがとうございます。

引用:

TLCさんの書き込み (2005-07-04 19:27) より:

テーブルの構造がわかりませんのでなんとも申し上げられませんが,
データ取り込み/出力の際に問題が起こらないようにフォーマットファイルを調整していただけるようでしたら,それを第一にしていただければと。




分かりました。
あとはプログラムを作成してみて、試してみます。
ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)