18

我一直在尝试使用该odbcConnect命令将我公司的 DMS 连接到 R,但收到以下消息:

myConn <-odbcConnect("NZSQL", uid="cejacobson", pwd="password")
Warning messages:
1: In odbcDriverConnect("DSN=NZSQL;UID=cejacobson;PWD=password") :
  [RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified
2: In odbcDriverConnect("DSN=NZSQL;UID=cejacobson;PWD=password") :
  ODBC connection failed

问题是,我很肯定数据源名称是 NZSQL,我的 uid 和密码也是正确的。关于为什么 R 可能找不到我的数据源/驱动程序的任何见解(顺便说一下,驱动程序是指定的和工作的)。

我怎样才能解决这个问题?

4

7 回答 7

6

I ran across this same problem when I was first trying to connect to an Oracle database. In the end what worked for me was using odbcDriverConnect and a connection string instead of odbcConnect.

myConn <-odbcDriverConnect("Driver={Oracle in OraClient11g_home1};Dbq=NZSQL;Uid=cejacobson;Pwd=password;")

You can check on https://www.connectionstrings.com/ for your specific connection string for your database. Mine happened to be this one.

Hope this helps.

于 2015-03-09T12:08:55.837 回答
3

这是 IM02 错误,表示 DSN 的名称不正确。

转到 ODBC 并检查您应该使用的用户/系统 DSN。一旦您的 DSN 名称正确,您可能会收到 IM014 状态错误,即架构不匹配。在这种情况下,

更简单的解决方案是 IN r studio - 转到工具并将 R 的版本更改为 32 位。

它应该可以工作了

于 2017-12-05T16:29:18.840 回答
2

我试图访问 SQL Server 数据库并得到了同样的错误。使用正确的 db 连接格式后,我可以访问我的 sql server 数据库。

dbhandle <- odbcDriverConnect("Driver={SQL Server};Server=mydbhost;Database=mydbname;Trusted_Connection=Yes")
于 2016-05-26T21:10:33.033 回答
2

我知道这很旧,但也要确保删除“=”符号周围的空格。那是我的问题。

于 2017-01-17T20:58:57.860 回答
1

对我有用的是 32 位连接而不是 64 位连接。

于 2016-04-19T09:00:50.980 回答
0

我遇到了同样的问题,帮助我的是手动添加驱动程序:

  1. 搜索 ODBC 数据源管理器并单击 64 位选项
  2. 单击“dBASE 文件”,然后单击“添加”
  3. 双击“XE 中的 Oracle”
  4. 填写数据源名称(在您的示例中为 NZSQL)和 TNS 服务名称字段。
  5. 单击确定。

之后,您可以再次访问 RStudio,您将能够使用 odbcConnect() 进行连接。

于 2021-06-07T23:04:49.037 回答
0

我只是在这上面花了几天时间。如果您使用的是 Microsoft Access 数据库,则必须使用数据库的完整路径,它甚至无法在同一文件夹中找到该文件。所以从上面的问题来看,

myConn <-odbcConnect("NZSQL", uid="cejacobson", pwd="password")

需要像

myConn <-odbcConnect("c:\\NZSQL", uid="cejacobson", pwd="password")

菲尔的链接真的很有帮助: https ://www.connectionstrings.com/

于 2020-03-18T23:55:16.380 回答