游标简介

DECLARE
  CURSOR cur(no NUMBER) IS
    SELECT ename FROM emp WHERE deptno = no;
  v_name emp.ename%TYPE;
  --集合
  TYPE name_table_type IS TABLE OF emp.ename%TYPE INDEX BY BINARY_INTEGER;
  name_table name_table_type;
  --游标变量
  TYPE emp_cursor_type IS REF CURSOR;
  emp_cursor emp_cursor_type;
BEGIN

  --for循环
  FOR v_record IN cur(10) LOOP
    dbms_output.put_line('--FOR  ' || v_record.ename);
  END LOOP;

  OPEN cur(10); --参数游标
  --普通循环
  LOOP
    FETCH cur
      INTO v_name;
    EXIT WHEN cur%NOTFOUND;
    dbms_output.put_line(v_name);
  END LOOP;
  ----BULK COLLECT
  FETCH cur BULK COLLECT
    INTO name_table;
  FOR i IN 1 .. name_table.count LOOP
    dbms_output.put_line('--2  ' || name_table(i));
    dbms_output.put_line('--2  ' || cur%ROWCOUNT);
  END LOOP;

END;
 

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