有沒有什麼辦法在第二次批量收集之後,數據不會覆蓋第一個批量收集。我不想循環迭代。Bulk通過相同的嵌套表兩次收集兩次
DECLARE
TYPE abc IS RECORD (p_id part.p_id%TYPE);
TYPE abc_nt
IS
TABLE OF abc
INDEX BY BINARY_INTEGER;
v_abc_nt abc_nt;
BEGIN
SELECT p_id
BULK COLLECT
INTO v_abc_nt
FROM part
WHERE p_id IN ('E1', 'E2');
SELECT p_id
BULK COLLECT
INTO v_abc_nt
FROM part
WHERE p_id IN ('E3', 'E4');
FOR i IN v_abc_nt.FIRST .. v_abc_nt.LAST
LOOP
DBMS_OUTPUT.put_line (
'p_id is ' || v_abc_nt (i).p_id
);
END LOOP;
END;
OUTPUT:
- P_ID是E3
- P_ID是E4
注:E1和E2存在於部分表。
@Jutin洞:謝謝主席先生 –
我跑相同proc在我的機器上,它給我以下錯誤:'調用'MULTISET中錯誤的數量或類型的參數_UNION_ALL'',請告訴我這是什麼問題 –
@GauravSoni - 你是否改變了你的代碼來使用嵌套表而不是像我建議的那樣使用關聯數組?如果你仍然試圖使用關聯數組,你會得到這個錯誤。 –