Oracle中游标返回多条数据的情况

 DECLARE
    -- 定义类型.
    TYPE test_type IS TABLE OF test_main%ROWTYPE;
    test_data test_type;
    -- 定义游标.
    CURSOR c_test_main IS
      SELECT id, value FROM test_main;
  BEGIN
    -- 打开游标.
    OPEN c_test_main;
    -- 开始循环
    LOOP
      -- 填充数据 批量填充,每次读取2条.
      FETCH c_test_main
        BULK COLLECT INTO test_data LIMIT 2;
  
      -- 调试输出.
      FOR i IN 1..test_data.count
      LOOP
        dbms_output.put_line(test_data(i).value);
      END LOOP;
  
      -- 当没有数据的时候,退出。
      EXIT WHEN c_test_main%NOTFOUND;
      
    END LOOP;
    -- 关闭游标.
    CLOSE c_test_main;
  END;

 

posted @ 2016-07-26 15:54  公众号java-codestack  阅读(824)  评论(0编辑  收藏  举报