IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux中基于OCCI操作远程Oracle数据库 -> 正文阅读

[系统运维]Linux中基于OCCI操作远程Oracle数据库

操作环境

操作系统内核:CentOS Linux release 7.6.1810(可通过命令cat /etc/redhat-release查看)
操作系统位数64位(可通过命令uname -p查看)
数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production(可通过SQL语句select * from v$version;查看)

操作过程

1.下载软件包

在Oracle下载如下四个文件,这里的rpm包的版本应当与Oracle数据库的版本相对应(比如我这里都是11.2),rpm包的位数应当与操作系统的位数相对应(比如我这里都是x86-64)。

64位Linux对应下载链接

在这里插入图片描述

2.安装软件包

下载后在rpm文件所在路径下执行命令rpm -ivh *.rpm进行安装,如果是Ubuntu等Debian系的Linux则需要借助alien将rpm文件转换为deb文件后通过dpkg安装。

如果安装成功,下面三个目录及文件应当会被导入(不同版本会略有不同),如果文件发生大量缺失可能是安装失败,建议通过命令rpm -e [软件包名称(不带rpm后缀)]卸载后重新安装而不是强制安装。

[root@localhost ~]# ls /usr/lib/oracle/11.2/client64/bin/
adrci  genezi  sqlplus
[root@localhost ~]# ls /usr/lib/oracle/11.2/client64/lib/
glogin.sql    libclntsh.so.11.1  libocci.so       libociei.so      libsqlplusic.so  libsqora.so.11.1  ojdbc6.jar      xstreams.jar
libclntsh.so  libnnz11.so        libocci.so.11.1  libocijdbc11.so  libsqlplus.so    ojdbc5.jar        ottclasses.zip
[root@localhost ~]# ls /usr/include/oracle/11.2/client64/
ldap.h         occiAQ.h       occiData.h     oci1.h         ociapr.h       ocidfn.h       ocikpr.h       odci.h         ori.h          ort.h          
nzerror.h      occiCommon.h   occi.h         oci8dp.h       ocidef.h       ociextp.h      ocixmldb.h     oratypes.h     orl.h          xa.h           
nzt.h          occiControl.h  occiObjects.h  ociap.h        ocidem.h       oci.h          ocixstream.h   orid.h         oro.h          
[root@localhost ~]# 

3.修改环境变量

~/.bash_profile中添加以下内容后执行命令source ~/.bash_profile使配置生效,添加后可通过export命令查看是否修改成功。

# --- OCCI begin ---

# 添加头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/oracle/11.2/client64/

# 添加静态连接库搜索路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/lib/oracle/11.2/client64/lib/

# 添加动态连接库搜索路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/11.2/client64/lib/

# 添加字符编码以避免中文乱码
export NLS_LANG=AMERICAN_AMERICA.UTF8

# --- OCCI end ---

4.执行测试程序

编译并执行以下代码,如果执行成功则表示数据库连接成功,其中数据库名称可通过SQL语句select instance_name from V$instance;获取。

#include <iostream>
#include <stdio.h>

#include <occi.h>

using namespace std;
using namespace oracle::occi;

int main() {
    Environment *env = Environment::createEnvironment();
    string name = "用户名";
    string pass = "密码";
    string srvName = "服务器IP地址:Oracle端口/数据库名称";

    try {
        Connection *conn = env->createConnection(name, pass, srvName);
        cout << "connect success" << endl;
        env->terminateConnection(conn);
    } catch (SQLException e) {
        cout << e.what() << endl;
    }

    Environment::terminateEnvironment(env);

    cout << "quit" << endl;

    return 0;
}
[root@localhost ~]# g++ main.cpp -o main -I/usr/include/oracle/11.2/client64/ -L/usr/lib/oracle/11.2/client64/lib/ -locci -lnnz11 -lclntsh
[root@localhost ~]# ./main 
connect success
quit
[root@localhost ~]# 
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:57:57  更:2022-11-05 01:00:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 19:48:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码