r语言 - 即使使用 believeNRows=F,也无法使用 RODBC 从 MS SQL Server 获取所有数据行



我正在尝试使用R中的RODBC库通过查询从Microsoft SQL Server获取数据,但是即使我设置了believeNRows=FALSE,我得到的数据也不完整。Microsoft SQL Server 版本是SQL Server 2016 SP1 CU3

R 代码如下所示:

library(RODBC)
sql.server = 'GDCSCTDDBSWA01'
database.name = 'Data.Analytics'
sql.string = 'select * from [Data.Analytics].[dbo].[Table]'
db.string <- sprintf("driver={ODBC Driver 13 for SQL Server}; server=%s;database={%s}; trusted_connection=yes", server , database.name)
db.channel <- odbcDriverConnect(db.string, believeNRows=FALSE)
itin.data <- data.table(sqlQuery(db.channel, sql.string))
close(db.channel)

它只返回大约 1500 行数据(每次运行的确切行数会发生变化,但大小大致相同(。但是,当我在 SQL Server Management Studio Microsoft运行查询时,它工作正常。

为了消除网络问题的可能性,我也尝试了pyodbc,它工作正常。python代码如下:

import pyodbc
connection= pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=GDCSCTDDBSWA01;DATABASE={Data.Analytics};trusted_connection=yes')
cursor = connection.cursor()
sql = 'select * from [Data.Analytics].[dbo].[Table]'
cursor.execute(sql)
dataList = cursor.fetchall()
connection.close()

有谁知道是什么原因导致RODBC失败?

在 sqlQuery 语句中设置believeNRows = FALSE应该拉取所有行。

sqlQuery(myconn, "select * from table", believeNRows = FALSE)

相关内容

最新更新