徐英慧
摘要摘要:在Linux工程中,C/C++應(yīng)用程序經(jīng)常要訪問Oracle數(shù)據(jù)庫,并且對速度和效率要求很高。OCILIB是基于OCI的C語言開發(fā)庫,具有訪問速度快、易用、可靠等特點(diǎn)。探討OCILIB的安裝步驟以及通過OCILIB訪問Oracle數(shù)據(jù)庫的一般方法,并以查詢和插入為例重點(diǎn)討論批量操作的實(shí)現(xiàn)過程。對要求高效訪問Oracle數(shù)據(jù)庫的Linux工程具有一定的借鑒意義。
關(guān)鍵詞關(guān)鍵詞:OCILIB;Linux;Oracle;批量操作
DOIDOI:10.11907/rjdk.162731
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2017)005011803
0引言
Linux以其穩(wěn)定和多任務(wù)特性,在大型工程的服務(wù)器操作系統(tǒng)中應(yīng)用廣泛,而C/C++是Linux工程的首選編程語言,常用于編寫后臺(tái)程序及文件操作等應(yīng)用。在工程應(yīng)用中,數(shù)據(jù)庫通常不可或缺,而Oracle數(shù)據(jù)庫具有穩(wěn)定性高、速度快、SQL擴(kuò)展豐富等特點(diǎn),得到廣泛應(yīng)用[1]。
C/C++連接Oracle數(shù)據(jù)庫的主要方式通常有以下幾種:ADO、ODBC、PRO*C、OCI。ADO和ODBC是通用方法,編程簡單,但速度相對較慢。OCI和PRO*C是Oracle公司提供的專門開發(fā)工具,訪問速度快,很適合實(shí)時(shí)要求較高的工程使用[2]。但是OCI編程復(fù)雜,接口眾多,OCILIB為OCI的封裝庫,適合于快速編程,并且具有非常好的響應(yīng)速度。本文將重點(diǎn)討論OCI和OCILIB。
1OCI和OCILIB簡介
OCI(Oracle Call Interface,即0racle調(diào)用接口)是Oracle公司提供的由頭文件和庫函數(shù)等組成的一個(gè)訪問Oracle數(shù)據(jù)庫的應(yīng)用程序編程接口,它允許開發(fā)人員在第三代編程語言(包括C, C++, COBOL 與 FORTRAN)中通過SQL(Structure Query Language)來操縱Oracle數(shù)據(jù)庫,而且OCI在一定程度上支持第三代編程語言的數(shù)據(jù)類型、語法等。OCI全面支持Oracle的面向?qū)ο蠹夹g(shù),同時(shí)還具有即時(shí)可用性、企業(yè)級高性能、可伸縮性、強(qiáng)健的安全模型、基于Oracle平臺(tái)可移植性高等特點(diǎn)[34]。
OCILIB是基于OCI的C語言開發(fā)庫,能夠快速、可靠地訪問Oracle數(shù)據(jù)庫。它提供了一套功能齊全、易于使用的API,是Linux下C/C++程序訪問Oracle的最佳選擇。OCILIB的主要特點(diǎn)如下:
①兼容32位和64位系統(tǒng);
②支持版本>=8i的Oracle版本;
③支持全部SQL應(yīng)用接口函數(shù)和對象;
④支持全部ORACLE數(shù)據(jù)類型,游標(biāo)等;
⑤具有連接池和任務(wù)池;
⑥可以綁定數(shù)組;
⑦支持滾動(dòng)結(jié)果集,方便訪問前后的記錄;
⑧提供用戶線程和線程鎖。
2OCILIB使用環(huán)境搭建
在Linux工程應(yīng)用中,要搭建通過OCILIB訪問Oracle數(shù)據(jù)庫的使用環(huán)境,首先需要安裝Oracle客戶端,然后才能編譯OCILIB庫。這里使用的操作系統(tǒng)及各軟件版本為:操作系統(tǒng)centos6.5、gcc 4.7、Oracle 11g、OCILIB 3.12。
2.1安裝Oracle客戶端
要編譯OCILIB庫,需要先安裝Oracle的客戶端Oracle-instantclient。它提供了客戶端代碼庫(libclntsh.so.11.1)和Oracle C++調(diào)用接口庫(libocci.so.11.1)。具體安裝步驟如下。
6結(jié)語
OCILIB提供了一系列功能齊全、易于使用的API,從而能夠快速、可靠地訪問Oracle數(shù)據(jù)庫,因而在Linux工程中得到了廣泛應(yīng)用。本文介紹了在C/C++中通過OCILIB訪問Oracle數(shù)據(jù)庫的基本步驟和方法,重點(diǎn)討論了批量查詢和批量插入的關(guān)鍵步驟和流程。批量處理是在使用Oracle 的大型工程中實(shí)現(xiàn)高效訪問數(shù)據(jù)庫的基本保證,本文介紹的批量處理流程對其它大型應(yīng)用具有一定的借鑒意義。
參考文獻(xiàn)參考文獻(xiàn):
[1]連晗.基于Linux的供應(yīng)商電子商務(wù)管理系統(tǒng)的開發(fā)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2013(21):4951.
[2]樓建安,余建華.Oracle SQL&PL/SQL 基礎(chǔ)教程[M].北京:科學(xué)出版社,2011.
[3]李培軍,畢于慧,田仲,等.利用OCI封裝類實(shí)現(xiàn)Oracle與國產(chǎn)數(shù)據(jù)庫間的應(yīng)用程序移植[J].微型機(jī)與應(yīng)用,2016(8):7172,75.
[4]賀鵬程.基于Oracle的數(shù)據(jù)庫性能優(yōu)化研究[J].電子設(shè)計(jì)工程,2016(9):13.
[5]OCILIB (C Driver for Oracle) documentation[DB/OL].http://vrogier.github.io/ocilib/, 2013.
責(zé)任編輯(責(zé)任編輯:陳福時(shí))