【问题标题】:Sybase BCP vs MS SQL BCPSybase BCP 与 MS SQL BCP
【发布时间】: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


【解决方案1】:

请记住,早在 1994 年,MS SQL Server 就与 Sybase ASE(称为 Sybase SQL Server)相同,但在那之后,它们慢慢开始分道扬镳。所以BCP的概念还是有的,类似,只是细节不同。 一方面,不要期望能够为这些数据库交换客户端工具:Microsoft 已对 TDS 协议进行了更改,这使得客户端无法连接到其他供应商的数据库。

如果您在两个同名的可执行文件之间发生冲突,常见的解决方案包括 (i) 明确指定可执行文件的路径名 (ii) 在调用一个或另一个可执行文件之前设置正确的环境变量 (iii) 重命名一个的可执行文件。 YMMV。

【讨论】:

  • 谢谢,我希望我可以不必同时使用它们,但我会在被调用时继续使用显式路径。
猜你喜欢
  • 2013-08-08
  • 2013-11-23
  • 2018-09-29
  • 2023-04-01
  • 2016-12-08
  • 2011-06-28
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
相关资源
最近更新 更多