17.00 - COBOL Pass-Thru INMOD - Parallel Data Pump

Teradata® Parallel Data Pump Reference

prodname
Parallel Data Pump
vrm_release
17.00
created_date
June 2020
category
Programming Reference
featnum
B035-3021-220K
IDENTIFICATION DIVISION. 
PROGRAM-ID. INMOD2. 
AUTHOR. STV. 
INSTALLATION. TERADATA. 
DATE-WRITTEN. 
DATE-COMPILED. 
SECURITY. OPEN. 
REMARKS.
   THIS PROGRAM IS AN EXAMPLE OF A COBOL INMOD ROUTINE 
   WHICH RECEIVES A RECORD FROM TPump THEN MODIFIES OR 
   REJECTS IT.
ENVIRONMENT DIVISION. 
CONFIGURATION SECTION. 
SOURCE-COMPUTER. IBM-370. 
OBJECT-COMPUTER. IBM-370. 
DATA DIVISION. 
WORKING-STORAGE SECTION. 
01  COUNTROWS                  PICTURE S9(4) COMP VALUE +0. 
01  REJROWS                    PICTURE S9(4) COMP VALUE +0. 
01  INSROWS                    PICTURE S9(4) COMP VALUE +0. 
01  I                          PICTURE S9(4) COMP. 
01  MATCHFLAG  PIC 9.
      88 NOTMATCH  VALUE 0. 
      88 MATCH     VALUE 1.
LINKAGE SECTION. 
01  STRUCT-1.
    02  RETURN-INDICATE        PIC S9(9) COMP.
    02  RECORD-LEN             PIC S9(9) COMP.
    02  RECORD-BODY OCCURS 80 TIMES.
      03  DATA-AREA1           PIC X. 
01  STRUCT-2.
    02  SEQ-NUMBER             PIC S9(9) COMP. 
    02  PARM-LIST.
        05 PARM-LENGTH          PIC S9(4) COMP. 
        05 PARM-STRING OCCURS 80 TIMES.
           07 PARM-DATA        PIC X.
PROCEDURE DIVISION USING STRUCT-1, STRUCT-2. 
BEGIN. 
MAIN.
    DISPLAY “================================================” 
    IF RETURN-INDICATE = 6 THEN
       DISPLAY “INMOD2 CALLED - RETURN CODE 6 ” 
       PERFORM INITIALIZE 
       GOBACK
    ELSE 
    IF RETURN-INDICATE = 7 THEN
       DISPLAY “INMOD2 CALLED - RETURN CODE 7 ” 
       PERFORM PROCESS-RECORD 
       GOBACK
    ELSE 
       IF RETURN-INDICATE = 5 THEN
       DISPLAY “INMOD2 CALLED - RETURN CODE 5 ” 
       PERFORM FINALIZE 
       GOBACK
    ELSE
       DISPLAY “BLKEXIT CALLED - RETURN CODE X ” 
       MOVE 0 TO RETURN-INDICATE. 
       GOBACK.
INITIALIZE.
    MOVE 0 TO COUNTROWS  INSROWS REJROWS. 
    MOVE 0 TO RETURN-INDICATE.
PROCESS-RECORD. 
    ADD 1 TO COUNTROWS. 
    MOVE 0 TO RETURN-INDICATE. MOVE 1 TO I. 
    MOVE 1 TO MATCHFLAG. 
    PERFORM COMPARE UNTIL (I > PARM-LENGTH) OR (NOTMATCH). 
    IF NOTMATCH THEN
       DISPLAY “REJECTED” 
       ADD 1 TO REJROWS 
       MOVE 0 TO RECORD-LEN
    ELSE 
       DISPLAY “ACCEPTED” 
       ADD 1 TO INSROWS.
COMPARE.
    IF (RECORD-BODY(I) = PARM-STRING(I)) THEN 
       NEXT SENTENCE
    ELSE 
       MOVE 0 TO MATCHFLAG.
    ADD 1 TO I. 
FINALIZE.
    MOVE 0 TO RETURN-INDICATE. 
DISPLAY “NUMBER OF TOTAL RECORDS    = ” COUNTROWS. 
DISPLAY “NUMBER OF REJECTED RECORDS = ” REJROWS. 
DISPLAY “NUMBER OF ACCEPTED RECORDS = ” INSROWS. 
GOBACK.