How to use Merge Statement in Stored Proc

Database

How to use Merge Statement in Stored Proc

Merge Statement Error code 5758

Could some please help on this .Getting below error while executing Merge Statement on Teradata 13.10 . 

Error :- Teradata code 5758 The search condition must fully specify the Target table primary index and partition column(s)

PI For Source Table is ENG_ID while Target table having PI as SERLZD_ENG_SER_NUM. 

MERGE INTO  S_E_TGT_REPLICA setr

             USING  S_E_STG  ses

             ON  ses.ENG_ID = setr.SRC_ENG_SRS_NUM AND

                      ses.CUSTOMER_CODE    = setr.SRC_ICAO_CD

       WHEN MATCHED THEN

                              UPDATE  SET     ENG_SRS_VLDTN_DT=CAST('9999-12-31 23:59:59' AS TIMESTAMP(0))

       WHEN NOT MATCHED THEN

          INSERT  (

     SERLZD_ENG_SER_NUM  ,

      LGCL_DEL_IND ,

      SERLZD_ENG_STAT_CD  ,

      N1_MDFR  ,

     VLD_ENG_SRS_NUM  ,

      ENG_CNFG_DT  ,

      TCC_TMR  ,

      EGT_SHNT  ,

      VLD_ENG_OWNR_IATA_CD  ,

      SRC_ENG_OWNR_IATA_CD  ,

      ENG_OWNR_VLDTN_DT  ,

      SRC_ENG_SRS_NUM  ,

      ENG_SRS_VLDTN_DT  ,

      ICAO_CD ,

      SRC_ICAO_CD ,

      ARLN_VLDTN_DT,

      FALLOUT_IND )

     VALUES  (

                           ses.ENG_ID,

                          'N'

                          ,ses.ENG_STATUS

                         ,ses.N1_MODIFIER

                          ,ses.ENG_ID

                         ,NULL

                         ,ses.TCC_TIMER --VLD_ENG_SRS_NUM

                         ,NULL--ENG_shunt

                         ,NULL --VLD_ENG_OWNR_IATA_CD

                         ,NULL  --SRC_ENG_OWNR_IATA_CD

                         ,CURRENT_TIMESTAMP(0)

                          , ses.ENG_ID

                          ,CURRENT_TIMESTAMP(0)

                         ,ses. CUSTOMER_CODE

                         ,ses.CUSTOMER_CODE

                         ,CURRENT_TIMESTAMP(0)

                         , 'N'   );

      Thanks in advance

       pravek

Tags (1)