http://www.cnoug.org/viewthread.php?tid=17870
解决方案 »
- 怎么才能监测到数据被删除了。
- 求助Oracle导出错误(无法识别字符集名称)
- 为什么我的PL/SQL Developer连不上我的本地Oracle数据库?
- 关于Oracle触发器的问题
- 有懂这个问题的人近来帮忙!!!!
- Oracle双机热备时出现的问题:Ora-01033
- 如何从一个ORACLE数据库中将方案导入到另一个ORACLE数据库中
- 必须在使用 PL/SQL 之前创建 DBMS_STANDARD?
- 我现在想从数据库中查出前10条记录,MS-SQL中的Top在Oracle中用不成,请问Oracle是用什么来实现的?<在线等待>给分...
- 请问一个简单的问题
- oracle定时作业?!
- 请问比对由两个Select产生的表中字段是否有不同的纪录?
EXEC ORACLE OPTION (RELEASE_CURSOR=YES); sprintf((char *)pcSQL.arr,"%s","SELECT nvl(ID,-1) FROM TABLE1 ");
pcSQL.len = strlen((char *)pcSQL.arr);
EXEC SQL WHENEVER SQLERROR GOTO NO_FOUND;
EXEC SQL WHENEVER NOT FOUND GOTO NO_FOUND;
EXEC SQL PREPARE S FROM :pcSQL;
EXEC SQL DECLARE t_cur CURSOR FOR S;
EXEC SQL OPEN t_cur;
for(;;)
{
EXEC SQL FETCH t_cur INTO :lId;//此句占用一个cursor,个数不增加
EXEC SQL WHENEVER SQLERROR DO sql_msg((char*)"Error When Select number .");
EXEC SQL SELECT COUNT(*) INTO :number FROM TABLE2 WHERE ID=:lId;
for(int i=1;i<=number;i++)
{
number1=i;
EXEC SQL SELECT CODE INTO :Code FROM TABLE3 WHERE ID=:lId AND INDEX=:number1;
//此句占用cursor,而且占用的数量会增加
EXEC SQL SELECT COUNT(*) INTO :num FROM table4 WHERE CODE=:vcCityCode;
if(i==1&&num==1)
{
break;
}
if(i==1&&num==0)
{
continue;
}
if(i!=1&&num==0)
{
continue;
}
if(i!=1&&num==1)
{
EXEC SQL PREPARE V FROM :pcSQL1;
EXEC SQL DECLARE v_cur CURSOR FOR V;
EXEC SQL OPEN v_cur;
for(;;)
{
fetch into *** ;//一些操作
}
NO_FOUND1:
EXEC SQL CLOSE v_cur;
}
break;
}
}
NO_FOUND:
EXEC SQL CLOSE t_cur;