Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> MERGE COMMAND WITH DECODE AND INNER SELECT
I have the below MERGE command with a decode function as part of the
select clause.Irrespective of the data, the value of column
ABND_ELEC_PYMT_FEE_IN, always evaluates to a 'N'. once the MEREG
command runs successfully.
MERGE INTO ELECPYMT_OWNER.UNUSE_ELEC_PYMT_FEE_RPT_at_DVTBOLT T USING (SELECT DISTINCT
FEE.ELEC_PYMT_FEE_ID,FEE.RQST_PYMT_PROC_DT,FEE.ALT_ELEC_PYMT_FEE_ID, DECODE( NVL(p.ELEC_PYMT_FEE_ID,0),0,'Y', 'N') AS ABND_ELEC_PYMT_FEE_IN, FEE.CRE_USR_ID,FEE.CRE_TS,FEE.UPDT_USR_ID,FEE.UPDT_TS FROM (SELECT E.ELEC_PYMT_FEE_ID,E.RQST_PYMT_PROC_DT,E.ALT_ELEC_PYMT_FEE_ID,E.UPDT_TS FROM ELEC_PYMT_FEE E, ELEC_PYMT PYMT WHERE E.ELEC_PYMT_FEE_ID = PYMT.ELEC_PYMT_FEE_ID (+) AND PYMT.ELEC_PYMT_FEE_ID IS NULL AND (E.UPDT_TS BETWEEN TO_DATE('&1','MM/DD/YYYY HH24:MI:SS') AND TO_DATE('&2','MM/DD/YYYY HH24:MI:SS')- (3/24))
)
) FEE , ELEC_PYMT P WHERE FEE.alt_elec_pymt_fee_id = P.ELEC_PYMT_FEE_ID (+)) E ON( T.ELEC_PYMT_FEE_ID = E.ELEC_PYMT_FEE_ID AND T.RQST_PYMT_PROC_DT = E.RQST_PYMT_PROC_DT
T.ALT_ELEC_PYMT_FEE_ID = E.ALT_ELEC_PYMT_FEE_ID, T.ABND_ELEC_PYMT_FEE_IN = E.ABND_ELEC_PYMT_FEE_IN,WHEN NOT MATCHED THEN
T.ALT_ELEC_PYMT_FEE_ID, T.ABND_ELEC_PYMT_FEE_IN, )VALUES ( E.ALT_ELEC_PYMT_FEE_ID, E.ABND_ELEC_PYMT_FEE_IN, )
if i execute the select clause all by itself without the MERGE command , as below, then the value of ABND_ELEC_PYMT_FEE_IN evaluates perfectly with values of 'Y' as well as 'N' depending upon the data.
SELECT DISTINCT
FEE.ELEC_PYMT_FEE_ID,FEE.RQST_PYMT_PROC_DT,FEE.ALT_ELEC_PYMT_FEE_ID, DECODE( NVL(p.ELEC_PYMT_FEE_ID,0),0,'Y', 'N') AS ABND_ELEC_PYMT_FEE_IN, FEE.CRE_USR_ID,FEE.CRE_TS,FEE.UPDT_USR_ID,FEE.UPDT_TS FROM (SELECT E.ELEC_PYMT_FEE_ID,E.RQST_PYMT_PROC_DT,E.ALT_ELEC_PYMT_FEE_ID,E.UPDT_TS FROM ELEC_PYMT_FEE E, ELEC_PYMT PYMT WHERE E.ELEC_PYMT_FEE_ID = PYMT.ELEC_PYMT_FEE_ID (+) AND PYMT.ELEC_PYMT_FEE_ID IS NULL AND (E.UPDT_TS BETWEEN TO_DATE('&1','MM/DD/YYYY HH24:MI:SS') AND TO_DATE('&2','MM/DD/YYYY HH24:MI:SS')- (3/24)
)
) FEE , ELEC_PYMT P WHERE FEE.alt_elec_pymt_fee_id = P.ELEC_PYMT_FEE_ID (+)
But when I run the MERGE command as a whole the value of column ABND_ELEC_PYMT_FEE_IN, always evaluates to a 'N'. Am I missing something ? Is this an issue of MERGE command ? Please help.
Thanks Received on Wed Aug 24 2005 - 15:03:35 CDT
![]() |
![]() |