有这样用的吗?? scroll cursor???下面的语句可以实现你想要的功能吧
exec sql whenever notfound do break;
while(1)
{
exec sql fetch ....;
}
exec sql whenever notfound do break;
while(1)
{
exec sql fetch ....;
}
解决方案 »
- 关于Oracle的时间分段查询
- dbms_output问题
- Oracle Sql Developer 调试程序报错,大家帮帮忙!!
- ORACLE 更新问题
- sos:如何通过dblink访问远端数据库的blob字段?
- 用dba登录可以访问表,用normal登录访问不了,怎么修改权限?
- 存储过程动态拼接sql过长,报ora-00604,ora-01003 如何解决
- [Oracler者众]各位从学习ORC,到中级(或略低于中级)水平经历了哪些书,现在外面关于ORC 8i的书好少。
- 面試問題
- 求救各位Oracle高手!!
- 非归档方式数据恢复问题,在线等候
- 谁做过oracle的advance queue啊???
SELECT * FROM auths
WHERE author_code=:author_code
FOR UPDATE OF salary;
/* 打开游标auths_cursor */
EXEC SQL OPEN auths_cursor;
/* 未检索到数据时退出循环 */
EXEC SQL WHENEVER NOT FOUND DO break;
while(1)
{
/* 推进游标 */
EXEC SQL FETCH auths_cursor
INTO :auths_record:auths_record_ind;
printf("\n作家姓名:\t%s\n",auths_record.name);
printf("作家工资:\t%8.2f\n",auths_record.salary);
printf("\n是否要修改作家工资(Y/N):");
scanf("%c",&modify);
fflush(stdin);
if((modify == 'Y') || (modify == 'y'))
{
printf("\n输入工资:");
scanf("%f",&salary);
fflush(stdin);
/* 更新作家工资 */
EXEC SQL UPDATE auths SET salary=:salary
WHERE CURRENT OF auths_cursor;
}
}
/* 关闭游标auths_cursor */
EXEC SQL CLOSE auths_cursor;