如何判断 ROWTYPE类型的值为空?

解决方案 »

  1.   

    DECLARE
      CURSOR MY_CURSOR IS
        SELECT SYSDATE AS MY_DATE
          FROM DUAL
        UNION
        SELECT NULL
          FROM DUAL;
      MY_REC MY_CURSOR%ROWTYPE;
    BEGIN
      OPEN MY_CURSOR;
      LOOP
        FETCH MY_CURSOR
          INTO MY_REC;
        EXIT WHEN MY_CURSOR%NOTFOUND;
        IF MY_REC.MY_DATE IS NULL     -----------> 判断空值
        THEN
          DBMS_OUTPUT.PUT_LINE('IS NULL!!!');
        END IF;
      END LOOP;
      CLOSE MY_CURSOR;
    END;
      

  2.   

    如果  IF MY_REC IS NULL 
    会报错的
      

  3.   

    ROWTYPE说明此对象为一条记录,那如何判断这条记录为null,就是没有读取到数据,也就是SQL%NOTFOUND.