並列クエリ サーバーからエラーが返されたときに、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 に格納されません。ここで実際の例外を処理するにはどうすればよいですか?
どうもありがとう。