通过 运行 动态查询插入 BULK COLLECT

Insert into BULK COLLECT by running a dynamic query

我想从 运行 插入一个动态查询到 table。我怎样才能实现它。以下是我正在尝试的。

VARIABLE a REFCURSOR;

DECLARE
 PROCEDURE Pr_Get_VARIANCE_REPORT (p_billing_system_id   IN  NUMBER ,
                                        p_Sorting IN Varchar2,
                                    po_Cur_Out    OUT   SYS_REFCURSOR)
  IS
       v_query1 varchar2(3000);


v_query1 := 'Select Plan_No, Plan_name from TB_BISBILL 
             where Billing_System_ID = p_billing_system_id ORDER BY '
             || p_Sorting ;

SELECT PLAN_NO, Plan_name 
 bulk collect into  l_invoices 
from (I need to insert by executing the v_query1).

我该怎么做。

在这里,由于排序是由用户提供的,所以<我必须按用户提供的任何列名进行排序。

你可以简单地写:

execute immediate v_query1 bulk collect into l_invoices;