Oracle系统预定义的异常

比如:SELF_IS_NULL、VALUE_ERROR、ZERO_DIVIDE等Oracle中自带的异常类型

使用方法:

 DECLARE
V_Result NUMBER(3);
BEGIN
V_Result = 2/0;
EXCEPTION
WHEN ZERO DIVIDE THEN
DBMS_OUTPUT.PUT_LINE('除数不能为0');
RAISE;
END;

Oracle系统非预定义的异常(Others里面的异常)

如果发生了非预定义异常,可以用 WHEN OTHERS THEN 去处理

如果想定位某个非预定义异常,可以初始化该非预定义异常去使用

使用方法:

DECLARE
DML_EXCEPTION EXCEPTION;
-- 这里的-11111是某个异常的代码
PRAGMA EXCEPTION_INIT(DML_EXCEPTION,-11111) ;
BEGIN
--逻辑代码中如果发生了-11111这种类型的异常的话,就会触发
--DML_EXCEPTION
EXCEPTION
WHEN DML_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('DML exceptions');
END;

用户自定义的异常

如果想自己定义一种异常,比如部门工号为10001的人一旦有超过5000RMB的就触发这个异常

使用方法:

DECLARE
SALARY_EXCEPTION EXCEPTION;
V_Sal EMP.SAL%TYPE;
BEGIN
SELECT SAL INTO V_Sal FROM EMP WHERE JOB_ID = 10001;
IF V_Sal > 5000 THEN
RAISE SALARY_EXCEPTION; --通过RAISE去抛出这个异常
END IF;
EXCEPTION
WHEN SALARY_EXCEPTION THEN
DBMS_OUTPUT.PUT_LINE('10001员工工资超过了5000!');
END;

Oracle中的EXCEPTION的更多相关文章

  1. .Net处理Oracle中Clob类型字段总结

    最近在做项目中用到Clob这个字段,Clob是存储无限长字符的Oracle字段,用的时候网上找资料找了好久,内容不是很多,大部分都不能用,当然也有可以用的,测试了不同版本,整理了一下,给大家在做项目的 ...

  2. 【转】oracle 中随机取一条记录的两种方法

    oracle 中随机取一条记录的两种方法 V_COUNT INT:=0; V_NUM INT :=0; 1:TBL_MYTABLE 表中要有一个值连续且唯一的列FID BEGIN SELECT COU ...

  3. Oracle中PL/SQL的执行部分和各种流程控制

    Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...

  4. Oracle中的MD5加密详解

    一.技术点 1. DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFU ...

  5. Oracle 中的作业队列和队列调度

    一,启动执行作业的进程       在 Oracle 中,是使用 “作业队列协调进程(CJQ0)” 这个协调数据库实例的作业队列的后台进程,来监视作业队列中的作业表(JOB$),并启动作业队列进程(J ...

  6. Oracle中PL/SQL简介、基本语法以及数据类型

    Oracle中PL/SQL简介.基本语法以及数据类型 一.PL/SQL简介. Oracle PL/SQL语言(Procedural Language/SQL)是结合了结构化查询和Oracle自身过程控 ...

  7. Oracle中没有 if exists(...)

    对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法,这里先分析常用的三种,推荐使用最后一种 第一种是最常用的,判断count(*)的值是否为零,如下declare  v ...

  8. oracle 中的存储过程

      oracle 中的存储过程 --oracle 中的存储过程, --不带任何参数的 CREATE OR REPLACE PROCEDURE PRO_TEST AS -- AS 和is 没有任何区别 ...

  9. oracle中的存储过程例子

    用了两年Oracle还没写过存储过程,真是十分惭愧,从今天开始学习Oracle存储过程,完全零起点,争取每日一篇学习笔记,可能开始认识的不全面甚至有错误,但坚持下来一定会有收获. . 建立一个存储过程 ...

随机推荐

  1. HDU 1076 An Easy Task

    题解:枚举即可…… #include <cstdio> int main(){ int now,y,n,T,count; scanf("%d",&T); whi ...

  2. swift3.0基础语法(2)

    变量/常量,元组声明 var aaa = 0;//声明变量aaa 首次赋值时自动解析为Int类型 var aaa:Int = 0;//声明Int类型变量aaa let aaa = 0;//声明常量aa ...

  3. Data Guard相关参数学习介绍

    LOG_ARCHIVE_DEST_n 参数属性介绍 该参数的n在11g中为1到31,下列为参数的属性值: u  AFFIRM and NOAFFIRM u  ALTERNATE (not suppor ...

  4. 国产编程语言R++ V1.5发布

    R++ v1.5内核改动较大,下面是一些主要变化: 1.使用PJIT(Pseudocode Just-In-Time),编译速度大幅提高,但运行效率远远不如C++,不过R++将在下一版本支持RJIT( ...

  5. SRM 585 DIV 1 总结

    题意:给你一棵高度为H的完全二叉树的路,问最少需要多少辆车把这路走完,车子不能返回. 那么最优的方案就是从小到上一层层的走完,就很容易地可以得到一种递推,需要注意的就是dp[0]  = 1 #incl ...

  6. pv ticketlock解决虚拟环境下的spinlock问题

    最近看邮件,有注意到pv ticketlock相关的消息,貌似jeremy 几年前的东东,终于将要被收录到linux 3.12里面. 先说下pv ticketlock这东西,http://blog.x ...

  7. 自己定义控件-GifView

    一.描写叙述 显示Gif 的View 原理是用 MediaPlayer 实现的 二.源代码 https://github.com/mentor811/Demo_GifView [ 声明:版权全部,欢迎 ...

  8. CSS换行2

    1.可以使用强制换行符号<br />换行.如果在一个文章里可以在文章需要换行的地方加入<br />即可实现自动换行-常说的小换行,与换行前没有间隔.实例如下图 换行说明图无间隔 ...

  9. SMACSS:一个关于CSS的最佳实践-1.Overview

    什么是SMACSS? SMACSS(发音"smacks"),全称Scalable and Modular Architecture for CSS.顾名思义,SMACSS是一个可扩 ...

  10. 视频媒体播放,最好的 HTML 解决方法

    最好的 HTML 解决方法 HTML 5 + <object> + <embed> <video width="320" height="2 ...