执行存储过程后如下:
CREATE OR REPLACE PROCEDURE STG.TESTLOOP(EXITCODE OUT NUMBER) IS /*********************************************************************** ** 存储过程详细说明 ** 存储过程名称: SAP_SO_QM_CUSTOMER ** 存储过程创建日期: 2018/03/17 ** 存储过程创建人: landor ** 目的: 增加后续 ** 输入参数: ** 输出参数: EXITCODE: 0=Success/1=Failure ** 返回值: ** 用法: ** ** 修订版本: ** 版本号 修订时间 修订人 描述 ** --------- ---------- ------------ ------------------------ ** 1.0 2018/03/17 landor 1.新建存储过程 **********************************************************************/ V_STEP NUMBER := 0; V_PKGNAME VARCHAR2 (80) := 'TESTLOOP'; V_PRONAME VARCHAR2 (80) := 'TESTLOOP'; V_ACTION VARCHAR2 (1); V_MAINTABLE VARCHAR2 (80); EXITCODE1 NUMBER := 0; e_ErrMessage VARCHAR2 (3000) := ''; BEGIN EXITCODE := 0; V_STEP := V_STEP + 1; V_ACTION := 'I'; V_MAINTABLE := 'C_SO'; FOR C_SO IN ( SELECT * FROM TESTSO ) LOOP UPDATE TESTORDER SET ITEM_ID = ITEM_ID||C_SO.CTYPE ,BOMID = TRIM(TESTORDER.BOMID)||C_SO.CTYPE WHERE SO_ID = C_SO.SO_ID AND SO_LINE_ID = C_SO.SO_LINE_ID AND ITEM_ID NOT LIKE '%C%'; COMMIT; END LOOP; EXCEPTION --总程序异常处理部分 WHEN OTHERS THEN BEGIN ROLLBACK; EXITCODE := 1; e_ErrMessage := e_ErrMessage || SUBSTR (SQLERRM, 1, 1000) || SUBSTR (DBMS_UTILITY.FORMAT_ERROR_BACKTRACE, 1, 2000); PKG_UTIL.CREATELOG (V_PKGNAME, V_PRONAME, V_STEP, V_ACTION, PKG_CONSTANT.CONS_MSG_EXCEPTION, e_ErrMessage, V_MAINTABLE); END; END; /