使用OCCI连接Linux下Oracle数据库

 OCCI(Oracle C++ Call Interface):C++程序与Oracle数据库实现交互的应用程序接口,它以动态连接库的形式提供给用户。OCCI对OCI实行了对象级的封装,其底层仍是OCI

  OCCI连接Linux下的Oracle数据库:

  1 安装Linux下的oracle客户端

  2 下载对应的oracle-instantclient-basic-10.2.0.4-1.i386.zip将其拷贝至Linux的Oracle账户并解压至instantclient_10_2目录

  实现OCCI的六大步骤:

  1 创建环境变量Environment

  2 创建连接对象Connection

  3 创建SQL语句的执行对象Statement

  4 执行SQL语句(execute()函数,executeUpdate()函数,executeQuery()函数)

  5 处理结果集ResultSet(查询结果)

  6 关闭连接

  在Linux的Oracle数据库下创建一个表用于操作


create table user_info

(

user_id int not null primary key,

user_name varchar2(100)

);

//AddOcci.cc

#include <iostream>

#include <string>

#include <occi.h>

#pragma comment(lib,"oci.lib")

#pragma comment(lib,"ociw32.lib")

#pragma comment(lib,"oraocci10.lib")

using namespace std;

using namespace oracle::occi;

/*******************************

*向数据库中添加一条记录

*******************************/

int main()

{

//创建环境变量

//Environment

Environment *env = Environment::createEnvironment(Environment::OBJECT);

//username是oracle的用户名

//userpass是oracle的密码

//connstr是oracle的连接字符串

string username = "hahaya";

string userpass = "hahaya";

string connstr = "192.168.0.6:1521/orcl";

//创建连接

//connection

Connection *conn = env->createConnection(username, userpass, connstr);

if(conn == NULL)

{

cout << "access oracle failed..." << endl;

return 0;

}

//创建一个SQL语句的执行对象

//statement

Statement *st = conn->createStatement();

st->setSQL("insert into user_info values(1, 'hahaya')");

st->executeUpdate();

//关闭连接

env->terminateConnection(conn);

Environment::terminateEnvironment(env);

return 0;

}

 执行AddOcci程序之前:

  执行AddOcci程序之后:


//ListOcci.cc

#include <iostream>

#include <string>

#include <occi.h>

#pragma comment(lib,"oci.lib")

#pragma comment(lib,"ociw32.lib")

#pragma comment(lib,"oraocci10.lib")

using namespace std;

using namespace oracle::occi;

/*******************************

*查询表中数据

*******************************/

int main()

{

Environment *env = Environment::createEnvironment(Environment::OBJECT);

string username = "hahaya";

string userpass = "hahaya";

string connstr = "192.168.0.6:1521/orcl";

Connection *conn = env->createConnection(username, userpass, connstr);

Statement *st = conn->createStatement();

st->setSQL("select * from user_info");

ResultSet *rs = st->executeQuery();

while(rs->next())

{

cout << "user id:" << rs->getInt(1) << "user name:" << rs->getString(2) << endl;;

}

st->closeResultSet(rs);

env->terminateConnection(conn);

Environment::terminateEnvironment(env);

return 0;

}

  执行ListOcci之前:

  执行DelOcci结果:

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-03 15:56:20

使用OCCI连接Linux下Oracle数据库的相关文章

linux下oracle数据库重启的方法

网站的服务中断了,重启下发现是oralce服务不存在,又不想重启机器,就重新启动下oralce,再重启服务,搞定. 操作的为oracle9i:(其他应该也可以用吧记录如下)声明:坚挺器(应该理解的哦,信息发不出去,你懂的,就用这个了) (1) 以oracle身份登录数据库,命令:su – oracle (2) 进入Sqlplus控制台,命令:sqlplus /nolog (3) 以系统管理员登录,命令:connect / as sysdba (4) 启动数据库,命令:startup (5) 如果

oracle11g-在虚拟机linux上oracle数据库不能连接

问题描述 在虚拟机linux上oracle数据库不能连接 可能是在虚拟机上删除了个表空间,造成数据库一直不能打开. linux上命令行显示这样: cannot identify/lock data file 6 - see DBWR trace file data file 6 : 'home/oracle/j04.dbs' 求大师解决下!谢谢.

配置-用本地plsql怎么连接linux中的数据库。急急急!!!!

问题描述 用本地plsql怎么连接linux中的数据库.急急急!!!! 在本地上安装了oracle数据库服务器,还下了instance client安装,环境变量也配了,并且在tnsnames.ora中也添加了相应的实例配置,就是怎么也连不上Linux中的数据库.求大神解救一下. 解决方案 请问你客户端用的是多少位的啊: 一般用的是32位的,64位的不行的; 你oracle服务开启了吗,到服务进程里看开了没,如果没有的话将它开启; 如果回答对您有帮助,请采纳 解决方案二: 你先ping一下Lin

基于Linux下 Oracle 备份策略(RMAN)

基于Linux下 Oracle 备份策略(RMAN) --********************************** -- 基于Linux下 Oracle 备份策略(RMAN) --**********************************       对于 Oracle 数据库的备份与恢复,尽管存在热备,冷备以及逻辑备份之外,使用最多的莫过于使用RMAN进行备份与恢复.而制定RMAN备份策略则是基于数据库丢失的容忍程度,即恢复策略来制定.在下面的备份策略中,给出的是一个通用

linux下oracle自动备份脚本

linux下oracle自动备份脚本  vi /home/oracle/backup.sh   //编写脚本 以下为脚本内容 time=` date +"%Y%m%d%H%M" ` //变量time 获取当前系统时间 su - oracle -c "exp hbskjt_0113/password owner=hbskjt_0113 file=/home/oracle/hbskjt_$time.dmp"  //导库脚本 cd /home/oracle tar zcv

Linux下Oracle删除用户和表空间的方法_oracle

本文实例讲述了Linux下Oracle删除用户和表空间的方法.分享给大家供大家参考,具体如下: 1.删除某个用户 SQL> conn /as sysdba Connected. SQL> drop user userName cascade; 用户已删除 如果用户无法删除,并报错: ERROR at line 1: ORA-01940: cannot drop a user that is currently connected 通过查看用户的进行,并kill用户进程,然后删除用户. SQL&

LINUX下Oracle数据导入导出的方法详解_oracle

本文讲述了LINUX下Oracle数据导入导出的方法.分享给大家供大家参考,具体如下: 一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移   它有三种模式: a.  用户模式: 导出用户所有对象以及对象中的数据: b.  表模式: 导出用户所有表或者指定的表: c.  整个数据库: 导出数据库中所有对象. 2. 导出工具exp交互式命令行方式的使用的例子: $ex

Windows系统下Oracle数据库每天自动备份_oracle

linux和unix下面使用shell可以很方便实现,如果windows环境下可以结合计划任务实现 1.创建备份目录d:\backup, 创建批处理命令Bak.bat,编写备份脚本 exp user/passwd@orcl DIRECT=Y BUFFER=100000 FILE=D:\backup\scdd%date:~0,10% OWNER=('scdd') LOG=D:\backup\data.log forfiles /p "D:\backup" /s /m *.dmp /d -

SOLARS AIX LINUX 下移动数据库文件到裸设备

SOLARS AIX LINUX 下移动数据库文件到裸设备 SOLARIS:  SQL> create tablespace test1  2  datafile '/oradata/ora11g/test01.dbf' size 100m ; Tablespace created. SQL> create table testpp  2  tablespace test1  3  as  4  select * from dba_users; Table created. SQL> a