日期:2014-05-17  浏览次数:20864 次

oracle中存储过程中的游标中的insert语句异常捕获问题
create   or   replace   procedure   pro_DataCopyAndCheck   is
ls_COD             varchar2(50);
ls_STA             VARCHAR2(1);
ls_LNG             VARCHAR2(3);
ld_EMS             DATE;
ls_OPR_EMS     VARCHAR2(20);
ls_REV             VARCHAR2(3);
ld_REV             DATE;
ls_OPR_REV     VARCHAR2(20);
ls_SIG_PRD     VARCHAR2(1);
ls_FIL_LAME   VARCHAR2(1);
ls_COD_LAME   VARCHAR2(5);
cursor   get70TableData   is
    select   I94_COD_QCP,I94_STA_QCP,I94_LNG_QCP,D94_EMS_QCP,T94_OPR_EMS_QCP,
                  I94_REV_QCP,D94_REV_QCP,T94_OPR_REV_QCP,I27_SIG_PRD,
                  F94_FIL_LAME,I94_COD_LAME   from   TGED070_QCP_STANGING;
begin
    open   get70TableData;
    fetch   get70TableData   into
                ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
                ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME;
    while   get70TableData%found   loop
                insert   into   TGED070_QCP   values
                (ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
                ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME);
               
                EXCEPTION
                         
                        when   others   then
                        ls_COD   :=   " ";
                           
                fetch   get70TableData   into
                            ls_COD,ls_STA,ls_LNG,ld_EMS,ls_OPR_EMS,ls_REV,ld_REV,
                            ls_OPR_REV,ls_SIG_PRD,ls_FIL_LAME,ls_COD_LAME;
    end   loop;
    Close   get70TableData;
end   pro_DataCopyAndCheck;


PL/SQL中的错误信息:
PROCEDURE   SYSTEM.PRO_DATACOPYANDCHECK   编译错误

错误:   PLS-00103:   出现符号   "EXCEPTION "在需要下列之一时:
              begincasedeclareend
                    exitforgotoifloopmodnullpragmaraisereturnselectupdatewhile
                    with <an   identifier> <a   double-quoted   delimited-identifier>
                    <a   bind   variable> < <closecurrentde