【正文】
e emp set sal=1200 where empno=1234。 if SQL%NOTFOUND then insert into Errors(empno,sal) values(1234,1200)。 end if。 End。 數(shù)據(jù)庫中沒有編碼為 1234的職工 《 PL/SQL程序設(shè)計》 26 例外處理 (EXCEPTION) 在 PL/SQL中 ,警告信息、出錯信息、或返回信息統(tǒng)稱為例外(Exception)。 有兩中類型的例外。 Oracle預定義的例外 : 是由 PL/SQL運行過程中,系統(tǒng)自動產(chǎn)生的信息 。 用戶定義例外 : 是用戶根據(jù)需要,自己定義使用的例外,執(zhí)行時 由用戶自己引起。 ?預定義的例外 CURSOR_ALREADY_OPEN VALUE_ERROR NO_DATA_FOUND INVALID_NUMBER TOO_MANY_ROWS ZERO_DIVIDE INVALID_CURSOR ?用戶自定義例外 用戶定義的例外必須在 DECLARE段中說明,在 Begin段中用 RAISE引起,在 EXCEPTION段中使用。 《 PL/SQL程序設(shè)計》 27 例外處理 (EXCEPTION) 用戶定義例外的說明:定義名為 out_of_range 的例外 Declare out_of_range EXCEPTION。 ?例外的使用 Declare Begin Exception When NO_DATA_FOUND THEN … When CURSOR_ALREADY_OPEN THEN When TOO_MANY_ROWS THEN ... … When OTHERS THEN ... END。 例 外 段 在 Exception段中 對返回信息一一作出響應(yīng) 《 PL/SQL程序設(shè)計》 28 例外處理 (EXCEPTION) ?用戶自定義例外的使用 Declare out_of_range EXCEPTION。 Begin … if v_sal MAX_SAL then RAISE out_of_range。 end if。 … Exception When NO_DATA_FOUND THEN … When CURSOR_ALREADY_OPEN THEN When TOO_MANY_ROWS THEN ... When out_of_range THEN ... END。 例 外 段 在 Declare段定義 在 Begin段中引起 在 Exception段中使用