通过ocilib实现对Oracle数据库访问-环境搭建[Unix][Win][C/C++]
目录
说明
本博客每天都有干货更新,欢迎关注收藏,转载请注明出名。更多关于Linux的技术学习与交流可加QQ群:927421758。
介绍
ocilib的优点
1、跨平台
ocilib的代码可以跑在装有Oracle client或instant client的任何机器上,通过tns访问数据库,如果是instant client注意设置tns和home路径。
2、开发简单
相对于ProC和OCI接口,ocilib接口提供了对oracle数据库的友好访问,大大的缩减了代码量。
3、示例与文档等资源丰富
可以很方便的查看ocilib自带的demo和文档,ocilib的demo非常完备,提供了它支持的所有特性的例子。
开发环境
- 下载安装包
百度搜索ocilib,进入ocilib官网http://vrogier.github.io/ocilib/doc/
查看使用说明,查看版本说明并下载最新稳定版OCILIB4.5,可以根据自己的需要下载平台版本。如下图所示,其中Unix平台环境需要手动编译源码进行安装,在以下部分会进行详细的安装方法。
- 配置
根据自己客户端或服务端的Oracle库与头文件路径进行配置。示例如下:
$./configure --with-oracle-lib-path=/oracle/app/oracle/product/11.1.0/db_1/lib
--with-oracle-headers-path=/oracle/app/oracle/product/11.1.0/db_1/rdbms/public
- 编译
$make
报错:”OCI_ATTR_SPOOL_AUTH” not defined in pool.c。
分析: grep “OCI_ATTR_SPOOL_AUTH” /usr/
grep “OCI_ATTR_SPOOL_AUTH” =/oracle/app/oracle/product/11.1.0/db_1
grep “OCI_ATTR_SPOOL_AUTH” ./
可以找到在src/oci_def.h文件中定义。
查看编译过程可以看出cd src && gcc -I./ ….说明编译环境没问题,应该是pool.c没有包含头文件。
步骤:包含这个头文件再编译,报多项重定义错误。
分析:重复包含。
步骤:只复制这一行定义到pool.c文件再编译。编译成功。
- 安装
#make install
安装时加上sudo权限或切换到root用户。一般默认安装在/usr/local目录下。
$ls /usr/local/lib/
libocilib.a libocilib.la libocilib.so libocilib.so.4 libocilib.so.4.5.1 pkgconfig/
$ls /usr/local/include/ocilib
ocilib_core.hpp ocilib.h ocilib.hpp ocilib_impl.hpp
参考链接
https://bbs.csdn.net/wap/topics/100125779
https://blog.csdn.net/liuhhaiffeng/article/details/53513138
https://www.cnblogs.com/ychellboy/archive/2010/04/16/1713884.html