java - BCP 以代码 0 退出

标签 java sql-server command-line bcp

当从我的 Java 应用程序运行 BCP 时,它以状态代码 0 退出,而预期状态代码为 1。 我使用无效的数据和格式化文件组合运行 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?

最佳答案

如果 bcp“在”考虑使用 BULK INSERT .这与 bcp 相同,但可以使用 SQL Server TRY/CATCH 或正常异常处理来捕获

否则,您是在捕获 %ERRORLEVEL% 而不是其他代码吗?

关于java - BCP 以代码 0 退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595016/

相关文章:

java - 动态数组算法

java - 如何知道Dropwizard服务是否一启动就启动了?

Maven TestNG 项目,将命令行参数传递给 testng.xml 文件

java - 仅针对一台特定服务器忽略 SSLHandshakeException

java - HashMap 交换键值,反之亦然

sql-server - SQL Server 用户最佳实践

sql-server - SQL Server Case 语句在 Delphi TADODataSet 中不起作用

sql-server - SQL Server 基于声明变量的条件 where 子句

command-line - 如果从命令行启动,则输出到命令行

command-line - 如何编写FTP上传和下载脚本