对异常的检测
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('无相关匹配的信息');
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('实际返回的行数超出请求的行数');
使用游标从数据库中检索单行数据,进行两个的FETCH,进而判断结果
DECLARE
--创建一个游标
CURSOR emp_cursor IS
SELECT first_name, last_name, email
FROM employees
WHERE employee_id = &emp_id;
first VARCHAR2(20);
last VARCHAR2(25);
email VARCHAR2(25);
BEGIN
--打开游标
OPEN emp_cursor;
FETCH emp_cursor INTO first, last, email;
IF emp_cursor%NOTFOUND THEN
RAISE NO_DATA_FOUND;
ELSE
-- 第二次查找,判断异常
FETCH emp_cursor INTO first, last, email;
IF emp_cursor%FOUND THEN
-- 抛出异常
RAISE TOO_MANY_ROWS;
ELSE
DBMS_OUTPUT.PUT_LINE(
'Employee