2011-07-28 15 views
0

プロシージャを複数回呼び出す必要があります。問題は、各呼び出しの後にプロシージャがテーブルを切り捨てることです。私は各実行のためのテーブルの結果を格納する必要があります。私はドキュメントを調べて、pl/sqlでこれを行う方法を知ることができませんでした。どんなアイデアでも大歓迎です。pl/sqlを使用してテーブルの行を格納する

ありがとう!手続きの各呼び出しの後

+0

もう少し探していることを明確にすることはできますか? – Craig

答えて

1

、同じ列を持つ別のテーブルに結果のデータをコピーします。あなたがプロシージャを呼び出す終わったら

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; 
+0

こんにちはコモ、ありがとうございました。テンポラリテーブルを作成する権限が与えられていない場合は、テンポラリテーブルなしで逃げることができます。 – newbie

+0

私の更新を参照してください... – Codo

+0

非常に多くのCodoに感謝!試してみる=) – newbie

0

あなたは、メインテーブルに挿入時にトリガされ、アーカイブに同じデータを移入しますトリガを持つことができますテーブルでは、タイムスタンプやコールカウンターなどの列を追加できます。

関連する問題