2016-04-25 161 views
1

我試圖用Pyodbc連接到Oracle數據庫:Pyodbc連接到Oracle

pyodbc.connect('{Microsoft ODBC for Oracle};Server=serverxzy.com:1234;Uid=myusername;Pwd=pass123') 

我收到以下錯誤信息:

pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') 

任何建議如何解決它,將不勝感激。我特別想讓pyodbc工作,而不是cx_Oracle。

回答

0

您必須使用Oracle專有庫cx_Oracle,並且必須安裝Oracle客戶端和SDK。

一旦設置完畢,你可以簡單地說:

import cx_Oracle 

conn_str = 'USER/[email protected]:PORT/ALIAS' 
conn = cx_Oracle.connect(conn_str) 

然後你就可以創建一個康恩對象光標:

c = conn.cursor() 

然後你就可以執行SQL:

c.execute(SQL) 
+0

如果是那麼簡單,我不會試圖從cx_Oracle切換到pyodbc。但也許你可以在這種情況下回答我的其他問題:http://stackoverflow.com/questions/36845401/cx-oracle-importerror-dll-load-failed-the-specified-procedure-could-not-be-fo – Nickpick

1

考慮在connection string中指定DRIVER

pyodbc.connect('DRIVER={Microsoft ODBC for Oracle};Server=serverxzy.com:1234; 
       Uid=myusername;Pwd=pass123') 
+0

這沒有影響 – Nickpick

+0

相同的確切錯誤?檢查Oracle驅動程序是否與Python的位版本保持一致? ODBC驅動程序/ DSN可以在ODBCcad32.exe中找到:C:\ Windows \ System32和C:\ Windows \ SysWOW64。另外,我使用[pypyodbc](http://stackoverflow.com/questions/14463591/does-pyodbc-have-any-design-advantages-over-pypyodbc)。 – Parfait