sql >> Base de Datos >  >> RDS >> Oracle

cx_Oracle no se conecta cuando se usa SID en lugar del nombre del servicio en la cadena de conexión

En un escenario similar, pude conectarme a la base de datos usando cx_Oracle.makedsn() para crear un dsn cadena con un SID dado (en lugar del nombre del servicio):

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

Esto devuelve algo como

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

que luego se puede usar con cx_Oracle.connect() para conectarse a la base de datos:

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