117.Oracle数据库SQL开发之 PLSQL编程——异常
2015-11-28 20:31
435 查看
117.Oracle数据库SQL开发之 PLSQL编程——异常
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50086941
异常用于处理PL/SQL代码块中出现的运行时错误。
常见的异常如下:
执行如下:
store@PDB1> BEGIN
DBMS_OUTPUT.PUT_LINE(1/0);
EXCEPTION
WHENZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE('Division by zero');
END;
/
Division by zero
PL/SQL procedure successfully completed.
当异常发生时,程序的控制权将转交给EXCEPTION块,其中的WHEN子句复制检查与何种异常相匹配,然后执行匹配子句中的代码。
例如:
store@PDB1>BEGIN
INSERT INTO customers(customer_id,first_name,last_name) values ( 1,'Greg','Green');
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
DBMS_OUTPUT.PUT_LINE('Duplicate value on anindex');
END;
/
Duplicate valueon an index
PL/SQL proceduresuccessfully completed.
例如:
store@PDB1> BEGIN
INSERT INTOcustomers ( customer_id,first_name,last_name) VALUES ('123x','Greg','Green');
EXCEPTION
WHENINVALID_NUMBER THEN
DBMS_OUTPUT.PUT_LINE('Conversion of string to number failed');
END;
/
Conversion of string to number failed
PL/SQL procedure successfully completed.
例如:
store@PDB1> BEGIN
DBMS_OUTPUT.PUT_LINE(1/0);
EXCEPTION
WHEN OTHERSTHEN
DBMS_OUTPUT.PUT_LINE('An exception occurred');
END;
/
An exception occurred
PL/SQL procedure successfully completed.
因为OTHERS可处理所有的异常,因此必须在EXCEPTION块中所有特定的异常之后使用该异常。如果试图在其他地方使用OTHERS异常,数据库会返回错误PLS-00370。
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50086941
异常用于处理PL/SQL代码块中出现的运行时错误。
常见的异常如下:
1. ZERO_DIVIDE 异常
ZERO_DIVIDE异常在试图用一个数字除以零的时候发生。执行如下:
store@PDB1> BEGIN
DBMS_OUTPUT.PUT_LINE(1/0);
EXCEPTION
WHENZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE('Division by zero');
END;
/
Division by zero
PL/SQL procedure successfully completed.
当异常发生时,程序的控制权将转交给EXCEPTION块,其中的WHEN子句复制检查与何种异常相匹配,然后执行匹配子句中的代码。
2. DUP_VAL_ON_INDEX异常
如果视图向具有唯一性索引约束的列中插入重复的值,就会引发DUP_VAL_ON_INDEX异常。例如:
store@PDB1>BEGIN
INSERT INTO customers(customer_id,first_name,last_name) values ( 1,'Greg','Green');
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
DBMS_OUTPUT.PUT_LINE('Duplicate value on anindex');
END;
/
Duplicate valueon an index
PL/SQL proceduresuccessfully completed.
3. INVALID_NUMBER异常
当试图将无效的字符串转换成数字时,就会引发INVALID_NUMBER异常。例如:
store@PDB1> BEGIN
INSERT INTOcustomers ( customer_id,first_name,last_name) VALUES ('123x','Greg','Green');
EXCEPTION
WHENINVALID_NUMBER THEN
DBMS_OUTPUT.PUT_LINE('Conversion of string to number failed');
END;
/
Conversion of string to number failed
PL/SQL procedure successfully completed.
4. OTHERS异常
OTHERS异常可以处理所有异常。例如:
store@PDB1> BEGIN
DBMS_OUTPUT.PUT_LINE(1/0);
EXCEPTION
WHEN OTHERSTHEN
DBMS_OUTPUT.PUT_LINE('An exception occurred');
END;
/
An exception occurred
PL/SQL procedure successfully completed.
因为OTHERS可处理所有的异常,因此必须在EXCEPTION块中所有特定的异常之后使用该异常。如果试图在其他地方使用OTHERS异常,数据库会返回错误PLS-00370。
相关文章推荐
- 116.Oracle数据库SQL开发之 PLSQL编程——游标
- Oracle数据库共享内存分配不足问题的解决
- oracle使用for循环插入10000条数据
- oracle 内存分配和调优 总结
- mybatis执行批量更新batch update 的方法(oracle,mysql)
- Oracle程序包
- oracle数据字典
- oracle 00845,修改memory_target大小
- java学习笔记:通过JDBC技术获取Oracle数据库连接
- Oracle常用查看表结构命令
- Oracle数据库合并行记录,WMSYS.WM_CONCAT 函數的用法
- 关于使用navicat创建oracle触发器
- oracle复杂查询21道题精析
- ORACLE(PL/SQL) 根据字符分割(SPLIT)字符串返回数组
- RHEL7.0 安装Oracle 11gR2报错解决
- Oracle ASM操作管理
- oracle系列--基础理论
- Oracle学习笔记--导航
- Oracle的入门及一些基本操作
- 本人对Oracle Order Manager模块的一些了解