ORACLE ? PL/SQL ? 例外处理?
1) ? 基本结构?
BEGIN?
... ? --语句?
EXCEPTION ? -- ? 例外处理 ??
WHEN ? ...?
...?
WHEN ? OTHERS?
...?
END;?
2) ? 常用预定义例外?
EXCEPTION ??
WHEN ? CURSOR_ALREADY_OPEN ? THEN ? -- ? ORA-06511 ? SQLCODE ? = ? -6511 ? 游标已经打开?
...?
WHEN ? DUP_VAL_ON_INDEX ? THEN ? -- ? ORA-00001 ? SQLCODE ? = ? -1 ? 向唯一索引中插入重复数据?
...?
WHEN ? INVALID_CURSOR ? THEN ? -- ? ORA-01001 ? SQLCODE ? = ? -1001 ? 非法游标操作?
...?
WHEN ? INVALID_NUMBER ? THEN ? -- ? ORA-01722 ? SQLCODE ? = ? -1722 ? 字符向数字转换失败?
...?
WHEN ? LOGIN_DENIED ? THEN ? -- ? ORA-01017 ? SQLCODE ? = ? -1017 ??
...?
WHEN ? NO_DATA_FOUND ? THEN ? -- ? ORA-01403 ? SQLCODE ? = ? +100 ? 没有找到数据?
...?
WHEN ? NOT_LOGGED_ON ? THEN ? -- ? ORA-01012 ? SQLCODE ? = ? -1012 ??
...?
WHEN ? PROGRAM_ERROR ? THEN ? -- ? ORA-06501 ? SQLCODE ? = ? -6501 ? 程序错误?
...?
WHEN ? STORAGE_ERROR ? THEN ? -- ? ORA-06500 ? SQLCODE ? = ? -6500 ??
...?
WHEN ? TIMEOUT_ON_RESOURCE ? THEN ? -- ? ORA-00051 ? SQLCODE ? = ? -51?
...?
WHEN ? TOO_MANY_ROWS ? THEN ? -- ? ORA-01422 ? SQLCODE ? = ? -1422 ? 返回多行?
...?
WHEN ? TRANSACTION_BACKED_OUT ? THEN ? -- ? ORA-00061 ? SQLCODE ? = ? -61?
...?
WHEN ? VALUE_ERROR ? THEN ? -- ? ORA-06502 ? SQLCODE ? = ? -6502 ? 数值转换错误?
...?
WHEN ? ZERO_DIVIDE ? THEN ? -- ? ORA-01476 ? SQLCODE ? = ? -1476 ? 被零除?
...?
WHEN ? OTHERS ? THEN ? -- ? 其它任何错误的处理?
...?
END;?
3) ? 用户定义的例外?
DECLARE?
FIND_DATA_EMP ? EXCEPTION;?
BEGIN?
IF ? ... ? THEN?
RAISE ? FIND_DATA_EMP;?
END ? IF;?
EXCEPTION?
WHEN ? LOB_NO_LOCKED ? THEN?
...?
END;?
4) ? EXCEPTION_INIT的使用?
PRAGMA ? EXCEPTION_INIT(例外名, ? ORACLE错误号);?
注:PRAGMA ? 是一个编译器命令,可以认为是对编译器的一个注释。?
例:?
DECLARE?
ZERO_DIVIDE1 ? EXCEPTION;?
PRAGMA ? EXCEPTION_INIT(ZERO_DIVIDE1, ? -1476);?
BEGIN?
...?
EXCEPTION?
WHEN ? ZERO_DIVIDE1 ? THEN?
...?
END;?
详细解决方案
ORACLE PL/SQL 例外处置
热度:53 发布时间:2016-05-05 14:49:55.0
相关解决方案
- oracle 分页排序,ssi,该怎么处理
- oracle 最近的时间(而不是前一天的时间) 跪求sql语句 。解决方法
- oracle,该怎么解决
- 在 Hibernate3 查询不到 Oracle 11g 里的记录
- oracle 安装时出现 java tm 异常
- android访问其他数据库(如:oracle、MySql等),希望大家给点建议!解决方案
- oracle 安插 LONG VARCHAR 类型数据
- ORACLE 一条SQL的有关问题
- oracle loadjava如何用
- oracle,该如何处理
- C# + SQL server +oracle QQ交流群142703980解决方法
- 怎么跟踪winform应用程序发送到数据库的sql(oracle、mssql)
- , 每次玩ASP都会遇到一些恶心的有关问题, 这次是:未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运,该怎么解决
- 求解:gridview行值的计算并绑定有关问题(asp.net+oracle)
- Oracle.DataAccess 执行多条sql语句,该如何解决
- VS10连接Oracle的有关问题:"Oracle.DataAccess.Client.OracleConnection"的类型初始值设定项引发错误
- System.Data.OleDb.OleDbException: 未找到 Oracle 客户端和网络组件。
- asp.net oracle 参数化 模糊查询出错,该怎么处理
- Oracle-参数查询有关问题
- oracle,insert 语句插入一条记录后要求,返回主键id値。解决思路
- Oracle 10g下的SQL语句,有点难度.请~[同时向朋友们道歉~]
- 月统计(oracle)解决办法
- 在线紧急等一sql语句(oracle),该怎么处理
- 面试问,为什么jsp+oracle,asp+sql server这样来搭配?该如何处理
- oracle 连接数据库该如何写语句的
- System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
- oracle 防sql注入有关问题!
- 求 Oracle Database Server 'TNS Listener'远路数据投毒漏洞 补丁
- oracle 客户端链接服务端的方式?该如何解决