首页 >数据库 >mysql教程 >Linux下用OCCI或OCI连接Oracle数据库

Linux下用OCCI或OCI连接Oracle数据库

WBOY
WBOY原创
2016-06-07 17:03:331268浏览

首先,去Oracle官网下载C语言的库文件和头文件网址如下,选择对应的Instant Client版本(我下载的都是zip包,没有下载rpm包,rpm

首先,去Oracle官网下载C语言的库文件和头文件网址如下,选择对应的Instant Client版本(我下载的都是zip包,没有下载rpm包,rpm包应该安装的时候就把那些东西配置好了):(个人建议下zip包,,自己打动手玩,能加强理解

下面是linux i386版本的

Instant Client Package - Basic     里面包含了动态库文件 libclntsh.so.11.1(最新版本可能不一样) 并将其加载到动态库搜索路径中去(具体操作sudo mv  *.so /usr/bin)
*Instant Client Package - SDK     这个则是包含的头文件
 *Instant Client Package - SQL*Plus   sqlplus这个东西最好还是下一个装上,试验客户端是否配置好,查看sql语句执行结果都需要他。

下面是我下的三个:

instantclient-basic-linux32-11.2.0.2.0.zip

instantclient-sdk-linux32-11.2.0.2.0.zip

instantclient-sqlplus-linux32-11.2.0.2.0.zip

下载文件路径设置:
/home/oracle/lib 存放Basic和sqlplus的各种库文件,因此在/etc/ld.so.conf文件中添加路径/home/oracle/lib ,还有就是在当前文件下为libclntsh.so.11.1库文件建个软连接 ln -s libclntsh.so.11.1 libclntsh.so 让代码连接动态库的时候能找到库文件。(其实里面还有好多.so文件,都是动态库,都要像libclntsh.so.11.1一样放到动态库的时候能找到库文件)

执行ldconfig
/home/oracle/include 存放SDK的头文件。 

# tnsnames.ora Network Configuration File: /home/oracle/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
TEST =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
)


    配置好上面这些后,注销用户重新登录,让 ORACLE_HOME环境变量生效,检查方法很简单,分别在终端输入命令:
[@localhost ~]$ echo $ORACLE_HOME
/home/oracle
如果像上面那样有路径输出则说明配置成功了,如果没有输出那重新再编辑一下 ~/.bashrc 看看哪里出了问题吧。


      检查完成以后运行sqlplus登录数据库成功!例子如下,运行C程序链接数据库也成功!总算把环境配好了。

其实这时候还出现了问题(估计是我好久没更新,可能是属于个别问题),就是./sqlplus: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

补救操作:sudo apt-get install libaio1

连接时:sqlplus test/test@192.168.17.151/test

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn