PL/SQL異常處理

來源:互聯網
上載者:User


 
    在設計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。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。