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 可以这样用吗?