Monday, March 14, 2011

Program


CHECK PALINDROME TO JCL

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help
 -------------------------------------------------------------------------------
 EDIT       SSS005.AAJ.SOURCE(PAL) - 01.04                     Member PAL saved
 Command ===>                                                  Scroll ===> PAGE
 ****** ***************************** Top of Data ******************************
 000100        IDENTIFICATION DIVISION.                                      
 000200        PROGRAM-ID. PAL.                                              
 000300        DATA DIVISION.                                                
 000400        WORKING-STORAGE SECTION.                                      
 000500        01 N PIC X(10).                                                
 000600        01 N1 REDEFINES N.                                            
 000700         02 A PIC X OCCURS 10 TIMES.                                  
 000800        01 SL PIC 99.                                                  
 000900        01 I PIC 9 VALUE 1.                                            
 001000        01 J PIC 9.                                                    
 001100        01 M PIC 9.                                                    
 001200        01 FL PIC 9 VALUE 0.                                          
 001300        PROCEDURE DIVISION.                                            
 001400        PARA1.                                                        
 001500            ACCEPT N.                                                  
 001600            INSPECT N TALLYING SL FOR CHARACTERS BEFORE INITIAL SPACES.
 001700            COMPUTE M = SL / 2.                                        
 001800            MOVE SL TO J.                                              
 001900            PERFORM P2 UNTIL I > M.                                    
 002000            IF FL = 0                                                  
 002010            DISPLAY " STRING IS PALINDROME"                            
 002200            ELSE                                                      
 002300            DISPLAY " STRING IS NOT PALINDROME".                      
 002400            STOP RUN.                                                  
 002500        P2.                                                            
 002600            PERFORM P3 UNTIL J < M.                                    
 002700        P3.                                                            
 002800            IF A(I) NOT = A(J)                                        
 002900            MOVE 1 TO FL.                                              
 003000            COMPUTE I = I + 1.                                        
 003100            COMPUTE J = J - 1.                                        
 ****** **************************** Bottom of Data ****************************
                                                                              
                                                                              
                                                                              
                                                                              
                          

JCL


   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help          
 -------------------------------------------------------------------------------
 EDIT       SSS005.AAJ.SOURCE(PJCL) - 01.12                 Columns 00001 00072
 Command ===>                                                  Scroll ===> PAGE
 ****** ***************************** Top of Data ******************************
 ==MSG> -CAUTION- Profile changed to NUMBER ON STD (from NUMBER OFF).        
 ==MSG>           Data has valid standard numbers.                            
 000100 //SSS005A JOB NOTIFY=SSS005                                          
 000200 //JOBLIB DD DSN=SSS005.AAJ.LOAD,DISP=SHR                              
 000300 //S1 EXEC PGM=PAL                                                  
 000400 //SYSOUT DD SYSOUT=*                                                  
 000410 //SYSIN DD *                                                          
 000420 MADAM                                                                    
 000430 /*                                                                    
 000500 //                                                                    
 ****** **************************** Bottom of Data ****************************
                                                                              
               CHECK PRIME JCL
                  File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help
 -------------------------------------------------------------------------------
 EDIT       SSS005.AAJ.SOURCE(PRIME) - 01.03                Columns 00001 00072
 Command ===>                                                  Scroll ===> PAGE
 ****** ***************************** Top of Data ******************************
 000100        IDENTIFICATION DIVISION.                                      
 000200        PROGRAM-ID. PRIME.                                            
 000300        DATA DIVISION.                                                
 000400        WORKING-STORAGE SECTION.                                      
 000500        01 F PIC 9 VALUE 1.                                            
 000600        01 N PIC 99.                                                  
 000700        01 N1 PIC 99.                                                  
 000900        01 Q PIC 99.                                                  
 001000        01 R PIC 99.                                                  
 001010        01 I PIC 99.                                                  
 001100        PROCEDURE DIVISION.                                            
 001200        P1.                                                            
 001400            ACCEPT N.                                                  
 001500            COMPUTE N1 = N / 2.                                        
 001600            PERFORM P2 VARYING I FROM 2 BY 1 UNTIL I > N1.            
 001700            IF F = 1                                                  
 001800            DISPLAY N "IS PRIME"                                      
 001900            ELSE DISPLAY N "IS NOT PRIME".                            
 002000            STOP RUN.                                                  
 002100        P2.                                                            
 002200            DIVIDE N BY I GIVING Q REMAINDER R.                        
 002300            IF R = 0                                                  
 002400            MOVE 0 TO F.                                              
 ****** **************************** Bottom of Data ****************************
                                                                              
  F1=Help      F2=tso sdsf  F3=Exit      F4=sub       F5=Rfind     F6=ReC    
  F7=Up        F8=Down      F9=Swap     F10=Left     F11=Right    F12=END    







                                   JCL



   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help          
 -------------------------------------------------------------------------------
 EDIT       SSS005.AAJ.SOURCE(PJCL) - 01.12                 Columns 00001 00072
 Command ===>                                                  Scroll ===> PAGE
 ****** ***************************** Top of Data ******************************
 000100 //SSS005A JOB NOTIFY=SSS005                                          
 000200 //JOBLIB DD DSN=SSS005.AAJ.LOAD,DISP=SHR                              
 000300 //S1 EXEC PGM=PRIME                                                  
 000400 //SYSOUT DD SYSOUT=*                                                  
 000410 //SYSIN DD *                                                          
 000420 13                                                                    
 000430 /*                                                                    
 000500 //                                                                    
 ****** **************************** Bottom of Data ****************************
                                                                              




PGM TO EXTRACT INTEGERS FROM STRING JCL

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help
 -------------------------------------------------------------------------------
 EDIT       SSS005.AAJ.SOURCE(EXNO) - 01.01                 Columns 00001 00072
 Command ===>                                                  Scroll ===> PAGE
 ****** ***************************** Top of Data ******************************
 000100        IDENTIFICATION DIVISION.                                      
 000200        PROGRAM-ID. EXNO.                                              
 000300        DATA DIVISION.                                                
 000400        WORKING-STORAGE SECTION.                                      
 000500        01 N PIC X(10).                                                
 000600        01 N1 REDEFINES N.                                            
 000700         02 A PIC X OCCURS 10 TIMES.                                  
 000800        01 N2.                                                        
 000900         02 B PIC X OCCURS 10 TIMES.                                  
 001000        01 SL PIC 99.                                                  
 001100        01 I PIC 9.                                                    
 001200        01 J PIC 9 VALUE 1.                                            
 001300        01 C PIC 9 VALUE 0.                                            
 001400        PROCEDURE DIVISION.                                            
 001500        P1.                                                            
 001600            ACCEPT N.                                                  
 001700            INSPECT N TALLYING SL FOR CHARACTERS BEFORE INITIAL SPACES.
 001800            PERFORM P2 VARYING I FROM 1 BY 1 UNTIL I > SL.            
 001900            DISPLAY "THE NUMERIC VALUES ARE " N2.                      
 002000            STOP RUN.                                                  
 002100        P2.                                                            
 002200            IF A(I) IS NUMERIC                                        
 002300            COMPUTE C = C + 1                                          
 002400            PERFORM P3 UNTIL J > C.                                    
 002500        P3.
                MOVE A(I) TO B(J).
                COMPUTE J = J + 1.







                                 JCL


 000001 //SSS005F JOB NOTIFY=SSS005                                          
 000002 //JOBLIB DD DSN=SSS005.AAJ.LOAD,DISP=SHR                              
 000003 //S1 EXEC PGM=EXNO                              
 000005 //SYSOUT DD SYSOUT=*
        //SYSIN DD *
        12#4@44$
        /*                                
 000006 //                    


 EMAIL JCL


 EDIT       ESCUB01.AAJ.SOURCE(EMAIL) - 01.05               Columns 00001 00072
  ****** ***************************** Top of Data ******************************
 000001 //ESCUB01E JOB NOTIFY=&SYSUID                                        
 000002 //S1 EXEC PGM=IEBGENER                                                
 000003 //SYSIN DD DUMMY                                                      
 000004 //SYSPRINT DD SYSOUT=*                                                
 000005 //*                                                                  
 000006 //SYSUT1 DD *                                                        
 000007 HELO N1                                                              
 000008 MAIL FROM: <ESCUB01@N1.XYZ.COM>                                      
 000009 RCPT TO: <AJISHVIJAY@GMAIL.COM>                                      
 000010 DATA                                                                  
 000011 TO: <AJISHVIJAY@GMAIL.COM>                                            
 000012 FROM: "AJISH"<ESCUB01@N1.XYZ.COM>>                                    
 000013 SUBJECT: TCP/IP MAIL FROM MVS BATCH ON SYSA                          
 000014 THIS IS A TEST MESSAGE FROM BATCH.                                    
 000015 /*                                                                    
 000016 // DD DISP=SHR,DSN=ESCUB01.AAJ.DATA                                  
 000017 //*                                                                  
 000018 //SYSUT2 DD SYSOUT=(B,TCPSMTP)                                        
 000019 //*                                                                  
 000020 //                                                                    
 ****** **************************** Bottom of Data ****************************

Program


***************************************************************
*****************create ksds************************************
***************************************************************
 //TECH301D JOB ,,CLASS=A,NOTIFY=&SYSUID,RESTART=STEP01                
 //STEP01      EXEC PGM=IDCAMS                                            
 //SYSPRINT DD SYSOUT=*                                                
 //SYSOUT     DD SYSOUT=*                                                
 //SYSIN        DD *                                                        
     DEFINE CLUSTER (NAME(TECH301.KSDS.BASE) -                          
            CISZ(4096) -                                                
            TRACKS(1,2) -                                              
            FREESPACE(10 20) -                                          
            KEYS(5 0) -                                                
            RECORDSIZE(80 80) -                                        
            INDEXED )                                                  
 /*
 //***********load the vsam file from ps file**************************                                                                    
 //STEP02       EXEC PGM=IDCAMS                                              
 //SYSPRINT DD SYSOUT=*                                                
 //SYSOUT     DD SYSOUT=*                                                
     REPRO IDS(TECH301.VSAM.INFILE) -        
          ODS(TECH301.KSDS.BASE)            
 /*                                          
 //                                          
***************************************************************
*****************create aix************************************
***************************************************************
 //TECH301D JOB ,,CLASS=A,NOTIFY=&SYSUID,RESTART=STEP01
//STEP01   EXEC PGM=IDCAMS                          
//SYSPRINT DD SYSOUT=*                              
//SYSOUT   DD SYSOUT=*                              
//SYSIN    DD *                                      
      DEFINE AIX(NAME(TECH301.KSDS.AIX) -            
             RELATE(TECH301.KSDS.BASE)  -            
             KEYS(10,5) -                            
             CISZ(4096) -                            
             TRACKS(2,3) -                          
             FREESPACE(10,20) -                      
             UPGRADE )                              
/*                              
***********load the vsam file from ps file**************************                      
//STEP02   EXEC PGM=IDCAMS                          
//SYSPRINT DD SYSOUT=*                              
//SYSOUT   DD SYSOUT=*                              
//SYSIN    DD *
    BLDINDEX IDS(TECH301.KSDS.BASE) -        
             ODS(TECH301.KSDS.AIX)            
/*                        
***********load the path file from aix file**************************                  
//STEP03   EXEC PGM=IDCAMS                    
//SYSPRINT DD SYSOUT=*                        
//SYSOUT   DD SYSOUT=*                        
//SYSIN    DD *                              
    DEFINE PATH(NAME(TECH301.KSDS.PATH) -    
           PATHENTRY (TECH301.KSDS.AIX) -    
           UPDATE)                            
/*  
***********  print the data to spool *******************************                                            
//STEP04   EXEC PGM=IDCAMS                    
//SYSPRINT DD SYSOUT=*                        
//SYSOUT   DD SYSOUT=*                        
//SYSIN    DD *                              
   PRINT IDS(TECH301.KSDS.BASE) -            
   DUMP                                
/*                      
***************************************************************
*****************create esds************************************
***************************************************************
//TECH301D JOB ,,CLASS=A,NOTIFY=&SYSUID,RESTART=STEP01
//STEP01   EXEC PGM=IDCAMS                          
//SYSPRINT DD SYSOUT=*                              
//SYSOUT   DD SYSOUT=*                              
//SYSIN    DD *                                      
    DEFINE CLUSTER (NAME(TECH301.ESDS.BASE) -        
           CISZ(4096) -                              
           TRACKS(1,2) -                            
           RECORDSIZE(80 80) -                      
           NONINDEXED )                              
/*
***********load the vsam file from ps file**************************                                                  
//STEP02   EXEC PGM=IDCAMS                          
//SYSPRINT DD SYSOUT=*                              
//SYSOUT   DD SYSOUT=*                              
//SYSIN    DD *                                      
    REPRO IDS(TECH301.VSAM.INFILE) -                
          ODS(TECH301.ESDS.BASE)        
/*  
***************************************************************
*****************create RRDS************************************
***************************************************************
//TECH301D JOB ,,CLASS=A,NOTIFY=&SYSUID,RESTART=STEP01
//STEP01   EXEC PGM=IDCAMS                            
//SYSPRINT DD SYSOUT=*                                
//SYSOUT   DD SYSOUT=*                                
//SYSIN    DD *                                        
    DEFINE CLUSTER (NAME(TECH301.RRDS.BASE) -          
           CISZ(4096) -                                
           TRACKS(1,2) -                              
           RECORDSIZE(80 80) -                        
           NUMBERED )                                
/*                                                                                  
***********load the vsam file from ps file**************************                                                    
//STEP02   EXEC PGM=IDCAMS                                                                *
//SYSPRINT DD SYSOUT=*                                                                         *
//SYSOUT   DD SYSOUT=*                                                                            *
//SYSIN    DD *                                                                                                *
    REPRO IDS(TECH301.VSAM.INFILE) -                                                *
          ODS(TECH301.RRDS.BASE)                                                              *
/*                                                                                                                        *
***********delete the vsam files   *********************************
 //TECH301D JOB ,,CLASS=A,NOTIFY=&SYSUID                                   *
 //STEP01   EXEC PGM=IDCAMS                                                                *
 //SYSPRINT DD SYSOUT=*                                                                         *
 //SYSOUT   DD SYSOUT=*                                                                           *
 //SYSIN    DD *                                                                                                *
     DELETE TECH301.VSAM11.PS                                                               *
 /*                                                                                                                        *
************************************************************* *    


Symbolic parameter                                                            
*******************
                  
//TECH301D JOB ,,CLASS=A,NOTIFY=&SYSUID,RESTART=STEP03.STEP02
//PROC1    PROC                                              
//STEP01   EXEC PGM=IEFBR14                                  
//DD1      DD DSN=TECH301.NAME.PS,DISP=(NEW,CATLG,DELETE),  
//         SPACE=(TRK,(10,20),RLSE),                        
//         DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)              
//STEP02   EXEC PGM=IEFBR14                                  
//DD1      DD DSN=TECH301.NAME1.PS,DISP=(NEW,CATLG,DELETE),  
//         SPACE=(TRK,(10,20),RLSE),                        
//         DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)              
//         PEND                                              
//STEP03   EXEC PROC=PROC1                                  
//*STEP01.DD1 DD DSN=TECH301.MUGHUN77.PS                    

******************************************************************


Sort program using include
*************************************

//TECH301D JOB ,,CLASS=A,NOTIFY=&SYSUID,RESTART=STEP03.STEP02
//PROC1    PROC                                              
//STEP01   EXEC PGM=IEFBR14                                  
//DD1      DD DSN=TECH301.NAME.PS,DISP=(NEW,CATLG,DELETE),  
//         SPACE=(TRK,(10,20),RLSE),                        
//         DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)              
//STEP02   EXEC PGM=IEFBR14                                  
//DD1      DD DSN=TECH301.NAME1.PS,DISP=(NEW,CATLG,DELETE),  
//         SPACE=(TRK,(10,20),RLSE),                        
//         DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)              
//         PEND                                              
//STEP03   EXEC PROC=PROC1                                  
//*STEP01.DD1 DD DSN=TECH301.MUGHUN77.PS                    

*****************************************************************

Restart program

*********************************

//TECH301D JOB ,,CLASS=A,NOTIFY=&SYSUID,RESTART=STEP03.STEP02
//PROC1    PROC                                              
//STEP01   EXEC PGM=IEFBR14                                  
//DD1      DD DSN=TECH301.NAME.PS,DISP=(NEW,CATLG,DELETE),  
//         SPACE=(TRK,(10,20),RLSE),                        
//         DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)              
//STEP02   EXEC PGM=IEFBR14                                  
//DD1      DD DSN=TECH301.NAME1.PS,DISP=(NEW,CATLG,DELETE),  
//         SPACE=(TRK,(10,20),RLSE),                        
//         DCB=(LRECL=80,RECFM=FB,BLKSIZE=800)              
//         PEND                                              
//STEP03   EXEC PROC=PROC1                                  
//*STEP01.DD1 DD DSN=TECH301.MUGHUN77.PS                    

********************************************************************      



db2 table

 SELECT * FROM CESTAB01                                      
 --OP TABLE CESTABO1;                                        
 --CREATE TABLE CESTAB01(APP_NO INT PRIMARY KEY NOT NULL,    
 --CUST_FIRST_NAME CHAR(20),                                
 --CUST_SECOND_NAME CHAR(20),                                
 --CUST_GENDER CHAR(6),                                      
 --CUST_ADD1 CHAR(20),                                      
 --CUST_ADD2 CHAR(20),                                      
 --CUST_ADD3 CHAR(20),                                      
 --CUST_STATE CHAR(10),                                      
 --CUST_P_CODE INT,                                          
 --CUST_STATUS CHAR(3),                                      
 --PROD_NUM CHAR(3),                                        
 --APP_DATE DATE,                                            
 --REFERAL_NUM CHAR(2),                                      
 --CREDIT_LIMIT DECIMAL(8,2),                                
 --APP_STATUS CHAR(2),                                      
 --AGENT_CODE CHAR(4),                                    
 --CUST_SS_NUM CHAR(12),                                  
 --PREV_APP_STAT CHAR(2));                                
 --CREATE UNIQUE INDEX CESTAB01 ON CESTAB01(APP_NO);      
 --DELETE FROM CREDIT_CARD;                                
 --SELECT * FROM CREDIT_CARD                              


cobol file

  IDENTIFICATION DIVISION.                              
  PROGRAM-ID. INSERT1.                                  
  ENVIRONMENT DIVISION.                                  
  INPUT-OUTPUT SECTION.                                  
  FILE-CONTROL.                                          
       SELECT INFILE ASSIGN TO INDD                      
       FILE STATUS WS-STATUS.                            
  DATA DIVISION.                                        
  FILE SECTION.                                          
  FD INFILE.                                            
  01 IN-REC.                                            
      02 INAPP-NO                PIC 9(8).              
      02 INCUST-FIRST-NAME       PIC A(20).              
      02 INCUST-SECOND-NAME      PIC A(20).              
      02 INCUST-GENDER           PIC A(10).              
      02 INCUST-ADD1             PIC A(20).              
      02 INCUST-ADD2             PIC A(20).              
     02 INCUST-ADD3             PIC A(20).
     02 INCUST-STATE     PIC A(10).      
     02 INCUST-P-CODE    PIC 9(6).      
     02 INCUST-STATUS      PIC A(3).    
     02 INPROD-NUM       PIC X(3).      
     02 INAPP-DATE       PIC X(10).      
     02 INREFERAL-NUM    PIC X(2).      
     02 INCREDIT-LIMIT   PIC 9(6)V99.    
     02 INAPP-STATUS     PIC X(2).      
     02 INAGENT-CODE     PIC X(4).      
     02 INCUST-SS-NUM    PIC X(12).      
     02 INPREV-APP-STAT PIC X(2).        
     02                  PIC X(20).      
 WORKING-STORAGE SECTION.                
     EXEC SQL                            
          INCLUDE SQLCA                  
     END-EXEC.                          
         EXEC SQL                                  
              INCLUDE DCGEN                        
         END-EXEC.                                  
     77 WS-SQLCODE PIC -999.                        
     77 WS-STATUS  PIC   99.                        
     77 L          PIC   99.                        
     PROCEDURE DIVISION.                            
          PERFORM OPEN-PARA.                        
          PERFORM INSERT-PARA UNTIL WS-STATUS = 10.
          MOVE SQLCODE TO WS-SQLCODE.              
          DISPLAY "SQLCODE:" WS-SQLCODE.            
          PERFORM CLOSE-PARA.                      
          STOP RUN.                                
     OPEN-PARA.                                    
         OPEN INPUT INFILE.                        
         DISPLAY 'FILE STATUS' WS-STATUS.          
     CLOSE-PARA.                                    
      CLOSE INFILE.                                    
  INSERT-PARA.                                          
      READ INFILE.                                      
      DISPLAY "APP-NO=" INAPP-NO.                      
      IF WS-STATUS = 00                                
          MOVE INAPP-NO TO APP-NO                      
          MOVE INCUST-FIRST-NAME TO CUST-FIRST-NAME    
          MOVE INCUST-SECOND-NAME TO CUST-SECOND-NAME  
          MOVE INCUST-GENDER TO CUST-GENDER            
          MOVE INCUST-ADD1 TO CUST-ADD1                
          MOVE INCUST-ADD2 TO CUST-ADD2                
          MOVE INCUST-ADD3 TO CUST-ADD3                
          MOVE INCUST-STATE TO CUST-STATE              


dclgen program

   ******************************************************************
   * DCLGEN TABLE(CESTAB01)                                         *
   *        LIBRARY(TECH301.DB2.COPYLIB.PDS(DCGEN))                 *
   *        ACTION(REPLACE)                                         *
   *        LANGUAGE(COBOL)                                         *
   *        QUOTE                                                   *
   * ... IS THE DCLGEN COMMAND THAT MADE THE FOLLOWING STATEMENTS   *
   ******************************************************************
        EXEC SQL DECLARE CESTAB01 TABLE                            
        ( APP_NO                         INTEGER NOT NULL,          
          CUST_FIRST_NAME                CHAR(20),                  
          CUST_SECOND_NAME               CHAR(20),                  
          CUST_GENDER                    CHAR(6),                  
          CUST_ADD1                      CHAR(20),                  
          CUST_ADD2                      CHAR(20),                  
          CUST_ADD3                      CHAR(20),                  
          CUST_STATE                     CHAR(10),                  
         CUST_P_CODE                    INTEGER,                  
         CUST_STATUS                    CHAR(3),                  
         PROD_NUM                       CHAR(3),                  
         APP_DATE                       DATE,                      
         REFERAL_NUM                    CHAR(2),                  
         CREDIT_LIMIT                   DECIMAL(8, 2),            
         APP_STATUS                     CHAR(2),                  
         AGENT_CODE                     CHAR(4),                  
         CUST_SS_NUM                    CHAR(12),                  
         PREV_APP_STAT                  CHAR(2)                    
       ) END-EXEC.                                                
  ******************************************************************
  * COBOL DECLARATION FOR TABLE CESTAB01                           *
  ******************************************************************
   01  DCLCESTAB01.                                                
       10 APP-NO               PIC S9(9) USAGE COMP.              
       10 CUST-FIRST-NAME      PIC X(20).                          
        10 CUST-SECOND-NAME     PIC X(20).                          
        10 CUST-GENDER          PIC X(6).                          
        10 CUST-ADD1            PIC X(20).                          
        10 CUST-ADD2            PIC X(20).                          
        10 CUST-ADD3            PIC X(20).                          
        10 CUST-STATE           PIC X(10).                          
        10 CUST-P-CODE          PIC S9(9) USAGE COMP.              
        10 CUST-STATUS          PIC X(3).                          
        10 PROD-NUM             PIC X(3).                          
        10 APP-DATE             PIC X(10).                          
        10 REFERAL-NUM          PIC X(2).                          
        10 CREDIT-LIMIT         PIC S9(6)V9(2) USAGE COMP-3.        
        10 APP-STATUS           PIC X(2).                          
        10 AGENT-CODE           PIC X(4).                          
        10 CUST-SS-NUM          PIC X(12).                          
        10 PREV-APP-STAT        PIC X(2).                          
   ******************************************************************
 * THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 18      *
 ******************************************************************


DB2 COBOL


PRECOMPILER PROGRAM
***************************** Top of Data ************************
//TECH301A JOB CLASS=C,MSGCLASS=X,                              
//         NOTIFY=&SYSUID,REGION=0M                              
//         JCLLIB ORDER=TECH301.DB2PGMS.PDS                      
//STEPDB   EXEC DB2PROC,MEM=STUDENT                              
//PC.DBRMLIB DD DSN=TECH301.DB2.DBRMLIB.PDS(STUDENT),DISP=SHR    
//PC.SYSIN DD DSN=TECH301.DB2PGMS.PDS(STUDENT),DISP=SHR          
//PC.SYSLIB DD DSN=TECH301.DB2.COPYLIB.PDS,DISP=SHR              
//LKED.SYSLMOD DD DSN=TECH301.DB2.LOADLIB.PDS(STUDENT),DISP=SHR  
//SYSPRINT DD SYSOUT=*                                          
//            
**********************************************************************

cobol program
*************************** Top of Data ******************************
     IDENTIFICATION DIVISION.                                        
     PROGRAM-ID. STD.                                                
     DATA DIVISION.                                                  
     WORKING-STORAGE SECTION.                                        
         EXEC SQL                                                    
              INCLUDE SQLCA                                          
         END-EXEC.                                                  
         EXEC SQL                                                    
              INCLUDE DB1A                                          
         END-EXEC.                                                  
     77 WS-SQLCODE PIC -999.                                        
     PROCEDURE DIVISION.                                            
         EXEC SQL                                                    
              SELECT ROLLNO,STD_NAME,STD_DEPT,STD_FEES,STD_SEX,STD_SEM
              INTO :ROLLNO,                                          
                   :STD-NAME,                                        
                   :STD-DEPT,      
               :STD-FEES,                            
               :STD-SEX,                              
               :STD-SEM                              
          FROM STUDENT_DETAIL WHERE STD-NAME="DEEPAN"
     END-EXEC.                                        
     MOVE SQLCODE TO WS-SQLCODE.                      
     DISPLAY WS-SQLCODE.                              
     DISPLAY ROLLNO.                                  
     DISPLAY STD-NAME.                                
     STOP RUN.                                        
********************** Bottom of Data *****************    

bind run program
****************************************************
 //TECH301A JOB 'IBMMFS','MAC',CLASS=C,MSGCLASS=X,              
 // NOTIFY=&SYSUID,REGION=0M                                    
 //DB2TSO EXEC PGM=IKJEFT01,DYNAMNBR=20                          
 //STEPLIB DD DSN=DSN810.SDSNLOAD,DISP=SHR                      
 // DD DSN=DSN810.SDSNEXIT,DISP=SHR                              
 // DD DSN=DSN810.RUNLIB.LOAD,DISP=SHR                          
 //SYSTSPRT DD SYSOUT=A                                          
 //SYSPRINT DD SYSOUT=A                                          
 //SYSUDUMP DD SYSOUT=A                                          
 //SYSIN DD  *                                                  
 /*                                                              
 //SYSTSIN DD *                                                  
        DSN SYSTEM(DB8G)                                        
         BIND PLAN(TECH301) MEM(STUDENT) -                      
         LIBRARY('TECH301.DB2.DBRMLIB.PDS') -                    
         RELEASE(COMMIT) ISOLATION(CS) -                        
         VALIDATE(BIND) -                                        
        ACTION(REPLACE) OWNER(TECH301)              
        RUN PROGRAM(STUDENT) PLAN(TECH301) -        
        LIB('TECH301.DB2.LOADLIB.PDS')              
        END                                        
/*                                                  
//                                                  
**************************** Bottom of Data *********
                                                                            


Insert


insert program

 IDENTIFICATION DIVISION.              
 PROGRAM-ID. INSERT1.                  
 ENVIRONMENT DIVISION.                
 INPUT-OUTPUT SECTION.                
 FILE-CONTROL.                        
      SELECT INFILE ASSIGN TO INDD    
      FILE STATUS IS WS-STATUS.        
 DATA DIVISION.                        
 FILE SECTION.                        
 FD INFILE.                            
 01 IN-REC.                            
     02 app_no PIC 9(20).              
     02 cust_NAME PIC X(20).          
     02 cust_add_1 PIC X(20).          
     02 cust_add_2 PIC x(5).          
     02 SEX  PIC X(5).                
     02 SEM  PIC 9(1).      
     02 F    PIC X(49).                          
 WORKING-STORAGE SECTION.                        
     EXEC SQL                                    
          INCLUDE SQLCA                          
     END-EXEC.                                    
     EXEC SQL                                    
          INCLUDE DB1A                            
     END-EXEC.                                    
 77 WS-SQLCODE PIC -999.                          
 77 WS-STATUS  PIC   99.                          
 PROCEDURE DIVISION.                              
      PERFORM OPEN-PARA.                          
      PERFORM INSERT-PARA UNTIL WS-STATUS = 10.  
      MOVE SQLCODE TO WS-SQLCODE.                
      DISPLAY "SQLCODE:" WS-SQLCODE.              
      PERFORM CLOSE-PARA.                        
         STOP RUN.                                  
    OPEN-PARA.                                      
        OPEN INPUT INFILE.                          
        DISPLAY 'FILE STATUS' WS-STATUS.            
    CLOSE-PARA.                                      
        CLOSE INFILE.                                
    INSERT-PARA.                                    
        READ INFILE.                                
        DISPLAY "ROLL NO=" ROLLNO.                  
        IF WS-STATUS = 00                            
            MOVE ROLL TO ROLLNO                      
            MOVE NAME TO STD-NAME                    
            MOVE DEPT TO STD-DEPT                    
            MOVE FEES TO STD-FEES                    
            MOVE SEX  TO STD-SEX                    
            MOVE SEM  TO STD-SEM                    
        EXEC SQL                                    
           INSERT INTO STUDENT_DETAIL              
                 (ROLLNO,                          
                 STD_NAME,                          
                 STD_DEPT,                          
                 STD_FEES,                          
                 STD_SEX,                          
                 STD_SEM)                          
           VALUES(:ROLLNO,                          
                  :STD-NAME,                        
                  :STD-DEPT,                        
                  :STD-FEES,                        
                  :STD-SEX,                        
                  :STD-SEM)                        
       END-EXEC                                    
       END-IF.                                      
       EVALUATE SQLCODE                            
             WHEN 0                                
        WHEN 0                                                
             DISPLAY 'ROLLNO     :' ROLLNO                    
             DISPLAY 'STD-NAME   :' STD-NAME                  
             DISPLAY 'STD-DEPT   :' STD-DEPT                  
             DISPLAY 'STD-FEES :'   STD-FEES                  
             DISPLAY 'STD-SEX  :'   STD-SEX                  
             DISPLAY 'STD-SEM  :'   STD-SEM                  
        WHEN OTHER                                            
             MOVE SQLCODE TO WS-SQLCODE                      
             DISPLAY 'SQLCODE  :' WS-SQLCODE                  
  END-EVALUATE.                                              
 

DB2


DB2 programs..
************************
basic concept..Create table..
************************
--CREATE TABLE STUDENT_DETAILS(ROLLNO SMALLINT,                      
--                           STD_NAME CHAR(15),                      
--                           STD_DEPT CHAR(5),                        
--                           STD_FEES INT,                            
--                           STD_SEX  CHAR(5),                        
--                           STD_SEM  CHAR(2))                        
--INSERT INTO STUDENT_DETAILS VALUES(10001,'MUGUNTHAN','MCA',22500,  
--                                   'MALE','I');                    
--INSERT INTO STUDENT_DETAILS VALUES(10101,'DEEPAN','ECE',25000,      
--                                   'MALE','II');                    
--INSERT INTO STUDENT_DETAILS VALUES(10002,'PRAVEEN','MCA',22500,    
--                                   'MALE','II');                    
--INSERT INTO STUDENT_DETAILS VALUES(10103,'SURESH','MCA',22500,      
--                                   'MALE','II');                    
  SELECT * FROM STUDENT_DETAILS;                                      
--UPDATE STUDENT_DETAILS SET STD_FEES=20000 WHERE ROLLNO=10101;      
--DROP TABLE STUDENT_DETAILS;  
--DELETE FROM STUDENT_DETAILS WHERE STD_NAME = 'MUGUNTHAN'

******************************************************************************

setting primary key.

**********************************************************************************
CREATE TABLE STUDENT_DETAILS (ROLLNO SMALLINT NOT NULL,  
                         STD_NAME CHAR(15),              
                         STD_DEPT CHAR(5),              
                         STD_FEES INT,                  
                         STD_SEX  CHAR(5),              
                         STD_SEM  CHAR(2),              
                         PRIMARY KEY (ROLLNO));

--CREATE UNIQUE INDEX ST ON STUDENT_DETAILS(ROLLNO);  

***************************************************************************************

1.  SELECT STD_NAME FROM STUDENT_DETAILS  
2.  SELECT DISTINCT STD_DEPT FROM STUDENT_DETAILS  **(diffrent department from student_table is selected).
3.  SELECT * FROM STUDENT_DETAILS WHERE STD_DEPT = 'MCA'
4.  SELECT * FROM STUDENT_DETAILS WHERE STD_FEES > 22400  AND STD_DEPT = 'MCA'  
5.  SELECT * FROM STUDENT_DETAILS WHERE STD_NAME LIKE 'M%'  ** (It will print all the name starting from M)
6.   SELECT STD_NAME FROM STUDENT_DETAILS WHERE STD_FEES IN ( 22500,30000,26000 )
7.  SELECT EMPNO, EMPNAME FROM EMPOYEE WHERE SALARY BETWEEN 15000 AND 40000
8.  SELECT STD_NAME FROM STUDENT_DETAILS WHERE ROLLNO IS NOT NULL  
9.SELECT SUM(STD_FEES) FROM STUDENT_DETAILS  ** (to sum all the values)    
10. SELECT MAX(STD_FEES) FROM STUDENT_DETAILS   **(max fees)
11.SELECT MIN(STD_FEES) FROM STUDENT_DETAILS   **(TO FIND THE MINIMUM)
11.SELECT AVG(STD_FEES) FROM STUDENT_DETAILS  **(TO FIND THE AVERAGE)
13.  SELECT MAX(STD_FEES) FROM STUDENT_DETAIL WHERE STD_FEES <>
   ( SELECT MAX(STD_FEES) FROM STUDENT_DETAIL );             ** (to select the second maximum value)

        
CES PROJECT SOURCE CODE


*******************************************************************************************************
TO IDENTIFY THE BLANK SPACE.
*********************** Top of Data *********************************************************************
 ID DIVISION.                                                    
 PROGRAM-ID. CESCOB01.                                          
 ENVIRONMENT DIVISION.                                          
 INPUT-OUTPUT SECTION.                                          
 FILE-CONTROL.                                                  
      SELECT INFILE ASSIGN TO INDD                              
      FILE STATUS WS-STATUS.                                    
      SELECT REJECT ASSIGN TO OUTDD1                            
      FILE STATUS WS-STATUS1.                                    
      SELECT OUTFILE ASSIGN TO OUTDD2                            
      FILE STATUS WS-STATUS2.                                    
 DATA DIVISION.                                                  
 FILE SECTION.                                                  
 FD INFILE.                                                      
 01 IN-REC.                                                      
     02 IN-APP-NUM      PIC 9(8).                                
     02 IN-CUST-NAME1   PIC X(20).    
     02 IN-CUST-NAME2   PIC X(20).    
     02 IN-CUST-GENDER  PIC X(10).    
     02 IN-CUST-ADD1    PIC X(20).    
     02 IN-CUST-ADD2    PIC X(20).    
     02 IN-CUST-ADD3    PIC X(20).    
     02 IN-CUST-STATE   PIC X(10).    
     02 IN-CUST-PIN     PIC 9(6).      
     02 IN-CUST-STATUS  PIC X(3).      
     02 IN-PROD-NUM     PIC 9(3).      
     02 IN-APP-DATE     PIC X(10).    
     02 IN-REFERAL-NUM  PIC 9(2).      
     02 IN-CREDIT-LIMIT PIC 9(6)V9(2).
     02 IN-APP-STATUS   PIC X(2).      
     02 IN-AGENT-CODE   PIC 9(4).      
     02 IN-CUST-SS-NUM  PIC X(12).    
     02 IN-PRE-APP-STAT PIC X(2).        
     02                 PIC X(20).        
 FD REJECT.                              
 01 OUT-REC1.                            
     02 R-APP-NUM      PIC 9(8).          
     02 R-CUST-NAME1   PIC X(20).        
     02 R-CUST-NAME2   PIC X(20).        
     02 R-CUST-GENDER  PIC X(10).        
     02 R-CUST-ADD1    PIC X(20).        
     02 R-CUST-ADD2    PIC X(20).        
     02 R-CUST-ADD3    PIC X(20).        
     02 R-CUST-STATE   PIC X(10).        
     02 R-CUST-PIN     PIC 9(6).          
     02 R-CUST-STATUS  PIC X(3).          
     02 R-PROD-NUM     PIC 9(3).          
     02 R-APP-DATE     PIC X(10).        
     02 R-REFERAL-NUM  PIC 9(2).            
     02 R-CREDIT-LIMIT PIC 9(6)V9(2).        
     02 R-APP-STATUS   PIC X(2).            
     02 R-AGENT-CODE   PIC 9(4).            
     02 R-CUST-SS-NUM  PIC X(12).            
     02 R-PRE-APP-STAT PIC X(2).            
     02                 PIC X(20).          
    FD OUTFILE.                                
    01 OUT-REC2.                                
         02 OUT-APP-NUM      PIC 9(8).          
         02 OUT-CUST-NAME1   PIC X(20).          
         02 OUT-CUST-NAME2   PIC X(20).          
         02 OUT-CUST-GENDER  PIC X(10).          
         02 OUT-CUST-ADD1    PIC X(20).          
         02 OUT-CUST-ADD2    PIC X(20).          
         02 OUT-CUST-ADD3    PIC X(20).          
         02 OUT-CUST-STATE   PIC X(10).      
         02 OUT-CUST-PIN     PIC 9(6).      
         02 OUT-CUST-STATUS  PIC X(3).      
         02 OUT-PROD-NUM     PIC 9(3).      
         02 OUT-APP-DATE     PIC X(10).      
         02 OUT-REFERAL-NUM  PIC 9(2).      
         02 OUT-CREDIT-LIMIT PIC 9(6)V9(2).  
         02 OUT-APP-STATUS   PIC X(2).      
         02 OUT-AGENT-CODE   PIC 9(4).      
         02 OUT-CUST-SS-NUM  PIC X(12).      
         02 OUT-PRE-APP-STAT PIC X(2).      
         02                 PIC X(20).      
     WORKING-STORAGE SECTION.                
     77 WS-SQLCODE PIC -999.                
     77 WS-STATUS  PIC 99.                  
     77 WS-STATUS1 PIC 99.                  
 77 WS-STATUS2 PIC 99.                                  
 PROCEDURE DIVISION.                                    
     PERFORM OPEN-PARA.                                
     PERFORM READ-PARA UNTIL WS-STATUS = 10.            
     PERFORM CLOSE-PARA.                                
     STOP RUN.                                          
 OPEN-PARA.                                            
     OPEN INPUT INFILE.                                
     DISPLAY ' INFILE STATUS IS : ' WS-STATUS.          
     OPEN OUTPUT REJECT.                                
     DISPLAY ' REJECT  FILE STATUS IS : ' WS-STATUS1.  
     OPEN OUTPUT OUTFILE.                              
     DISPLAY ' OUTFILE FILE STATUS IS : ' WS-STATUS2.  
 CLOSE-PARA.                                            
     CLOSE INFILE REJECT OUTFILE.                      
     DISPLAY ' FILE STATUS IS : ' WS-STATUS.            
      DISPLAY ' REJECT  FILE STATUS IS : ' WS-STATUS1.  
      DISPLAY ' OUTFILE FILE STATUS IS : ' WS-STATUS2.  
  READ-PARA.                                            
      READ INFILE.                                      
      DISPLAY ' APPLICATION-NUMBER : ' IN-APP-NUM.      
      DISPLAY ' CREDIT LIMIT :' IN-CREDIT-LIMIT.        
      IF WS-STATUS = 00                                
       IF IN-APP-NUM = SPACES                          
         MOVE IN-REC TO OUT-REC1                        
         WRITE OUT-REC1                                
         ELSE IF IN-CUST-NAME1 = SPACES                
          MOVE IN-REC TO OUT-REC1                      
          WRITE OUT-REC1                                
          ELSE IF IN-CUST-NAME2 = SPACES                
           MOVE IN-REC TO OUT-REC1                      
           WRITE OUT-REC1                              
           ELSE IF IN-CUST-GENDER = SPACES          
           MOVE IN-REC TO OUT-REC1                
           WRITE OUT-REC1                          
           ELSE IF IN-CUST-ADD1 = SPACES          
           MOVE IN-REC TO OUT-REC1              
           WRITE OUT-REC1                        
           ELSE IF IN-CUST-ADD2 = SPACES        
           MOVE IN-REC TO OUT-REC1              
           WRITE OUT-REC1                      
           ELSE IF IN-CUST-ADD3 = SPACES        
           MOVE IN-REC TO OUT-REC1            
           WRITE OUT-REC1                      
           ELSE IF IN-CUST-STATE = SPACES      
           MOVE IN-REC TO OUT-REC1            
           WRITE OUT-REC1                    
           ELSE IF IN-CUST-PIN = SPACES    
           MOVE IN-REC TO OUT-REC1                        
          WRITE OUT-REC1                                
          ELSE IF IN-CUST-STATUS = SPACES                
          MOVE IN-REC TO OUT-REC1                      
          WRITE OUT-REC1                                
          ELSE IF IN-PROD-NUM = SPACES                  
          MOVE IN-REC TO OUT-REC1                      
          WRITE OUT-REC1                              
          ELSE IF IN-APP-DATE = SPACES                
          MOVE IN-REC TO OUT-REC1                    
          WRITE OUT-REC1                              
          ELSE IF IN-REFERAL-NUM = SPACES            
           MOVE IN-REC TO OUT-REC1                    
           WRITE OUT-REC1                            
           ELSE IF IN-CREDIT-LIMIT = 00000000        
            DISPLAY IN-CREDIT-LIMIT    
          MOVE IN-REC TO OUT-REC1                  
         WRITE OUT-REC1                          
         ELSE IF IN-APP-STATUS = SPACES          
         MOVE IN-REC TO OUT-REC1                
         WRITE OUT-REC1                          
         ELSE IF IN-AGENT-CODE = SPACES          
          MOVE IN-REC TO OUT-REC1                
          WRITE OUT-REC1                        
          ELSE IF IN-CUST-SS-NUM = SPACES      
          MOVE IN-REC TO OUT-REC1              
          WRITE OUT-REC1                      
          ELSE IF IN-PRE-APP-STAT = SPACES    
           MOVE IN-REC TO OUT-REC1            
           WRITE OUT-REC1                      
           ELSE                                
           MOVE IN-REC TO OUT-REC2            
           WRITE OUT-REC2  
  END-IF.                    
  
*****************************************************************************************************
ADDRESS VALIDATION USING CUSTOMER PIN CODE
******************************************************************************************************
       ID DIVISION.                                                    
       PROGRAM-ID. CESCOB02.                                          
       ENVIRONMENT DIVISION.                                          
       INPUT-OUTPUT SECTION.                                          
       FILE-CONTROL.                                                  
            SELECT INFILE ASSIGN TO INDD                              
            FILE STATUS WS-STATUS.                                    
            SELECT REJECT ASSIGN TO OUTDD1                            
            FILE STATUS WS-STATUS1.                                    
            SELECT OUTFILE ASSIGN TO OUTDD2                            
            FILE STATUS WS-STATUS2.                                    
       DATA DIVISION.                                                  
       FILE SECTION.                                                  
       FD INFILE.                                                      
       01 IN-REC.                                                      
           02 IN-APP-NUM      PIC 9(8).                                
           02 IN-CUST-NAME1   PIC X(20).                            
           02 IN-CUST-NAME2   PIC X(20).                            
           02 IN-CUST-GENDER  PIC X(10).                            
           02 IN-CUST-ADD1    PIC X(20).                            
           02 IN-CUST-ADD2    PIC X(20).                            
           02 IN-CUST-ADD3    PIC X(20).                            
           02 IN-CUST-STATE   PIC X(10).                            
           02 IN-CUST-PIN     PIC 9(6).                              
           02 IN-CUST-STATUS  PIC X(3).                              
           02 IN-PROD-NUM     PIC 9(3).                              
           02 IN-APP-DATE     PIC X(10).                            
           02 IN-REFERAL-NUM  PIC 9(2).                              
           02 IN-CREDIT-LIMIT PIC 9(6)V9(2).                        
           02 IN-APP-STATUS   PIC X(2).                              
           02 IN-AGENT-CODE   PIC 9(4).                              
           02 IN-CUST-SS-NUM  PIC X(12).                            
           02 IN-PRE-APP-STAT PIC X(2).                                
           02                 PIC X(20).                              
       FD REJECT.                                                      
       01 OUT-REC1.                                                    
           02 R-APP-NUM      PIC 9(8).                                
           02 R-CUST-NAME1   PIC X(20).                                
           02 R-CUST-NAME2   PIC X(20).                                
           02 R-CUST-GENDER  PIC X(10).                                
           02 R-CUST-ADD1    PIC X(20).                                
           02 R-CUST-ADD2    PIC X(20).                                
           02 R-CUST-ADD3    PIC X(20).                                
           02 R-CUST-STATE   PIC X(10).                                
           02 R-CUST-PIN     PIC 9(6).                                
           02 R-CUST-STATUS  PIC X(3).                                
           02 R-PROD-NUM     PIC 9(3).                                
           02 R-APP-DATE     PIC X(10).                                
           02 R-REFERAL-NUM  PIC 9(2).                                
           02 R-CREDIT-LIMIT PIC 9(6)V9(2).                            
           02 R-APP-STATUS   PIC X(2).                                
           02 R-AGENT-CODE   PIC 9(4).                                
           02 R-CUST-SS-NUM  PIC X(12).                                
           02 R-PRE-APP-STAT PIC X(2).                                
           02                 PIC X(20).                              
       FD OUTFILE.                                                    
       01 OUT-REC2.                                                    
           02 OUT-APP-NUM      PIC 9(8).                              
           02 OUT-CUST-NAME1   PIC X(20).                              
           02 OUT-CUST-NAME2   PIC X(20).                              
           02 OUT-CUST-GENDER  PIC X(10).                              
           02 OUT-CUST-ADD1    PIC X(20).                              
           02 OUT-CUST-ADD2    PIC X(20).                              
           02 OUT-CUST-ADD3    PIC X(20).                        
           02 OUT-CUST-STATE   PIC X(10).                              
           02 OUT-CUST-PIN     PIC 9(6).                              
           02 OUT-CUST-STATUS  PIC X(3).                              
           02 OUT-PROD-NUM     PIC 9(3).                              
           02 OUT-APP-DATE     PIC X(10).                              
           02 OUT-REFERAL-NUM  PIC 9(2).                              
           02 OUT-CREDIT-LIMIT PIC 9(6)V9(2).                          
           02 OUT-APP-STATUS   PIC X(2).                              
           02 OUT-AGENT-CODE   PIC 9(4).                              
           02 OUT-CUST-SS-NUM  PIC X(12).                              
           02 OUT-PRE-APP-STAT PIC X(2).                              
           02                 PIC X(20).                              
       WORKING-STORAGE SECTION.                                        
           EXEC SQL                                                    
                INCLUDE SQLCA                                          
           END-EXEC.                                                  
           EXEC SQL                                                    
                INCLUDE CESTAB02                                      
           END-EXEC.                                                  
           EXEC SQL                                                    
                DECLARE CESTAB02 CURSOR WITH HOLD FOR                  
                        SELECT CUST_P_CODE,                            
                               CUST_ADD_3,                            
                               CUST_STATE                              
                        FROM CESTAB02                                  
           END-EXEC.                                                  
       77 WS-SQLCODE PIC -999.                                        
       77 WS-STATUS  PIC 99.                                          
       77 WS-STATUS1 PIC 99.                                          
       77 WS-STATUS2 PIC 99.                                          
       PROCEDURE DIVISION.                                            
           PERFORM OPEN-PARA.                                          
           PERFORM READ-PARA UNTIL WS-STATUS = 10.                    
           PERFORM CLOSE-PARA.                                        
           STOP RUN.                                                  
       OPEN-PARA.                                                      
           OPEN INPUT INFILE.                                          
           DISPLAY ' INFILE STATUS IS : ' WS-STATUS.                  
           OPEN OUTPUT REJECT.                                        
           DISPLAY ' REJECT  FILE STATUS IS : ' WS-STATUS1.            
           OPEN OUTPUT OUTFILE.                                        
           DISPLAY ' OUTFILE FILE STATUS IS : ' WS-STATUS2.            
           EXEC SQL                                                    
                OPEN CESTAB02                                          
           END-EXEC.                                                  
       CLOSE-PARA.                                                    
           CLOSE INFILE REJECT OUTFILE.                                
           DISPLAY ' FILE STATUS IS : ' WS-STATUS.                    
           DISPLAY ' REJECT  FILE STATUS IS : ' WS-STATUS1.            
           DISPLAY ' OUTFILE FILE STATUS IS : ' WS-STATUS2.            
           EXEC SQL                                                    
                CLOSE CESTAB02                                        
           END-EXEC.                                                  
       READ-PARA.                                                      
           READ INFILE.                                                
           EXEC SQL                                                    
               FETCH CESTAB02                                          
                     INTO :CUST-P-CODE                                
           END-EXEC.                                                  
           IF WS-STATUS = 00                                          
              IF CUST-P-CODE = IN-CUST-PIN                            
                 MOVE IN-REC TO OUT-REC2                              
                 WRITE OUT-REC2                                        
              ELSE                                                    
                 MOVE IN-REC TO OUT-REC1                              
                 WRITE OUT-REC1                                        
              END-IF                                                  
            END-IF.                                                    

**************************************************************************************************************
CONDITION TO CHECK SS-NUMBER OF CUSTOMER
**************************************************************************************************************    
       ID DIVISION.                                                    
       PROGRAM-ID. CESCOB03.                                          
       ENVIRONMENT DIVISION.                                          
       INPUT-OUTPUT SECTION.                                          
       FILE-CONTROL.                                                  
            SELECT INFILE ASSIGN TO INDD                              
            FILE STATUS WS-STATUS.                                    
            SELECT REJECT ASSIGN TO OUTDD1                            
            FILE STATUS WS-STATUS1.                                    
            SELECT OUTFILE ASSIGN TO OUTDD2                            
            FILE STATUS WS-STATUS2.                                    
       DATA DIVISION.                                                  
       FILE SECTION.                                                  
       FD INFILE.                                                      
       01 IN-REC.                                                      
           02 IN-APP-NUM      PIC 9(8).                                
           02 IN-CUST-NAME1   PIC X(20).                              
           02 IN-CUST-NAME2   PIC X(20).                              
           02 IN-CUST-GENDER  PIC X(10).                              
           02 IN-CUST-ADD1    PIC X(20).                              
           02 IN-CUST-ADD2    PIC X(20).                              
           02 IN-CUST-ADD3    PIC X(20).                              
           02 IN-CUST-STATE   PIC X(10).                              
           02 IN-CUST-PIN     PIC 9(6).                                
           02 IN-CUST-STATUS  PIC X(3).                                
           02 IN-PROD-NUM     PIC 9(3).                                
           02 IN-APP-DATE     PIC X(10).                              
           02 IN-REFERAL-NUM  PIC 9(2).                                
           02 IN-CREDIT-LIMIT PIC 9(6)V9(2).                          
           02 IN-APP-STATUS   PIC X(2).                                
           02 IN-AGENT-CODE   PIC 9(4).                                
           02 IN-CUST-SS-NUM  PIC X(12).                              
           02 IN-PRE-APP-STAT PIC X(2).                                
           02                 PIC X(20).                              
       FD REJECT.                                                      
       01 OUT-REC1.                                                    
           02 R-APP-NUM      PIC 9(8).                                
           02 R-CUST-NAME1   PIC X(20).                                
           02 R-CUST-NAME2   PIC X(20).                                
           02 R-CUST-GENDER  PIC X(10).                                
           02 R-CUST-ADD1    PIC X(20).                                
           02 R-CUST-ADD2    PIC X(20).                                
           02 R-CUST-ADD3    PIC X(20).                                
           02 R-CUST-STATE   PIC X(10).                                
           02 R-CUST-PIN     PIC 9(6).                                
           02 R-CUST-STATUS  PIC X(3).                                
           02 R-PROD-NUM     PIC 9(3).                                
           02 R-APP-DATE     PIC X(10).                                
           02 R-REFERAL-NUM  PIC 9(2).                                
           02 R-CREDIT-LIMIT PIC 9(6)V9(2).                            
           02 R-APP-STATUS   PIC X(2).                                
           02 R-AGENT-CODE   PIC 9(4).                                
           02 R-CUST-SS-NUM  PIC X(12).                                
           02 R-PRE-APP-STAT PIC X(2).                                
           02                 PIC X(20).                              
       FD OUTFILE.                                                    
       01 OUT-REC2.                                                    
           02 OUT-APP-NUM      PIC 9(8).                              
           02 OUT-CUST-NAME1   PIC X(20).                              
           02 OUT-CUST-NAME2   PIC X(20).                              
           02 OUT-CUST-GENDER  PIC X(10).                              
           02 OUT-CUST-ADD1    PIC X(20).                              
           02 OUT-CUST-ADD2    PIC X(20).                              
           02 OUT-CUST-ADD3    PIC X(20).                              
           02 OUT-CUST-STATE   PIC X(10).                              
           02 OUT-CUST-PIN     PIC 9(6).                              
           02 OUT-CUST-STATUS  PIC X(3).                              
           02 OUT-PROD-NUM     PIC 9(3).                              
           02 OUT-APP-DATE     PIC X(10).                              
           02 OUT-REFERAL-NUM  PIC 9(2).                              
           02 OUT-CREDIT-LIMIT PIC 9(6)V9(2).                          
           02 OUT-APP-STATUS   PIC X(2).                              
           02 OUT-AGENT-CODE   PIC 9(4).                              
           02 OUT-CUST-SS-NUM  PIC X(12).                              
           02 OUT-PRE-APP-STAT PIC X(2).                              
           02                 PIC X(20).                              
       WORKING-STORAGE SECTION.                                        
           EXEC SQL                                                    
                INCLUDE SQLCA                                          
           END-EXEC.                                                  
           EXEC SQL                                                    
                INCLUDE CESTAB03                                      
           END-EXEC.                                                  
           EXEC SQL                                                    
                DECLARE CESTAB03 CURSOR WITH HOLD FOR                  
                        SELECT CUST_SS_NUM                            
                        FROM CESTAB03                                  
           END-EXEC.                                                  
       77 WS-SQLCODE PIC -999.                                        
       77 WS-STATUS  PIC 99.                                          
       77 WS-STATUS1 PIC 99.                                          
       77 WS-STATUS2 PIC 99.                                          
       PROCEDURE DIVISION.                                            
           PERFORM OPEN-PARA.                                          
           PERFORM READ-PARA UNTIL WS-STATUS = 10.                    
           PERFORM CLOSE-PARA.                                        
           STOP RUN.                                                  
       OPEN-PARA.                                                      
           OPEN INPUT INFILE.                                          
           DISPLAY ' INFILE STATUS IS : ' WS-STATUS.                  
           OPEN OUTPUT REJECT.                                        
           DISPLAY ' REJECT  FILE STATUS IS : ' WS-STATUS1.            
           OPEN OUTPUT OUTFILE.                                        
           DISPLAY ' OUTFILE FILE STATUS IS : ' WS-STATUS2.            
           EXEC SQL                                                    
                OPEN CESTAB03                                          
           END-EXEC.                                                  
       CLOSE-PARA.                                                    
           CLOSE INFILE REJECT OUTFILE.                                
           DISPLAY ' FILE STATUS IS : ' WS-STATUS.                    
           DISPLAY ' REJECT  FILE STATUS IS : ' WS-STATUS1.            
           DISPLAY ' OUTFILE FILE STATUS IS : ' WS-STATUS2.            
           EXEC SQL                                                    
                CLOSE CESTAB03                                        
           END-EXEC.                                                  
       READ-PARA.                                                      
           READ INFILE.                                                
           EXEC SQL                                                    
               FETCH CESTAB03                                          
                     INTO :CUST-SS-NUM                                
           END-EXEC.                                                  
           IF WS-STATUS = 00                                          
              IF CUST-SS-NUM = IN-CUST-SS-NUM                          
                 MOVE IN-REC TO OUT-REC2                              
                 WRITE OUT-REC2                                        
              ELSE                                                    
                 MOVE IN-REC TO OUT-REC1                              
                 WRITE OUT-REC1                                        
              END-IF                                                  
            END-IF.                                                    

******************************************************************************************************
TABLE CREATION--SPUFI
******************************************************************************************************

--CREATE TABLE CESTAB01(APP_NUM INT NOT NULL,                          
--                       CUST_FIRST_NAME  CHAR(20),                    
--                       CUST_SECOND_NAME CHAR(20),                    
--                       CUST_GENDER CHAR(6),                          
--                       CUST_ADD_1  CHAR(20),                        
--                       CUST_ADD_2  CHAR(20),                        
--                       CUST_ADD_3  CHAR(20),                        
--                       CUST_STATE  CHAR(10),                        
--                       CUST_P_CODE INT,                              
--                       CUST_STATUS CHAR(3),                          
--                       PROD_NUM    SMALLINT,                        
--                       APP_DATE    DATE,                            
--                       REFERAL_NUM SMALLINT,                        
--                       CREDIT_LIMIT DEC(8,2),                        
--                       APP_STATUS   CHAR(2),                        
--                       AGENT_CODE   SMALLINT,                        
--                       CUST_SS_NUM  CHAR(12),                        
--                       PREV_APP_STATUS CHAR(2),                      
--                       PRIMARY KEY (APP_NUM));                      
--CREATE UNIQUE INDEX CESTAB01 ON CESTAB01(APP_NUM);                  
  SELECT * FROM CESTAB03;                                              
--DROP TABLE BANK_APPL;                                                
--DELETE FROM CESTAB03;                                                
--CREATE TABLE CESTAB02(CUST_P_CODE INT,                              
--                      CUST_ADD_3 CHAR(20),                          
--                      CUST_STATE CHAR(10))                          
--CREATE TABLE CESTAB03(CUST_SS_NUM CHAR(12),                          
--                    CUST_FIRST_NAME CHAR(20),                        
--                    CUST_SECOND_NAME CHAR(20),                      
--                    CUST_GENDER CHAR(6))                            


*********************************************************************************************************
MAP SET CREATION --CICS PROGRAM
*********************************************************************************************************
CESMAP  DFHMSD TYPE=&SYSPARM,                                          *
               MODE=INOUT,                                             *
               LANG=COBOL,                                             *
               STORAGE=AUTO,                                           *
               TIOAPEX=YES,                                            *
               CTRL=(FREEKB,ALARM)                                    
MAIN    DFHMDI SIZE=(24,80),                                           *
               LINE=1,                                                 *
               COLUMN=1,                                               *
               JUSTIFY=LEFT,                                           *
               CTRL=ALARM                                              *
        DFHMDF POS=(5,10),LENGTH=12,INITIAL='APPLICATION',             *
               ATTRB=(BRT,PROT)                                        
        DFHMDF POS=(5,40),LENGTH=6,INITIAL='DATE :',                   *
               ATTRB=(BRT,PROT)                                        
FIELD1  DFHMDF POS=(5,46),LENGTH=10,                                   *
FIELD1  DFHMDF POS=(5,46),LENGTH=10,                                   *
               ATTRB=(BRT,UNPROT,IC,NUM)                              
        DFHMDF POS=(5,57),LENGTH=1,ATTRB=ASKIP                        
        DFHMDF POS=(6,40),LENGTH=6,INITIAL='TIME :',                   *
               ATTRB=(BRT,PROT)                                        
FIELD2  DFHMDF POS=(6,46),LENGTH=8,                                    *
               ATTRB=(BRT,UNPROT,NUM)                                  
        DFHMDF POS=(6,55),LENGTH=1,ATTRB=ASKIP                        
        DFHMDF POS=(10,15),LENGTH=10,INITIAL='APP_NO   :'              *
               ATTRB=(BRT,PROT)                                        
FIELD3  DFHMDF POS=(10,25),LENGTH=8,ATTRB=(BRT,UNPROT,NUM)            
        DFHMDF POS=(10,34),LENGTH=1,ATTRB=ASKIP                        
        DFHMDF POS=(12,15),LENGTH=10,INITIAL='CARDTYPE :'              *
               ATTRB=(BRT,PROT)                                        
FIELD4  DFHMDF POS=(12,25),LENGTH=10,ATTRB=(BRT,UNPROT)                
        DFHMDF POS=(12,35),LENGTH=1,ATTRB=ASKIP                        
        DFHMDF POS=(14,15),LENGTH=10,INITIAL='CR_LIMIT :'              *
               ATTRB=(BRT,PROT)                                        
FIELD5  DFHMDF POS=(14,25),LENGTH=10,ATTRB=(BRT,UNPROT,NUM)            
        DFHMDF POS=(14,35),LENGTH=1,ATTRB=ASKIP                        
        DFHMDF POS=(16,15),LENGTH=10,INITIAL='APPROVE  :'              *
               ATTRB=(BRT,PROT)                                        
FIELD6  DFHMDF POS=(16,25),LENGTH=1,ATTRB=(BRT,UNPROT)                
        DFHMDF POS=(16,27),LENGTH=1,ATTRB=ASKIP                        




insert program

 IDENTIFICATION DIVISION.              
 PROGRAM-ID. INSERT1.                  
 ENVIRONMENT DIVISION.                
 INPUT-OUTPUT SECTION.                
 FILE-CONTROL.                        
      SELECT INFILE ASSIGN TO INDD    
      FILE STATUS IS WS-STATUS.        
 DATA DIVISION.                        
 FILE SECTION.                        
 FD INFILE.                            
 01 IN-REC.                            
     02 app_no PIC 9(20).              
     02 cust_NAME PIC X(20).          
     02 cust_add_1 PIC X(20).          
     02 cust_add_2 PIC x(5).          
     02 SEX  PIC X(5).                
     02 SEM  PIC 9(1).      
     02 F    PIC X(49).                          
 WORKING-STORAGE SECTION.                        
     EXEC SQL                                    
          INCLUDE SQLCA                          
     END-EXEC.                                    
     EXEC SQL                                    
          INCLUDE DB1A                            
     END-EXEC.                                    
 77 WS-SQLCODE PIC -999.                          
 77 WS-STATUS  PIC   99.                          
 PROCEDURE DIVISION.                              
      PERFORM OPEN-PARA.                          
      PERFORM INSERT-PARA UNTIL WS-STATUS = 10.  
      MOVE SQLCODE TO WS-SQLCODE.                
      DISPLAY "SQLCODE:" WS-SQLCODE.              
      PERFORM CLOSE-PARA.                        
         STOP RUN.                                  
    OPEN-PARA.                                      
        OPEN INPUT INFILE.                          
        DISPLAY 'FILE STATUS' WS-STATUS.            
    CLOSE-PARA.                                      
        CLOSE INFILE.                                
    INSERT-PARA.                                    
        READ INFILE.                                
        DISPLAY "ROLL NO=" ROLLNO.                  
        IF WS-STATUS = 00                            
            MOVE ROLL TO ROLLNO                      
            MOVE NAME TO STD-NAME                    
            MOVE DEPT TO STD-DEPT                    
            MOVE FEES TO STD-FEES                    
            MOVE SEX  TO STD-SEX                    
            MOVE SEM  TO STD-SEM                    
        EXEC SQL                                    
           INSERT INTO cestab01              
                 (app_no,
                 cust-first-name,
cust-second-name,
cust-gender,
cust-add1,
cust-add2,
cust-add3,
cust-state,
cust-p-code,
cust-status,
prod-num,
app-date,
referal-num,
credit-limit,
app-status,
agent-code,
cust-ss-num,
prev-app-stat    
                 )                          
           VALUES(    :app_no,
                 :cust-first-name,
:cust-second-name,
:cust-gender,
:cust-add1,
:cust-add2,
:cust-add3,
:cust-state,
:cust-p-code,
:cust-status,
:prod-num,
:app-date,
:referal-num,
:credit-limit,
:app-status,
:agent-code,
:cust-ss-num,
:prev-app-stat    
                 )                                  
       END-EXEC                        
       END-IF.                                      
       EVALUATE SQLCODE                            
             WHEN 0                                
        WHEN 0                                                
             DISPLAY 'app-no    :' app-no                    
             DISPLAY 'Cust-first-name   :' Cust-first-name                
             DISPLAY 'cust-second-name   :' cust-second-name                  
             DISPLAY 'credit-limit :'   credit-limit                  
             DISPLAY 'cust-gender  :'   cust-gender                  
             DISPLAY 'app-status  :'   app-status                  
        WHEN OTHER                                            
             MOVE SQLCODE TO WS-SQLCODE                      
             DISPLAY 'SQLCODE  :' WS-SQLCODE                  
  END-EVALUATE.                      

address validation

IDENTIFICATION DIVISION.                                        
     PROGRAM-ID. address.                                                
     DATA DIVISION.                                                  
     WORKING-STORAGE SECTION.                                        
         EXEC SQL                                                    
              INCLUDE SQLCA                                          
         END-EXEC.                                                  
         EXEC SQL                                                    
              INCLUDE dcgen                                          
         END-EXEC.              
exec sql
decalre dcgen cursor for
select cust_p_code,cust_add1,cust_state
from cestab01  
end-exec                                  
     77 WS-SQLCODE PIC -999.  
    77 a pic   9(3).
      77 b pic x(20).
      77 c pic x(10).                                    
     PROCEDURE DIVISION.                                            
perform open-para.
perform fetch-para until sqlcode=100.
perform close-para.
stop run.
open-para.
exec sql
open dcgen
end-exec.
fetch-para.
exec sql
fetch dcgen into :cust-p-code,                                          
                   :cust-add1,                                        
                   :cust-state
end -exec.      
close-para.
exec sql
close dcgen
end-exec.                                
     MOVE SQLCODE TO WS-SQLCODE.                      
     DISPLAY WS-SQLCODE.                              
     DISPLAY cust-first-name.                                  
     DISPLAY cust-second-NAME.                                
     STOP RUN.