首页 > 代码库 > PL/SQL——编程——例外处理

PL/SQL——编程——例外处理

1、系统预定义异常
no_data_found
case_not_found
cursor_already_open

invalid_number

--no_data_found异常
set serveroutput on;
--&NO表示从控制台输入参数
DECLARE
  v_ename varchar2(30);--定义字符串变量
  v_sal NUMBER(7,2);
BEGIN
  SELECT ename,sal INTO v_ename,v_sal FROM emp WHERE empno=&NO;
  dbms_output.put_line(‘雇员名:‘||v_ename||‘工资:‘||v_sal);

EXCEPTION
    WHEN no_data_found THEN
    dbms_output.put_line(‘没有找到该雇员号!‘);
END;
/

 

2、用户自定义异常
create or replace procedure ex_test(spno number) is
--定义一个例外
myexp exception;
begin
  update emp set sal = sal +1000 where empno = spno;
  if sql%notfound then --表示sql语句没有执行更新操作
    raise myexp;--触发异常
  end if;
  exception
  when myexp then
  dbms_output.put_line(‘没有更新任何用户‘);
end;