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).