出现Oracle ORA 24343的一种情况
对于Oracle ORA-24343这种错误,Oracle的官方解释是:
Error Message: ORA-24343 user defined callback error
Error Cause:
The only valid return value for a user defined callback function is OCI_ CONTINUE. Any other value will cause this error.
Action:
Make sure that OCI_CONTINUE is returned from the user-defined callback function.
最近用Pro*C编写访问Oracle的数据库的程序,遇到了这个错误,最后发现导致这个错误的一个原因是
“宿主变量”的长度分配不够。
如:
EXEC SQL BEGIN DECLARE SECTION;
char completion_time[30];
char completion_time2[30];
char SQLSTR[500];
EXEC SQL END DECLARE SECTION;
string SQL = "select to_char(SWITCH.scan_start_time,'YYYY-MM-DD HH24:MI:SS'), (SWITCH.innho_att - SWITCH.innho_fail) / SWITCH.innho_att, (SWITCH.extin_att + SWITCH.extou_att - SWITCH.extin_fail - SWITCH.extou_fail) / (SWITCH.extin_att + SWITCH.extou_att) from u_msc_h_ho@pmdb SWITCH where SWITCH.mscname = :equipe_name and (SWITCH.scan_start_time between to_date(:completion_time, 'YYYY-MM-DD HH24:MI:SS') and to_date(:completion_time, 'YYYY-MM-DD HH24:MI:SS') + 13) and SWITCH.innho_att is not null and SWITCH.innho_fail is not null and SWITCH.extin_att is not null and SWITCH.extin_fail is not null and SWITCH.extou_att is not null and SWITCH.extou_fail is not null and SWITCH.extin_att + SWITCH.extou_att != 0 and SWITCH.innho_att != 0 and to_char(SWITCH.scan_start_time, 'HH24') in ('08','09','10','11','18','19','20','21') ";
strcpy(SQLSTR, SQL.c_str());
EXEC SQL PREPARE SQLCursor from :SQLSTR;
EXEC SQL DECLARE GetSwitchSceneDataCursor CURSOR for SQLCursor;
EXEC SQL OPEN GetSwitchSceneDataCursor using :equipe_name, :com
相关文档:
数据文件
每一个Oracle数据库都有一个或多个物理的数据文件,数据库信息(结构,数据)都保存在这些数据文件中,并且这些文件也只Oracle才能够解释与管理这些存储.Oracle数据文件具有以下一些特性:
1.一个数据文件仅仅关联一个数据库,数据文件与数据库之间对应关系是一对一关系,当然反过数据库与数据文件是一对多关系. ......
今天继续试验十分钟可以干什么,选取了对Oracle索引的介绍,结果如下:
从google上寻找资料:1:15秒。
阅读概述部分:3:15秒。
Oracle的索引主要包含两类:BTree和位图索引。默认情况下大多使用Btree索引,该索引就是通常所见 唯一索引、聚簇索引等等,Btree用在OLTP,加快查询速度。位图索引是Oracle的比较引人注目的地 ......
CLOB:用来存储单字节的字符数据
NCLOB:用来存储多字节的字符数据
BLOB:用于存储二进制数据
BFILE:存储在文件中的二进制数据,这个文件中的数据只能被只读访。但该文件不包含在数据库内。
CLOB,NCLOB,BLOB都是内部的LOB类型,最长4G,没有LONG只能有一列的限制。
select lpad(to_number(nvl(max(classid),to_number( ......
经过数天不懈的努力,LINUX历尽三次重装,ORACLE重装N次终于在LiNUXAS4 update6 x86_64 下安装好ORACLE10g R 2 (64位) 了。
下面把安装过程和大家分享一下,以免更多人像我一样花费大量的时间在莫名其妙的问题上。
首先要说明的是,官方也有相应的文档安装但是实际过程中,会有一些问题需要解决。
本文档参照了相关说 ......
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析。那么这两种解析有何不同之处呢?它们又分别是如何进行解析呢?Oracle内部解析的步骤又是如何进行的呢?下面我们就这些话题进行共同探讨。 在Oracle中存在两种类型的SQL语句,一类为DDL语句,他们是从来不会共享使用的,也就是每次执 ......