1

並列クエリ サーバーからエラーが返されたときに、PL/SQL で例外を処理する方法を理解するのに苦労しています。

次のことを考慮してください。

BEGIN                   

    EXECUTE IMMEDIATE('ALTER <SOME_INDEX> REBUILD PARALLEL(4) );

EXCEPTION

    WHEN OTHERS THEN

    IF SQLCODE = -01652 THEN

        DBMS_OUTPUT.PUT_LINE('Not enought space');

    ELSE

        DBMS_OUTPUT.PUT_LINE('[SQLCODE] -> '||SQLERRM);
        NULL;

    END IF;

END;

表領域がいっぱいであることを通知するために ORA-01652 を処理しようとしています。

ここでの問題は、私がキャッチしないことです:

ORA-01652 unable to extend temp segment by 128 in tablespace <TBS>

むしろ :

ORA-12801: error signaled in parallel query server P001

したがって、ORA-01652 は SQLCODE に格納されません。ここで実際の例外を処理するにはどうすればよいですか?

どうもありがとう。

4

2 に答える 2