我有一個名爲GET_CLIENT_IN_SED(返回sys_refcursor)的函數,它給了我一個id號列表(單列)。現在,在一個過程中,我試圖循環遍歷每個值(一個接一個),並用它來調用第二個過程(它需要一個客戶端ID參數)。Oracle PL/SQL將遊標(從函數)中的每個值逐個分配給另一個遊標
PROCEDURE GET_ORDINARY_CLIENT;
PROCEDURE GET_ORDINARY_CLIENT_BY_SED
(sed_in IN varchar2, client_sed OUT SYS_REFCURSOR)
IS
ordinary_clients sys_refcursor;
BEGIN
ordinary_clients := GET_CLIENT_IN_SED(sed_in);
for item in ordinary_clients loop
client_sed := client_sed + ordinary_clients(i);
end loop;
END;
批量收集是我喜歡使用的另一種有效方法(我發現使用集合比使用遊標更簡單!)。雖然最好不要在數據量非常大時使用,因爲它存儲在變量中而不是迭代器中。 – Dessma
@Dessma您也可以使用批量收集進行迭代。您有限制條款限制數據選擇,您可以迭代所有記錄 – XING