IF (V_COUNT > 0) THEN
--更新ets_item_info
UPDATE ETS_ITEM_INFO
SET FINANCE_PROP = 'CTZC',
LAST_UPDATE_DATE = SYSDATE,
LAST_UPDATE_BY =P_USER_ID
WHERE SYSTEMID = P_SYSTEMID;
RETURN 1;
ELSE
GOTO lable; END IF;
<<lable>>
NULL;
EXCEPTION WHEN OTHERSTHEN
BEGIN
P_ERRMSG := SQLERRM;
RETURN 0;
END;
<<lable>> 后面不能直接跟EXCEPTION这种关键字类的语句,要用NULL把标签跟关键字隔开。类似的关键字还有ENDLOOP之类的。。。
PROCEDURE PRC_F_yaa012_yw_ht (
prm_aae076 IN ad04a1.aae076%TYPE, -- 财务接口流水号
prm_yad060 IN ad04a1.yad060%TYPE, -- 收付种类
prm_yab003 IN ad04a1.yab003%TYPE, -- 社保经办机构
prm_YAA012 IN ad04a1.yaa012%TYPE, -- 财务处理标志
prm_AAB191 IN ad04a1.AAB191%TYPE, -- 实际到账日期
prm_AAE036 IN ad04a1.AAE036%TYPE, -- 登账日期
prm_AppCode OUT VARCHAR2, -- 执行代码
prm_ErrorMsg OUT VARCHAR2) -- 出错信息
IS
--定义变量
var_bz CHAR(1);
BEGIN
/*初始化变量*/
prm_AppCode := pkg_COMM.gn_def_OK;
prm_ErrorMsg := '';
var_bz := SUBSTR(prm_yad060,1,1);
IF var_bz = 'R' THEN --居民医疗
--调用居民医保业务表同步过程
pkg_P_Comm.prc_P_updateFundAllocation
(prm_aae076 , --单据号
prm_yad060 , --收付种类
prm_yab003 , --社保经办机构
prm_yaa012 , --财务处理标志
prm_aab191 , --到帐时间
prm_AAE036 , --财务结算日期
prm_AppCode , --错误代码
prm_ErrorMsg ); --错误内容
IF prm_AppCode <> pkg_COMM.gn_def_OK THEN
GOTO label_ERROR;
END IF;
ELSIF var_bz = 'K' THEN --医疗待遇
pkg_k_PaymentComm.prc_k_PaymentWriteYw
( prm_aae076 , -- 财务接口流水号
prm_yad060 , -- 收付种类
prm_yab003 , -- 社保经办机构
prm_YAA012 , -- 财务处理标志
prm_AAB191 , -- 实际到账日期
prm_AAE036 , -- 登账日期
prm_AppCode , -- 错误代码
prm_ErrorMsg ); -- 错误内容
IF prm_AppCode <> pkg_COMM.gn_def_OK THEN
GOTO label_ERROR;
END IF;
ELSE
prm_AppCode := PRE_ERRCODE ||'0506';
prm_ErrorMsg := '无法同步财务接口流水号为' || prm_aae076||'的业务表!';
GOTO label_ERROR;
END IF;
/*成功处理*/
<<label_OK>>
/*关闭打开的游标*/
/*给返回参数赋值*/
prm_AppCode := pkg_COMM.gn_def_OK ;
prm_ErrorMsg := '' ;
RETURN ;
/*处理失败*/
<<label_ERROR>>
/*关闭打开的游标*/
/*给返回参数赋值*/
IF prm_AppCode = pkg_COMM.gn_def_OK THEN
prm_AppCode := PRE_ERRCODE || pkg_COMM.gn_def_ERR;
END IF ;
RETURN ;
EXCEPTION
-- WHEN NO_DATA_FOUND THEN
-- WHEN TOO_MANY_ROWS THEN
-- WHEN DUP_VAL_ON_INDEX THEN
WHEN OTHERS THEN
/*关闭打开的游标*/
prm_AppCode := PRE_ERRCODE || pkg_COMM.gn_def_ERR;
prm_ErrorMsg := '数据库错误'|| SQLERRM ;
RETURN;
END PRC_F_yaa012_yw_ht;