【问题标题】:RODBC on macOS CatalinamacOS Catalina 上的 RODBC
【发布时间】:2019-10-18 15:13:34
【问题描述】:

我无法让 RODBC 在 macOS Catalina 上运行。我正在尝试连接到 MS SQL Server。我已经使用 Homebrew 安装了 unixODBC,并从 here 安装了 Microsoft ODBC 驱动程序。 RODBC 安装良好,我按照其他地方的建议使用它安装了它:

install.packages('RODBC', type="source", configure.args='--with-odbc-include=/usr/local/lib' )

但是当我运行这个时:

RODBC::odbcDriverConnect(connection = "driver={ODBC Driver 17 for SQL Server};server=XYZ;database=XYZ;UID=XYZ;PWD=XYZ")

它挂起——我必须取消命令,然后我收到一堆如下所示的警告:

[RODBC] ERROR: state IM003, code 0, message [iODBC][Driver Manager]Specified driver could not be loaded

我知道 SQL Server 驱动程序已安装,因为在 R 中使用 ODBC 包可以工作——使用相同的驱动程序!但由于某种原因,RODBC 正在使用 iODBC,并且显然是在错误的位置寻找驱动程序。

我正在尝试编写可以在不同平台上运行的代码,并且我已经在 Ubuntu 和 Windows 上成功使用了 RODBC。但是我很难弄清楚如何让 RODBC 在我的 MacBook 上工作。

【问题讨论】:

    标签: sql-server database rodbc macos-catalina


    【解决方案1】:

    在一些升级后,我在 Mac 上连接 Impala 时遇到了同样的问题。解决方法是确保 RODBC 使用 unixodbc 而不是 iODBC,如下所示:

    • 安装 unixodbc。我用的是 brew。
    • 使用 remove.packages("RODBC") 删除 RODBC
    • 从源重新安装 RODBC 并指定 unixodbc lib 的路径并包含 和 install.packages("RODBC", type = "source", configure.args = c("--with-odbc-include=/usr/local/include/","--with-odbc-lib=/usr/本地/lib/"))

    在我的电脑上,unixodbc 在 /usr/local

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多