从零开始学Oracle—异常处理(八)
2009-04-09 13:13:33 来源:WEB开发网以上代码的问题是,只有条件满足 才会引发异常,否则永远都不会执行此句.
并且当有多个语句都有可能会引发此异常时,代码就过于冗余.并且都要显示
的引发异常,能不能让系统帮我们维护自定义异常了,当有异常引发时 自动
通知Oracle服务器处理异常
pragma指令
declare
PK_conflict Exception; --用户定义异常
pragma Exception_init(PK_conflict -1); --编译指令 可以把异常捆绑到Oracle 并覆盖预定义的异常
iCount int:=0; 这里的-1 代表主键冲突
begin
insert into emp(empno,ename) values('7369','FeiYang');
Exception
when PK_conflict then --处理异常
DBMS_output.put_line('表中已经有这条记录了,主键冲突');
end;
为了给用户友好的错误提示.用此函数可以定义友好的提示。
DBMS_output.put_line()函数只有sqlPlus 客户端支持.
Raise_Application_Error
.用于创建用户定义的错误消息的过程
.可以再执行部分和异常部分使用
.必须介于 -20000 和 -20999之间
.可以存储2M的错误信息
declare
PK_conflict Exception; --用户定义异常
pragma Exception_init(PK_conflict -1); --编译指令
iCount int:=0;
begin
insert into emp(empno,ename) values('7369','FeiYang');
Exception
when PK_conflict then --处理异常
Raise_Application_Error(-20001,'表中已经有这条记录了'); --注意参数的前后顺序
end;
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接