c++ Oracle OCCI 编程

摘要:
OCCI数据库Oracle编程步骤1.配置环境Occi访问数据库需要occi.h头文件,此文件在oracle安装目录下,必须有oracle库的支持。安装oracle服务端或客户端;配置NLS_LANG环境变量,必须与数据库的字符编码一致,否则可能出现中文乱码;配置环境变量,使客户端支持中文显示;安装C++编程工具和g++编译工具。

OCCI数据库Oracle编程步骤
1.配置环境
(1)Occi访问数据库需要occi.h头文件,此文件在oracle安装目录下,必须有oracle库的支持。安装oracle服务端或客户端;
(2)配置NLS_LANG环境变量,必须与数据库的字符编码一致,否则可能出现中文乱码;
(3)配置环境变量,使客户端支持中文显示;
(4)安装C++编程工具和g++编译工具。
2.编写C++程序
(1)Environment类创建occi环境变量;
(2)Environment类下的createConnection方法创建连接数据库的Connection对象;
(3)Statement类创建对象,由数据库连接对象调用createStatement方法创建;
(4)Statement类创建对象调用setSQL()准备SQL语句;
(5)Statement类创建对象调用execute()或executeUpdate()或executeQurey()或executeArrayUpdate()方法执行查询,如果是查询的,创建ResultSet对象接收数据集;如果是数据更新回插入:Statement:: setAutoCommit (TRUE); 设置自动提交;Statement::setAutoCommit(FALSE); 设置手动提交,手动提交:Connection::commit();Connection::rollback();
(6)Statement类创建对象调用getxxx()方法获取字段数据;
(7)terminateStatement()终止Statement对象;
(8)terminateConnection()断开数据库连接;
(9)Environment::terminateEnvironment()终止环境变量。

  1. #include<iostream>
  2. #include<occi.h>//occi头文件
  3. //声明命名空间
  4. usingnamespaceoracle::occi;
  5. usingnamespacestd;
  6. intmain()
  7. {
  8. Environment*env;
  9. Connection*conn;
  10. Statement*stmt;
  11. ResultSet*rs;
  12. stringusername="system";//用户名
  13. stringpassword="st1234";//密码
  14. stringconnstring="orcl";//数据库连接字符串
  15. stringsql,strname;
  16. intisno;
  17. env=Environment::createEnvironment();//创建环境变量
  18. conn=env->createConnection(username,password,connstring);//创建数据库连接对象
  19. stmt=conn->createStatement();//创Statement对象
  20. sql="SELECTu_id,u_name,to_char(u_date,'yyyy-mm-ddhh24:mi:ss')FROMstudent";
  21. stmt->setSQL(sql);//准备SQL语句
  22. try
  23. {
  24. rs=stmt->executeQuery();//执行SQL语句,返回结果集
  25. while(rs->next())//取数据
  26. {
  27. isno=rs->getInt(1);
  28. strname=rs->getString(2);
  29. cout<<isno<<"AND"<<strname<<endl;
  30. cout<<rs->getString(3)<<endl;
  31. }
  32. cout<<"SELECTSUCCESS"<<endl;
  33. }
  34. catch(SQLExceptionex)//异常处理
  35. {
  36. cout<<"ErrorNumber"<<ex.getErrorCode()<<endl;
  37. cout<<ex.getMessage()<<endl;
  38. }
  39. conn->terminateStatement(stmt);//终止Statement对象
  40. env->terminateConnection(conn);//断开数据库连接
  41. Environment::terminateEnvironment(env);//终止环境变量
  42. return1;
  43. }

3.编写makefile文件
Makefile:
includepath=${ORACLE_HOME}/rdbms/public
libpath=${ORACLE_HOME}/lib
libfile=-L ${libpath} -locci -lclntsh /usr/lib/libstdc++.so.5
incfile=-I ${includepath}

occiselect:select.cpp
g++ -o occiselect select.cpp ${libfile} ${incfile}
clean:
rm occiselect
4.编译程序
Make occiselect.

免责声明:文章转载自《c++ Oracle OCCI 编程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【一致性检验指标】Kappa(cappa)系数httperf+autobench测试web应用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle数据库导入导出总结(dmp文件)

Oracle 10G 管理页面(Oracle Enterprise Manager 10g): http://localhost:1158/emhttp://localhost:1158/em/console/logon/logon Oracle数据库导出:   (1)整个用户下的所有数据(dmp文件):    《导出》          exp 用户...

maven的.m2文件夹

安装完maven是没有.m2文件夹的。 Maven缺省的本地仓库路径为${user.home}/.m2/repository 在linux中以.开头的文件夹都是隐藏的。当使用maven命令的时候,maven自动会创建.m2文件夹。 运行命令mvn help:system,查看java系统属性和环境变量。 该命令会打印出所有的Java系统属性和环境变量。...

用java调用oracle存储过程总结(转)

//1、call+包名+存储过程名(传入、传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2、建立连接 Connection conn=null; conn=DriverManager.getConnection(); //3、使用java.sql.*类 C...

Oracle行转列的3种方法

测试表为A3 , 有5个字段:ID1, ID2, ID3, ID4, ID5 测试数据如下: ID1 ID2 ID3 ID4 ID5 1 2 3 4 5 11 22 33 44 55 111 222 333 444 555 结果如下: ID1 11 ID2 22 ID3 33 方法1:使用系统表 SELECT DECOD...

jenkins的安装

一、安装git 1.安装依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y 2.下载安装包https://github.com/git/git/releases wget ht...

Oracle 12c 分片(Sharding)技术

Sharding特点 Oracle12c Sharding技术实现了跨数据库级别的数据分片,实现了分布式IO大数据扩展的云数据库架构体系,可满足大数据海量存储、分布式数据读写以及满足Scale Out/ScaleUp扩展性需求。Sharding的主要特点: 线性伸缩性(Scale out):Sharding技术减少性能瓶颈,同时可以通过添加Shard节点...