从我的Java应用程序运行BCP时,如果需要1,它将以状态码0退出。 我使用无效的数据和格式文件组合运行bcp,bcp出现以下错误:
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 :(得分:0)
如果bcp是“in”,请考虑使用BULK INSERT。这与bcp相同,但可以使用SQL Server TRY / CATCH或正常异常处理
进行捕获否则,您是否正在捕获%ERRORLEVEL%
而不是其他一些代码?