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开头,它是一个可选的部分,用 ...
随机推荐
- mysql 增加只读用户查询指定表
GRANT SELECT ON dsideal_db.t_base_organization TO 'guanli'@'%' IDENTIFIED BY '123456';GRANT SELECT O ...
- python全栈开发day16-正则表达式和re模块
1.昨日内容回顾 2.正则表达式(re模块是python中和正则表达式相关的模块) 1.作用 1).输入字符串是否符合匹配条件 2).从大段文字中匹配出符合条件的内容 2.字符组 [0-9a-zA-Z ...
- Codeforces 286B Shifting (看题解)
Shifting 感觉这题被智力打击了.. 刚开始我想的是对于每个位置我们可以暴力找出最后的位置在哪里. 因为对于当前位置p, 在进行第x步操作时, 如果p % x == 1 则 p = p + x ...
- Github+阿超运算
感谢自己寒假能够稍稍做一点努力. Github个人页面<构建之法阅读笔记二可见>: https://github.com/Heartxy8990 申请教程: http://jingyan. ...
- 科技界、IT届的外号
牙膏厂 = Intel 挤牙膏来形容缓慢的升级速度 农企(推土机,打桩机,压路机).阿曼达.按摩店 = AMD 两弹元勋.老黄 = 黄仁勋, 核弹.英伟达 = NVIDIA 大法 = ...
- pyinstaller打包pyqt文件(转)
pyinstaller打包pyqt文件 https://www.cnblogs.com/dcb3688/p/4211390.html 打包pyqt文件 如何将pyqt生成exe的二进制文件呢,p ...
- Spring Boot 项目实战(一)Maven 多模块项目搭建
一.前言 最近公司项目准备开始重构,框架选定为 Spring Boot ,本篇主要记录了在 IDEA 中搭建 Spring Boot Maven 多模块项目的过程. 二.软件及硬件环境 macOS S ...
- ogg - 从oracle到mysql的同步
说明:这篇文章将介绍如何配置oracle到mysql的ogg同步 源端:ip-192.168.56.11 数据库类型-oracle 11.2.0.4目标端:ip-192.168.56.71 数据库类型 ...
- Python3 图像边界识别
# -*- coding: utf-8 -*- """ Created on Wed Mar 7 11:04:15 2018 @author: markli " ...
- go语言学习-安装和配置
go的安装方式主要有两种,一种直接使用系统自带的软件源来安装,比如 ubuntu 可以直接使用 apt 安装,但通常这种方式安装的都不会是最新的.所以通常直接下载最新的安装包,可以到GoCN下载.下面 ...