1、为了提高存储过程的健壮性,避免运行错误,当建立存储过程时应包含异常处理部分。2、异常(EXCEPTION)是一种PL/SQL标识符,包括预定义异常、非预定义异常和自定义异常;3、预定义异常是指由PL/SQL提供的系统异常;非预定义异常用于处理与预定义异常无关的Oracle错误(如完整性约束等);自定义异常用于处理与Oracle错误的其他异常情况。4、RAISE_APPLICATION_ERRO            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2011-04-18 15:19:00
                            
                                905阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
                异常在代码中的声明部分声明,在执行部分引发,在异常处理部分处理。一般异常分为两中:预定义异常和用户自定义异常。
    下面通过代码分别介绍异常的声明、执行、处理。
1、用户自定义异常
(a)异常声明
DECLARE   -- Exception to indicate a            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-04-19 22:05:22
                            
                                523阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
             由三种方式抛出异常    1. 通过PL/SQL运行时引擎    2. 使用RAISE语句    3. 调用RAISE_APPLICATION_ERROR存储过程    当数据库或PL/SQL在运行时发生错误时,一个异常被PL/SQL运行时引擎自动抛出。异常也可以通过RAISE语句抛出  RAISE exception_name;    显式抛出异常是程序员处理声明的异常的习惯用法,但RAISE            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2015-01-21 11:37:34
                            
                                3410阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            createorreplaceproceduresp_lsf(v_khsqvarchar2)asV_SQLERRvarchar2(4000);V_CODEVARCHAR2(4000);beginupdateusersetSCDL='22'wherekhdxdh=100;---异常拦截方法体exceptionWHENOTHERSTHENV_SQLERR:=SQLCODE||':'||SQLERRM;            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-10-10 15:28:16
                            
                                1588阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            预定义例外
非预定义例外
自定义例外
例外函数
plsql编译警告            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2011-08-27 14:29:36
                            
                                1341阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             1.示例一:
Declare
  v_ival number;
  i number;
  error_message exception;  --声明一个出错处理
Begin
   for t in 1..10 loop
    i:=i+t;
    DBMS_OUT            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2012-03-31 09:15:17
                            
                                1110阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            5.1 异常处理概念5.1.1 预定义的异常处理5.1.2 非预定义的异常处理5.1.3 用户自定义的异常处理5.1.4  用户定义的异常处理5.2 异常错误传播5.2.1 在执行部分引发异常错误5.2.2 在声明部分引发异常错误5.3 异常错误处理编程5.4  在 P            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2014-05-05 10:49:12
                            
                                602阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            异常处理一(异常表通用型)新建异常处理表create table ogg.exception_log     ( replicat_name varchar2(10),       table_name varchar2(100),       errno number,       db            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-08-19 10:40:56
                            
                                709阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在oracle中捕获异常,通过//sql执行exceptionwhen others then dbms_output.putline('exception');其中others表示捕获未命名的异常。而其他异常包括access_into_null 未定义对象 case_not_found case中若未包含相应的when,并且没有设置 collection_is_null 集合元素未初始化 curser_already_open 游标已经打开 dup_val_on_index 唯一索引对应的列上有重复的值 invalid_cursor 在不合法的游标上进行操作 invalid.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2013-07-09 15:58:00
                            
                                2227阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            对于Oracle的存储过程,抛出异常可以抛向代码或是用表记录。如果你的系统应用有很多节点,像我们40个节点,如果抛错抛到代码里面,错误根本就无法找到,最好是错误用表记录。记录错误的这个功能最好是通用的 1 --建立错误日志表 2 3 create table PUB_PROC_ERR_LOG 4 ( 5 LOG_ID NUMBER, 6 MODULE_NAME VARCHAR2(10...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-15 17:23:00
                            
                                1225阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ORACLE 异常错误处理本篇主要内容如下:5.1 异常处理概念5.1.1 预定义的异常处理5.1.2 非预定义的异常处理5.1.3 用户自定义的异常处理5.1.4  用户定义的异常处理5.2 异常错误传播5.2.1 在执行部分引发异常错误5.2.2 在声明部分引发异常错误5.3 异常错误处理编程5.4  在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2013-08-12 14:43:05
                            
                                312阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            异常处理系统预定义异常(有名字的错误代码):TOO_MANY_ROWS : SELECT INTO返回多行INVALID_CURSOR :非法指针操作(关闭已经关闭的游标)ZERO_DIVIDE :除数等于零DUP_VAL_ON_INDEX :违反唯一性约束ACCESS_INTO_NULL: 未定义对象CASE_NOT_FOUND: CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2015-06-18 15:01:39
                            
                                523阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            预定义异常; 非预定义异常 pragma exception_init; 自定义异常 raise;自定义异常, 改变错误信息: raise_application_error;            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-03-13 15:18:07
                            
                                476阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Oracle数据库中的异常:没有异常的转移,因为没有受检异常和非受检异常得区分。 1.异常的产生: 2.异常的处理: declare --变量定义,初始化赋值。 begin --变量的赋值,函数调用,if,while等。 exception --异常处理代码 when others then 异常处            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2014-07-07 15:55:00
                            
                                72阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为ORA-xxxxx形式的Oracle错误号)、PL/SQL运行错误或用户定义条件(不一写是错误),都可以。当然了,PL/SQL编译错误不能通过PL/SQL异常处理来处理,因为这些错误发生在PL/SQL程序执行之前。ORACLE提供异常情况(E            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2017-12-21 10:26:03
                            
                                1837阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            预定义异常; 非预定义异常 pragma exception_init; 自定义异常 raise;自定义异常, 改变错误信息: raise_application_error;            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-03-13 15:25:36
                            
                                326阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            •什么是异常?Oracle中出现错误的情形通常分为编译时错误(compile-timeerror)            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-05 14:58:46
                            
                                135阅读