安裝 Oracle 即時用戶端

安裝 Oracle 即時用戶端

我正在嘗試讓 Oracle SQL Developer 在 16.04 中運作。我按照 PhatHV 的回答問題,桌面應用程式打開正常並且顯示正確,但是當我嘗試連接到資料庫時(我知道這應該有效,因為我已經連接到 Windows 中的同一個資料庫),會彈出一個錯誤窗口,顯示

An error was encountered performing the requested operation:

no ocijdbc12 in java.library.path

Vendor code 0

有誰知道導致此錯誤的原因以及如何修復它?

答案1

對我來說,只有當我將 LD_LIBRARY_PATH 環境變數設為 Instant Client 目錄時,它才起作用,在 /etc/ld.so.conf.d/oracle.conf 中這樣做,而運行則sudo ldconfig不起作用。

答案2

好吧,我現在已經設法(在一些幫助下)在兩台單獨的計算機上解決了這個問題,但是時間已經足夠長了,我不記得我們為解決它所做的一切了。我至少會包括我記得的內容,並可能稍後修改這個答案。我不明白幕後的一切,所以如果有不必要的步驟,我深感抱歉。然而,正如我在原來的問題中提到的,我遵循了 PhatHV 給出的另一個答案,我不會在這裡重複那裡找到的步驟。假設您在來到這裡之前已經遵循了他的教程。

安裝 Oracle 即時用戶端

對於 SQL Developer 版本 4.2.0,我需要取得版本 12.2.0.1.0 的 Instant Client。你可以找到下載的這裡。選擇與你的架構相對應的「Instant Client for Linux」(我有一台64位元機器,所以我打開了x86-64選項。下載以下5個檔案(在適當的地方替換版本號和架構):

  • oracle-instantclient12.2-basic-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-devel-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86-64.rpm
  • oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm

如果您還沒有,您將需要安裝一個名為的工具alien

sudo apt-get install alien

導航到您的下載目錄(或儲存檔案的位置),然後執行sudo alien -i每個檔案來安裝它。我們使用它是因為它在安裝它們之前alien首先將它們轉換為。.deb作為註釋,alien不會立即產生太多輸出,因此它可能看起來沒有做任何事情,但我保證它是。

sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-devel-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-jdbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-odbc-12.2.0.1.0-1.x86-64.rpm
sudo alien -i oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86-64.rpm

編輯設定檔和環境變數

您需要成為所有這些命令的 root 使用者。運行sudo su以 root 身分登入。

編輯/etc/profile.d/oracle.sh以包含以下內容:

export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export TNS_ADMIN=/usr/lib/oracle/ora
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

請注意此處變數中的版本號ORACLE_HOME。同樣,我的是12.2,但你的可能是別的東西。設定 也很常見TNS_ADMIN=$ORACLE_HOME/ora,但我選擇不這樣做,以便我的.ora檔案不在依賴版本的目錄中(例如12.2)。

編輯/etc/ld.so.conf.d/oracle.conf以包含

/usr/lib/oracle/12.2/client64/lib/

再次注意版本號。

最後,在/etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/default-java/"
CLASSPATH=/usr/lib/jvm/default-java/lib:/usr/lib/jvm/default-java/include:/usr/lib/oracle/12.2/client64/lib

完成所有這些文件的編輯後,運行

ldconfig
source /etc/profile.d/oracle.sh
source /etc/environment

點擊<Ctrl> + D或鍵入exit即可恢復為普通用戶。

新增為第三方驅動程式

我不知道這一步是否絕對必要,但它在我的計算機上有效。如果開啟 SQL Developer,您可以導覽至Tools -> Preferences -> Database -> Third Party JDBC Drivers並按一下Add Entry。打開/usr/lib/oracle/12.2/client64並單擊lib。它將突出顯示它,然後您可以單擊select將其添加到列表中。

執行此步驟後,您將需要關閉並重新開啟 SQL Developer。一旦你完成了這一切,希望您不會再收到任何錯誤。

相關內容