2011-07-06 65 views
2

JavaアプリケーションからBCPを実行すると、1が予想されるときにステータスコード0で終了します。 私は、データと書式設定ファイルとBCPの無効な組み合わせでbcpを実行するには、次のエラーを与える:私は疑いようBCPがコード0で終了する

Starting copy... 
SQLState = 22005, NativeError = 0 
Error = [Microsoft][SQL Server Native Client 10.0]Invalid character value for cast specification 

BCP copy in failed 

BCPは、しかし、終了コード0ではなく1で終了します。現在、BCPの実行中に何かが失敗したかどうかを確認することは非常に困難です。適切なコードで終了すると、ある程度一致します(同じ区切り文字のように)。

コマンド

PS C:\Users\feh\Desktop> bcp integrate_test.dbo.AS_LOADER_DELIMITED in .\data.dat -S "10.0.0.161\SQL2K5,1048" -U user -P pass -f .\formatting.ctl -m 1 

Starting copy... 
SQLState = S1000, NativeError = 0 
Error = [Microsoft][SQL Server Native Client 10.0]Unexpected EOF encountered in BCP data-file 

0 rows copied. 
Network packet size (bytes): 4096 
Clock Time (ms.) Total  : 1 
PS C:\Users\feh\Desktop> $lastexitcode 
0 

どのように私は、データに書式ファイルを検証し、それらが一致しない場合、終了コード1を得ることができますか?

答えて

0

bcpが "in"の場合は、BULK INSERTを使用することを検討してください。これはbcpと同じですが、SQL ServerのTRY/CATCHまたは通常の例外処理を使用してトラップできます

それ以外の場合は、他のコードではなく%ERRORLEVEL%をトラップしていますか?

+0

私は、lastexitcodeの結果を使用してiコマンドを追加しました。 – ferdyh

関連する問題