Oracle
 sql >> Datenbank >  >> RDS >> Oracle

cx_Oracle stellt keine Verbindung her, wenn SID anstelle des Dienstnamens in der Verbindungszeichenfolge verwendet wird

In einem ähnlichen Szenario konnte ich mithilfe von cx_Oracle.makedsn() eine Verbindung zur Datenbank herstellen um einen dsn zu erstellen Zeichenfolge mit einer gegebenen SID (anstelle des Dienstnamens):

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

Dies gibt so etwas wie

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

die dann mit cx_Oracle.connect() verwendet werden können um sich mit der Datenbank zu verbinden:

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