• Linux中OCI开发库的配置


    Oracle调用接口(Oracle Call Interface,简称OCI)提供了一组可对Oracle数据库进行存取的接口子例程(函数),通过在第三代程序设计语言(如C语言)中进行调用可达到存取Oracle数据库的目的。

    1、Oracle客户端

    因为需要使用ocilib来操作部署在其他电脑上的数据库,需要安装Oracle客户端;注意,无需下载完整的Oracle客户端,下载安装oracle-instantclient(即时客户端)即可,官网下载地址是:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 。有很多类型的包可供下载,每种包又分为.zip和.rpm两种格式,zip包相当于解压后免安装版,rpm包需要安装。下载的版本要对应你所连接的数据库的具体版本及位数,如我要连接的数据库的版本信息是:

    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 -64bit Production

    所以我选择64位的11.2.0.4.0版本来下载。下面以rpm格式包安装配置来详细展开。

    1)要远程连接Oracle数据库,且要使用ocilib来操作数据库,则至少需要下载以下三个包:

    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm 
    oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm 
    oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

    其中

      basic是基础包,使用其的目的是运行OCI、OCCI、JDBC-OCI这几个应用程序;

      sqlplus是补充包/文件,目的是运行sql*plus的即时客户端;

      devel等同于oracle-sdk,包含头文件和示例文件,目的是开发Oracle应用程序;

    以上三个千万不要少。

    其余的可选的还有:

    oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm  --补充包/文件,为运行ODBC环境附加库;
    oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm  --补充JDBC下的XA、国际标准、行集操作;

    2)使用rpm -ivh [包名]进行安装,

    如:

    rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

    安装的文件默认放在两个位置:

    头文件:/usr/include/oracle/11.2/client64/下,如果在使用时报错找不到头文件,记得看路径是否是这个。

    包文件:/usr/lib/oracle/11.2/client64/下,包含{bin、lib}两个文件夹。

    3)创建文件夹:#mkdir -p /usr/lib/oracle/11.2/client64/network/admin/

    4)创建监听文件,并添加内容:#vi /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora

    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 200.31.157.65)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = *SID*)
        )
      )

    5)配置环境变量

    vi ~/.bashrc
    #该种方法把使用这些环境变量的权限控制到用户级别,即针对某一特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人主目录下的.bashrc文件就可以了。
    
    export  ORACLE_HOME=/usr/lib/oracle/11.2/client64
    export  TNS_ADMIN=$ORACLE_HOME/network/admin
    export  NLS_LANG='simplified chinese_china'.ZHS16GBK
    export  LD_LIBRARY_PATH=$ORACLE_HOME/lib 
    export  PATH=$ORACLE_HOME/bin:$PATH

    6)使配置完的环境变量生效 :#source ~/.bashrc

    7)连接数据库测试:#sqlplus /nolog

    2、安装配置OCI

    1)下载地址:http://vrogier.github.io/ocilib/

    2)配置环境变量:vi ~/.bashrc

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

    因为前面已配置了oracle的链接库路径,执行前,LD_LIBRARY_PATH=:/usr/lib/oracle/11.2/client64/lib;

    执行上述语句后,LD_LIBRARY_PATH=:/usr/lib/oracle/11.2/client64/lib:/usr/local/lib;

    2)解压ocilib

    tar -xzvf ocilib-4.3.3-gnu.tar.gz

    3)进入该目录:cd ocilib-4.3.3;然后./configure进行配置(./configure是用来生成Makefile,为下一步的编译做准备,--with用于指定ocilib所需的头文件和库文件位置)

    ./configure --with-oracle-lib-path=/usr/lib/oracle/11.2/client64/lib --with-oracle-headers-path=/usr/include/oracle/11.2/client64

    4)make

    make是用来编译,它从Makefile中读取指令,然后编译。

    5)make install

    make install是用来安装的,它从Makefile中读取指令,安装到指定的位置。

    3、成功后示例

    1)代码:

    #include "ocilib.h"
    #include <stdio.h>
    
    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
    ", OCI_GetVersionServer(cn));
    
            OCI_ConnectionFree(cn);
        }
        
        OCI_Cleanup();
    
        return 0;
    }

    2)编译

    gcc ocitest.c -locilib

    3)执行

    4)注意事项

    安装完写demo的时候,出现:

    是因为LD_LIBRARY_PATH没配置正确,在执行a.out时,找不到动态库,需参照前面的步骤完成配置。

  • 相关阅读:
    spring mvc自定义配置 mvc:annotationdriven 东师理想
    spring配置xmemcached及使用 东师理想
    fastjson的简单序列化使用(转) 东师理想
    配置springmvc + simplespringmemcached 东师理想
    利用Spring AOP 更新memcached 缓存策略的实现(二) 东师理想
    springmvc 退出清除session,返回首页,获取当前项目路径,返回前台ajax输出 东师理想
    利用Spring AOP 更新memcached 缓存策略的实现(一) 东师理想
    tomcat7 配置 jstl 东师理想
    Linear Sieve Method for Prime Numbers
    List All Of The Subsets
  • 原文地址:https://www.cnblogs.com/codingmengmeng/p/7450503.html
Copyright © 2020-2023  润新知