Oracle C++ Call Interface

Oracle C++ Call Interface (OCCI),是Oracle公司提供的C++程序訪問Oracle數據庫API[1] OCCI的提供了SQL語句的參數。OCCI從Oracle數據庫9i開始發佈。

OCCI起源自Oracle Call Interface (OCI)英語Oracle Call InterfaceC語言程序的API。[2]

簡介

安裝

OCCI現在包含於oracle客戶端包中。只需從Oracle網站下載相應版本的Instant Client包解壓即可。[3]包含:

  • instantclient-basic (一些基礎組件)
  • instantclient-sdk (開發包,即相關的頭文件和庫文件,但只有release版本的lib和動態庫,對於開發和調試來說是不夠的)
  • occi (能正確匹配你的開發環境的OCCI庫)

Easy Connect 字符串的格式為:

[//]host_name[:port][/service_name][:server_type][/instance_name]

Oracle Instant Client向後兼容訪問低版本的數據庫。

獲取std::string類型的字段的值的結果集成員函數getString()在Visual C++編譯後運行時,常會報異常,這需要根據訪問的Oracle數據庫的版本從Oracle網站下載使用相應版本號的「Instant Client Downloads for Microsoft Windows 32-bit」[4]。並選擇相應的調試版本的庫:

  • DLL multithread Debug (/MDd) for debug with oraocci11d.lib and oraocci11d.dll
  • DLL multithread (/MD) for release with oraocci11.lib and oraocci11.dll

並且採取靜態局部變量接收成員函數getString()的返回值,形如:

static std::string varName = resultSet->getString(1);

主流的Instant Client/OCCI與VC++版本號匹配:

Instant Client/OCCI版本 Visual C++ 2017 Visual C++ 2015 Visual C++ 2013 Visual C++ 2012 Visual C++ 2010 Visual C++ 2008 Visual C++ 2005 Visual C++ .NET 2003 Visual C++ .NET 2002 Visual C++ 6
18.3.0.0.0
12.2.0.1.0
12.1.0.2.0
11.2.0.4.0
11.1.0.7.0
10.2.0.5
10.1.0.5

Windows上更多老版本(Visual Studio 2005~2010)的OCCI下載頁面:[5]

參考文獻

  1. ^ Oracle C++ Call Interface main page. [2018-04-15]. (原始內容存檔於2018-03-29). 
  2. ^ OCCI Developer Reference. [2018-04-15]. (原始內容存檔於2011-10-13). 
  3. ^ Oracle Instant Client FAQ. [2018-04-17]. (原始內容存檔於2018-04-17). 
  4. ^ Instant Client Downloads for Microsoft Windows 32-bit. [2018-04-17]. (原始內容存檔於2018-04-17). 
  5. ^ Oracle C++ Call Interface - Downloads. [2019-01-30]. (原始內容存檔於2019-01-30).