如何通过RODBC从SUSE linux连接到MS SQL server

如何通过RODBC从SUSE linux连接到MS SQL server,r,rodbc,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&l

我的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)
库(RODBC)

sql以防其他人遇到此问题。以下是我为解决问题所做的步骤:

  • 自从上次安装RODBC和unixODBC驱动程序后,我删除了RODBC库
  • 我重新安装了RODBC库
  • 以下是在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)
    
    库(RODBC)
    
    sqlcmd你的数据库有正确的连接字符串吗?@Hong Ooi,是的,我可以连接到sqlcmd或isql