I et lignende scenario var jeg i stand til at oprette forbindelse til databasen ved at bruge cx_Oracle.makedsn()
for at oprette en dsn streng med en given SID
(i stedet for tjenestenavnet):
dsnStr = cx_Oracle.makedsn("oracle.sub.example.com", "1521", "ora1")
Dette returnerer noget i stil med
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.sub.example.com)(PORT=1521)))(CONNECT_DATA=(SID=ora1)))
som derefter kan bruges med cx_Oracle.connect()
for at oprette forbindelse til databasen:
con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr)
print con.version
con.close()