DB2 trigger error

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • amijai11
    New Member
    • Dec 2009
    • 1

    DB2 trigger error

    I am getting following error for a trigger, please let me know if anyone knows how to fix the problem. Thks in advance for the help.

    SQLCODE = -20100, ERROR: AN ERROR OCCURRED WHEN BINDING A TRIGGERED SQL STATEMENT. INFORMATION RETURNED: SECTION
    NUMBER : 2 SQLCODE -104, SQLSTATE 42601, AND MESSAGE TOKENS -,TABLE STATEMENT , . SCROLL INSENSITIVE SENSITIVE
    ASENSITIVE NO

    --#SET TERMINATOR ~

    CREATE TRIGGER CWSRCAL0
    AFTER INSERT ON CLAIM_TRANSACTI ON
    REFERENCING NEW AS N
    FOR EACH ROW MODE DB2SQL
    WHEN (N.CTX_TRS_TYPE _CD < 90)
    BEGIN ATOMIC
    DECLARE WS-COUNT INTEGER;
    SET WS-COUNT =
    (SELECT COUNT (*)
    FROM CLAIM_SUPPORT_1 _V1 CS01_COV_DESC
    WHERE CS01_COV_DESC.C S01_TABLE_ID = 'C280'
    AND CS01_COV_DESC.C S01_CODE =
    (SELECT COVDESC.CCP_COV _MOD_CD
    FROM CLM_COV_PKG_V1 COVDESC
    WHERE COVDESC.CCP_CLA IM_NBR = N.CTX_CLAIM_NBR
    AND COVDESC.CCP_PKG _TYPE_CD = N.CTX_COV_TYPE_ CD));
    IF WS-COUNT = 0 THEN
    INSERT INTO CLM_ACTIVITY_LO G_V
    (CAL_CLAIM_NBR
    ,CAL_ACY_TYPE_C D
    ,CAL_SORT_TS
    ,CAL_OBJECT_ID
    ,CAL_ORT_CLT_ID
    ,CAL_ACTIVITY_D ES
    ,CAL_ACTIVITY_A MT
    ,CAL_CLN_CLT_ID )
    SELECT
    N.CTX_CLAIM_NBR
    ,'CTX'
    ,N.CTX_SORT_TS
    ,CLAIM.CLM_CSR_ CLAIM_NBR
    ,ORIGINATOR.SEC _USR_CLT_ID
    ,RTRIM(CHAR(( 'Added ' ||
    RTRIM(CS01_FIN_ TYPE.CS01_CODE_ DES )||' '||
    RTRIM(CS01_TRAN S_TYPE.CS01_COD E_DES ) ||' '||
    RTRIM(CS01_COVE RAGE_TYPE.CS01_ CODE_DES ) ), 100))
    ,N.CTX_TRS_AMT
    ,N.CTX_CLIENT_I D
    FROM
    CLAIM_TAB_V1 CLAIM
    ,SEC_USRS_V ORIGINATOR
    ,CLAIM_SUPPORT_ 1_V1 CS01_COVERAGE_T YPE
    ,CLAIM_SUPPORT_ 1_V1 CS01_FIN_TYPE
    ,CLAIM_SUPPORT_ 1_V1 CS01_TRANS_TYPE
    WHERE
    (N.CTX_CLAIM_NB R = CLAIM.CLM_CLAIM _NBR)
    AND (N.CTX_COV_TYPE _CD = CS01_COVERAGE_T YPE.CS01_CODE
    AND CS01_COVERAGE_T YPE.CS01_TABLE_ ID IN ('C039','C169') )
    AND (N.CTX_FIN_TYPE _CD = CS01_FIN_TYPE.C S01_CODE
    AND CS01_FIN_TYPE.C S01_TABLE_ID='C 046')
    AND (N.CTX_TRS_TYPE _CD = INTEGER(CS01_TR ANS_TYPE.CS01_C ODE)
    AND CS01_TRANS_TYPE .CS01_TABLE_ID= 'C044')
    AND (N.CTX_ENTRY_OP R_ID = ORIGINATOR.SEC_ USR_ID);
    ELSE
    INSERT INTO CLM_ACTIVITY_LO G_V
    (CAL_CLAIM_NBR
    ,CAL_ACY_TYPE_C D
    ,CAL_SORT_TS
    ,CAL_OBJECT_ID
    ,CAL_ORT_CLT_ID
    ,CAL_ACTIVITY_D ES
    ,CAL_ACTIVITY_A MT
    ,CAL_CLN_CLT_ID )
    SELECT
    N.CTX_CLAIM_NBR
    ,'CTX'
    ,N.CTX_SORT_TS
    ,CLAIM.CLM_CSR_ CLAIM_NBR
    ,ORIGINATOR.SEC _USR_CLT_ID
    ,RTRIM(CHAR(( 'Added ' ||
    RTRIM(CS01_FIN_ TYPE.CS01_CODE_ DES )||' '||
    RTRIM(CS01_TRAN S_TYPE.CS01_COD E_DES ) ||' '||
    RTRIM(CS01_COVE RAGE_TYPE.CS01_ CODE_DES ) ||' '||
    RTRIM(CS01_COV_ DESC.CS01_CODE_ DES ) ), 100))
    ,N.CTX_TRS_AMT
    ,N.CTX_CLIENT_I D
    FROM
    CLAIM_TAB_V1 CLAIM
    ,SEC_USRS_V ORIGINATOR
    ,CLAIM_SUPPORT_ 1_V1 CS01_COVERAGE_T YPE
    ,CLAIM_SUPPORT_ 1_V1 CS01_FIN_TYPE
    ,CLAIM_SUPPORT_ 1_V1 CS01_TRANS_TYPE
    ,CLAIM_SUPPORT_ 1_V1 CS01_COV_DESC
    WHERE
    (N.CTX_CLAIM_NB R = CLAIM.CLM_CLAIM _NBR)
    AND (N.CTX_COV_TYPE _CD = CS01_COVERAGE_T YPE.CS01_CODE
    AND CS01_COVERAGE_T YPE.CS01_TABLE_ ID IN ('C039','C169') )
    AND (N.CTX_FIN_TYPE _CD = CS01_FIN_TYPE.C S01_CODE
    AND CS01_FIN_TYPE.C S01_TABLE_ID='C 046')
    AND (N.CTX_TRS_TYPE _CD = INTEGER(CS01_TR ANS_TYPE.CS01_C ODE)
    AND CS01_TRANS_TYPE .CS01_TABLE_ID= 'C044')
    AND (N.CTX_ENTRY_OP R_ID = ORIGINATOR.SEC_ USR_ID)
    AND (CS01_COV_DESC. CS01_TABLE_ID ='C280'
    AND CS01_COV_DESC.C S01_CODE =
    (SELECT COVDESC.CCP_COV _MOD_CD
    FROM CLM_COV_PKG_V1 COVDESC
    WHERE COVDESC.CCP_CLA IM_NBR = CLAIM.CLM_CLAIM _NBR
    AND COVDESC.CCP_PKG _TYPE_CD = N.CTX_COV_TYPE_ CD));
    END-IF;
    END

    ~

    --#SET TERMINATOR ;

    COMMIT ;
    
  • Parnamwulan
    New Member
    • Apr 2008
    • 16

    #2
    Hello Amijai,

    you dont have properly set the terminator for the statement ...

    you can run it with
    db2 -td terminator

    and put the terminator after each section which needs to be run before continuing ...

    Comment

    Working...