使用OCCI连接Linux下Oracle数据库-阿里云开发者社区

开发者社区> 沉默术士> 正文

使用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/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
pl/sql配置连接远程数据库oracle,本地没有安装oracle数据库的情况下
首先下载instantclient 可以到oracle官网下载,要注册账号,一定要下对应版本的,要不然不成功, 10G,11G版的,我已经传上来了,免费下载:正在上传中,稍等 配置文件tnsnames.
745 0
xshell,putty远程连接Linux并使用密钥认证
putty秘钥登录 1.软件:putty、puttygen puttygen点击Generate生成公钥和私钥   二次保障,输入设置密码   点击保存私钥文件即可。
1184 0
在ArcGIS中如何使用直连方式连接Oracle数据库
1.      背景 直连方式比使用SDE方式更加稳定,特别是在大数据量处理的应用中,不易出场由SDE连接进程造成的gsvr错误。
1054 0
ArcGIS 客户端跨版本连接Oracle 地理数据库时的兼容性说明
很多用户都会有这样的疑问: 1:我是否可以使用ArcGIS Desktop9.3连接ArcSDE10 2:我是否可以使用ArcGIS 10.
947 0
MyBatis Generator(MBG)Oracle使用说明 公共同义词 LONG数据类型
Oracle使用说明公共同义词 Public Synonyms如果要为具有公共同义词的表生成对象,则应该实际上根据真实表生成对象,然后在运行时更改表名称。MyBatis Generator自动支持。
918 0
+关注
5518
文章
253
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载