详解Oracle自定义异常示例
1.弹出错误框:
示例代码:
declare v_count number; begin select count(*) into v_count from dept; if v_count < 10 then raise_application_error(-20001,'数量小于10'); end if; end;
执行结果:
2.控制台显示:
示例代码:
declare v_count number; my_exp exception; begin select count(*) into v_count from dept; if v_count < 10 then raise my_exp; end if; exception when my_exp then dbms_output.put_line('数量小于10'); when others then dbms_output.put_line('其他异常'); end;
执行结果:
PS:ORACLE 用户自定义异常小例子
CREATE OR REPLACE PROCEDURE test_Exception_byLeejin ( ParameterA IN varchar, ParameterB IN varchar, ErrorCode OUT varchar --返回值,错误编码 ) AS /*以下是一些变量的定义*/ V NUMBER; V nvarchar(); V NUMBER; APP_EXP EXCEPTION; --自定义异常 BEGIN ErrorCode :=''; IF (ParameterA=ParameterB) THEN ErrorCode := 'ParameterA = ParameterB'; RAISE APP_EXP; -- 抛出异常 END IF; EXCEPTION WHEN APP_EXP THEN --在处理异常 RAISE_APPLICATION_ERROR(-,ErrorCode); WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-,'未知异常'); END;
相关推荐
-
Oracle9i数据库异常关闭后的启动
正在看的ORACLE教程是:Oracle9i数据库异常关闭后的启动.Oracle shutdown的时候突然断电,导致使用sql/plus启动时无法连接到数据库,具体描述为: connection can not permitted, shut in progress. 到dos 提示符 键入: c:\> sqlplus /nolog 显示: sql/plus: Realease9.0.2--..all rights reserved sql> connect /as sysdba 显示已连接
-
Oracle ORA-22908(NULL表值的参考)异常分析与解决方法
场景如下: --创建类型(type)create or replace type list_obj is table of number;--创建表结构create table test( name varchar2(30) primary key check(regexp_like(name,'^([a-z]|[0-9]|_)+$')), id number not null, version_list list_obj) nested table version_list store as
-
Oracle中RAISE异常深入分析
有三种方式抛出异常 1.通过PL/SQL运行时引擎 2.使用RAISE语句 3.调用RAISE_APPLICATION_ERROR存储过程 当数据库或PL/SQL在运行时发生错误时,一个异常被PL/SQL运行时引擎自动抛出.异常也可以通过RAISE语句抛出 RAISE exception_name; 显式抛出异常是程序员处理声明的异常的习惯用法,但RAISE不限于声明了的异常,它可以抛出任何任何异常.例如,你希望用TIMEOUT_ON_RESOURCE错误检测新的运行时异常处理器,你只需简单的在
-
Oracle 9i 数据库异常关闭后的启动
正在看的ORACLE教程是:Oracle 9i 数据库异常关闭后的启动. Oracle 数据库启动 Oracle shutdown的时候突然断电,导致使用sql/plus启动时无法连接到数据库,具体描述为: connection can not permitted, shut in progress. 到dos 提示符 键入: c:\> sqlplus /nolog 显示: sql/plus: Realease9.0.2--..all rights reserved sql> connect
-
win7安装oracle10g 提示程序异常终止 发生未知错误
oracle 10g 在win7下安装,选择高级选项,提示程序异常终止,发生未知错误 修改Oracle 10G\database\stage\prereq\db\refhost.xml 在 </SYSTEM> <CERTIFIED_SYSTEMS>后面添加 <!--Microsoft Windows 7--> <OPERATING_SYSTEM> <VERSION VALUE="6.1"/> </OPERATING_SY
-
oracle异常(预定义异常,自定义异常)应用介绍
在开发过程中,经常会遇到一些测试,这时候就会想了解测试的过程,然后再根据过程分析代码错在哪里,这种情况下,就需要用到自定义异常,需要了解的朋友可以参考本文 先声明一个异常 Java代码 biz_exception exception; 再抛出来 Sql代码 复制代码 代码如下: p_RETCODE := '-1'; p_retInfo := '已生成工资+社保类型账单,请不要重复生成.'; raise biz_exception; 这样存储过程就走到最后的抓取异常地方 Sql代码 复制代码 代码
-
详解Oracle自定义异常示例
1.弹出错误框: 示例代码: declare v_count number; begin select count(*) into v_count from dept; if v_count < 10 then raise_application_error(-20001,'数量小于10'); end if; end; 执行结果: 2.控制台显示: 示例代码: declare v_count number; my_exp exception; begin select count(*) into
-
详解Oracle游标的简易用法
下面看下Oracle游标的简易用法,具体代码如下所示: create or replace procedure NW_DelYW(iOPERATION_ID number, sUserID varchar2) is sCurDJBH yw_operation_link.djbh%type; cursor table_yw(ywid yw_operation.id%type) is select * from yw_operation_link t1 where t1.operation_id =
-
Java中的静态内部类详解及代码示例
1. 什么是静态内部类 在Java中有静态代码块.静态变量.静态方法,当然也有静态类,但Java中的静态类只能是Java的内部类,也称为静态嵌套类.静态内部类的定义如下: public class OuterClass { static class StaticInnerClass { ... } } 在介绍静态内部类之前,首先要弄清楚静态内部类与Java其它内部类的区别. 2. 内部类 什么是内部类?将一个类的定义放在另一个类的内部,就是内部类.Java的内部类主要分为成员内部类.局部内部类.
-
C语言指针详解及用法示例
新手在C语言的学习过程中遇到的最头疼的知识点应该就是指针了,指针在C语言中有非常大的用处.下面我就带着问题来写下我对于指针的一些理解. 指针是什么? 指针本身是一个变量,它存储的是数据在内存中的地址而不是数据本身的值.它的定义如下: int a=10,*p; p=&a int a=10; int *p=&a; 首先我们可以理解 int* 这个是要定义一个指针p,然后因为这个指针存储的是地址所以要对a取地址(&)将值赋给指针p,也就是说这个指针p指向a. 很多新手都会对这两种定义方法
-
详解oracle中通过触发器记录每个语句影响总行数
详解oracle中通过触发器记录每个语句影响总行数 需求产生: 业务系统中,有一步"抽数"流程,就是把一些数据从其它服务器同步到本库的目标表.这个过程有可能 多人同时抽数,互相影响.有测试人员反应,原来抽过的数,偶尔就无缘无故的找不到了,有时又会出来重复行.这个问题产生肯定是抽数逻辑问题以及并行的问题了!但他们提了一个简单的需求:想知道什么时候数据被删除了,什么时候插入了,我需要监控"表的每一次变更"! 技术选择: 第一就想到触发器,这样能在不涉及业务系统的代码情况
-
Java中的HashSet详解和使用示例_动力节点Java学院整理
第1部分 HashSet介绍 HashSet 简介 HashSet 是一个没有重复元素的集合. 它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素. HashSet是非同步的.如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步.这通常是通过对自然封装该 set 的对象执行同步操作来完成的.如果不存在这样的对象,则应该使用 Collections.synchronizedSet 方法来"包装" set.
-
详解Oracle调试存储过程
详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图如下: 4.该截图说明权限不够,需要添加scott用户的权限. 5.增加权限语句如下: SQL> show user USER 为"SCOTT" SQL> connect system 输入口令: 已连接. SQL> show user USER 为"SYSTE
-
详解Oracle在out参数中访问光标
详解Oracle在out参数中访问光标 一 概念 申明包结构 包头:负责申明 包体:负责实现 二 需求 查询某个部门中所有员工的所有信息 三 包头 CREATE OR REPLACE PACKAGE MYPACKAGE AS type empcursor isref cursor; procedure queryEmplist(dno in number,emplist out empcursor); END MYPACKAGE; 四 包体 包体需要实现包头中声明的所有方法 CREATE OR
-
Java 中的HashMap详解和使用示例_动力节点Java学院整理
第1部分 HashMap介绍 HashMap简介 HashMap 是一个散列表,它存储的内容是键值对(key-value)映射. HashMap 继承于AbstractMap,实现了Map.Cloneable.java.io.Serializable接口. HashMap 的实现不是同步的,这意味着它不是线程安全的.它的key.value都可以为null.此外,HashMap中的映射不是有序的. HashMap 的实例有两个参数影响其性能:"初始容量" 和 "加载因子&quo
-
Java中LinkedList详解和使用示例_动力节点Java学院整理
第1部分 LinkedList介绍 LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表.它也可以被当作堆栈.队列或双端队列进行操作. LinkedList 实现 List 接口,能对它进行队列操作. LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用. LinkedList 实现了Cloneable接口,即覆盖了函数clone(),能克隆. LinkedList 实现java.io.Serial
随机推荐
- Prototype Number对象 学习
- AngularJS基础知识
- 浅析一个匹配数字和字母密码的正则表达式
- C++ 中构造函数的实例详解
- U盘数据备份批处理代码
- Swift自定义iOS中的TabBarController并为其添加动画
- 浅谈javascript中new操作符的原理
- javascript实时显示当天日期的方法
- mysql+php分页类(已测)
- PHP创建PowerPoint2007文档的方法
- C++基于Directx MMX实现的图像灰度转换代码
- C++设计模式编程中的迭代器模式应用解析
- JavaScript基础教程之alert弹出提示框实例
- php 过滤危险html代码
- php设计模式 Singleton(单例模式)
- jQuery及JS实现循环中暂停的方法
- easyui导出excel无法弹出下载框的快速解决方法
- js实现文字跟随鼠标移动而移动的方法
- C# listview添加combobox到单元格的实现代码
- JS获取select-option-text_value的方法