type table

来源:互联网 发布:复杂网络中的度 编辑:程序博客网 时间:2024/06/08 14:33
DECLARE  CURSOR emp_cur IS    SELECT empno,           ename,           hiredate      FROM scott.emp;  TYPE emp_rec_type IS RECORD(    empno    scott.emp.empno%TYPE,    ename    scott.emp.ename%TYPE,    hiredate scott.emp.hiredate%TYPE);  TYPE nested_emp_type IS TABLE OF emp_rec_type; -->定义了基于记录的嵌套表    emp_tab   nested_emp_type; -->定义集合变量,此时未初始化    v_limit   PLS_INTEGER := 5; -->定义了一个变量来作为limit的值    v_counter PLS_INTEGER := 0;BEGIN  OPEN emp_cur;  LOOP    FETCH emp_cur BULK COLLECT      INTO emp_tab -->fetch时使用了BULK COLLECT子句      LIMIT v_limit; -->使用limit子句限制提取数据量        EXIT WHEN emp_tab.COUNT = 0; -->注意此时游标退出使用了emp_tab.COUNT,而不是emp_cur%notfound      v_counter := v_counter + 1; -->记录使用LIMIT之后fetch的次数        FOR i IN emp_tab.FIRST .. emp_tab.LAST LOOP      DBMS_OUTPUT.put_line('Current record is ' || emp_tab(i)                           .empno || CHR(9) || emp_tab(i)                           .ename || CHR(9) || emp_tab(i).hiredate);    END LOOP;  END LOOP;  CLOSE emp_cur;  DBMS_OUTPUT.put_line('The v_counter is ' || v_counter);END;


0 0
原创粉丝点击