2011-03-29 71 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