ORALCE 显式与隐式游标属性

/*------  显式游标
游标的属性   返回值类型   意    义   
%ROWCOUNT   整型  获得FETCH语句返回的数据行数   
%FOUND  布尔型 最近的FETCH语句返回一行数据则为真,否则为假   
%NOTFOUND   布尔型 与%FOUND属性返回值相反   
%ISOPEN 布尔型 游标已经打开时值为真,否则为假  
--------*/
DECLARE
  V_ENAME VARCHAR2(10);
  CURSOR EMP_CURSOR IS
    SELECT ENAME FROM EMP;
BEGIN
  OPEN EMP_CURSOR;
  IF EMP_CURSOR%ISOPEN THEN
    LOOP
      FETCH EMP_CURSOR
        INTO V_ENAME;
      EXIT WHEN EMP_CURSOR%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE(TO_CHAR(EMP_CURSOR%ROWCOUNT) || '-' || V_ENAME);
    END LOOP;
  ELSE
    DBMS_OUTPUT.PUT_LINE('用户信息:游标没有打开!');
  END IF;
  CLOSE EMP_CURSOR;
END;

/*------  隐式游标
隐式游标的属性?返回值类型???意????义 ??
SQL%ROWCOUNT????整型??代表DML语句成功执行的数据行数 ??
SQL%FOUND???布尔型?值为TRUE代表插入、删除、更新或单行查询操作成功 ??
SQL%NOTFOUND????布尔型?与SQL%FOUND属性返回值相反 ??
SQL%ISOPEN??布尔型?DML执行过程中为真,结束后为假??  
--------*/


BEGIN
    UPDATE EMP SET SAL = SAL + 100 WHERE EMPNO = 1234;
  IF SQL%FOUND THEN
    DBMS_OUTPUT.PUT_LINE('成功修改雇员工资!');
    COMMIT;
  ELSE
    DBMS_OUTPUT.PUT_LINE('修改雇员工资失败!');
  END IF;
END;

猜你喜欢

转载自blog.csdn.net/liiushuwang/article/details/83350334