linux搭建oci环境,Linux下搭建OCI环境



系统环境以及相关软件:

操作系统:Linux jabnih-VirtualBox 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux

编译器:gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

Automake :automake (GNU automake) 1.11.1(下载链接(FTP下载):ftp://ftp.gnu.org/gnu/automake/)

OCI版本:ocilib-4.0.1-gnu.tar.gz(下载链接:http://orclib.sourceforge.net/)

另还有一些前提:

automake-1.11.1.tar.gz (这个很恶心,在make oci的时候提示缺少automake-1.11但是装了1.11就会提示版本太老,中间提示说某个东西使用的是1.11.1,装了最新的1.15提示说是1.11创建....芭啦芭啦)。

还需要下载:

oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm

oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm

oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.i386.rpm

下载链接(根据系统选择合适版本):

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

普及知识:

Linux下源码安装三步走:./configure && make && make install

注:我是安装完后才写的,如有错误请直接喷

备注:

Linux在一台虚拟机上,Oracle安装在另一台虚拟机Xp上,通过远程访问

0818b9ca8b590ca3270a3433284dd417.png

安装过程:

(这里我使用的都是默认路径安装,如需指定路径,配置时使用--prefix前缀)

1.首先安装:

oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm

oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm

oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.i386.rpm

上述如果可以用sqlplus连接Oracle就基本表示安装成功了

SQL*Plus测试:

0818b9ca8b590ca3270a3433284dd417.png

这里使用的是远程连接,hr/hr是username和pwd

2.安装automake-1.11.1

3.配置环境变量(~/.bashrc文件)

0818b9ca8b590ca3270a3433284dd417.png

这里说明下 ,ORACLE_HOME配置的是上面basic客户端的路径

其中LD_LIBRARY_PATH中/usr/local/lib是最后面安装好oci lib的路径

4.开始安装OCI

0818b9ca8b590ca3270a3433284dd417.png

这是我开始存放的位置

解压ocilib-4.0.1-gnu.tar.gz

1.进入该目录,./configure配置

0818b9ca8b590ca3270a3433284dd417.png

2.make

3.make install

FAQ:

途中可能遇到的问题:

1.oci_import.h:48:19: error: oci.h: No such file or directory

这个原因是之前./configure没有指定ocilib所需头文件位置,--with-oracle-headers-path来指定,安装客户端后会有一个头文件目录,默认路径下是/usr/include/oracle/11.2/client

找不到可以使用 find / -name oci.h来找出所在路径(这方法比较挫)

2.make的时候出现automake版本太老,之前提过

0818b9ca8b590ca3270a3433284dd417.png

3.安装完写demo的时候

0818b9ca8b590ca3270a3433284dd417.png

LD_LIBRARY_PATH没有配置好,参考前面配置

成功后的示例:

示例代码:

#include "ocilib.h"

#include

int main()

{

OCI_Connection * cn = NULL;

if ( !OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT) )

{

return -1;

}

cn = OCI_ConnectionCreate("192.168.1.218:1521/orcl","hr", "hr", OCI_SESSION_DEFAULT);

if ( cn != NULL )

{

printf("%s\n", OCI_GetVersionServer(cn));

OCI_ConnectionFree(cn);

}

OCI_Cleanup();

return 0;

}

编译

0818b9ca8b590ca3270a3433284dd417.png

执行

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值