2017-07-14 24 views
0

我有一個看似簡單的問題。 當試圖用python腳本連接到Oracle數據庫,它拋出我這個錯誤:在Python中甚至沒有找到Tnsnames,即使你在env變量中設置了贏贏

cx_Oracle.DatabaseError: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor 

的事情是,tnsnames.ora中在TNS_ADMIN環境變量設置(IM工作的取勝10),我甚至可以找到它通過sqldeveloper創建新的連接時。此外,我確定即時通訊在我的腳本中使用正確的dsn ...因此...有什麼想法?

+0

順便說一句,你有沒有試過從「cmd」中「tnsping 」? –

+0

您是否應該在tnsnames.ora文件中使用SERVICE_NAME屬性而不是長期過時的SID屬性? –

回答

1

這是我的代碼。希望它有幫助

self.mydsn = cx_Oracle.makedsn(self.parser.get(
    'oracle', 'db'), 
    self.parser.get('oracle', 'port'), 
    self.parser.get('oracle', 'service_name') 
    ) 
+0

最後我剛剛做到了這一點: cx_Oracle.connect(「usr/pass @ server:1521/sid」),它只是工作。我相信你的作品=] – Medardas