2013-12-20 166 views
3

我目前使用PYODBC連接到MS SQL Server和MYSQL,但現在還需要訪問Oracle數據庫。Python連接到Oracle DB

我在我的工作計劃中安裝了Oracle SQL Developer(但似乎沒有單獨的Net Manager客戶端/其他SO帖子),我可以使用它來訪問數據庫。

理想情況下,我會運行我需要的python,但有困難。就目前而言,我已經在MS SQL Server數據庫中爲Oracle數據庫創建了一個鏈接服務器對象,但這並不理想。

我需要做些什麼才能讓PYODBC(或替代品)連接到Oracle?非常感謝。

+1

PYODbC應該可以很好地連接到Oracle數據庫 - 您是否嘗試過構建一個系統ODBC連接並將其提供給Python? – jsbueno

回答

2

我遇到了同樣的問題,我可以通過Oracle SQL Developer連接到數據庫,但不通過pyodbc。其他人做了大部分數據庫設置,所以我不確定正確的連接參數。我會通過您如何在Windows計算機上進行連接來解決您的問題。

在開始菜單中,我鍵入「odbc」並選擇「Microsoft ODBC Administrator」。在「系統DSN」選項卡下,我找到了我的DSN名稱(我們稱之爲myDSN)和相應的驅動程序(我的是「OraClient11g_home2中的Oracle」)。我也有我的數據庫指定用戶名和密碼,所以我的連接線,現在看起來是這樣的:

cnxn = pyodbc.connect(driver='{Oracle in OraClient11g_home2}', dsn='myDSN', uid='HODOR', pwd='hodor') 

也許在這一點上它會爲你工作,但我還是無法連接。這臺計算機是32位和64位驅動程序的混亂,所以我想我是指向錯誤的。因此,再次進入開始菜單,在所有程序下,我找到一個名爲「OraClient11g_home2中的Oracle」的文件夾,並在其下方有一個名爲「Oracle in OraClient11g_home32Bit」的文件夾。我在Python中將我的連接線更改爲以下內容:

cnxn = pyodbc.connect(driver='{Oracle in OraClient11g_home32Bit}', dsn='myDSN', uid='HODOR', pwd='hodor') 

並且它已連接。