2011-07-06 191 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是“在”考虑使用BULK INSERT。这与bcp相同,但可以使用SQL Server TRY/CATCH捕获或正常异常处理

否则,你是否陷阱%ERRORLEVEL%而不是其他代码?

+0

我已经添加了命令我打电话来自$ lastexitcode的结果。 – ferdyh