我必須多次調用一個過程才能填充表。問題是程序在每次調用之後會截斷表格。我必須爲每次運行存儲表格的結果。我查閱了文檔,並不知道如何在pl/sql中執行此操作。任何想法都非常感謝。使用pl/sql存儲表中的行
非常感謝!
我必須多次調用一個過程才能填充表。問題是程序在每次調用之後會截斷表格。我必須爲每次運行存儲表格的結果。我查閱了文檔,並不知道如何在pl/sql中執行此操作。任何想法都非常感謝。使用pl/sql存儲表中的行
非常感謝!
程序的每次通話後,得出的數據複製到另一個表具有相同的列:
INSERT INTO TABLE_B
SELECT *
FROM TABLE_A;
當您完成呼叫的過程中,所有的數據是TABLE_B
。
在PL/SQL,它看起來像這樣:
BEGIN
FOR I IN 1..10 LOOP
PROC(I);
INSERT INTO TABLE_B
SELECT *
FROM TABLE_A;
END LOOP;
PROCESS_ALL_DATA();
END;
更新:
如果您沒有權限創建表,那麼你可以存儲在PL部分結果/ SQL表(在內存中):
DECLARE
TYPE T_T_A IS TABLE OF A%TYPE;
L_IMED_TABLE T_T_A;
BEGIN
FOR I IN 1..10 LOOP
PROC(I);
SELECT * BULK COLLECT INTO L_IMED_TABLE
FROM A;
END LOOP;
FOR I IN L_IMED_TABLE.FIRST .. L_IMED_TABLE.LAST LOOP
PROCESS_RESULT_ROW(L_IMED_TABLE(I));
END LOOP;
END;
您可以在插入到主表時觸發觸發器並將相同的數據填充到存檔表,您可以在其中添加更多列,如時間戳和呼叫計數器等。
你能澄清你正在尋找多一點,也許包括一個例子? – Craig