Linux下不安裝Oracle用戶端使用OCCI操作遠程Oracle資料庫

來源:互聯網
上載者:User

步驟如下:

// 

// 1. 從安裝好的 Oracle 11g R2 for X64 Linux 上複製OCCI標頭檔和庫檔案:
// (1). 複製標頭檔
//    mkdir -p ~/OCCI-11gR2-X64/include
//    cp $ORACLE_HOME/rdbms/public/* ~/OCCI/include/
//
// (2). 複製庫檔案並建立軟連結
//   mkdir -p ~/OCCI-11gR2-X64/lib;
//   cp $ORACLE_HOME/lib/libocci.so.11.1 ~/OCCI-11gR2-X64/lib/
//   cp $ORACLE_HOME/lib/libclntsh.so.11.1 ~/OCCI-11gR2-X64/lib/
//   cp $ORACLE_HOME/lib/libocci11.a ~/OCCI-11gR2-X64/lib/
//   cp $ORACLE_HOME/lib/libclntst11.a ~/OCCI-11gR2-X64/lib/
//   cp $ORACLE_HOME/lib/libnnz11.so ~/OCCI-11gR2-X64/lib/ <這個庫也必須拷貝, 它是libclntsh.so.11.1所依賴的>
//   cd ~/OCCI/lib;
//   ln -s libclntsh.so.11.1 libclntsh.so;
//   ln -s libclntsh.so libclntsh.so.10.1 
//   ln -s libocci.so.11.1 libocci.so
// 
// (3). OCCI-11gR2-X64/lib 目錄結構如下
/*
[oracle@gd47 lib]$ ls -l
總計 58424
lrwxrwxrwx 1 oracle oinstall       17 12-07 20:50 libclntsh.so -> libclntsh.so.11.1
lrwxrwxrwx 1 oracle oinstall       12 12-07 20:51 libclntsh.so.10.1 -> libclntsh.so
-rwxr-xr-x 1 oracle oinstall 48725793 12-07 20:46 libclntsh.so.11.1
-rw-r--r-- 1 oracle oinstall        0 12-07 20:46 libclntst11.a
-rw-r--r-- 1 oracle oinstall  7899997 12-07 21:12 libnnz11.so
-rw-r--r-- 1 oracle oinstall  1863334 12-07 20:45 libocci11.a
lrwxrwxrwx 1 oracle oinstall       15 12-07 20:49 libocci.so -> libocci.so.11.1
-rwxr-xr-x 1 oracle oinstall  1260923 12-07 20:45 libocci.so.11.1
*/

//

// 2. 將 OCCI-11gR2-X64 目錄打包成 OCCI-11gR2-X64.tar.gz (下載),拷貝到客戶機器上.

//

// 3. 客戶機器上解壓 OCCI-11gR2-X64.tar.gz,例如目錄結構為:/home/zhankunlin/oracle/OCCI-11gR2-X64
//
// 4. 客戶機器上編譯OCCI程式,Makefile 可以按如下方式寫
//
/*
OCCI_HOME=/home/zhankunlin/oracle/OCCI-11gR2-X64
OCCI_INCLUDE_DIR=$(OCCI_HOME)/include
OCCI_LIBRARY_PATH=$(OCCI_HOME)/lib
# Attention: You must add "-lnnz11".
cppOracle:
        g++ cppOrcl.cpp -o test -I$(OCCI_INCLUDE_DIR) -L$(OCCI_LIBRARY_PATH) -locci -lclntsh -lnnz11  <注意,必須加上 lnnz11連結libnnz11.so>
*/

//
// 5. 運行,首先設定 LD_LIBRARY_PATH 環境變數,然後執行程式
//
export LD_LIBRARY_PATH=/home/zhankunlin/oracle/OCCI-11gR2-X64/lib

./test

注意:

儘管編譯沒有問題,但是發現運行時有問題,報出異常錯誤,

“Error while trying to retrieve text for error ORA-01804”

可能與 Linux下非Oracle資料庫安裝使用者執行OCCI程式 
提到的問題有關。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.