我已经设置了我的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
什么可能使R的odbc失败,但对于Excel不能?
答案 0 :(得分:7)
检查您是否使用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
答案 1 :(得分:2)
我最近遇到了同样的问题。这就是我解决它的方法:
1)转到页面:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html并为您选择相关的操作系统和版本。
2)使用&#34; Instant Client Package - ODBC下的链接下载软件包:用于启用ODBC应用程序的附加库&#34;
3)将C盘下的文件解压缩为C:\ instantclient_12_1并在其中运行odbc_install.exe。
4)再次尝试连接。
答案 2 :(得分:2)
不确定这是否是最正确的解决方法,但这对我有用。
复制连接字符串并将其粘贴到odbcDriverConnect
函数中的R中:
myConn&lt; -odbcDriverConnect(“DRIVER = SQL Server; SERVER = fooServer; UID = foo_viewer; PWD = 1pityDfoo !; APP = Microsoft Office 2010; WSID = foocomputername; DATABASE = DTS”)
您还可以复制命令文本并将其粘贴到sqlQuery
函数中的R中:
mydata&lt; - sqlQuery(myConn,“SELECT DTS.dts_id,DTS.dts_no,DTS.unit_code,DTS.originator,DTS.doc_type_id,DTS.doc_date,DTS.subject,DTS.remarks,DTS.status,DTS .is_confidential,DTS.created_by,DTS.date_created,DTS.updated_by,DTS.date_updated,DTS.timestamp FROM DTS.dbo.DTS DTS“)
答案 3 :(得分:2)
这种解决方法帮助了我:
答案 4 :(得分:1)
尝试使用 odbcDriverConnect 和连接字符串。
ch <- odbcDriverConnect("Driver={Oracle in OraClient11g_home1};Dbq=leprosyDHISdb;Uid=leprosyDHISid;Pwd=leprosyDHISpw;")
您可能需要检查https://www.connectionstrings.com/以查找特定的连接字符串。 This is the one I used