case when 在存储过程中的运用
---此 存储过程 表面上看吓一下跳,其实很简单,其框架无非就是一个 if -- then -XX--else -YY- end if,在XX和YY处增加了查询而已
CREATE OR REPLACE PROCEDURE USP_SUB_LU_FAC_S#LU_APP_ID#EFF
/*
Copyright(c) 1987-2008 xxx.
Remark : First Creation
*/
(
lu_app_id_in IN TBL_LU_FAC.lu_app_id%TYPE,
result_cursor OUT types.cursor_type
)
AS
v_max_custom_fld_9 TBL_LU_FAC.custom_fld_9%TYPE;
v_lmt_available TBL_LU_FAC.amt_appr%TYPE;
v_mt_fac_cd TBL_LU_FAC.mt_fac_cd%TYPE;
v_last_disb NUMBER;
v_last_disb_mt_time_cd VARCHAR2(20);
BEGIN
SELECT MAX(TO_NUMBER(TBL_LU_FAC.custom_fld_9))
INTO v_max_custom_fld_9
FROM TBL_LU_FAC
WHERE TBL_LU_FAC.lu_app_id = lu_app_id_in;
SELECT TBL_LU_FAC.MT_FAC_CD INTO v_mt_fac_cd
FROM TBL_LU_FAC WHERE TBL_LU_FAC.lu_app_id = lu_app_id_in
AND ROWNUM =1;
BEGIN
SELECT pp.last_disb_tenure,pp.last_disb_mt_time_cd
INTO v_last_disb,v_last_disb_mt_time_cd
FROM ebmaint.tbl_mt_prod_policy pp,
ebmaint.TBL_MT_FAC mf
WHERE mf.mt_prod_policy_cd = pp.cd
AND mf.cd = v_mt_fac_cd;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
IF v_mt_fac_cd LIKE 'P%' THEN
OPEN result_cursor FOR
SELECT
TBL_LU_FAC.ID,
TBL_LU_FAC.LU_APP_ID,
TBL_LU_FAC.FAC_ID,
TBL_LU_FAC.CIF_ID,
TBL_LU_FAC.CONTRACT_NO,
TBL_LU_FAC.FAC_ALCT_CIF_ID,
TBL_LU_FAC.ACCT_NO,
TBL_LU_FAC.LIMIT_NO,
TBL_LU_FAC.CP_MT_FAC_TYP_CD,
TBL_LU_FAC.MT_FAC_CD,
TBL_LU_FAC.LU_MT_PUR_CD,
TBL_LU_FAC.MT_BR_CD,
TBL_LU_FAC.MT_CUR_CD,
TBL_LU_FAC.EXCHG_RATE,
TBL_FAC.MT_CUR_CD "createCurrencyCode",
USF_GET_MT_CUR_DSCP(TBL_FAC.MT_CUR_CD) "createCurrencyDescription",
TBL_FAC.EXCHG_RATE "createExchangeRate",
TBL_LU_FAC.INFLATION_CLEARANCE_RATE,
TBL_LU_FAC.AMT_APPLIED,
TBL_LU_FAC.AMT_SHIFTED,
TBL_LU_FAC.AMT_APPR,
TBL_LU_FAC.TENURE_MT_TIME_CD,
TBL_LU_FAC.TENURE_APPLIED,
TBL_LU_FAC.TENURE_APPR,
TBL_LU_FAC.GRACE_PRD,
TBL_LU_FAC.CONTRACT_NO,
TBL_LU_FAC.DT_CONTRACT_SIGNED,
TBL_LU_FAC.DT_REVIEW,
TBL_LU_FAC.NEXT_REVIEW_PRD,
TBL_LU_FAC.NEXT_REVIEW_PRD_MT_TIME_CD,
TBL_LU_FAC.DT_NEXT_REVIEW,
TBL_LU_FAC.MT_REPYMT_TYP_CD,
TBL_LU_FAC.REPYMT_ACCT_NO,
TBL_LU_FAC.MT_PYMT_TERM_CD,
TBL_LU_FAC.OTHER_PYMT_TERM_DSCP,
TBL_LU_FAC.IS_TEMP,
TBL_LU_FAC.TEMP_PRD_MT_TIME_CD,
TBL_LU_FAC.TEMP_PRD,
TBL_LU_FAC.ROLLOVER_LMT,
TBL_LU_FAC.ROLLOVER_TERM_MT_TIME_CD,
TBL_LU_FAC.ROLLOVER_TERM,
TBL_LU_FAC.FX_LMT,
TBL_LU_FAC.PRE_STTLMT_LMT,
TBL_LU_FAC.IS_EFFECT_NOT_CLEARED,
TBL_LU_FAC.IS_AGAINST_FDR,
TBL_LU_FAC.MT_GRTEE_TYP_CD,
TBL_LU_FAC.BENEFICIARY_NM,
TBL_LU_FAC.DT_MATURITY,