如何通过RODBC从SUSE linux连接到MS SQL服务器

时间:2014-08-07 21:23:33

标签: r rodbc

我的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查询。任何想法可能会在这里发生什么?

1 个答案:

答案 0 :(得分:3)

如果其他人遇到此问题。这些是我为解决问题所采取的步骤:

  1. 我删除了RODBC库,因为我安装了RODBC并最后安装了unixODBC驱动程序。
  2. 我重新安装了RODBC库。
  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)