2015-06-15 105 views
0

我正在嘗試連接到Oracle數據庫v.9。我下載了最新的Instant Client(12.1.0.2.0)+ SDK,然後是cx_Oracle。當試圖連接到數據庫,它說cx_Oracle導入錯誤的模塊

cx_Oracle.DatabaseError: ORA-03134: Connections to this server version are no longer supported. 

所以我嘗試安裝即時客戶端10.2.0.5的舊版本:

sudo yum remove oracle-instantclient12.1-basic 
sudo yum install /vagrant/oracle-instantclient-devel-10.2.0.5-1.x86_64.rpm 

,並更新了我的ENV:

export ORACLE_HOME=/usr/lib/oracle/10.2.0.5/client64/ 
export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.5/client64/lib/ 

但當我嘗試運行我的Python腳本時,cx_Oracle說:

ImportError: libclntsh.so.12.1: cannot open shared object file: No such file or directory 

當然沒有這樣的文件或目錄:我有版本10.2.0.5,而不是12.1。我的文件被稱爲libclntsh.so.10.1,而不是libclntsh.so.12.1。如何讓cx_Oracle導入正確的文件?或者有沒有辦法讓Instant Client v.12在服務器v.9上運行?

回答

0

Oracle保證向後兼容兩個版本。因此,版本10可以訪問版本8,9,10。版本12只能訪問版本10以上。

你需要做一個乾淨的安裝正確的客戶端。

+1

我該如何做一個乾淨的安裝,除了'yum remove'較新的客戶端? – kurtgn

0

您編譯或安裝的cx_Oracle是針對Oracle 12.1構建的。相反,您需要構建一個針對Oracle 10.2的應用程序。如果您確定舊的即時客戶端已被移除並且新的即時客戶端已到位,那麼您可以簡單地運行pip install cx_Oracle。現在,cx_Oracle的版本5.2和更高版本能夠找到即時客戶端並在沒有其他幫助的情況下進行編譯。請注意,您需要確保已安裝instantclient-devel軟件包才能運行。