当我在ubuntu/linux R上尝试我的代码时,出现了下面的错误
> library('RODBC')
> sname <- "BLAH"
> dbname <- "BB"
> dbhandle <- odbcDriverConnect(paste("driver={SQL Server};server=", sname, ";database=", dbname, ";trusted_connection=true", sep = ""))
Warning messages:
1: In odbcDriverConnect(paste("driver={SQL Server};server=", sname, :
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified
2: In odbcDriverConnect(paste("driver={SQL Server};server=", sname, :
ODBC connection failed
但同样的代码在windows R上运行良好,我在windows上使用RStudio,在linux/ubuntu上使用命令提示符
> library("RODBC", lib.loc="~/R/win-library/3.1")
>
> sname <- "BLAH"
> dbname <- "BB"
> dbhandle <- odbcDriverConnect(paste("driver={SQL Server};server=", sname, ";database=", dbname, ";trusted_connection=true", sep = ""))
最佳答案
我遇到了这个问题,并通过在windows和linux版本之间进行以下修改来解决它:
在windows上:
dbhandle <- odbcDriverConnect(paste("driver={SQL Server};server=", ...
在linux上:
dbhandle <- odbcDriverConnect(paste("driver=SQLServer;server=", ...
区别就在于声明驱动程序,有/没有大括号,并且
SQL
和Server
之间有空格仍然在寻找一个解释,为什么这工作,尽管。。。