- PR -

BCP処理中のエラーについて

1
投稿者投稿内容
nabe
常連さん
会議室デビュー日: 2006/04/13
投稿数: 29
投稿日時: 2008-09-12 10:08
いつもお世話になっております。
SQLServer2000のBCP処理にて予期せぬ動作をされ困っております。
知識不足の為、みなさまのお力をお借りしたく書込みさせてもらいます。
なにとぞよろしくお願い致します。

問題なのですが、
BCPを使い単純にDBのテーブルを一括エクスポートしているバッチ(bat)があるのですが、
時々(うまくいくときもあります)BCP処理にてI/Oエラーが発生し、
データが欠落しています。
バッチのログには

1000 ホスト ファイルへの行の一括コピーが完了しました。受信合計: 19245000
1000 ホスト ファイルへの行の一括コピーが完了しました。受信合計: 19246000
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver]BCP データファイル書き込み中に I/O エラーが発生しました。
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver]BCP データファイル書き込み中に I/O エラーが発生しました。
以降エラーがメッセージが続く。

19246101 行コピーされました。
ネットワーク パケット サイズ (バイト数): 4096
クロック タイム (ミリ秒): 合計 411060

と処理され、その後にerrorlevelをif分で判断してエラー処理に飛ばすか、正常処理に
するかしているのですが、エラーが起きているのにerrorlevelが0になっています。

ちなみにBCPコマンドは
bcp DB名.テーブル名 out \\別サーバー\aaa.txt -Sサーバ名 -Uユーザ名 -Pパス -r\n -n -e\b.err

です。
上記はバッチのログであり、bcpで指定したエラーファイルには何も出力されていません。
ゼロバイトファイルができあがるだけです。

上記I/Oエラーが発生する原因として何が考えられるでしょうか?
また、バッチにてエラーを拾うことはできるのでしょうか?
ちなみにエラーについては、このようなサポート情報をみたのですが、
解決策がのってなかったです。
http://support.microsoft.com/kb/922660/ja

製品はMicrosoft SQL Server 2000 Developer Editionです。
どうかよろしくお願い致します。

かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2008-09-18 12:34
リモートコンピューター上の共有フォルダに直接出力しているのですね。
勘ですが、ネットワーク的な問題は考えられないでしょうか。
ちょっとブチっと切れちゃったとか。
ローカルに出力した場合も同様のエラーが出るかどうかなんてのは確認できますか?
DTSのデータ変換タスクでやれば、もしかしたら何か気の利いた仕組みが仕込まれているかもしれません。
1

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