LOOP
v_count := 0;
open sal_cur(r1_info.deptno);
LOOP
FETCH sal_cur INTO emp_info;
v_old_sal:=emp_info.sal;
EXIT WHEN sal_cur%NOTFOUND;
if v_old_sal = v_new_sal then
v_count:=v_count;
v_new_sal:=v_old_sal;
dbms_output.put_line(to_char(v_new_sal));
else
v_count:=v_count+1;
v_new_sal:=v_old_sal;
dbms_output.put_line(to_char(v_new_sal));
end if;
dbms_output.put_line(emp_info.ename
||'薪水是'||to_char(emp_info.sal)
||'排名:'||to_char(v_count));
END LOOP;
END LOOP;
open sal_cur(r1_info.deptno); 这个游标放在了循环中,把它放在loop外面。
你的这个写法FOR r1_info IN deptno_cur 可以这样用吗?
v_count := 0;
open sal_cur(r1_info.deptno);
LOOP
FETCH sal_cur INTO emp_info;
v_old_sal:=emp_info.sal;
EXIT WHEN sal_cur%NOTFOUND;
if v_old_sal = v_new_sal then
v_count:=v_count;
v_new_sal:=v_old_sal;
dbms_output.put_line(to_char(v_new_sal));
else
v_count:=v_count+1;
v_new_sal:=v_old_sal;
dbms_output.put_line(to_char(v_new_sal));
end if;
dbms_output.put_line(emp_info.ename
||'薪水是'||to_char(emp_info.sal)
||'排名:'||to_char(v_count));
END LOOP;
END LOOP;
open sal_cur(r1_info.deptno); 这个游标放在了循环中,把它放在loop外面。
你的这个写法FOR r1_info IN deptno_cur 可以这样用吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货