将批量收集数据复制到refcursor

时间:2017-06-19 15:37:40

标签: oracle oracle11g toad

我正在使用批量收集,并希望将数据复制到refcursor,以便我可以在过程中返回数据。以下是我的尝试

 PROCEDURE Pr_Get_Perf_Div_By_Paydate (
                                         p_Cur_Out        OUT SYS_REFCURSOR
                                     )
       IS
 type ab_rec is record (
       Plan_No number
       , Draft_Invoice_No varchar(20)
    );
 type ab_nt is table of ab_rec;
   l_invoices ab_nt;

BEGIN
SELECT Plan_No,Draft_Invoice_No
        bulk collect into  l_invoices        
  FROM tb_Invoice

Open p_Cur_Out for
   Select * from TABLE (CAST (l_invoices AS ty_pa_output_tbl_t));

END;

Select语句出错。我不确定那里出了什么问题。请指教?

1 个答案:

答案 0 :(得分:0)

我没有使用Bulk Collect,而是使用了temp Global Table,它起作用了。我不知道为什么我无法将数据从Bulk Collect传输到Cursor。