C++访问ORACLE数据库
2015-12-30 09:49
543 查看
首先,参考资料是官方文档:https://docs.oracle.com/database/121/LNCPP/toc.htm
OCCI要访问ORACLE数据库,需要几部分文件:include头文件,lib库文件,dll文件,其实基本步骤是怎么找到这些文件。
获取这些文件,需要在oracle官网下载几个包:
1:Instant Client Package - Basic: All files required to run OCI, OCCI, and JDBC-OCI applications
2:Instant Client Package - SDK: Additional header files and an example makefile for developing Oracle applications with Instant
Client
3:OCCI接口:Oracle C++ Call Interface
分别下载这三个包:
1:Instant Client Package - Basic、Instant Client Package - SDK两个包的下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html(其他平台:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)
选中一个版本,所选版本需要高于oracle数据库的版本;且这两个包的版本要一致。
2:OCCI接口下载地址:http://www.oracle.com/technetwork/database/occidownloads-083553.html
选中一个版本,该版本要和前两个包的版本保持一致。从该下载页的表格中可以看出,VS2010提供了zip包,而之前的VS版本则需要安装oracle客户端才能访问数据库,所以使用vs2010就方便多了,只需要相应的库文件即可。
下载完成后:
分别解压三个包:
1:所需的include头文件在instantclient-sdk-nt-11.2.0.4.0\instantclient_11_2\sdk\include路径下(Instant
Client Package - SDK包)
2:lib文件在OCCI接口包中:oraocci11.lib或者oraocci11d.lib(SDK包中也有lib文件,但测试发现用不上)
3:dll文件在OCCI接口包中的:oraocci11.dll或者oraocci11d.dll,以及Instant
Client Package - Basic包中的:oraociei11.dll、oci.dll、orannzsbb11.dll(如果orannzsbb11不要也可以,该包下的其他dll、sym、exe文件不用管,至于具体作用还没来得及研究)。
参考代码:
其他参考文章:
C#
使用OCCI 连接Oracle 数据库:http://blog.csdn.net/superhackerzhang/article/details/7648235
VC8
+ OCCI 连接oracle 11g(11.2):http://blog.csdn.net/yangxingya/article/details/6005133
OCCI要访问ORACLE数据库,需要几部分文件:include头文件,lib库文件,dll文件,其实基本步骤是怎么找到这些文件。
获取这些文件,需要在oracle官网下载几个包:
1:Instant Client Package - Basic: All files required to run OCI, OCCI, and JDBC-OCI applications
2:Instant Client Package - SDK: Additional header files and an example makefile for developing Oracle applications with Instant
Client
3:OCCI接口:Oracle C++ Call Interface
分别下载这三个包:
1:Instant Client Package - Basic、Instant Client Package - SDK两个包的下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html(其他平台:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)
选中一个版本,所选版本需要高于oracle数据库的版本;且这两个包的版本要一致。
2:OCCI接口下载地址:http://www.oracle.com/technetwork/database/occidownloads-083553.html
选中一个版本,该版本要和前两个包的版本保持一致。从该下载页的表格中可以看出,VS2010提供了zip包,而之前的VS版本则需要安装oracle客户端才能访问数据库,所以使用vs2010就方便多了,只需要相应的库文件即可。
下载完成后:
分别解压三个包:
1:所需的include头文件在instantclient-sdk-nt-11.2.0.4.0\instantclient_11_2\sdk\include路径下(Instant
Client Package - SDK包)
2:lib文件在OCCI接口包中:oraocci11.lib或者oraocci11d.lib(SDK包中也有lib文件,但测试发现用不上)
3:dll文件在OCCI接口包中的:oraocci11.dll或者oraocci11d.dll,以及Instant
Client Package - Basic包中的:oraociei11.dll、oci.dll、orannzsbb11.dll(如果orannzsbb11不要也可以,该包下的其他dll、sym、exe文件不用管,至于具体作用还没来得及研究)。
参考代码:
#include "occi.h" using namespace oracle::occi; #include <iostream> #include <string> using namespace std; int testOracle(){ Environment *env; try { env =Environment::createEnvironment(Environment::DEFAULT); cout<<"success"<<endl; string name = "root"; string pass = "root"; string srvName = "//171.29.34.41:1521/ORCL"; Connection *conn = env->createConnection(name, pass,srvName); cout<<"conn success"<<endl; Statement *stmt = NULL; ResultSet *rs = NULL; string sql = "select \"StorageServerPath\" from \"temp\""; stmt = conn->createStatement(sql); rs = stmt->executeQuery(); while (rs->next()) { cout <<rs->getString(1)<<endl; } env->terminateConnection(conn); } catch(SQLException e) { cout<<e.what()<<endl; return -1; } Environment::terminateEnvironment(env); cout<<"end!"<<endl; return 0; } int main() { testOracle(); getchar(); return 0; }
其他参考文章:
C#
使用OCCI 连接Oracle 数据库:http://blog.csdn.net/superhackerzhang/article/details/7648235
VC8
+ OCCI 连接oracle 11g(11.2):http://blog.csdn.net/yangxingya/article/details/6005133
相关文章推荐
- oracle分页
- Oracle报错:ORA-00845: MEMORY_TARGET not supported on this system
- 什么叫做Oracle RAC中的nodename
- 关于RHEL的CVE和Oracle Linux的CVE
- Oracle 数据库怎么从 Linux x86平台向 IA64 安腾平台(RH or SUSE)迁移?
- Oracle导入字符集问题
- Oracle 12C 新特性“可插拔数据库”功能体验
- 解决 Oracle 安装失败未找到文件 dr0ulib.sql.sbs 等…
- [INS-32102] 指定的 Oracle 主目录用户已存在
- [INS-32025] 所选安装与指定 Oracle 主目录中已安装的软件冲突 的问题
- Oracle远程连接设置
- oracle创建数据库的语句
- Oracle基本数据类型
- [转]oracle设计数据库应选择正确的数据类型
- MySQL和ORACLE、SQL Server、PostgreSQL相比
- [转]oracle数据类型和对应的java类型
- 数据库Oracle知识整理
- Java中JDBC连接数据库Oracle
- oracle11g dataguard failover重建后归档日志没有被应用被NO的问题
- (转) sqlserver,mysql,db2,oracle中判断字段的值不为空