打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
pl/sql中使用非预定义例外,以及例外函数RAISE

pl/sql中使用非预定义例外,以及例外函数RAISE_APPLICATION_ERRO的介绍

(2011-12-21 11:45:58)
分类: sql
使用非预定义例外包括三步:首先在定义部分定义例外名,然后在例外和oracle错误之间建立关联,最终在例外处理部分捕捉并处理例外。
定义Oracle错误和例外之间的关系,需要使用伪过程EXCEPTION_INIT,以ORA-02291为例:
DECLARE
  e_integerity EXCEPTION;
  PRAGMA EXCEPTION_INIT(e_integerity,-2291);
BEGIN
  UPDATE emp SET deptno=&dno WHERE empno=&eno;
EXCEPTION WHEN e_integerity then
    dbms_output.put_line('该部门不存在');
END;

输入dno:11
输入empno:7788

例外函数RAISE_APPLICATION_ERRO的介绍:
里外函数包括SQLCODE(去的错误代号),SQLERRM(错误号所对应的错误消息)。
RAISE_APPLICATION_ERROR:只能在子程序中(存储过程、触发器、函数、包)使用,不能在匿名块中使用。错误号必须是在-20000到-20999之间。例子:
create or replace procedure raise_comm
  (eno NUMBER,commission NUMBER)
IS
  v_comm emp.comm%TYPE;
BEGIN
  SELECT comm INTO v_comm FROM emp WHERE empno=eno;
  IF v_comm IS NULL THEN
     RAISE_APPLICATION_ERROR(-20001,'该雇员无补助');
  END IF;
EXCEPTION 
  WHEN NO_DATA_FOUND THEN
    dbms_output.put_line('该雇员不存在');
END;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Oracle单行函数和多行函数实例
Oracle PL/SQL开发基础(第六弹:简单查询)
Oracle 11g 的新特性 —— 虚拟列
Oracle中只更新两张表对应数据的方法 - 51CTO.COM
PL/SQL经典练习
Oracle笔记-第6天
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服