Linux 环境下调用C++库ocilib操作Oracle数据
来源:互联网 发布:美瞳推荐知乎 编辑:程序博客网 时间:2024/05/22 02:18
第一、下载ocilib源码库:
https://github.com/vrogier/ocilib/releases/
第二、配置ORACLE环境
1、到Oracle官网下载如下文件
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
2、安装
rpm -ivh *.rpm
安装完成后,查看/usr/lib/oracle/11.2/client64,有bin和lib两个目录
头文件在/usr/include/oracle/11.2/client64
3、设置ORACLE_HOME环境变量
设置ORACLE_HOME=/usr/lib/oracle/11.2/client64/
测试Oracle环境是否配置成功
在/usr/lib/oracle/11.2/client64/bin目录下执行sqlplus命令
./sqlplus reader/reader@172.16.8.200:1521/upapp
可能会报错,这是因为这个可执行程序依赖一些库,可以通过设置LD_LIBRARY_PATH环境变量来解决,登陆成功说明Oracle环境配置完成。quit命令退出sqlplus终端。
第三、修改ocilib的configure文件
前面的步骤完成后,进入到ocilib目录,执行./configure,会报错,提示找不到头文件路径,修改configure文件,直接给变量ac_headers_path赋值为前面步骤说到的头文件路径/usr/include/oracle/11.2/client64
第四、编译ocilib
./configure CFLAGS="-O2 -m64"(CFLAGS参数很重要,表示编译为64位)
make
make install
第五、调用ocilib库,生成c++客户端
这部分没有特殊操作,只要注意在Makefile文件中设置好-L和-I即可
第六、运行c++程序访问Oracle数据库
跟编译ocilib库一样,也需要配置好Oracle环境。运行程序之前注意配置LD_LIBRARY_PATH即可。如果遇到“cannot create oci environment”异常,多半是因为库没有链接对。
FAQ:
1、在启动sqlplus或者自己开发的调用oci库的程序的时候会报ORA-21561: OID generation failed错误
原因:这是因为本机的hostname和/etc/hosts文件中与127.0.0.1对应的主机名不一致。
解决方法:
(1)修改/etc/hosts,将本机的hostname加到该文件中;
(2)用hostname命令修改本机hostname,修改为与127.0.0.1对应的主机名一致即可。
2、通过sqlplus或者c++程序连接数据库,中文字符乱码。
原因:系统的字符集与oracle数据库的字符集不一致。
解决方法:需要设置NLS_LANG环境变量
(1)通过sqlplus终端执行命令:
select * from nls_database_parameters;
查看如下三个域的值,如下:
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSET UTF8
(2)设置NLS_LANG环境变量的值为:AMERICAN_AMERICA.AL32UTF8
PS:在taf平台,如果修改了环境变量需要重启tafnode,否则环境变量不会在taf中生效。
阅读全文
0 0
- Linux 环境下调用C++库ocilib操作Oracle数据
- VS2013下C++调用ocilib访问oracle
- 使用 OCILIB 连接并操作 Oracle 数据库
- Linux下调用crontab 操作Oracle数据库
- 使用oci封装库ocilib访问oracle
- 使用ocilib库访问oracle数据库
- OCILIB 连接Oracle数据库——插入数据
- 【C语言】Linux操作环境下编译C程序
- linux中用netbeans开发ocilib连接oracle程序
- Linux环境中Oracle数据导入与导出备份操作
- C函数调用机制(x86的linux环境下)
- C函数调用机制(x86的linux环境下)
- C函数调用机制(x86的linux环境下)
- Linux环境下动态库的调用
- linux下C通过系统调用进行基本IO操作
- linux 下C 操作sqlite环境搭建(ubuntu)
- C语言Linux环境下编程的基本操作
- linux下oracle操作。
- 可以一读
- 曳光弹 曳光代码 原型制作 读《读程序员修炼之道》
- Kontlin边用边学
- nginx 负载均衡时,一台tomcat宕机时的问题 自动切换
- 编程的时候最头疼的事:命名
- Linux 环境下调用C++库ocilib操作Oracle数据
- 【TX1学习与开发系列】(五)如何快速部署多个tx1系统(超细节版)
- android lint选项含义
- testyixia
- SpringMVC源码分析,springMVC原理
- 第三方ZXing库zxing-android-embedded使用及自定义
- WEB服务访问的过程
- Android 实现页面跳转
- golang语句笔记