当我在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=", ...

区别就在于声明驱动程序,有/没有大括号,并且SQLServer之间有空格
仍然在寻找一个解释,为什么这工作,尽管。。。

09-04 15:51
查看更多