2
我已經寫以下Oracle過程批量來獲取數據和在塊處理它。我正在使用有限的批量收集選項來獲取數據。但是在for循環中,我無法檢索ORD_ID。我試圖輸出使用甲骨文PLSQL BULK收集並For循環
DBMS_OUTPUT.put_line(l_orders(indx));
但是,讓編譯錯誤「的論點錯號碼或類型調用‘PUT_LINE’」
create or replace PROCEDURE TESTPROC AS
CURSOR order_id_cur IS SELECT ORD_ID FROM orders ORDER BY ORD_ID ASC;
l_order_id VARCHAR2(100);
TYPE orders_aat IS TABLE OF order_id_cur%ROWTYPE;
l_orders orders_aat;
limit_in NUMBER :=10;
batch_in NUMBER :=0;
BEGIN
OPEN order_id_cur;
LOOP
FETCH order_id_cur
BULK COLLECT INTO l_orders LIMIT limit_in;
DBMS_OUTPUT.put_line('Batch-----'||batch_in);
FOR indx IN 1 .. l_orders.COUNT
LOOP
DBMS_OUTPUT.put_line(indx);
DBMS_OUTPUT.put_line(l_orders(indx));
END LOOP;
EXIT WHEN l_orders.COUNT < limit_in;
batch_in := batch_in+1;
END LOOP;
CLOSE order_id_cur;
END TESTPROC;
如何才能得到裏面的ORD_ID的值ORD_ID for循環。
謝謝你......我以另一種方式嘗試它l_orders.ORD_ID(indx) – Andromeda
不客氣! –
還有一個疑問......是否可以一次獲取所有ORD_ID,而不是使用for循環並遍歷每個循環。基本上我想在'IN'語句中使用所有ord_id ..例如'delete from orders_bckup'(allOrderIds)'ord_id' – Andromeda