我们最近更改了数据库服务器,并且必须将linkedserver设置从一台服务器移动到另一台服务器。
在以前的服务器中,链接服务器的提供者是MSDAORA,在新的服务器中,它被设置为MSDASQL。
在我们将数据库移动到新服务器(使用提供程序MSDASQL)之后,当使用不同的标准(升序或降序)检索数据时,我们不会得到相同的记录(不同的行号)。
不同的提供是否影响数据被检索的方式?
值得一提的是,新环境是64位的。这就是为什么旧的微软供应商不能工作,因为它只针对32位,并且已经不支持了。如果你提到服务器版本(SQL 2008 R2和oracle客户端和服务器)会更好。
A Gentle man Tim Ford创建了这个手册,用于在64位环境下设置连接到oracle的服务器:http://www.mssqltips.com/tip.asp?tip=1433
在他的示例中,我看到提供者应该是"OraOLEDB"。"Oracle",但你有"MSDASQL",这是一个ODBC提供程序。
我注意到有人在SQL2000上ODBC到Oracle有类似的问题:http://itknowledgeexchange.techtarget.com/itanswers/linked-server-query-returns-incomplete-results/
我建议创建一个适当的oracle链接服务器,看看这是否有助于通过ODBC提取数据可能是问题。与此同时,您可能希望检查前一个链接中的查询是否适合您的情况:
select count(*) from OPENQUERY([TEST],'SELECT * FROM APICKEL.ROOMBED')
select * from OPENQUERY([TEST],'SELECT count(*) FROM APICKEL.ROOMBED')
结果是什么?
敬礼,Rob