通过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://docs.oracle.com/en/database/oracle/oracle-database/12.2/lnoci/instant-client.html#GUID-AAB0378F-2C7B-41EB-ACAC-18DD5D052B01

https://www.cnblogs.com/ychellboy/archive/2010/04/16/1713884.html

猜你喜欢

转载自blog.csdn.net/qq_24582917/article/details/82973811