包體中,兩個相同結構的游標如何進行合并,及再查詢之類的?
如下兩個包體,包體P_T002用不同的引數呼叫 P_T001,
回傳的是兩個完全相同結構的游標,(實際使用時,P_T001中的查詢可能很復雜)
我要在P_T002中將兩次回傳的游標結果合并輸出,要如何操作?
---------------------------------------------------------------------------------------------------------------------
PROCEDURE P_t001(P_IP IN varchar2,
P_CUR OUT V_CUR) Is
Begin
open p_cur for select p_ip from dual ;
end P_t001 ;
PROCEDURE P_t002(P_IP IN varchar2,
P_CUR OUT V_CUR) Is
v_cur1 V_CUR ;
v_cur2 V_CUR ;
Begin
P_t001('11',v_cur1);
P_t001('22',v_cur2);
p_cur := v_cur2 ;
-----問題點1
end P_t002 ;
---------------------------------------------------------------------------------------------------------------------
問題點1 ,使用 p_cur := v_cur2 的方式,可以將 某個游標完全賦值給 p_t002的游標,
但是如何把 v_cur1和v_cur2 二者合并呢??
另外問個,如果要在P_T002中 再對 傳回的 v_cur1 的結果 進行二次查詢,要如何進行??
uj5u.com熱心網友回復:
有人知道么、uj5u.com熱心網友回復:
不用合并吧,定義一個嵌套表或者索引表,將2個游標的值傳給同一個陣列uj5u.com熱心網友回復:
你這是用LOOP把游標一行行打開傳值進去是么???感覺游標一行行打開賦值很慢的,還有沒有別的辦法的??
uj5u.com熱心網友回復:
放到臨時表中,再去遍歷這個臨時表;uj5u.com熱心網友回復:
把游標的查詢一次性插入到臨時表,這個思路不錯。。。
不過這個一次性插入要怎么做??
也是用LOOP 一行行打開游標,一行行插入么???這和上面的方法差不多啊。。效率很慢的啊。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/113604.html
標籤:開發
上一篇:這個陳述句效率太低,各位大神有更好的建議嗎?取得一個日期區間內最大日期的值和最小日期的值,用于相減
下一篇:下載jids jdbc driver 輸入的oracle web賬戶密碼錯誤,但是我的賬戶密碼是剛注冊的并能成功登陸oracle官網
