Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

cx_Oracle não se conecta ao usar o SID em vez do nome do serviço na string de conexão


Em um cenário semelhante, consegui me conectar ao banco de dados usando cx_Oracle.makedsn() para criar um dsn string com um determinado SID (em vez do nome do serviço):
dsnStr = cx_Oracle.makedsn("oracle.sub.example.com", "1521", "ora1")

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

que pode ser usado com cx_Oracle.connect() para se conectar ao banco de dados:
con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr)
print con.version
con.close()