安裝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.ini和odbcinst.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/local爲unixODBC的安裝路徑。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++環境就搭建完成了。