如题:
DECLARE
  emp_rec emp%ROWTYPE;
  CURSOR c1 IS 
    SELECT deptno, dname, loc FROM dept;
  dept_rec c1%ROWTYPE; 假如c1执行了,如何判断c1的返回结果dept_rec中是否有记录?
dept_rec c1%ROWTYPE。
谢谢。

解决方案 »

  1.   

    在我这里,用这个方法,报错了:PLS-00324,兄台再想个办法吧。
      

  2.   

    这样操作:
    open c1;
      fetch c1 into dept_rec ;
    close c1;
    然后,我要判断dept_rec中是否有记录,能有办法么?
    谢谢。
      

  3.   

    open c1;
      fetch c1 into dept_rec ;
    while c1%found
    loop
    ....
    end loop; 
    close c1; 
      

  4.   

    也就是说,ROWTYPE本身没有提供类似notfound的这种属性来判断记录是否为null,对吧?
    必须自己想办法实现,或者不用rowtype,用自己定义的record,是否?
    谢谢
      

  5.   

    有这个属性,比如你的游标是 C1就用 C1%NOTFOUND 判断。游标一般这么写:    OPEN Cur;
        LOOP
            FETCH Cur INTO Rec;
            EXIT WHEN Cur%NOTFOUND;        -------------------↓
            --你的处理。
            -------------------↑    END LOOP;
      

  6.   

    谢谢回复。
    不过,我的问题是, 就针对一个类型为  “a  表名%rowtype ”的变量a, 是否有办法,或者属性判断 a 中是否有记录;(已经为a通过fetch进行了初始化)。
    像游标的notfound那样的属性。