2017-03-11 2 views
0

J'utilise la bibliothèque d'enregistrements de Kenneth Ritz pour me connecter à Oracle.Les enregistrements Python se connectent à Oracle

db = records.Database('oracle://scott/[email protected]:1521/orcl') 

Mais il jette toujours cette erreur

DatabaseError: (cx_Oracle.DatabaseError) 
ORA-12545: Connect failed because target host 
or object does not exist. 

Cependant la connexion via SQL Plus fonctionne très bien

sqlplus scott/[email protected]/orcl:1521 

SQL*Plus: Release 12.1.0.1.0 Production on Sat Mar 11 17:29:19 2017 

Copyright (c) 1982, 2013, Oracle. All rights reserved. 

Last Successful login time: Sat Mar 11 2017 17:16:24 +05:30 

Connected to: 
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production 
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options 

SQL> 

Observation Intéressant

db = cx_Oracle.connect('scott/[email protected]:1521/orcl') **<--Works** 

db.version 
'12.1.0.1.0' 

db = records.Database('oracle+cx_oracle://scott/[email protected]:1521/orcl') 
doesn't work 

Toute idée de ce que je fais faux ici ?

Inte

Répondre

0

records se fie sqlalchemy faire la base de données de levage lourds. S'il vous plaît se référer à la SQLAlchemy documentation:

Ainsi, l'URI devrait être quelque chose comme: oracle+cx_oracle://user:[email protected]:1521/dbname

+0

Merci Uku pour le pointer.Tried ce db = records.Database ('oracle + cx_Oracle: // scott/tigre @localhost: 1521/orcl ') mais toujours pas de joie – user3249433

+0

quelle est la signification de la partie 'scott/tiger'? –

+0

Désolé mon mauvais cela fonctionne scott est le nom d'utilisateur et le mot de passe est tiger.db = records.Database ('oracle + cx_oracle: // scott: tiger @ localhost: 1 521/orcl') – user3249433