odbcConnect("oracle",uid = "ryy",pwd = "ryy")
[1] -1
Warning messages:
1: In RODBC::odbcDriverConnect("DSN=oracle;UID=ryy;PWD=ryy") :
[RODBC] ERROR: state IM014, code 0, message [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
2: In RODBC::odbcDriverConnect("DSN=oracle;UID=ryy;PWD=ryy") :
ODBC connection failed
解决方案:
本机操作系统是win7 64位,安装的是oracle 10g 32位的客户端。
下载并安装了了64位的oracle 客户端,配置了ORACLE环境变量PATH,操作系统寻找命令时使用oracle 64位的程序,配置了64位的odbc。解决以上问题。
总结:最好操作系统,oracle客户端,远程服务端 orace数据库 ,保持相同位数,全部64,或者32位。
oracle位数判断:
http://blog.csdn.net/linghe301/article/details/8471945
----------------------------------------------------------------------------------------------------------------------------------
ODBC 设置:
"C:\windows\SysWOW64\odbcad32.exe"里打开才行,但是这样打开的是32位的ODBC(SysWOW64是一个windows操作系统的子系统,能够运行32位应用windows操作系统程序)。
- 64位配置
- Data Source Name: 这个名称是 odbcConnect(dsn, uid = "", pwd = "", ...) 方法中的dsn参数
- TNS Service Name: 本地安装的oracle客户端的 tnsname文件中配置的连接名。位置:I:\Oracle\Instant Client\network\admin\tnsnames.ora
- User ID 是数据库 用户名 (切记不可用sys用户)