当并行查询服务器返回错误时,我很难弄清楚如何处理 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 中。我怎么能在这里处理真正的异常?
非常感谢。