在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
函数获取异常信息。然后,我们根据异常类型进行相应的处理。