我的odbc.ini文件如下所示:
[dsn_name]
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2260.0
Description=metics DB
Trace=Yes
Server=sql.server123
Port=1433
Database=database_name
我可以使用isql命令连接到这个sql server。但我必须使用RODBC连接它,如下所示:
library(RODBC)
sql<-c("select * from <table_name>")
tryCatch({
ch=odbcConnect("dsn_name",uid="username",pwd = "password")
res<-sqlQuery(ch,sql)
},error = function(e) {
print("unable to connect")
})
odbcClose(ch)
无法连接并执行sql查询。任何想法可能会在这里发生什么?
答案 0 :(得分:3)
如果其他人遇到此问题。这些是我为解决问题所采取的步骤:
这是在linux中使用RODBC的示例脚本:
library(RODBC)
sql<-c("SELECT * FROM [dbo].[view_name]")
tryCatch({
ch=odbcDriverConnect("driver=ODBC Driver 11 for SQL Server;server=<server name>;Database=db_name;Uid=<username>;Pwd=<password>")
res<-sqlQuery(ch,sql)
print("success")
},error = function(e) {
print(e)
print(odbcGetErrMsg(ch))
print("error")
})
odbcClose(ch)