一次使用OCI的排错经历

摘要:
但该公司的一位专家表示,对OCIEnvCreate函数的调用失败,OCIErrorGet()函数无法用于获取错误信息。后来,我认为我的OCI库来自Oracle9i。所以我切换到了Oracle10g OCI。虽然问题已经解决了,但我仍然无法验证我的想法是否正确。这种情况经常发生。即使你解决了问题,你也不能保证你真正理解了问题的根源。

作者:朱金灿

来源:blog.csdn.net/clever101

使用VS C++ 2005 + sp1和Oracle 10g的OCI库开发一个应用程序。
其中在连接数据库服务器调用OCIEnvCreate函数返回-1,开始百思不得其解,本想通过OCIErrorGet()函数获取相关错误信息。但听公司一位高手说,OCIEnvCreate函数调用失败,是无法使用OCIErrorGet()函数获取错误信息的(因为连环境都没创建)。

后来我想了一下,我的这个OCI库是Oracle 9i的。但是在我的机子上装的是Oracle 10g的客户端,我想是不是Oracle 9i的OCI无法初始化Oracle 10g的客户端呢?于是我改用Oracle 10g的OCI。结果OCIEnvCreate函数返回值正确了。

虽然问题解决了,但是我还是无法验证自己的想法是不是正确的。很多时候就是这样的,即使你解决了问题,但是你也决不能保证你真正通晓了问题的根源。

免责声明:文章转载自《一次使用OCI的排错经历》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇希尔排序(Shell Sorting)vs2015中无法设置Qt版本,qt project setting 是灰色,Qt无法编译ui文件下篇

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

相关文章

[转]Oracle中使用Rownum分页详细例子

原文地址:http://www.jb51.net/article/52272.htm 在MySQL中,我们通常都使用limit来完成数据集获取的分页操作,而在Oracle数据库中,并没有类似limit一样的方便方法来实现分 页,因此我们通常都是直接在SQL语句中完成分页,这里就需要借助于rownum伪列或row_number()函数了,本文将分别展示使用...

Oracle:高效插入大量数据经验之谈

来源于:http://www.cnblogs.com/liwenzhen238/p/3610518.html 在很多时候,我们会需要对一个表进行插入大量的数据,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量数据insert的一些经验。   前提:在做insert数据之前,如果是非生产环境,请将表的索引和约束去掉,待insert完成后...

sysbench对oracle进行压力测试

Sysbench压测Oracle 1.安装 1.1.下载sysbench安装包 mysql官网:sysbench下载 github下载:sysbench下载 digoal收藏:sysbench下载 sysbench 0.5以上版本不再支持Oracle,因此如果需要压测Oracle,需要下载sysbench 0.5版本 1.2.安装Oracle客户端 1....

【oracle】cursor 概念,cursor经典例子

1118-01 cursor 概念,经典例子类型1.隐式游标2.显式游标3.ref cursor4.sysref cursor 定义1.隐式游标无需定义,select语句即为隐式游标 2.显式游标cursor <cursor>[(<param_list>)]is <select_statement>;说明:2.1 定义时...

oracle 学习之 PL/SQL

/* PL/SQL : Oracle内部语言 SQLServer的是:TSQL Procedural Language/SQL 是oracle在标准的SQL语言上的扩展,PL/SQL不仅允许嵌入SQL语言,还可以 定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得 更加的强大. 优点:提...

Oracle-数据泵使用

转至:https://www.cnblogs.com/chinas/p/8300955.html#_label0 阅读目录  一、为何选择数据泵方式 二、准备工作 1、目标新库上的操作 2、创建数据备份目录(源库和目标库) 三、导入导出 1、expdp导出 2、impdp导入 四、参数说明 1、expdb (1)关键字及其说明 (2)命令及...