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