在PL/SQL中,可以使用BEGIN ... EXCEPTION ... END
塊進行異常處理。這個塊允許你捕獲和處理可能在代碼塊中發生的異常。以下是一個簡單的示例,展示了如何在PL/SQL中進行異常處理:
DECLARE
-- 聲明變量
v_number NUMBER := 10;
v_result NUMBER;
BEGIN
-- 嘗試執行可能引發異常的代碼
v_result := v_number / 0;
EXCEPTION
-- 當異常發生時,執行此處的代碼
WHEN OTHERS THEN
-- 使用SQLERRM獲取異常信息
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
-- 根據異常類型進行相應的處理
IF SQLCODE = -847 THEN
DBMS_OUTPUT.PUT_LINE('Error: Division by zero');
ELSE
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLCODE || ' - ' || SQLERRM);
END IF;
END;
/
在這個示例中,我們嘗試將一個數除以零,這會引發一個ORA-01476
異常(除數為零)。我們使用WHEN OTHERS THEN
捕獲所有其他類型的異常,并使用SQLERRM
函數獲取異常信息。然后,我們根據異常類型進行相應的處理。