由于我们的数据库有专门的机器,所以我自己的机器并没有装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
您好,
请帮我看看问题,我的是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
错误,能否告知原因? 谢谢
@bwc: 不用TNS,直接连是否可以,我连接都不用TNS的,直接IP+端口……