博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle存储过程常见异常,oracle_存储过程exception异常处理大全跟实例经典最终.doc...
阅读量:6453 次
发布时间:2019-06-23

本文共 1915 字,大约阅读时间需要 6 分钟。

oracle_存储过程exception异常处理大全跟实例经典最终

一个实例

Commit;

create or replace procedure PROC_SUNHONGBO_MONCHNL(tim varchar2) is

timest varchar(8);

timday varchar(33);

sqlsql varchar(6666);

no_result EXCEPTION;

begin

Commit;

select to_char(sysdate,'yyyymmddHH24miss') tima into timday from dual;

select to_char(add_months(sysdate,-1),'yyyymm') mon into timest from dual;

select tim mon into timest from dual;

execute immediate 'delete report.wo_sunhongbo_chnl where mon = '||tim;

Commit;

/*1、添加所需要的列 real_charge + time ,如果有就抛出异常后继续执行**********/

BEGIN

execute immediate 'alter table shiyw11.t_my add real_charge'||tim||' varchar2(66)';

EXCEPTION

WHEN no_result THEN

DBMS_OUTPUT.PUT_LINE('你的数据更新语句失败了!');

WHEN OTHERS THEN

DBMS_OUTPUT.PUT_LINE('你的数据更新语句!已经存在该列1:'||tim);

END;

execute immediate 'update shiyw11.t_my set real_charge'||tim||' = null';

Commit;

Commit;

dbms_output.put_line('timest:'||timest||';tim:'||tim||';timest:'||sqlsql);

Commit;

end PROC_SUNHONGBO_MONCHNL;

/

Commit;

主要内容如下:

1.1?异常处理概念

1.1.1?预定义的异常处理

1.1.2?非预定义的异常处理

1.1.3?用户自定义的异常处理

1.1.4??用户定义的异常处理

1.2?异常错误传播

1.2.1?在执行部分引发异常错误

1.2.2?在声明部分引发异常错误

1.3?异常错误处理编程

1.4??在?PL/SQL?中使用?SQLCODE,?SQLERRM异常处理函数

即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为ORA-xxxxx形式的Oracle错误号)、PL/SQL运行错误或用户定义条件(不一写是错误),都可以。当然了,PL/SQL编译错误不能通过PL/SQL异常处理来处理,因为这些错误发生在PL/SQL程序执行之前。

ORACLE?提供异常情况(EXCEPTION)和异常处理(EXCEPTION?HANDLER)来实现错误处理。

?

1.1?异常处理概念

异常情况处理(EXCEPTION)是用来处理正常执行过程中未预料的事件,程序块的异常处理预定义的错误和自定义错误,由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会自动终止整个程序运行.

?

有三种类型的异常错误:

??? 1.?预定义?(?Predefined?)错误

??ORACLE预定义的异常情况大约有24个。对这种异常情况的处理,无需在程序中定义,由ORACLE自动将其引发。

??? 2.?非预定义?(?Predefined?)错误

?? 即其他标准的ORACLE错误。对这种异常情况的处理,需要用户在程序中定义,然后由ORACLE自动将其引发。

??? 3.?用户定义(User_define)?错误

?程序执行过程中,出现编程人员认为的非正常情况。对这种异常情况的处理,需要用户在程序中定义,然后显式地在程序中将其引发。

?

异常处理部分一般放在?PL/SQL?程序体的后半部,结构为:

?

?

EXCEPTION???WHEN?first_exception?THEN?????WHEN?second_exception?THEN?????WHEN?OTHERS?THEN??

转载地址:http://ojyzo.baihongyu.com/

你可能感兴趣的文章
19. Remove Nth Node From End of List(删除链表中的第n个结点)
查看>>
SEO的Content里面的内容被转义的解决方法
查看>>
8.仿阿里云虚拟云服务器的FTP(包括FTP文件夹大小限制)
查看>>
杭电2602--Bone Collector(01背包)
查看>>
11.7
查看>>
杀人游戏[中山市选2011]
查看>>
String类型的对象,是保存在堆里还是在栈里呢?
查看>>
前端算法-基本排序算法比较
查看>>
【leetcode】878. Nth Magical Number
查看>>
如何保证 Linux 服务器的安全
查看>>
jsp内置对象:session
查看>>
常见的功能测试点!
查看>>
代码大全回顾篇...
查看>>
Activity的生命周期和启动模式
查看>>
iOS自定义UIView动画效果
查看>>
c++——类 拷贝构造
查看>>
lua函数传入参数问题
查看>>
[开源]KJFramework.Message 高性能二进制消息框架 - 多元素数组的高性能优化
查看>>
Less学习笔记
查看>>
Python知识点总结篇(二)
查看>>