我有几次执行另一个存储过程的存储过程.我需要联合并返回数据,这是我在执行第二个程序后得到的.
我能以某种方式将来自多个游标的数??据合并到另一个游标中吗?没有临时表或类似表的数据类型是可能的吗?
编辑:union的游标数实际上是n(其中n是1,2,3等,由另??一个程序检测).
例如:
CREATE OR REPLACE PROCEDURE proc_data ( data_out OUT SYS_REFCURSOR ) IS BEGIN OPEN data_out FOR SELECT '1' NUM FROM dual; END; / CREATE OR REPLACE PROCEDURE proc_result ( data_out OUT SYS_REFCURSOR ) IS data1 SYS_REFCURSOR; data2 SYS_REFCURSOR; BEGIN PROC_DATA(data1); PROC_DATA(data2); -- select data1 and data2 into data_out - how? END; / SET SERVEROUTPUT ON DECLARE data_out SYS_REFCURSOR; temp_row VARCHAR2(10); BEGIN PROC_RESULT(data_out); LOOP FETCH data_out INTO temp_row; EXIT WHEN data_out%NOTFOUND; DBMS_OUTPUT.PUT_LINE(temp_row); END LOOP; CLOSE data_out; END; /
预期产量:
--- 1 1
解决方法
不,这是不可能的.在AskTom有关于这个问题的
a nice discussion,看看可能有一些解决方法可以帮助你.