【问题标题】:ODBC works fine in MS Excel, but not in RODBC 在 MS Excel 中工作正常,但在 R 中不行
【发布时间】:2014-07-25 23:56:16
【问题描述】:

我已经设置了我的 ODBC 驱动程序,以便 MS Excel 可以很好地将数据导入电子表格。

但是,当我尝试与 R 建立连接时,使用

ch <- odbcConnect(leprosyDHISdb, uid = leprosyDHISid, pwd = leprosyDHISpw)

然后我得到错误

Warning messages:
1: In odbcDriverConnect("DSN=dhis2;UID=dhis2_viewer;PWD=*********") :
  [RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
2: In odbcDriverConnect("DSN=dhis2;UID=dhis2_viewer;PWD=*********") :
  ODBC connection failed

什么会使 odbc 在 R 中失败,而在 Excel 中却没有?

【问题讨论】:

    标签: r odbc rodbc


    【解决方案1】:

    检查您是否使用 32/64 位版本的 R,同时检查您的 ODBC 连接是否为 32/64 位。

    要使用 Windows 设置 32 位 DSN,请导航到以下文件夹 C:\Windows\SysWOW64

    要使用 Windows 设置 64 位 DSN,请导航到以下文件夹 C:\Windows\System32

    编辑:以下博客是您可能会发现有用的极好指南

    http://sandymuspratt.blogspot.co.uk/2013/01/getting-access-data-into-r.html

    【讨论】:

      【解决方案2】:

      我最近遇到了同样的问题。我就是这样解决的:

      1) 转到页面:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 并选择与您相关的操作系统和版本。

      2) 使用“即时客户端包 - ODBC:用于启用 ODBC 应用程序的附加库”下的链接下载包

      3) 将C盘下的文件解压为C:\instantclient_12_1,并在其中运行odbc_install.exe。

      4) 再次尝试连接。

      【讨论】:

        【解决方案3】:

        不确定这是否是最正确的解决方法,但这对我有用。

        1. 使用导入的数据转到 Excel 中的电子表格。
        2. 点击数据 -> 连接
        3. 双击查询
        4. 单击“定义”选项卡
        5. 复制连接字符串并将其粘贴到odbcDriverConnect函数内的R中:

          myConn

        6. 您还可以复制命令文本并将其粘贴到 sqlQuery 函数内的 R 中:

          mydata

        【讨论】:

          【解决方案4】:

          这个解决方法帮助了我:

          1. 转到 ODB 数据源管理器([Win] + ODBC...)
          2. 添加新的 DNS(不管是什么类型,保留用户 DNS);将源指向所需的数据库并命名新的 DNS(例如 dbAdHocForR)
          3. 返回到 R 定义通道(只需调用 DNS 不带任何附加参数):ch
          4. 使用通道定义 SQL 查询:q1

          【讨论】:

            【解决方案5】:

            尝试使用 odbcDriverConnect 和连接字符串。

            ch <- odbcDriverConnect("Driver={Oracle in OraClient11g_home1};Dbq=leprosyDHISdb;Uid=leprosyDHISid;Pwd=leprosyDHISpw;")
            

            您可能需要检查https://www.connectionstrings.com/ 以获取您的特定连接字符串。 This is the one I used.

            【讨论】:

            • 谢谢,@Phil。不幸的是,这似乎仍然不起作用。
            • 一旦我找到了正确的驱动程序,它就可以工作了。谢谢@Phil!
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-06-29
            • 2021-06-28
            • 2020-11-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多