2017-12-27 436 views
0

我想在我正在遷移到的新服務器中設置我的python腳本,但是每當我嘗試連接到腳本的數據庫時出現以下錯誤oracle10 windows cx_Oracle無法獲取Oracle環境句柄

dbHost = 'xxxxxx' 
dbPort = xxxx 
dbServiceName = 'xxx.xxxx.com' 
dbUser = 'xxxx' 
dbPass = 'xxxx' 
dnsTns = cx_Oracle.makedsn(dbHost, dbPort, dbServiceName).replace('SID','SERVICE_NAME') 
dbCon = cx_Oracle.connect(dbUser, dbPass, dnsTns) 

>>> dbCon = cx_Oracle.connect(dbUser, dbPass, dnsTns) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle 

我可以使用相同的用戶TNS sqlplus的使用命令行,並沒有問題,但傳遞無法得到它的腳本

我的路徑變量Oracle客戶端文件夾設置工作一樣以前的服務器(C:\ oracle \ bin)。

TNS_ADMIN變量被設置爲 「C:\ ORACLE \ NETWORK \ ADMIN」 使用ORACLE_HOME至C嘗試:\ ORACLE太

Oracle客戶端是10相同服務器 視窗版本64位 cx_Oracle模塊5.1.3安裝使用pip 蟒蛇是2.7

回答

0

我的建議是使用較新版本的cx_Oracle(6.1)更新的客戶端(至少11.2)。它應該提供更好的錯誤消息。如果創建Oracle環境失敗,cx_Oracle的早期版本就放棄了。較新的版本試圖獲得潛在的錯誤。

+0

很想,但我公司的服務器是oracle10,所以我們使用那個客戶端版本,因此我不能... – user2919673

+0

瞭解。如果你可以暫時使用它(即時客戶端是一個簡單的解壓縮,然後你可以刪除),你可能會發現問題的根源。否則,祝你好運!一些配置問題阻止了連接的發生。 –