程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> PL/SQL異常處理

PL/SQL異常處理

編輯:Oracle數據庫基礎

在設計PL/SQL程序時,經常會發生這樣或那樣的錯誤,異常處理就是針對錯誤進行處理的程序段,Oracle 9i中的異常處理分為系統預定義異常處理和自定義異常處理兩部分。

系統預定義異常處理

系統預定義異常處理是針對PL/SQL程序編譯、執行過程中發生的問題進行處理的程序。 下列代碼為正確代碼,在【SQLPlus Worksheet】中能夠順利執行。

―――――――――――――――――――――――――――――――――――――
set serveroutput on
declare
tempno integer:=90;
begin
tempno:=tempno+1;
end;
―――――――――――――――――――――――――――――――――――――

【配套程序位置】:第9章 correctplsql.sql。

下列代碼為錯誤代碼,在【SQLPlus Worksheet】中的執行結果如圖9.56所示。

【配套程序位置】:第9章 wrongplsql.sql。

由於代碼有錯誤,因此將激活系統預定義的異常處理,並得出如下提示信息。

Oracle 9i提供了很多異常處理,讀者可以嘗試修改可以正常運行的程序,並執行修改後的程序,就可以發現調用了哪些異常處理,下面著重介紹如何自定義異常處理。

自定義異常處理

1.定義異常處理

定義異常處理的語法如下:

declare

異常名 exception;

2.觸發異常處理

觸發異常處理的語法如下:

raise 異常名;

3.處理異常

觸發異常處理後,可以定義異常處理部分,語法如下:

Exception

When 異常名1 then

異常處理語句段1;

When 異常名2 then

異常處理語句段2;

4.實例

下面的PL/SQL程序包含了完整的異常處理定義、觸發、處理的過程。定義名為salaryerror的異常,在scott.emp數據表中查找empno=7566的記錄,將其值放入變量tempsal中,判斷tempsal值若不在900和2600之間,說明該員工的薪水有問題,將激活異常處理,提示信息。

在【SQLPlus Worksheet】中執行下列PL/SQL代碼,執行結果如圖9.57所示。

【配套程序位置】:第9章 exceptiondefine.sql。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved