使用RODBC
可以查询如下数据库:
library(RODBC)
dbHandle <- odbcDriverConnect('driver=SQL Server;server=SOME_SERVER;trusted_connection=true')
returnDf <- sqlQuery(dbHandle, query, stringsAsFactors = FALSE)
odbcClose(dbHandle)
这假定对象query
是长度为 1 的向量。如果不是怎么办?那么,如果query
包含两个元素 - 数据库是否查询了两次?
感谢@r2evans指出解决方案:
query <- c("select 1 as a", "select 2 as b")
dbhandle <- odbcDriverConnect('driver=SQL Server;server=SOME_SERVER;database=csn_pricing;trusted_connection=true')
df <- sqlQuery(dbhandle, query, stringsAsFactors = FALSE)
odbcClose(dbhandle)
这导致
> df
a
1 1
因此,仅使用第一个元素。