Linux下用OCCI或OCI連接Oracle

首先,去oracle官網下載C語言的庫文件和頭文件網址如下,選擇對應的Instant Client版本(我下載的都是zip包,沒有下載rpm包,rpm包應該安裝的時候就把那些東西配置好了):(個人建議下zip包,自己打動手玩,能加強理解
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
下面是linux i386版本的
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
Instant Client Package - Basic     裏面包含了動態庫文件 libclntsh.so.11.1(最新版本可能不一樣) 並將其加載到動態庫搜索路徑中去(具體操作sudo mv  *.so /usr/bin)
*Instant Client Package - SDK     這個則是包含的頭文件
 *Instant Client Package - SQL*Plus   sqlplus這個東西最好還是下一個裝上,試驗客戶端是否配置好,查看sql語句執行結果都需要他。

下面是我下的三個:

instantclient-basic-linux32-11.2.0.2.0.zip

instantclient-sdk-linux32-11.2.0.2.0.zip

instantclient-sqlplus-linux32-11.2.0.2.0.zip

下載文件路徑設置:
/home/oracle/lib 存放Basic和sqlplus的各種庫文件,因此在/etc/ld.so.conf文件中添加路徑/home/oracle/lib ,還有就是在當前文件下爲libclntsh.so.11.1庫文件建個軟連接 ln -s libclntsh.so.11.1 libclntsh.so 讓代碼連接動態庫的時候能找到庫文件。(其實裏面還有好多.so文件,都是動態庫,都要像libclntsh.so.11.1一樣放到動態庫的時候能找到庫文件)

執行ldconfig
/home/oracle/include 存放SDK的頭文件。

 

 

 

# tnsnames.ora Network Configuration File: /home/oracle/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
TEST =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
)


    配置好上面這些後,註銷用戶重新登錄,讓 ORACLE_HOME環境變量生效,檢查方法很簡單,分別在終端輸入命令:
[mgqw@localhost ~]$ echo $ORACLE_HOME
/home/oracle
如果像上面那樣有路徑輸出則說明配置成功了,如果沒有輸出那重新再編輯一下 ~/.bashrc 看看哪裏出了問題吧。


      檢查完成以後運行sqlplus登錄數據庫成功!例子如下,運行C程序鏈接數據庫也成功!總算把環境配好了。

其實這時候還出現了問題(估計是我好久沒更新,可能是屬於個別問題),就是./sqlplus: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

補救操作:sudo apt-get install libaio1

連接時:sqlplus test/[email protected]/test

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章