2016-04-25 6 views
1

Je suis en train de se connecter à une base de données Oracle avec pyodbc:pyodbc se connecter à Oracle

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

Je reçois le message d'erreur suivant:

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

Toute suggestion comment y remédier serait appréciée . Je suis particulièrement intéressé par le fonctionnement de pyodbc et NON par cx_Oracle.

Répondre

0

Vous devez utiliser la bibliothèque propriétaire pour Oracle, cx_Oracle, et le client Oracle et le SDK doivent être installés.

Une fois que tout cela est mis en place, vous pouvez simplement:

import cx_Oracle 

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

Ensuite, vous pouvez créer un curseur avec l'objet conn:

c = conn.cursor() 

Et vous pouvez alors exécuter SQL:

c.execute(SQL) 
+0

Si c'était aussi simple, je n'aurais pas essayé de passer de cx_Oracle à pyodbc. Mais peut-être que vous pouvez répondre à mon autre question dans ce cas: http://stackoverflow.com/questions/36845401/cx-oracle-importerror-dll-load-failed-the-specified-procedure-could-not-be-fo – Nickpick

1

Envisager de spécifier le DRIVER dans connection string:

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

Cela n'a aucun impact – Nickpick

+0

Même erreur exacte? Vérifiez si le pilote Oracle est aligné avec la version binaire de Python? Les pilotes ODBC/DSN peuvent être trouvés dans ODBCcad32.exe à la fois: C: \ Windows \ System32 et C: \ Windows \ SysWOW64. En outre, j'utilise [pypyodbc] (http://stackoverflow.com/questions/14463591/does-pyodbc-have-any-design-advantages-over-pypyodbc). – Parfait