游标

显示游标

显示游标属性

1.%ISOPEN:布尔值,游标是否打开
2.%FOUND:布尔值,FETCH附近,缓存区中是否有数据
3.%NOTFOUND:布尔值,反之
4.%ROWCOUNT:数值型,缓冲区检索的记录数
5.%BULK_ROWCOUNT(i):数值型,FORALL语句第I个元素所影响的行数

显示游标的三种循环

--编写一个PL/SQL块,输出所有员工的姓名。员工号。工资和部门号。

Select * from emp;
Select * from dept;

--简单循环

--简单循环
set serveroutput on
DECLARE
  CURSOR c_emp IS SELECT * FROM emp;
  v_emp emp%ROWTYPE;
BEGIN 
  OPEN c_emp;
  LOOP 
    FETCH c_emp INTO v_emp;
    EXIT WHEN c_emp%NOTFOUND;
    DBMS_OUTPUT.PUT_LINE(v_emp.ename||' '||v_emp.empno||' '||v_emp.sal||' '||v_emp.deptno);
  END LOOP;
  CLOSE c_emp;
END;

--while循环

set serveroutput on
DECLARE
  CURSOR c_emp IS SELECT * FROM emp;
  v_emp emp%ROWTYPE;
BEGIN 
  OPEN c_emp;
  FETCH c_emp INTO v_emp;
  
  WHILE c_emp%FOUND LOOP
    DBMS_OUTPUT.PUT_LINE(v_emp.ename||' '||v_emp.empno||' '||v_emp.sal||' '||v_emp.deptno);
    FETCH c_emp into v_emp;
  END LOOP;
  
  CLOSE c_emp;
END;

--for循环

set serveroutput on
DECLARE
  CURSOR c_emp IS SELECT * FROM emp;
BEGIN 

  FOR i IN c_emp LOOP
  DBMS_OUTPUT.PUT_LINE(i.ename||' '||i.empno||' '||i.sal||' '||i.deptno);
  END LOOP;
  
END;

隐式游标(处理DML语言后)

隐式游标属性

1.SQL%ISOPEN:布尔值,游标是否打开
2.SQL%FOUND:布尔值,FETCH附近,缓存区中是否有数据
3.SQL%NOTFOUND:布尔值,反之
4.SQL%ROWCOUNT:数值型,缓冲区检索的记录数
5.SQL%BULK_ROWCOUNT(i):数值型,FORALL语句第I个元素所影响的行数

你可能感兴趣的:(游标)