Oracle
 sql >> Database >  >> RDS >> Oracle

cx_Oracle non si connette quando si utilizza SID invece del nome del servizio sulla stringa di connessione

In uno scenario simile, sono stato in grado di connettermi al database utilizzando cx_Oracle.makedsn() per creare un dsn stringa con un dato SID (invece del nome del servizio):

dsnStr = cx_Oracle.makedsn("oracle.sub.example.com", "1521", "ora1")

Questo restituisce qualcosa come

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.sub.example.com)(PORT=1521)))(CONNECT_DATA=(SID=ora1)))

che può quindi essere utilizzato con cx_Oracle.connect() per connettersi al database:

con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr)
print con.version
con.close()