end
from Reports
where Cno=@Cno) A
group by 成绩级别
close Cur_cursor
open Cur_cursor
fetch Cur_cursor into @Cno
end
把中间的
close Cur_cursor
open Cur_cursor
去掉
因为你没有提交更新。
应该这样写:
declare
cursor cursor1 is select from emp;
firstly number;
secondly number;
begin
for i in cursor1
loop
firstly:=isal;
if isal<1000 then
update emp set sal=sal+500 where sal=isal;
secondly:=isal+500;
elsif isal<=4000 and isal>=1000 then
update emp set sal=sal+100 where sal=isal;
secondly:=isal+100;
end if;
dbms_outputput_line('员工名:'||iename||'原工资:'||firstly||'目前工资:'||secondly);
end loop;
commit;
end;
DECLARE @i int
SET @i= 0
UPDATE SET b = @i,@i=@i+1
如果是按插入的顺序来重新排的话。这样最快。如果你的表中有时间字段。可以按这个字段来排序,不过就要用游标了。
以上就是关于数据库 存储过程 游标的问题全部的内容,包括:数据库 存储过程 游标的问题、oracle数据库的游标使用问题、sql server数据库中用游标进行更新等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)