1
在我下面的塊我不能得到執行異常當別人在任何方式。是否有任何語法錯誤?此外,我不能調用exception.Any解決方案內的程序?oracle異常處理時其他
DECLARE
CNT INT;
err_msg VARCHAR2(2000);
BEGIN
SELECT av_isdbcexecuted(1, 'DDL') INTO CNT FROM DUAL;
IF (CNT = 0) THEN
BEGIN
DBMS_OUTPUT.PUT_LINE ('INSIDE IF...');
EXECUTE IMMEDIATE 'call AV_DBCINSERT
(1,''DDL'',''hsolanki'',''Prj1'',''Item1'',''avarne'')';
EXECUTE IMMEDIATE 'CREATE TABLE AV_TEMP (col1 varchar(20))';
EXCEPTION
WHEN OTHERS THEN
--inside exception
err_msg := sqlerrm;
DBMS_OUTPUT.PUT_LINE ('INSIDE exception...' || err_msg);
EXECUTE IMMEDIATE 'call AV_DBCUPDATE (1,err_msg,''Failed'')';
END;
EXECUTE IMMEDIATE 'call AV_DBCUPDATE(1, NULL,''SUCCESS'')';
END IF;
END;
感謝編輯 –
。只需將過程調用不立即執行即可。像AV_DBCINSERT(1,'DDL','hsolanki','Prj1','Item1','avarne');''AV_DBCUPDATE(1,err_msg,'Failed');''和'AV_DBCUPDATE(1,NULL ,'SUCCESS');' –
感謝@KeyurPanchal –