【发布时间】:2017-02-26 16:14:03
【问题描述】:
我有一个需要使用的多数据库设置,并且两者都有自己的 bcp 版本,它们的行为方式不同。另外,两者都在我的 %PATH% 中,并且 Sybase 列在 MS SQL exe 之前,因此从命令行调用“bcp”总是会命中 Sybase exe。
首先,版本是“不同的”:
Sybase BCP: Sybase CTBCP 实用程序/15.0/P-EBF17890 ESD #24/PC Intel/BUILD1500-123/OPT/Thu 2010 年 5 月 13 日 02:45:43 (适用于 Adaptive Server Enterprise/15.7/EBF 23008 SMP SP130 /P/RS6000/AIX 6.1/ase157sp13x/3819/64-bit/FBO/2014 年 8 月 23 日星期六 02:49:06)
MS SQL BCP: 版本:11.0.2100.60 (查询 SQL 2008 R2 和 2012 SP3 dbs)
他们绝对不会以相同的方式处理文件的输出,并且每个文档都显示了这一点。我在 bcp 上读到的所有内容都表明 bcp 在 Sybase 和 MS SQL 之间的工作方式应该相同,但我必须调用完整的 MS SQL bcp.exe 路径才能对 MS SQL 进行 queryout 调用,因为 Sybase bcp 不支持 queryout 相同的方式。
我的进程使用批处理脚本调用多个查询,这些查询命中 Sybase DBS,然后 MS SQL 数据库将数据输出到暂存数据库,我是否总是需要区分 Sybase 和 MS SQL bcp,或者我可以只使用一个没有问题?如果是这样,哪一个是“正确”的使用(而不是试图在这里引发关于哪个更好的辩论)。此外,我没有看到任何显示版本号有任何关系,因此知道哪个是“最新”并且使用那个被证明是困难的。
【问题讨论】:
-
不,你总是要区分。即使它们现在运行良好,它们也可能在未来的升级中发生变化,您需要考虑到这一点。
标签: sql-server sap-ase bcp