试图从SQL Server读取表。我有:
> con TDBFG \ BRITTG2 @ CRSDPRSCG1TBV数据库:vision Microsoft SQL Server版本:11.00.6248
和
> dbListTables(带)
...
[5]“省”
...
但
p = dbReadTable(con, "ref.Province") # in the ref schema
产量
Error: <SQL> 'SELECT * FROM "ref.Province"'
nanodbc/nanodbc.cpp:1587: 42S02: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'ref.Province'
。
问题似乎是引用了表名。如何确保R不引用select语句中的表名?
你试过RODBC
吗?我有幸运气。
就像是:
ch <- odbcConnect("DATABASE", uid = "username", pwd = "password")
query <- paste("SELECT * FROM DATABASE.dbo.TABLE", sep = "")
# Perhaps in your case:
query <- paste("SELECT * FROM DATABASE.ref.Province", sep = "")
result <- sqlQuery(ch, query, stringsAsFactor = F) # Unless you want factors..
请注意,result
作为data.frame
返回
不幸的是,我对nanodbc
没有任何经验,但我希望有所帮助。
我就是这样做的。
library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 11 for SQL Server;Server=Server_Name\\SQLEXPRESS; Database=Yo;Uid=; Pwd=; trusted_connection=yes")
initdata <- sqlQuery(dbconnection,paste("select * from MyTable;"))
odbcClose(channel)