知识大全 PL/SQL中的几种异常处理方法的源代码

Posted

篇首语:八成熟,十成收;十成熟,二成丢。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PL/SQL中的几种异常处理方法的源代码相关的知识,希望对你有一定的参考价值。

PL/SQL中的几种异常处理方法的源代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  用Fetch into a cursor%TYPE把要处理的数据放到记录集里 当一条数据不符条件时 用标签<<NEXT_RECORD>>和GOTO NEXT_RECORD     Function Name   : CalculateImportCharge     Function Desc   : Calculate Import Charge     Created by    : Author     Created Date   :        FUNCTION CalculateImportCharge (        p_i_job_id    IN VARCHAR         p_i_as_of_date_id IN VARCHAR ) RETURN NUMBER      AS        CURSOR cur_ShipBlHeader IS          SELECT import_folder_no          FROM GMY_SHIP_BL_HEADER          WHERE CANCEL_FLG = GMY_GA _PKG BL_CANCEL_FLG_OFF;        rec_ShipBlHeader    cur_ShipBlHeader%ROWTYPE;      BEGIN        OPEN cur_ShipBlHeader;        FETCH cur_ShipBlHeader INTO rec_ShipBlHeader;        WHILE cur_ShipBlHeader%FOUND LOOP          x_num_error_code := GMY_GA _PKG CheckValidMasterBlNo (            p_i_job_id             p_i_as_of_date_id             rec_ShipBlHeader import_folder_no             x_vch_message);          IF x_num_error_code            IN (GMY_GA _PKG gn#NG GMY_GA _PKG INVALID_BL_NO) THEN            x_vch_message :=                p_i_job_id                || WARNING: Function CheckValidMasterBlNo @                 || Import folder                 || rec_ShipBlHeader import_folder_no                || Invalid BL No ;            _LOG PUTLINE (p_i_job_id x_vch_message);            GOTO NEXT_RECORD;          END IF;          x_num_error_code := CheckExistsOfAccDate (            p_i_job_id             p_i_as_of_date_id             rec_ShipBlHeader import_folder_no);          IF x_num_error_code = GMY_GA _PKG gn#NG THEN            GOTO NEXT_RECORD;          END IF;          MIT;          <<NEXT_RECORD>>          FETCH cur_ShipBlHeader INTO rec_ShipBlHeader;        END LOOP;        CLOSE cur_ShipBlHeader;        RETURN GMY_GA _PKG gn#OK;      EXCEPTION        WHEN OTHERS THEN          x_vch_message :=              p_i_job_id             || ERROR:  Function CalculateImportCharge @              || SUBSTR (SQLERRM (SQLCODE) );          _LOG PUTLINE (p_i_job_id x_vch_message);          RETURN GMY_GA _PKG gn#NG;    END CalculateImportCharge;     当使用the Cursor FOR Loop循环时 在Loop循环里 把会出问题的情况写进一个独立的block块中 这个块包括完整的begin end部分及exception异常处理部分 这样即使一条数据出现异常 也会继续执行下一条      Function Name   : GenerateInsCostInfRec     Function Desc   : Generate records to transmit in INF table     Created by    : SISS(AP)     Created Date   :       FUNCTION GenerateInsCostInfRec (        p_i_job_id       IN    VARCHAR         p_i_as_of_date_id   IN    VARCHAR ) RETURN NUMBER      AS        CURSOR cur_cost IS          SELECT cost ROWID costRowId               cost import_folder_no               cost insur_trans_id          FROM GMY_COST_BL cost              GMY_MON_MST mst          WHERE cost import_folder_no=invheader import_folder_no          AND cost billing_amt_num IS NOT NULL          AND cost billing_amt_num!=           AND cost insur_db_cr!= ;      BEGIN        FOR rec_cost IN cur_cost LOOP          BEGIN            x_num_ret_value := GMY_GA _PKG CheckValidMasterBlNo(                    p_i_job_id                     p_i_as_of_date_id                     rec_cost import_folder_no                     x_vch_error_msg);            IF x_num_ret_value = GMY_GA _PKG VALID_BL_NO THEN              INSERT INTO GMY_COST_INS_INF(                cost_trx_id                 created_by                 program_name)              VALUES(                GMY_COST_INS_INF_S NEXTVAL                 PRG_NAME                 PRG_NAME);            ELSIF x_num_ret_value = GMY_GA _PKG INVALID_BL_NO THEN              x_vch_error_msg := p_i_job_id                || Import folder                 || rec_cost import_folder_no                || has repeated BL No with other import folder                 || Failed in insurance cost transmission ;              _LOG PUTLINE(p_i_job_id x_vch_error_msg);            END IF;          EXCEPTION            WHEN OTHERS THEN              IF SQL%ROWCOUNT > THEN  check for too many rows                 x_vch_error_msg := p_i_job_id|| ||                  SUBSTR(SQLERRM(SQLCODE) );                _LOG PUTLINE(p_i_job_id x_vch_error_msg);              ELSE                x_vch_error_msg := p_i_job_id|| ||                  SUBSTR(SQLERRM(SQLCODE) );                _LOG PUTLINE(p_i_job_id x_vch_error_msg);            END IF;          END;        END LOOP;        MIT;        RETURN GMY_GA _PKG gn#OK;      EXCEPTION       WHEN OTHERS THEN         x_vch_error_msg := p_i_job_id|| ||SUBSTR(SQLERRM(SQLCODE) );         _LOG PUTLINE(p_i_job_id x_vch_error_msg);         ROLLBACK;         RETURN GMY_GA _PKG gn#NG;    END GenerateInsCostInfRec;     当使用the Cursor FOR Loop循环时 在Loop循环里 把会出问题的情况拆分成子函数 分别处理      Function Name   : CopyDsToActualDs     Function Desc   : Copy the records from DS DB to Actual DS DB      Created by     : Author     Created Date    :        FUNCTION CopyDsToActualDs (        p_i_job_id     IN  VARCHAR         p_i_as_of_date_id IN  VARCHAR ) RETURN NUMBER      IS        CURSOR cur_DsScc IS          SELECT *          FROM  GMY_DS_SCC;      BEGIN        FOR rec_DsHead IN cur_DsScc LOOP          x_num_error_code := InsToActualScc(   cha138/Article/program/Oracle/201311/18441

相关参考

知识大全 数据库PL/SQL异常处理(组图)

数据库PL/SQL异常处理(组图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在设计PL/S

知识大全 PL/SQL的几个概念区别

PL/SQL的几个概念区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  char和varcha

知识大全 PL/SQL最差实践

PL/SQL最差实践  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  超长的PL/SQL代码  影

知识大全 ASP.NET中处理异常的几种方式

ASP.NET中处理异常的几种方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  程序中使用tr

知识大全 PHP入门需要掌握的几种功能代码

PHP入门需要掌握的几种功能代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  经典循环例子&l

知识大全 oracle光标的使用

  在PL/SQL程序中对于处理多行记录的事务经常使用光标来实现  一显式光标在PL/SQL程序中定义的光标称作显式光标  显式光标处理需四个PL/SQL步骤:  cursor 光标名称&n

知识大全 SQL数据库实现递归查询的几种代码方法

SQL数据库实现递归查询的几种代码方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SQL数据

知识大全 PL/SQL程序结构(组图)

PL/SQL程序结构(组图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  什么是PL/SQL程

知识大全 pl/sql查询字段为科学计数法

  从pl/sql查询字段类型为number并且长度大于位的内容显示为科学计数法的计数方法  pl/sql  从pl/sql查询字段类型为number并且长度大于位的内容显示为科学计数法的计数方法后经

知识大全 PL/SQL中用光标查询多条记录

PL/SQL中用光标查询多条记录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PL/SQL光标