Sybase BCP与MS SQL BCP

问题描述 投票:1回答:1

我有一个需要使用的多数据库设置,并且都有自己的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 5月13日02:45:43 2010(适用于Adaptive Server Enterprise / 15.7 / EBF 23008 SMP SP130 / P / RS6000 / AIX 6.1 / ase157sp13x / 3819/64位/ FBO / Sat Aug 23 02:49:06 2014)

MS SQL BCP:版本:11.0.2100.60(查询命中SQL 2008 R2和2012 SP3 dbs)

它们肯定不会以相同的方式处理文件的输出,并且每个文档都显示出来。我在bcp上读到的所有内容都说bcp应该在Sybase和MS SQL之间工作相同,但是我必须调用完整的MS SQL bcp.exe路径来调用MS SQL,因为Sybase bcp不支持同样的查询方式。

我的进程使用批处理脚本调用多个查询,这些查询到达Sybase DBS,然后调用MS SQL数据库将数据输出到临时数据库,我是否总是需要区分Sybase和MS SQL bcp,或者我可以只使用一个没有问题?如果是这样,哪一个是“正确的”使用(不试图在这里引发争论哪个更好)。此外,我没有看到任何显示版本号具有任何关系,因此知道哪个是“最新的”并使用那个证明是困难的。

sql-server sybase-ase bcp
1个回答
4
投票

请记住,MS SQL Server在1994年与Sybase ASE相同(称为Sybase SQL Server),但之后,它们慢慢开始分离。所以BCP的概念仍然存在且类似,但细节不同。首先,不要期望能够为这些数据库交换客户端工具:Microsoft已对TDS协议进行了更改,这使得无法将客户端连接到其他供应商的数据库。

如果两个具有相同名称的可执行文件之间存在冲突,则常见解决方案包括(i)显式指定可执行文件的路径名(ii)在调用一个或另一个可执行文件之前设置正确的环境变量(iii)重命名其中一个可执行文件。因人而异。

© www.soinside.com 2019 - 2024. All rights reserved.