Linux安裝Oracle ODBC及配置pro*C、C++編譯環境。

安裝ODBC及配置pro*C/C++編譯環境。 linux

1 安裝unixODBC sql

下載unixODBC-2.3.0.tar.gz shell

./configure
make
sudo make install

安裝完畢後,odbc的配置文件在/usr/local/etc下,包括odbc.iniodbcinst.ini兩個文件,暫時不用修改。odbc的相關頭文件在/usr/local/include下,編譯proC*/C++時須要引用。 數據庫

注:最好安裝2.3.0版本,若是安裝2.3.2或以上版本,可能會出現動態連接文件找不到的錯誤,由於2.3.2版本缺乏相關的符號連接文件。 bash

2 安裝oracle客戶端 oracle

兩種安裝方法,包括zip格式和rpm格式,zip格式安裝,直接configure && make && make install,而後設置相關環境變量並修改配置,這裏主要介紹rpm格式安裝。 測試

rpm –ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm –ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
rpm –ivh oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm
rpm –ivh oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm
rpm –ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-tools-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-precomp-11.2.0.4.0-1.x86_64.rpm

其中,oracle客戶端默認安裝路徑/usr/lib/oracle/11.2/client64下。 spa

所以,設置環境變量 unix

$ORACLE_HOME=/usr/lib/oracle/11.2/client64 code

oracle的部分說明文檔及Demo實例在文件夾/usr/share/oracle/11.2/client64下。該文件夾下還包含了oracle初始化ODBC驅動odbcinst.ini及用戶ODBC配置文件.odbc.ini的腳本odbc_update_ini.sh

完成odbc客戶端的安裝後,執行/usr/share/oracle/11.2/client64下的ODBC初始化腳本odbc_update_ini.sh

odbc_update_ini.sh /usr/local

其中參數/usr/localunixODBC的安裝路徑。odbc_update_ini.sh會在odbcinst.ini中添加ODBC的驅動信息,詳情以下:

[Oracle 11g ODBC driver]
Description     = Oracle ODBC driver for Oracle 11g
Driver          = /usr/share/oracle/11.2/client64/libsqora.so.11.1
Setup           =
FileUsage       =
CPTimeout       =
CPReuse         =

上面配置文件中的Driver路徑的值可能不正確(在ZIP格式安裝時,路徑是正確的),正確的應該爲/usr/bin/oracle/11.2/client64/lib/libsqora.so.11.1,即

Driver          = /usr/bin/oracle/11.2/client64/lib/libsqora.so.11.1

odbc_update_ini.sh同時在用戶目錄的.odbc.ini文件中添加用戶的odbc配置信息,詳情以下:

[OracleODBC-11g]
Application Attributes = T
Attributes = W
BatchAutocommitMode = IfAllSuccessful
BindAsFLOAT = F
CloseCursor = F
DisableDPM = F
DisableMTS = T
Driver = Oracle 11g ODBC driver
DSN = OracleODBC-11g
EXECSchemaOpt =
EXECSyntax = T
Failover = T
FailoverDelay = 10
FailoverRetryCount = 10
FetchBufferSize = 64000
ForceWCHAR = F
Lobs = T
Longs = T
MaxLargeData = 0
MetadataIdDefault = F
QueryTimeout = T
ResultSets = T
ServerName =
SQLGetData extensions = F
Translation DLL =
Translation Option = 0
DisableRULEHint = T
UserID =
StatementCache=F
CacheBufferSize=20
UseOCIDescribeAny=F
MaxTokenSize=8192

(目前不清楚用戶目錄下.odbc.ini文件的做用,sqlplus鏈接時沒用到該文件,isql鏈接則用的是/usr/local/etc/odbc.ini文件。)

接下來配置tns文件,在$ORACLE_HOME目錄(即/usr/lib/oracle/11.2/client64)下建立目錄/network/admin並在新建目錄下添加tnsname.ora文件,在該文件中配置oracle監聽實例信息。好比:

orcl =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.107.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = orcl)
    )
  )

而後,設置環境變量,在用戶目錄的.bashrc下添加以下語句:

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export ODBCSYSINI=/usr/local/etc
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/local/lib
PATH=$PATH:$ORACLE_HOME/bin
export PATH

接下來執行.bashrc使環境變量生效:

. ~/.bashrc

如今,就能夠用sqlplus鏈接數據庫了:

sqlplus scott/tiger@orcl

可是,因爲/usr/local/odbc.ini尚未設置,因此目前還不可以用isql鏈接,配置odbc.ini以下(能夠不用設置default):

[orcl]
Driver = ORACLE 11g ODBC driver
DSN = orcl
ServerName = orcl
Server = 172.16.107.100
Port   = 1521

[default]
Driver = ORACLE 11g ODBC driver
DSN = default
ServerName = orcl
Server = 172.16.107.100
Port   = 1521

下面,就可使用isql進行鏈接了

isql orcl scott tiger

以上便完成了Oracle客戶端及ODBC的配置,可是若是要使用pro*C/C++,還有部分配置文件須要修改。

首先,須要將文件夾/usr/lib/oracle/11.2/client64/lib/precomp移動至/usr/lib/oracle/11.2/client64(即按照ZIP格式安裝的位置)。

mv /usr/lib/oracle/11.2/client64/lib/precomp /usr/lib/oracle/11.2/client64

而後,修改配置/usr/lib/oracle/11.2/client64/precomp/admin文件夾下的pcscfg.cfg文件,目前redhat5.5版本的配置文件以下,請根據系統中相關頭文件的位置自行配置:

sys_include=(/usr/local/include,/usr/include/oracle/11.2/client64,/usr/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include,/usr/lib64/gcc/x86_64-suse-linux/4.1.2/include)
sys_include=/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include/
sys_include=/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/
ltype=short
define=__x86_64__

下面,就能夠到實例存放文件夾/usr/share/oracle/11.2/client64下,查看樣例代碼procdemo.pc,而後修改其make文件demo_proc_ic.mk中的部分文件選項,並執行

make –f demo_proc_ic.mk

測試成功,pro*C/C++環境就搭建完成了。

相關文章
相關標籤/搜索