PROCEDURE UP_STUDENT_GetModel
AS
cursor c_stu is SELECT * FROM STUDENT;
stu1 STUDENT%rowtype;
BEGIN
open c_stu;
Loop
fetch c_stu into stu1;
dbms_output.put_line(stu1.numid||'good');
exit when c_stu%notfound;
end loop;
dbms_output.put_line(c_stu%rowcount);
close c_stu;
END;打印结果:1good
10000good
10001good
10031good
10029good
10030good
10032good
10033good
12good
10034good
10035good
10036good
222good
222good
13 游标的行数可以看到最后一行记录被打印了两次,是怎么回事啊?
AS
cursor c_stu is SELECT * FROM STUDENT;
stu1 STUDENT%rowtype;
BEGIN
open c_stu;
Loop
fetch c_stu into stu1;
dbms_output.put_line(stu1.numid||'good');
exit when c_stu%notfound;
end loop;
dbms_output.put_line(c_stu%rowcount);
close c_stu;
END;打印结果:1good
10000good
10001good
10031good
10029good
10030good
10032good
10033good
12good
10034good
10035good
10036good
222good
222good
13 游标的行数可以看到最后一行记录被打印了两次,是怎么回事啊?
exit when c_stu%notfound;
调换下位置...
fetch c_stu into stu1;
exit when c_stu%notfound;
dbms_output.put_line(stu1.numid||'good');
end loop;中这样就好了
while c_stu%found loop
fetch c_stu into stu1;
end loop;
dbms_output.put_line(c_stu%rowcount);
close c_stu;这样的话取不到游标数据啊,c_stu%rowcount打印出来是0,
cursor c_emp is select * from emp;
r_emp emp%rowtype;
begin
open c_emp;
loop
fetch c_emp into r_emp;
exit when c_emp%notfound ;
dbms_output.put_line(r_emp.ename);
end loop;
dbms_output.put_line(c_emp%rowcount);
close c_emp;
end;可以啊,没有问题的,...