Linux下c++使用occi连接oracle11.2数据库
linux下c/c++连接oracle可以使用oci、occi、Pro*C/C++几种方法:Oracle Call Interface (OCI) 是 Oracle Database 的全面、高性能、原生 C 语言接口,可用于开发自定义或打包数据库应用。OCI 具有高可靠性。SQL*Plus、Real Application Testing (RAT)、SQL*Loader 和 Data-Pump 等 Oracle 工具都使用 OCI。OCI 为其他语言特定接口提供了基础,例如 Oracle JDBC-OCI、Oracle Data Provider for Net (ODP.Net)、Oracle Precompilers、Oracle ODBC 和 Oracle C++ Call Interface (OCCI) 驱动程序都基于 OCI 构建。OCI 还被一些主要的脚本语言驱动程序所使用,例如用于 Node.js 的 node-oracledb、PHP OCI8、ruby-oci8、Perl DBD::Oracle、Python cx_Oracle 以及统计编程语言 R 的 ROracle 驱动程序。,OCCI 基于标准 C++ 和面向对象的模式,旨在提高 Oracle 数据库应用的开发效率和质量。OCCI 正在成功地用于客户端-服务器架构、中间层和复杂对象建模应用。OCCI 是访问 Oracle 关系对象特性(如对象类型、继承、关系和集合)的自然接口。对象在 OCCI 中表示为 C++ 类实例,从而实现应用和数据库之间的无缝集成。具有客户端对象缓存的导航访问方法提供了全面的数据库透明性。Oracle Pro*C/C++预编译器允许您在应用程序中使用 SQL 的电源和灵活性。方便、易用的界面可让您的应用程序直接访问 Oracle。与许多应用程序开发工具不同,Pro*C/C++允许您创建高度自定义的应用程序。例如,您可以创建包含最新窗口和鼠标技术的用户界面。您还可以创建在后台运行的应用程序,而无需用户交互。pro*c/c++是嵌入到c/c++里面的方式。需要先把proc文件转换成c/c++语法后,再用c/c++编译。(https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/toc.htm)
本文主要介绍c/c++通过occi操作oracle数据库。
rpm 安装文件,将以下四个文件拷至 linux中, 下载网址:
https://www.oracle.com/technetwork/cn/database/occidownloads-083553-zhs.html
oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-odbc-11.2.0.3.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
使用命令安装:rpm -ivh *.rpm
成功之后,出现以下文件:
注:如果没有上面指明的路径,则需要重装安装,使用命令: rpm -ivh --force *.rpm
手动添加tnsnames.ora文件
/usr/lib/oracle/11.2/client64/ 下,创建文件
http://www.toutiao.com/a6862619538790449675/network/admin/tnsnames.ora
tnsnames.ora:
注: ip和端口按各数据库参数而定
在一个目录下,新建his.cpp文件,文件内容如下:
1.手动在linux 中执行,但是重启后就无效了;先测试环境可先这样执行
(一定要加 NLS_LANG的变量,字符集要和数据库相同,否则实际操作数据库的时候很可能处理不了)
2.若要使重启仍生效,需更改文件 bashrc,添加下面加粗部分并保存
使用下列命令编译出测试程序,编译无误后,可以运行程序查看结果
下一篇:Linux新手入门系列:创建oracle实例