2011-03-29 53 views
8

我正在尝试使用RODBC软件包从使用R的Oracle数据库查询数据。似乎有很多关于从R访问MySQL数据库的文档,但是在Oracle数据库上没有太多信息。如何连接到R中的Oracle数据库?

如何为我的Oracle数据库创建DSN?

任何帮助将不胜感激。 谢谢,

回答

4

我不熟悉的 “R”,但是:

的Oracle ODBC DSN被普遍建立 -

  1. 使用Windows ODBC管理器来安装instant client
  2. 创建DSN
1

我发现从R连接到Oracle实际上存在一些挑战。它可能就是IM我们在我的公司拥有的分层和设置,但这是我做的工作。

library(RODBC) 

ch=odbcConnect("<AliasForYourDatabase>",pwd = "xxxxxxxx", believeNRows=FALSE) 

odbcGetInfo(ch) 

对我来说,关键的一步是'believeNRows=FALSE'否则我时,我提交了一个查询中收到以下错误:

“错误.CALL(C_RODBCFetchRows,ATTR(通道, “handle_ptr”),MAX,BUFFSIZE ,: 负长度的矢量不准”

这是因为甲骨文没有提供实际的行数回连接

8

下面是我为我们的网站开发的说明:

  1. 安装Oracle即时客户端。要提取的文件有: instantclient-basic-win32-11.1.0.7.0.zip instantclient-odbc-win32-11.1.0.7.0.zip instantclient-sqlplus-win32-11.1.0.7.0.zip(可选)

注意:必须将Basic Instant Client和ODBC Instant Client软件包解压缩到同一个目录中。例如,C:\ Oracle \ instantclient_11_1。

甲骨文下载站点:http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html

  • 添加所提取的文件的路径环境变量的位置(例如C:\ ORACLE \ instantclient_11_1) 一个。右键点击桌面上的“我的电脑”,点击“管理”。 b。右键点击“计算机管理(本地)”,点击“属性”。 c。在高级选项卡上,单击“环境变量”下的设置按钮。 d。在“系统变量”下找到“路径”条目并单击编辑按钮。 e。将位置路径添加到“变量值”框的末尾。请注意,项目由分号分隔。 f。点击OK确认更改。关闭“计算机管理”窗口。

  • 双击即时客户端目录中的odbc_install.exe文件。

  • 打开C:\窗口\ system32 \ odbcad32.exe的

  • 添加Oracle数据库的数据源。 a。点击添加按钮 b。选择“instantclient11_1中的Oracle”,然后单击完成。 c。在Oracle ODBC驱动程序配置对话框中输入以下内容: 数据源名称:DSN 描述:Roacle(或其他) TNS服务名称:SERVER:1521/DSN - 更改此 用户ID:您的oracle用户名 d。点击测试连接按钮。系统会提示您输入密码,如果一切顺利,您将收到“连接成功”消息。

  • 然后,您可以创建R中有一个通道:对这个老问题

     odbcConnect(dsn, uid = uid, pwd = pwd, readOnly = TRUE) 
    
    +1

    感谢您的详细程度 – tamersalama 2013-02-13 21:48:54

    0

    万一别人绊倒和需要帮助连接Oracle和R,这个PDF充分说明了过程,并提供必要下载信息。

    {} http://cran.fhcrc.org/web/packages/RODM/RODM.pdf