Linux下配置OCI(Oracle调用接口)

由于我们的数据库有专门的机器,所以我自己的机器并没有装Oracle。

Oracle提供的C++访问方式是,通过OCI(Oracle Call Interface,简称OCI)。

这个如果单独安装非常的麻烦(主要是很trick。。),下面以Oracle 11gr2为例,介绍Linux下配置OCI。

1、安装Oracle client驱动
Oracle官方的那个神马600MB的开发包就别想了,装了三次,都失败,什么库都没装上!
翻了半天,使用Google Hacking找出来这个,可以直接安装的驱动,才不到1M
http://www.oracle.com/technetwork/topics/linuxsoft-082809.html
按个Linux开发驱动都这么费劲真是无语了。。
这两个是关键!
oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm (这个是编译好的so)
oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm (这个是.h头问件)
用alien转一下,然后再dpkg!
[补充]
x86_64的:
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
windows x86的:
http://www.oracle.com/technetwork/topics/winsoft-085727.html
windows x64的:
http://www.oracle.com/technetwork/topics/winx64soft-089540.html

2、安装

#安装alien
sudo apt-get install alien
#将rpm转为deb
sudo alien ./oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm
sudo alien ./oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm
#安装转换完毕的deb
sudo dpkg -i ./oracle-instantclient11.2-basic_11.2.0.2.0-2_i386.deb
sudo dpkg -i ./oracle-instantclient11.2-devel_11.2.0.2.0-2_i386.deb
#还需要安装aio!
sudo apt-get install libaio-dev

安装好后,位置分别为:
/usr/lib/oracle/11.2/client/lib
/usr/include/oracle/11.2/client
这个ldconfig默认是不会cache的,很多时候我们是无法修改ld.d.conf的(因为没有root权限)。
于是需要设置环境变量

#这种方法可以避免必须ldconfig的情况
vim ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/11.2/client/lib

2 thoughts on “Linux下配置OCI(Oracle调用接口)

  1. bwc

    您好,
    请帮我看看问题,我的是fedora12环境下,没有装oracle客户端,我装的是oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm,oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm,然后设置了ORACLE_HOME,LD_LIBRARY_PATH,TNS_ADMIN环境变量,但是SQLPLUS连不上,总是报ORA-12154: TNS:could not resolve the connect identifier specified
    错误,能否告知原因? 谢谢

    Reply
  2. coder4 Post author

    @bwc: 不用TNS,直接连是否可以,我连接都不用TNS的,直接IP+端口……

    Reply

Leave a Reply to bwc Cancel reply

Your email address will not be published. Required fields are marked *