Имах подобен сценарий, успях да се свържа с базата данни с помощта на cx_Oracle.makedsn()
за създаване на dsn низ с даден SID
(вместо името на услугата):
dsnStr = cx_Oracle.makedsn("oracle.sub.example.com", "1521", "ora1")
Това връща нещо като
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle.sub.example.com)(PORT=1521)))(CONNECT_DATA=(SID=ora1)))
който след това може да се използва с cx_Oracle.connect()
за да се свържете с базата данни:
con = cx_Oracle.connect(user="myuser", password="mypass", dsn=dsnStr)
print con.version
con.close()