我需要存儲過程,我可以運行多個遊標。如何從多個遊標中的Oracle存儲過程返回多行?
循環遍歷每個遊標,然後對每一行進行一些操作。
這樣我就會從這些遊標中得到想要的結果。這樣多個遊標的結果需要與其他一些行結合,然後過濾出來並最終從proc返回這些行。
請注意,每個cusror和其他查詢將具有相同的列。
我不知道如何在oracle中做到這一點。
請幫我一把。
create or replace PROCEDURE test_proc
(
-- some inputs
hc_cursor OUT SYS_REFCURSOR
)
IS
cursor cursor_one is
SELECT * FROM table_one ;
BEGIN
FOR current_row in cursor_one
loop
-- do some modification on each row and return each modified row
end loop;
cursor cursor_two is
SELECT * FROM table_one ;
BEGIN
FOR current_row in cursor_two
loop
-- do some modification on each row and return each modified row
-- append to result from first cursor
end loop;
-- union results from both these cusrors with some another query
-- now filter these records on some criterais
-- return finally
END;
使用遊標結果提取到嵌套表,然後更新與操縱的結果。經過修改嵌套表,使用嵌套表...'SELECT * FROM表打開遊標(nested_table )'...用這種方式你可以返回多個結果光標 –