我有一个多数据库设置,我需要使用,而且两者都有自己的bcp版本,但它们的行为方式不同。另外,两者都在我的%PATH%中,Sybase在MS之前列出,所以从命令行调用"bcp“总是会命中Sybase exe。
首先,版本是“不同的”:
Sybase BCP: Sybase CTBCP实用程序/15.0/P-EBF17890 ESD #24/PC Intel/bit 1500-123/OPT/清华5月13日02:45:43 2010 (适用于/15.7/EBF 23008 SMP SP130 /P/Rs6000/AIX6.1/ase157sp13x/3819/64-bit/FBO/Sat 8月23日:49:06 2014年)
MS SQL:版本: 11.0.2100.60 (查询涉及SQL 2008 R2和2012年SP3 dbs)
它们绝对不会以相同的方式处理文件的输出,每个文件的文档都显示了这一点。我在bcp上看到的所有内容都说,bcp在Sybase和MS之间的工作方式应该相同,但是我必须调用完整的MS SQL bcp.exe路径来对MS进行查询,因为Sybase bcp不支持相同的查询。
我的过程使用批处理脚本调用多个访问Sybase DBS的查询,然后调用issue数据库将数据输出到暂存数据库,我是否总是必须区分Sybase和MS,还是只使用一个没有问题的查询?如果是这样的话,哪一个是“正确”的使用(而不是试图在这里引发一场辩论哪一个更好)。而且,我没有看到任何显示版本号有任何关系的东西,所以知道哪一个是“最新的”,使用那个版本号是很困难的。
发布于 2017-02-27 23:40:13
请记住,MS SQL Server与1994年的Sybase ASE (称为Sybase SQL Server)是相同的,但在那之后,它们慢慢地开始分离。因此,BCP的概念仍然存在,而且相似,但细节是不同的。首先,不要期望能够为这些数据库交换客户端工具: Microsoft对TDS协议进行了更改,使得无法将客户端连接到其他供应商的数据库。
如果同一个名称的两个可执行文件之间有冲突,常见的解决方案包括(i)显式地指定可执行文件的路径名(ii)在调用一个或另一个可执行文件(iii)重命名其中一个可执行文件之前设置正确的环境变量。YMMV
https://stackoverflow.com/questions/42470891
复制相似问题