プロが教えるわが家の防犯対策術!

バッチファイルからBCPを実行させようとしています。実行結果をERRORLEVELで取得してもし、失敗した場合は次の処理に進むのをやめたいのですが、ERRORLEVELには正常値が返ってきます。どなたか、似たようなことをやったことのある人がいらっしゃれば、教えていただきたいです。
ちなみにSQLServer2000です。

A 回答 (5件)

>内容をプログラムでチェック


その通りです。

失敗したときの文言はほとんど決まっているので、それほどエラーパターンは存在しないと思います。
    • good
    • 1

-o オプションをつけて、ログを解析する方法もあります。

この回答への補足

それは、-oでbcpからのログを出力して、その内容をプログラムでチェックするということでしょうか?

補足日時:2005/02/01 10:08
    • good
    • 0

こういう処理の場合、bcpでエラーがでないようなつくりにしてます。

具体的にはワークテーブルを作成して、その列の型を文字列型にしておけば、まずエラーにはならないかと思います。

エラーハンドルを行うのは、このワークテーブルから実テーブルにデータを挿入するときに行ってます。
    • good
    • 0
この回答へのお礼

ありがとうございます。なるほど。そういう方法もありますよね。

お礼日時:2005/01/30 15:16

似たような事をしていますが、ログを吐いて、


そのログをfindstrでエラーを探してエラーを
ハンドリングしています。
納得行きませんけど。

この回答への補足

他に方法がなければ、私もその方法をとるつもりですが、やっぱり納得いきませんよねぇ。。

補足日時:2005/01/30 14:51
    • good
    • 0

BCPで無くてはいけないのですか?



SQLServer2000の他の機能では目的を果たせないの
でしょうか?

この回答への補足

DTSを使うという方法もありますが、それだと変換元ファイルの場所が固定になってしまいます。違うフォルダにあるデータを取り込みたいとき、DTSにすると定義をやり直す必要が出てきます。(変換元ファイルが固定長テキストなので、定義が大変。。)その点、BCPだとコマンドラインからファイル名を渡せるのでBCPでデータの取込を行いたいと思っています。

補足日時:2005/01/30 14:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す