10.4OraclePL_SQL异常
2016-07-03 13:49
309 查看
什么是异常
在运行程序时出现的错误叫做异常。发生异常后,语句将停止,PL/SQL引擎将立即控制权转到PL/SQL块的异常处理部分。
预定义异常
语法:
注:
1.OTHERS处理程序确保不会漏过任何异常。一个PL/SQL块只能有一个OTHERS异常。
2.可以使用函数SQLCODE和SQLERRM来返回错误代码和错误文本信息。
自定义异常
注:
1.在PL/SQL块的声明部分定义异常
2.在执行部分抛出异常,这样程序就可以跳到异常处理块
语法:
DECLARE
ERROR_S EXCEPTION; //使用 EXCEPTION 声明自定义异常
BEGIN
RAISE ERROR_S; //使用RAISE抛出自定义异常
EXCEPTION
异常代码块
END;
在运行程序时出现的错误叫做异常。发生异常后,语句将停止,PL/SQL引擎将立即控制权转到PL/SQL块的异常处理部分。
预定义异常
异 常 | 说 明 |
ACCESS_INTO_NULL | 在未初始化对象时出现 |
CASE_NOT_FOUND | CASE语句中的选项域用户输入的数据不匹配时出现 |
COLLECTION_IS_NULL | 给尚未初始化的表或数组赋值时出现 |
CURSOR_ALREADY_OPEN | 在用户试图重新打开以打开的游标时候出现。 |
DUP_VAL_ON_INDEX | 将重复的值存储到唯一索引中 |
INVALID_CURSOR | 执行一个非法游标运算 |
INVALID_NUMBER | 在将字符串转换为数字时出现 |
LOGIN_DENIED | 在输入的用户和密码无效时出现 |
NO_DATA_FOUND | 在表中不存在请求的行时出现。 |
STORAGE_ERROR | 在内存损坏或PL/SQL耗尽内存时出现 |
TOO_MANY_ROWS | 在执行SELECT INTO语句后返回多行时出现 |
VALUE_ERROR | 产生大小限制错误。 |
ZERO_DIVIDE | 已零作为除数时出现 |
BEGIN EXCEPTION WHEN <EXCEPTION_NAME> THEN WHEN OTHERS THEN END;
注:
1.OTHERS处理程序确保不会漏过任何异常。一个PL/SQL块只能有一个OTHERS异常。
2.可以使用函数SQLCODE和SQLERRM来返回错误代码和错误文本信息。
自定义异常
注:
1.在PL/SQL块的声明部分定义异常
2.在执行部分抛出异常,这样程序就可以跳到异常处理块
语法:
DECLARE
ERROR_S EXCEPTION; //使用 EXCEPTION 声明自定义异常
BEGIN
RAISE ERROR_S; //使用RAISE抛出自定义异常
EXCEPTION
异常代码块
END;
相关文章推荐
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- oracle的nvl函数的使用介绍
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累
- Oracle存储过程之数据库中获取数据实例
- Windows下ORACLE 10g完全卸载的方法分析
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ORACLE LATERAL-SQL-INJECTION 个人见解