PL/SQL学习笔记之异常
一:异常
程序执行过程中出现错误情况被称为异常,主要有两种类型的异常:
系统定义的异常
用户定义的异常
二:系统定义的异常
| Exception | Oracle Error | SQLCODE | 描述 |
|---|---|---|---|
| ACCESS_INTO_NULL | 06530 | -6530 | 为空对象赋值时引发 |
| CASE_NOT_FOUND | 06592 | -6592 | 没有相应的选择语句时引发异常 |
| COLLECTION_IS_NULL | 06531 | -6531 | 数组、集合未初始化却被使用时引发异常 |
| DUP_VAL_ON_INDEX | 00001 | -1 | 当重复值试图被存储在具有唯一索引的列时被引发 |
| INVALID_CURSOR | 01001 | -1001 | 游标操作异常 |
| INVALID_NUMBER | 01722 | -1722 | 当一个字符串转换成一个数失败时引发 |
| LOGIN_DENIED | 01017 | -1017 | 当使用无效的用户名或密码登录数据库时引发 |
| NO_DATA_FOUND | 01403 | +100 | 当一个SELECT INTO语句无任何行返回时引发 |
| NOT_LOGGED_ON | 01012 | -1012 | 在未连接到数据库却发出数据库调用时被引发 |
| PROGRAM_ERROR | 06501 | -6501 | 当PL/SQL有一个程序内部错误时引发 |
| ROWTYPE_MISMATCH | 06504 | -6504 | 当游标取值有不兼容的数据类型的变量被引发 |
| SELF_IS_NULL | 30625 | -30625 | 当对象的成员方法被调用但对象类型的实例没有被初始化时引发异常 |
| STORAGE_ERROR | 06500 | -6500 | 当PL/SQL内存不足或内存已损坏时引发异常 |
| TOO_MANY_ROWS | 01422 | -1422 | 当SELECT INTO语句返回多行时引发异常 |
| VALUE_ERROR | 06502 | -6502 | 算术、转换、截短或大小约束错误时引发 |
| ZERO_DIVIDE | 01476 | 1476 | 0作除数时引发异常 |
三:用户自定义异常(其实就是声明一个异常变量)
DECLARE
my-exception EXCEPTION;
四:手动抛出异常
DECLARE
exception_name EXCEPTION;
BEGIN
IF condition THEN
RAISE exception_name;
END IF;
EXCEPTION
WHEN exception_name THEN
statement;
END;
五:异常处理
DECLARE
<declarations section>
BEGIN
<executable command(s)>
EXCEPTION //异常处理部分
WHEN exception1 THEN
exception1-handling-statements
WHEN exception2 THEN
exception2-handling-statements
WHEN exception3 THEN
exception3-handling-statements
........
WHEN others THEN
exception3-handling-statements
END;
PL/SQL学习笔记之异常的更多相关文章
- ORALCE PL/SQL学习笔记
ORALCE PL/SQL学习笔记 详情见自己电脑的备份数据资料
- Oracle之PL/SQL学习笔记
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...
- [Oracle] PL/SQL学习笔记
-- 1. 使用一个变量 declare -- Local variables here v_name ); begin -- Test statements here select t.user_n ...
- PL\SQL学习笔记
注释 单行--多行 一.declare一般用于做变量的申明.begin 程序体开始执行 end; 程序体结束exception .. dbms_output.put_line('绝对值'||v_ab ...
- PL/SQL学习笔记_01_基础
PL/SQL语句可以在Oracle客户端的 SQL窗口或者 command 窗口中运行 在SQL窗口中运行步骤同 SQL语句 在command 窗口中运行的步骤如下: 1)File—new com ...
- PL/SQL学习笔记程序单元
一:程序单元组成 一个PL/SQL程序单元主要包括三部分: 声明与定义部分:声明变量.常量.类型等:定义过程.函数等: 执行部分:执行PL/SQL语句:调用过程.参数:处理游标等: 异常处理部分:处理 ...
- PL/SQL学习笔记之包
一:包 包是由一组相关的函数,过程,变量,游标等PL/SQL程序设计元素的组合而成的一个PL/SQL程序单元,相当于Java中的类. 包的主要作用是封装:把相同或相似的东西归类,方便维护和管理,提高开 ...
- PL/SQL学习笔记之集合
一:PL/SQL集合 集合是一个有序且存有相同的类型数据的数据结构. PL/SQL提供了三种集合类型: 索引表(关联数组) 嵌套表 数组 二:索引表:一个索引表(也叫关联数组)是一组键 - 值对.每个 ...
- PL/SQL学习笔记之基本块格式与语法
一:PL/SQL程序块 PL/SQL是一种块结构的语言,一个PL/SQL程序就是一个 代码逻辑块. PL/SQL程序由三部分构成: 1 声明 部分 使用关键字DECLARE开头,它是一个可选的部分,用 ...
随机推荐
- python 全栈开发,Day47(行级块级标签,高级选择器,属性选择器,伪类选择器,伪元素选择器,css的继承性和层叠性,层叠性权重相同处理,盒模型,padding,border,margin)
一.HTML中的行级标签和块级标签 块级标签 常见的块级标签:div,p,h1-h6,ul,li,dl,dt,dd 1.独占一行,不和其他元素待在同一行2.能设置宽高3.如果不设置宽高,默认为body ...
- ActiveMQ、RabbitMQ、RocketMQ、Kafka有什么优点和缺点
ActiveMQ 单机吞吐量:万级 topic数量都吞吐量的影响: 时效性:ms级 可用性:高,基于主从架构实现高可用性 消息可靠性:有较低的概率丢失数据 功能支持:MQ领域的功能极其完备 总结: 非 ...
- nexus 2版本的配置要点
nexus 3版本,集成了太多容器化功能,暂时不需要用. 现在主要关注nexus2版本. https://help.sonatype.com/repomanager2/download https:/ ...
- Codeforces 915F Imbalance Value of a Tree
Imbalance Value of a Tree 感觉这种题没啥营养, 排个序算算贡献就好啦. #include<bits/stdc++.h> #define LL long long ...
- Codeforces 286B Shifting (看题解)
Shifting 感觉这题被智力打击了.. 刚开始我想的是对于每个位置我们可以暴力找出最后的位置在哪里. 因为对于当前位置p, 在进行第x步操作时, 如果p % x == 1 则 p = p + x ...
- poj 1160 Post Office 【区间dp】
<题目链接> 转载于:>>> 题目大意: 一条高速公路,有N个村庄,每个村庄均有一个唯一的坐标,选择P个村庄建邮局,问怎么选择,才能使每个村庄到其最近邮局的距离和最小?最 ...
- vuex数据持久化存储
想想好还是说下vuex数据的持久化存储吧.依稀还记得在做第一个vue项目时,由于刚刚使用vue,对vue的一些基本概念只是有一个简单的了解.当涉及到非父子组件之间通信时,选择了vuex.只是后来竟然发 ...
- java中thread的start()和run()的区别
1.start()方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码: 通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就绪 ...
- XHR对象
一.XMLHttpRequest对象 var xhr = new XMLHttpRequest(), i = 0; for(var key in xhr){ if(xhr.hasOwnProperty ...
- android studio 汉化
the modules below are not imported from Gradle anymore. Check those to be removed from the ide proje ...