Linux下配置Pro*C/C++开发环境

2018-07-07  本文已影响0人  丶Em1tu0F

1、下载

Linux 下的 Oracle Instant Client 有rpm包和zip包两种,下载任意一种即可,这里以下载的 zip 包为例,下载rpm包的安装见 Oracle Instant Client rpm包安装

instantclient-basic-linux.x64-11.2.0.3.0.zip
instantclient-sqlplus-linux.x64-11.2.0.3.0.zip
instantclient-sdk-linux.x64-11.2.0.3.0.zip
instantclient-precomp-linux.x64-11.2.0.3.0.zip

2、解压安装

unzip instantclient-basic-linux.x64-11.2.0.3.0.zip
unzip instantclient-sqlplus-linux.x64-11.2.0.3.0.zip
unzip instantclient-sdk-linux.x64-11.2.0.3.0.zip
unzip instantclient-precomp-linux.x64-11.2.0.3.0.zip

文件被解压到目录instantclient_11_2下

3、创建数据库连接文件

在instantclient_11_2目录下创建network/admin目录。
使用命令mkdir -p network/admin,并在admin目录下创建tnsnames.ora文件。
文件内容类似如下:

XXX = 
(DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))  
    (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = orcl)
    )
 ) 

4、配置环境变量

这里配置 root 用户环境变量: ~/.bash_profile

export ORACLE_HOME=/oracle/instantclient_11_2    
export PROC=$ORACLE_HOME/sdk    
export PATH=$PATH:$ORACLE_HOME:$PROC    
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:$ORACLE_HOME    
export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib:$ORACLE_HOME   

注意要配置LD_LIBRARY_PATH变量,sqlplus等程序运行时需要加载相应库,若不配置,则运行时会出现错误。
配置完毕后刷新 source ~/.bash_profile

5、sqlplus测试

[centos@localhost soft]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL> conn scott/tiger@XXX
已连接SQL>

6、proc测试

测试代码:

#include <stdio>
exec sql include sqlca;
int main(void) {
    exec sql begin declare section;
    char userpwd[30] = "scott/tiger@XXX";
    char curdate[20] = {0};
    exec sql end  declare section;

    exec sql connect :userpwd;
    if(sqlca.sqlcode == 0) {
        fprintf(stderr, "connect to database success!\n");
    }
    else {
        fprintf(stderr, "connect to database failed! error:%s\n", sqlca.sqlerrm.sqlerrmc);
        return -1;
    }

    exec sql select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') into:curdate from dual;
    fprintf(stderr, "%s", curdate);
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读