pro*c滚动游标的使用问题,请高手回答,谢谢! 有这样用的吗?? scroll cursor???下面的语句可以实现你想要的功能吧exec sql whenever notfound do break;while(1){ exec sql fetch ....;} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 EXEC SQL DECLARE auths_cursor CURSOR FOR 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; 这个也是正确答案? ORA-0146 CTAS的问题 求:在一个表中查找A列最大值,B列最小值,并只返回一条记录的最优方法 oracle存储过程问题 orcale的存储过程能不能像sql存储过程一样,用来做分页 ?查询某一个用户的所用的索引 delete语句 优化问题:10000条记录要4个小时? 紧急问题: 特急问题:高手帮忙呀!请看触发输出!!!! 非归档方式数据恢复问题,在线等候 谁做过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;