一、 一个实例Commit;create or replace procedure PROC_SUNHONGBO_MONCHNL(tim varchar2) istimest varchar(8);timday varchar(33);sqlsql varchar(6666);no_result EXCEPTION;beginCommit;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 ,假如有就抛出异常后继续执行**********/BEGINexecute 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 )...