0

他の 2 つのカーソルを呼び出した後に埋められたテーブルを使用するカーソルを作成しようとすると、問題が発生します。Oracle で ORA-00942 例外が発生しました - テーブルまたはビューが存在しません。テーブルを初期化しようとしましたが、何も変わりませんでした...

アイデアは、テーブルから買値 (tsc.achvte='A の場合は tsc.prxtar) と売値 (tsc.achvte='V' の場合は tsc.prxtar) を回復し、結果を 2 つの異なるテーブルに格納し、終わり。

誰かアドバイスはありますか?たぶん、より簡単で効率的な方法でしょうか?

前もって感謝します!

DECLARE

CURSOR cursorA IS
    SELECT pro.codpro as CodeProduit,
            pro.nompro as NomProduit,
            tsc.prxtar as PrixAchat
    FROM pro
    INNER JOIN tsc ON pro.codpro=tsc.codpro
    WHERE tsc.achvte='A';
TYPE tableA IS TABLE OF cursorA%ROWTYPE;
tabA tableA:=tableA();

CURSOR cursorV IS
    SELECT pro.codpro as CodeProduit,
            pro.nompro as NomProduit,
            tsc.prxtar as PrixVente
    FROM pro
    INNER JOIN tsc ON pro.codpro=tsc.codpro
    WHERE tsc.achvte='V';
TYPE tableV IS TABLE OF cursorV%ROWTYPE;
tabV tableV:=tableV();

CURSOR cursorAV IS
    SELECT tabA.CodeProduit,
            tabA.NomProduit,
            tabA.PrixAchat,
            tabV.PrixVente
    FROM tabA
    INNER JOIN tabV ON tabA.CodeProduit=tabV.CodeProduit;
                   -- AND tabA.NomProduit=tabB.NomProduit;
TYPE tableAV IS TABLE OF cursorAV%ROWTYPE;
tableauDesPrix tableAV:=tableAV();

BEGIN
OPEN cursorA;
FETCH cursorA BULK COLLECT INTO tabA;
CLOSE cursorA;

OPEN cursorV;
FETCH cursorV BULK COLLECT INTO tabV;
CLOSE cursorV;

OPEN cursorAV;
FETCH cursorAV BULK COLLECT INTO tableauDesPrix;
CLOSE cursorAV;

END;
4

2 に答える 2