我正在使用 OraOLEDB.Oracle
供应商。
当我运行这个查询时,我得到一个11990行的数据集:
SELECT *
FROM OPENQUERY([ORA_LINK], 'SELECT * FROM DB1.MY_TABLE');
然而,这 COUNT(*)
查询返回值200,而不是11990:
SELECT COUNT(*)
FROM OPENQUERY([ORA_LINK], 'SELECT * FROM DB1.MY_TABLE');
链接服务器或提供程序设置中是否有限制这一点的内容?
更新:如果我直接访问表,我会得到正确的计数:
SELECT COUNT(*)
FROM [ORA_LINK]..[DB1].[MY_TABLE]
看来问题出在 OPENQUERY
.
1条答案
按热度按时间2nbm6dog1#
我猜这与默认的抓取大小有关
fetchsize—指定提供程序一次将获取的行数(获取数组)。它必须根据数据大小和网络的响应时间来设置。如果该值设置得太高,那么这可能会导致查询执行期间的等待时间更长。如果该值设置得太低,则可能会导致更多的往返数据库。有效值为1到429496和296。默认值为100。
1在sql server端对其进行材质分析
2运行
COUNT(*)
或甲骨文方面;