我希望能够执行几个独立的存储过程,这些存储过程可以包含NUMBER (IN)
,VARCHAR (IN)
和CURSOR (OUT)
类型的参数。
.NET应用程序随后将CURSOR输出的结果用于生成JSON结构,作为对HTTP请求的API响应。预期会达到亚秒级的性能,除了明显的性能外,我还在探索优化领域。
dbms_scheduler
方法已经尝试过,但是不清楚如何使用CURSOR类型。
经过以下步骤,没有确定的结果进行了实验。
/* Steps tried.
1. dbms_scheduler.create_program
2. dbms_scheduler.define_program_argument
3. dbms_scheduler.create_job
4. dbms_scheduler.set_job_argument_value
*/
-- Parent proc
PROCEDURE get_all_customer_details_prc (
i_customer_id IN customer.pecustomer_id%TYPE,
i_year IN customer_instance.year_value%TYPE,
oc_customer_details_data OUT SYS_REFCURSOR,
oc_customer_purchase_data OUT SYS_REFCURSOR
)
BEGIN
-- Can the two procedures at the same time, so that the
-- get_customer_details_prc returns when the longest taking proc finalises?
-- Child proc 1
PROCEDURE get_customer_details_prc (
i_customer_id,
oc_customer_details_data
);
-- Child proc 2
PROCEDURE get_customer_purchase_details_prc (
i_customer_id,
i_year,
oc_customer_purchase_data
);
END;