type table

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值