plsql 如何使用异常处理
时间: 2024-09-15 16:07:10 浏览: 11
在PL/SQL中,异常处理是通过`BEGIN`, `EXCEPTION`和`END`结构来实现的。下面是一个简单的示例,展示了如何捕获和处理可能发生的错误[^1]:
```sql
DECLARE
v_deptno NUMBER(4) := &v_deptno; -- 假设这是一个变量,可能引发错误
v_dname VARCHAR2(5);
v_loc VARCHAR2(10);
BEGIN
-- 查询部门信息
SELECT dname, loc
INTO v_dname, v_loc
FROM dept
WHERE deptno = v_deptno;
-- 输出结果
DBMS_OUTPUT.PUT_LINE(v_dname || ',' || v_loc);
EXCEPTION
-- 当发生特定类型的错误时(如无效的deptno)
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No data found for the given department.');
-- 当发生其他未预期错误时,使用WHEN OTHERS处理
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error occurred: ' || SQLCODE || ' - ' || SQLERRM); -- SQLERRM返回错误消息
END;
```
在这个例子中,如果`SELECT`语句找不到匹配的`deptno`,会抛出`NO_DATA_FOUND`异常,我们捕获并给出了相应的提示。而`WHEN OTHERS`则用于处理所有未明确指定的其他异常。