IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Time Stamp comparison


IBM Mainframe Forums -> DB2
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Rajkumar_n

New User


Joined: 07 Dec 2006
Posts: 51
Location: Bloomington

PostPosted: Thu Apr 02, 2009 9:55 am
Reply with quote

Hi ,

I am having a problem in comparing the time stamp of a record from three tables.

I have 3 tables TABLE A, TABLE B, TABLE C and the data from each table for a record is as shown below

TABLE A

Column A LOAD_TM
20000028 2009-03-31-08.08.15.338106

Table B

Column A LOAD_TM
20000028 2009-03-31-08.07.15.338106

Table C
20000028 2009-03-31-08.09.15.338106

Now my requirement is to get the latest date for the record from three tabes and update with the latest load_tm value for that record in all the tables.

For some technical reasons I have declared a temparory table and inserting the records from three tables in to temp table and using max function on LOAD_TM. After this I am populating max load_tm in to a temp variable defined as PIC X(26), using the same working storage temp variable I am updating record in all the tables.

But in doing this the comparison after the date (i.e after 2009-03-31 ) is not going fine.

Can any one tell if there is anything wrong in my variable declarations ?

Can we use max function on a column of temparory table ?

I have attached my program for better understanding.

Thanks and Regards,
Rajkumar Nerella


edited to transform the attachment into inline data
please do not post attachemts, not everybody can see them,

Code:

       IDENTIFICATION DIVISION.                                         00010099
       PROGRAM-ID.    OLBUPDAT.                                         00020099
       DATE-WRITTEN.  FEB 2009.                                         00030099
       AUTHOR.  RAJKUMAR NERELLA.                                       00040099
      *                                                                 00050099
      ****************************************************************  00060099
      * THE PROGRAM READS ALL RECORDS FROM EACH TABLE AND LOAD THEM IN  00070099
      * A TEMPARORY TABLE. LATERT FETCHES EACH APPLICATION FROM TEMP    00080099
      * TABLE AND UPDATES THE LOAD_TM WITH LATEST DATE IN ALL TABLES FOR00090099
      * EACH APPLICATION.                                               00100099
      ****************************************************************  00110099
      ** MODIFICATION LOG:                                              00120099
      **  DATE     NAME       DESC                                      00130099
      ** --------- ---------- ----------------------------------------- 00140099
      ** 03/17/09  RAJKUMAR   INITIAL.                                  00150099
      ****************************************************************  00160099
      *                                                                 00170099
       ENVIRONMENT DIVISION.                                            00180099
      *                                                                 00190099
       CONFIGURATION SECTION.                                           00200099
       SOURCE-COMPUTER.            IBM-370.                             00210099
       OBJECT-COMPUTER.            IBM-370.                             00220099
      *                                                                 00230099
       INPUT-OUTPUT SECTION.                                            00240099
       FILE-CONTROL.                                                    00250099
       DATA DIVISION.                                                   00260099
      *                                                                 00270099
       FILE SECTION.                                                    00280099
      *                                                                 00290099
       WORKING-STORAGE SECTION.                                         00300099
      *                                                                 00310099
       01  FILLER                           PIC X(15)  VALUE            00320099
            'WORKING STORAGE'.                                          00330099
       01  WS-WHEN-COMPILED-AREA.                                       00340099
           05  WS-COMPILATION-TIME-DATE.                                00350099
               10  WS-COMPILATION-DATE      PIC X(8).                   00360099
               10  WS-COMPILATION-TIME      PIC X(12).                  00370099
           05  WS-WHEN-COMPILED-MSG.                                    00380099
               10  FILLER                   PIC X(36) VALUE             00390099
               'PROGRAM OLBUPDAT - LAST COMPILED ON '.                  00400099
               10  WS-COMPILE-DATE          PIC X(12).                  00410099
               10  FILLER                   PIC X(4)  VALUE ' AT '.     00420099
               10  WS-COMPILE-TIME          PIC X(8).                   00430099
                                                                        00440099
       01  WS-MISC-FIELDS.                                              00450099
           05  USER-ABEND               PIC S9(03)  VALUE +0.           00460099
           05  WS-ILBOABNO              PIC  X(08)  VALUE 'ILBOABN0'.   00470099
       01  WS-ERROR-HANDLING.                                           00480099
           05  TEXT-LENGTH           PIC S9(9) COMP VALUE +120.         00490099
           05  SQLCODE-MESSAGE.                                         00500099
              10  MSG-LENGTH            PIC S9(4) COMP VALUE +1200.     00510099
              10  MSG-TEXT              PIC X(120) OCCURS 10 TIMES      00520099
                                     INDEXED BY MSG-INDEX.              00530099
           05  PRINT-LINE            PIC X(133) VALUE SPACE.            00540099
           05  WS-ABEND-CODE         PIC S9(04) COMP VALUE +0.          00550099
           05  USER-RETURN-CODE      PIC S9(03) COMP VALUE +0.          00560099
      *                                                                 00570099
       01  WS-MISC1.                                                    00580099
           05  WS-CRED-OFF-APP-NO             PIC S9(9) USAGE COMP.     00590099
       01  WS-MISC.                                                     00600099
                                                                        00720099
           05  WS-END-OF-CURSOR               PIC X(01).                00730099
               88 END-OF-CURSOR                        VALUE 'Y'.       00740099
               88 NOT-END-OF-CURSOR                    VALUE 'N'.       00750099
                                                                        00760099
           05 WS-TEMP-VALUES.                                           00770099
              10  WS-TEMP-APPL-NO            PIC S9(9) USAGE COMP.      00780099
              10  WS-TEMP-LOAD-TM            PIC X(26).                 00790099
                                                                        00920099
      * STANDARD  DB2 ROUTINES STARTS HERE                              00930099
                                                                        00940099
            EXEC SQL                                                    00950099
             INCLUDE SQLCA                                              00960099
            END-EXEC.                                                   00970099
                                                                        00980099
      * DCLGEN - CRED_OFFERING_USA                                      00990099
                                                                        01000099
           EXEC SQL                                                     01010099
            INCLUDE LSPOFFUS                                            01020099
           END-EXEC.                                                    01030099
      * DCLGEN   - CRED_APPL_USA                                        01040099
                                                                        01050099
              EXEC SQL                                                  01060099
                INCLUDE LSPAPLUS                                        01070099
              END-EXEC.                                                 01080099
      *                                                                 01090099
      * DCLGEN   - CRED_APP_USA                                         01100099
                                                                        01110099
              EXEC SQL                                                  01120099
                INCLUDE LSPAPPUS                                        01130099
              END-EXEC.                                                 01140099
      *                                                                 01150099
      * DCLGEN   - CRED_APPL_CMT_USA                                    01160099
                                                                        01170099
              EXEC SQL                                                  01180099
                INCLUDE LSPCMTUS                                        01190099
              END-EXEC.                                                 01200099
      *                                                                 01210099
      ***********************************************************       01220099
      **                  DECLARE CURSOR                                01230099
      ***********************************************************       01240099
                                                                        01250099
      *   DECLARE CURSOR FOR THE TEMPORARY TABLE                        01260099
                                                                        01270099
             EXEC SQL                                                   01280099
             DECLARE LOS_EXTRACT CURSOR FOR                             01290099
                SELECT LOS_APPL_NO,MAX(LOS_LOAD_TM)                     01300099
                FROM SESSION.LOS_TEMP                                   01301099
                GROUP BY LOS_APPL_NO                                    01310099
             END-EXEC.                                                  01320099
      *                                                                 01330099
       PROCEDURE DIVISION.                                              01340099
                                                                        01350099
      *                                                                 01360099
       0000-MAIN-PARA.                                                  01370099
            MOVE WHEN-COMPILED TO WS-COMPILATION-TIME-DATE.             01380099
            MOVE WS-COMPILATION-DATE TO WS-COMPILE-DATE.                01390099
            MOVE WS-COMPILATION-TIME TO WS-COMPILE-TIME.                01400099
            DISPLAY WS-WHEN-COMPILED-MSG.                               01410099
                                                                        01420099
            PERFORM 1000-CREATE-TABLE                                   01430099
               THRU 1000-EXIT.                                          01440099
                                                                        01450099
            PERFORM 2000-PROCESS-PARA                                   01460099
               THRU 2000-EXIT.                                          01470099
                                                                        01480099
            PERFORM 2500-LOAD-TEMP-TABLE-OFF                            01490099
               THRU 2500-EXIT.                                          01500099
                                                                        01510099
            PERFORM 3000-PROCESS-LOOP                                   01520099
               THRU 3000-EXIT.                                          01530099
                                                                        01540099
            PERFORM 5000-CLOSE-CURSOR                                   01550099
               THRU 5000-EXIT.                                          01560099
                                                                        01570099
            STOP RUN.                                                   01580099
                                                                        01590099
      *********************                                             01600099
       1000-CREATE-TABLE.                                               01610099
      *********************                                             01620099
      ******* CREATE A TEMPARORY TABLE                                  01630099
                                                                        01640099
                EXEC SQL                                                01650099
                    DECLARE GLOBAL TEMPORARY TABLE  LOS_TEMP            01660099
                            ( LOS_APPL_NO     INTEGER NOT NULL,         01670099
                              LOS_LOAD_TM     CHAR(26))                 01680099
                          ON COMMIT PRESERVE ROWS                       01690099
                END-EXEC.                                               01700099
                                                                        01710099
            EVALUATE SQLCODE                                            01720099
                                                                        01730099
            WHEN +0                                                     01740099
            CONTINUE                                                    01750099
            WHEN OTHER                                                  01760099
                DISPLAY 'SQL ERROR ON CREATING TEMPARARY TABLE'         01770099
                PERFORM 9000-SQL-ERROR   THRU 9000-EXIT                 01780099
             END-EVALUATE.                                              01790099
                                                                        01800099
       1000-EXIT.                                                       01810099
           EXIT.                                                        01820099
      ********************                                              01830099
       2000-PROCESS-PARA.                                               01840099
      ********************                                              01850099
             DISPLAY 'ENTERED IN TO 2000-PROCESS-PARA'                  01860099
                                                                        01870099
             PERFORM 2500-LOAD-TEMP-TABLE-OFF                           01880099
                THRU 2500-EXIT.                                         01890099
                                                                        01900099
       2000-EXIT.                                                       01910099
           EXIT.                                                        01920099
                                                                        01930099
      ****************************                                      01940099
       2500-LOAD-TEMP-TABLE-OFF.                                        01950099
      ****************************                                      01960099
                                                                        01970099
             EXEC SQL                                                   01980099
                 INSERT INTO SESSION.LOS_TEMP                           01990099
                        (SELECT APPL_NO,LOAD_TM                         02000099
                          FROM CRED_OFFERING_USA                        02010099
                          WHERE APPL_NO > 19999999)                     02020099
             END-EXEC.                                                  02030099
                                                                        02040099
             EVALUATE  SQLCODE                                          02050099
               WHEN +0                                                  02060099
                  CONTINUE                                              02070099
               WHEN +100                                                02080099
                  PERFORM 2600-LOAD-TEMP-APPL                           02090099
                     THRU 2600-EXIT                                     02100099
               WHEN OTHER                                               02110099
                  DISPLAY 'SQL ERROR ON INSERT CRED OFFERING USA'       02120099
                  PERFORM 9000-SQL-ERROR   THRU 9000-EXIT               02130099
             END-EVALUATE.                                              02140099
                                                                        02150099
       2500-EXIT.                                                       02160099
            EXIT.                                                       02170099
      **********************                                            02180099
       2600-LOAD-TEMP-APPL.                                             02190099
      **********************                                            02200099
                                                                        02210099
             EXEC SQL                                                   02220099
                 INSERT INTO SESSION.LOS_TEMP                           02230099
                        (SELECT APPL_NO,LOAD_TM                         02240099
                          FROM CRED_APPL_USA                            02250099
                          WHERE APPL_NO > 19999999)                     02260099
             END-EXEC.                                                  02270099
                                                                        02280099
             EVALUATE  SQLCODE                                          02290099
               WHEN +0                                                  02300099
                  CONTINUE                                              02310099
               WHEN +100                                                02320099
                  PERFORM 2700-LOAD-TEMP-TABLE-APP                      02330099
                     THRU 2700-EXIT                                     02340099
               WHEN OTHER                                               02350099
                  DISPLAY 'SQL ERROR ON INSERT CRED APPL USA'           02360099
                  PERFORM 9000-SQL-ERROR   THRU 9000-EXIT               02370099
             END-EVALUATE.                                              02380099
                                                                        02390099
       2600-EXIT.                                                       02400099
            EXIT.                                                       02410099
      ***************************                                       02420099
       2700-LOAD-TEMP-TABLE-APP.                                        02430099
      ***************************                                       02440099
             EXEC SQL                                                   02450099
                 INSERT INTO SESSION.LOS_TEMP                           02460099
                        (SELECT APPL_NO,MAX(LOAD_TM)                    02470099
                          FROM CRED_APP_USA                             02480099
                          WHERE APPL_NO > 19999999  GROUP BY APPL_NO)   02490099
             END-EXEC.                                                  02500099
                                                                        02510099
             EVALUATE  SQLCODE                                          02520099
               WHEN +0                                                  02530099
                  CONTINUE                                              02540099
               WHEN +100                                                02550099
                  PERFORM 2800-LOAD-TEMP-TABLE-CMT                      02560099
                     THRU 2800-EXIT                                     02570099
               WHEN OTHER                                               02580099
                  DISPLAY 'SQL ERROR ON INSERT CRED APP USA'            02590099
                  PERFORM 9000-SQL-ERROR   THRU 9000-EXIT               02600099
             END-EVALUATE.                                              02610099
                                                                        02620099
       2700-EXIT.                                                       02630099
            EXIT.                                                       02640099
      ***************************                                       02650099
       2800-LOAD-TEMP-TABLE-CMT.                                        02660099
      ***************************                                       02670099
             EXEC SQL                                                   02680099
                 INSERT INTO SESSION.LOS_TEMP                           02690099
                        (SELECT APPL_NO,MAX(LOAD_TM)                    02700099
                          FROM  CRED_APPL_CMT_USA                       02710099
                          WHERE APPL_NO > 19999999 GROUP BY APPL_NO)    02720099
             END-EXEC.                                                  02730099
                                                                        02740099
             EVALUATE  SQLCODE                                          02750099
               WHEN +0                                                  02760099
                  PERFORM 3000-PROCESS-LOOP                             02770099
               WHEN +100                                                02780099
                 PERFORM 2900-COMMIT-TEMP-TABLE                         02790099
                    THRU 2900-EXIT                                      02800099
               WHEN OTHER                                               02810099
                  DISPLAY 'SQL ERROR ON INSERT CRED APP USA'            02820099
                  PERFORM 9000-SQL-ERROR   THRU 9000-EXIT               02830099
             END-EVALUATE.                                              02840099
                                                                        02850099
       2800-EXIT.                                                       02860099
            EXIT.                                                       02870099
                                                                        02880099
      *************************                                         02890099
       2900-COMMIT-TEMP-TABLE.                                          02900099
      *************************                                         02910099
                                                                        02920099
             EXEC SQL                                                   02930099
                 COMMIT                                                 02940099
             END-EXEC.                                                  02950099
                                                                        02960099
       2900-EXIT.                                                       02970099
            EXIT.                                                       02980099
      ********************                                              02990099
       3000-PROCESS-LOOP.                                               03000099
      ********************                                              03010099
                                                                        03020099
             EXEC SQL                                                   03030099
                 OPEN  LOS_EXTRACT                                      03040099
             END-EXEC.                                                  03050099
                                                                        03060099
             EVALUATE  SQLCODE                                          03070099
                                                                        03080099
             WHEN +0                                                    03090099
               PERFORM  3500-FETCH-CURSOR                               03100099
                  THRU  3500-EXIT UNTIL END-OF-CURSOR                   03110099
             WHEN OTHER                                                 03120099
               DISPLAY 'SQL ERROR ON OPENING CURSOR LOS_EXTRACT'        03130099
               PERFORM 9000-SQL-ERROR   THRU 9000-EXIT                  03140099
             END-EVALUATE.                                              03150099
                                                                        03160099
       3000-EXIT.                                                       03170099
            EXIT.                                                       03180099
                                                                        03190099
      ********************                                              03200099
       3500-FETCH-CURSOR.                                               03210099
      ********************                                              03220099
                                                                        03230099
             INITIALIZE    WS-TEMP-APPL-NO,                             03240099
                           WS-TEMP-LOAD-TM                              03250099
                                                                        03260099
             EXEC SQL                                                   03270099
                  FETCH LOS_EXTRACT INTO                                03280099
                                      :WS-TEMP-APPL-NO,                 03290099
                                      :WS-TEMP-LOAD-TM                  03300099
             END-EXEC.                                                  03310099
                                                                        03320099
             EVALUATE SQLCODE                                           03330099
                                                                        03340099
             WHEN +0                                                    03350099
                PERFORM 3600-DISPLAY-PARA                               03351099
                   THRU 3600-EXIT                                       03352099
                PERFORM 4000-UPDATE-LOAD-TM                             03360099
                   THRU 4000-EXIT                                       03370099
             WHEN +100                                                  03380099
                DISPLAY 'END-OF-TEMP-TABLE REACHED'                     03390099
                DISPLAY 'CLOSING TEMPARORY TABLE'                       03400099
                SET END-OF-CURSOR TO TRUE                               03410099
                PERFORM 4000-EXIT                                       03411099
             WHEN OTHER                                                 03420099
                  DISPLAY 'SQL ERROR ON FETCH FOR LOS_TEMP TABLE'       03430099
                  PERFORM 9000-SQL-ERROR   THRU 9000-EXIT               03440099
             END-EVALUATE.                                              03450099
                                                                        03460099
       3500-EXIT.                                                       03470099
            EXIT.                                                       03480099
                                                                        03490099
      ****************************                                      03500099
       4000-UPDATE-LOAD-TM.                                             03510099
      ****************************                                      03520099
                                                                        03530099
            IF  END-OF-CURSOR                                           03540099
                PERFORM 5000-CLOSE-CURSOR                               03550099
                   THRU 5000-EXIT                                       03560099
            ELSE                                                        03570099
               CONTINUE                                                 03580099
            END-IF                                                      03590099
                                                                        03600099
            DISPLAY 'ENTERED IN 4000-UPDATE-LOAD-TM'                    03610099
            DISPLAY 'LATEST LOAD-TIME FOR RECORD:' WS-TEMP-APPL-NO      03620099
            DISPLAY 'LATEST LOAD TIME IS:' WS-TEMP-LOAD-TM              03630099
                                                                        03640099
            EXEC SQL                                                    03650099
                                                                        03660099
                UPDATE   CRED_OFFERING_USA                              03670099
                   SET  LOAD_TM = :WS-TEMP-LOAD-TM                      03680099
                WHERE   APPL_NO = :WS-TEMP-APPL-NO                      03690099
                                                                        03700099
            END-EXEC.                                                   03710099
                                                                        03720099
            EVALUATE SQLCODE                                            03730099
                                                                        03740099
            WHEN +0                                                     03750099
               CONTINUE                                                 03760099
            WHEN +100                                                   03770099
               DISPLAY 'RECORD NOT FOUND FOR APPL_NUM:' WS-TEMP-APPL-NO 03780099
            WHEN OTHER                                                  03790099
                  DISPLAY 'SQL ERROR WHILE UPDATE ON CRED_OFFER'        03800099
                  DISPLAY 'APPLICATION  NUMBER:'                        03810099
                                WS-TEMP-APPL-NO                         03820099
                  PERFORM 9000-SQL-ERROR   THRU 9000-EXIT               03830099
            END-EVALUATE                                                03840099
                                                                        03850099
            EXEC SQL                                                    03860099
                UPDATE   CRED_APPL_USA                                  03870099
                   SET  LOAD_TM = :WS-TEMP-LOAD-TM                      03880099
                WHERE   APPL_NO = :WS-TEMP-APPL-NO                      03890099
            END-EXEC.                                                   03900099
                                                                        03910099
            EVALUATE SQLCODE                                            03920099
                                                                        03930099
            WHEN +0                                                     03940099
               CONTINUE                                                 03950099
            WHEN +100                                                   03960099
               DISPLAY 'RECORD NOT FOUND IN CRED-APPL FOR APPL_NUM:'    03970099
                                       WS-TEMP-APPL-NO                  03980099
               CONTINUE                                                 03990099
            WHEN OTHER                                                  04000099
                  DISPLAY 'SQL ERROR WHILE UPDATE ON CRED_APPL'         04010099
                  DISPLAY 'APPLICATION  NUMBER:'                        04020099
                                WS-TEMP-APPL-NO                         04030099
                  PERFORM 9000-SQL-ERROR   THRU 9000-EXIT               04040099
            END-EVALUATE.                                               04050099
                                                                        04060099
            EXEC SQL                                                    04070099
               UPDATE   CRED_APP_USA                                    04080099
                 SET  LOAD_TM = :WS-TEMP-LOAD-TM                        04090099
               WHERE  APPL_NO = :WS-TEMP-APPL-NO                        04100099
            END-EXEC.                                                   04110099
                                                                        04120099
            EVALUATE SQLCODE                                            04130099
                                                                        04140099
            WHEN +0                                                     04150099
               CONTINUE                                                 04160099
            WHEN +100                                                   04170099
               DISPLAY 'RECORD NOT FOUND IN CRED-APP FOR APPL_NUM:'     04180099
                                       WS-TEMP-APPL-NO                  04190099
               CONTINUE                                                 04200099
            WHEN OTHER                                                  04210099
                  DISPLAY 'SQL ERROR WHILE UPDATE ON CRED_APP'          04220099
                  DISPLAY 'APPLICATION  NUMBER:'                        04230099
                                WS-TEMP-APPL-NO                         04240099
                  PERFORM 9000-SQL-ERROR   THRU 9000-EXIT               04250099
            END-EVALUATE.                                               04260099
                                                                        04270099
            EXEC SQL                                                    04280099
               UPDATE   CRED_APPL_CMT_USA                               04290099
                  SET  LOAD_TM = :WS-TEMP-LOAD-TM                       04300099
               WHERE   APPL_NO = :WS-TEMP-APPL-NO                       04310099
            END-EXEC.                                                   04320099
                                                                        04330099
            EVALUATE SQLCODE                                            04340099
                                                                        04350099
            WHEN +0                                                     04360099
               CONTINUE                                                 04370099
            WHEN +100                                                   04380099
               DISPLAY 'RECORD NOT FOUND IN CRED-APP-CMT FOR APPL_NUM:' 04390099
                                       WS-TEMP-APPL-NO                  04400099
               CONTINUE                                                 04410099
            WHEN OTHER                                                  04420099
                  DISPLAY 'SQL ERROR WHILE UPDATE ON CRED_APP_CMT'      04430099
                  DISPLAY 'APPLICATION  NUMBER:'                        04440099
                                WS-TEMP-APPL-NO                         04450099
                  PERFORM 9000-SQL-ERROR   THRU 9000-EXIT               04460099
            END-EVALUATE.                                               04470099
                                                                        04470199
       4000-EXIT.                                                       04471099
           EXIT.                                                        04472099
                                                                        04480099
       3600-DISPLAY-PARA.                                               04480199
            DISPLAY 'APPL_NO:'WS-TEMP-APPL-NO                           04482099
            DISPLAY 'LOAD_TM:'WS-TEMP-LOAD-TM.                          04483099
      ***********                                                       04510099
       3600-EXIT.                                                       04510199
      ***********                                                       04510299
            EXIT.                                                       04510399
      ***************************                                       04520099
       5000-CLOSE-CURSOR.                                               04530099
      ***************************                                       04540099
                                                                        04550099
            EXEC SQL                                                    04560099
                CLOSE  LOS_EXTRACT                                      04570099
            END-EXEC.                                                   04580099
                                                                        04590099
            IF  SQLCODE = 0                                             04600099
               CONTINUE                                                 04610099
            ELSE                                                        04620099
               DISPLAY '*********************************'              04630099
               DISPLAY 'ERROR IN CLOSING CURSOR'                        04640099
               DISPLAY '5000-CLOSE-CURSOR'                              04650099
               DISPLAY '*********************************'              04660099
               PERFORM 9000-SQL-ERROR                                   04670099
            END-IF.                                                     04680099
                                                                        04690099
       5000-EXIT.                                                       04700099
           EXIT.                                                        04710099
                                                                        04720099
      ***************************                                       04730099
       9000-SQL-ERROR.                                                  04740099
      ***************************                                       04750099
                                                                        04760099
           CALL 'DSNTIAR'                                               04770099
           USING SQLCA, SQLCODE-MESSAGE, TEXT-LENGTH.                   04780099
           IF RETURN-CODE GREATER THAN  +24                             04790099
              PERFORM 9920-DISPLAY-MESSAGE THRU 9920-EXIT               04800099
                   VARYING MSG-INDEX FROM 1 BY 1                        04810099
                   UNTIL MSG-INDEX > 10                                 04820099
           ELSE                                                         04830099
              DISPLAY 'ERROR IN DSNTIAR!!'                              04840099
              MOVE RETURN-CODE TO WS-ABEND-CODE                         04850099
              DISPLAY ' SQLCA = ' SQLCA                                 04860099
              PERFORM 9920-DISPLAY-MESSAGE THRU 9920-EXIT               04870099
                   VARYING MSG-INDEX FROM 1 BY 1                        04880099
                   UNTIL MSG-INDEX > 10                                 04890099
           END-IF.                                                      04900099
                                                                        04910099
           EXEC SQL                                                     04920099
             ROLLBACK                                                   04930099
           END-EXEC.                                                    04940099
                                                                        04950099
           PERFORM 9930-ILBOABN0-ROUTINE.                               04960099
       9000-EXIT.                                                       04970099
           EXIT.                                                        04980099
                                                                        04990099
      *************************                                         05000099
       9920-DISPLAY-MESSAGE.                                            05010099
      *************************                                         05020099
                                                                        05030099
           MOVE MSG-TEXT(MSG-INDEX)  TO PRINT-LINE.                     05040099
           DISPLAY PRINT-LINE.                                          05050099
                                                                        05060099
       9920-EXIT.                                                       05070099
           EXIT.                                                        05080099
                                                                        05090099
      *************************                                         05100099
       9930-ILBOABN0-ROUTINE.                                           05110099
      *************************                                         05120099
                                                                        05130099
           DISPLAY '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'             05140099
           DISPLAY '@@  TAKING INTENTIONAL USER ABEND   @@'             05150099
           DISPLAY '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'             05160099
           CALL 'ILBOABN0' USING WS-ABEND-CODE.                         05170099

Back to top
View user's profile Send private message
sushanth bobby

Senior Member


Joined: 29 Jul 2008
Posts: 1020
Location: India

PostPosted: Thu Apr 02, 2009 7:55 pm
Reply with quote

Raj,

Are you getting any errors ? If so can you post the SQLCODE.

Thank You,
Sushanth Bobby
Back to top
View user's profile Send private message
Rajkumar_n

New User


Joined: 07 Dec 2006
Posts: 51
Location: Bloomington

PostPosted: Thu Apr 02, 2009 8:20 pm
Reply with quote

I am not getting any errors. But the expected result is not met.

EX:

If the LOAD_TM from three tables for a record is as shown below

2009-03-31-08.08.15.568296
2009-03-31-08.07.01.912626
2009-03-31-08.04.12.660641

In this case I am expecting the record should be updated by

2009-03-31-08.08.15.568296 in all tables, but the record is getting the time stamp

2009-03-31-08.04.12.660641.

I think the time portion is not being compared properly

Thanks and Regards,
Rajkumar Nerella
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Thu Apr 02, 2009 10:04 pm
Reply with quote

possibly have the compare backwards?
Back to top
View user's profile Send private message
Raghu navaikulam

Active User


Joined: 27 Sep 2008
Posts: 193
Location: chennai

PostPosted: Fri Apr 03, 2009 12:27 am
Reply with quote

Hi Rajkumar

To my opinion you should use three select statement with the MAX function to get the highest value from each table. Put it in a working storage variable rather than inserting into another table. Because to compare it again the program has to execute another SQL. When selecting don't forget to choose the required column from the table because you need an updation.
Then use a bubble sort to find the highest value among the three values in the working storage variable. After the bubble sort you will be able to get the highest value, then that value can be used to update the tables.
You can also avoid the use of INSERT, DECLARE, OPEN , FETCH and CLOSE statements.
Remember there is no +0. 0 is neither positive nor negative. While checking the SQLCODE for INSERT, there is no need of evaluating +100.
Considering all these you can reduce the size your program also.
Hope this will help you

Regards
Raghu
Back to top
View user's profile Send private message
muthuvel

Active User


Joined: 29 Nov 2005
Posts: 217
Location: Canada

PostPosted: Fri Apr 03, 2009 12:27 pm
Reply with quote

Just to add up,
As per the above code ,in INSERT there is no chance of getting +100,hence paras 2600,2700,2800,2900 will not be executed.

In SPUFI or QMF or file aid,what is the output of this query,
Code:
SELECT APPL_NO,LOAD_TM         
           FROM CRED_OFFERING_USA                   
           WHERE APPL_NO > 19999999)


Why are you calling 2000-process para twice?
Back to top
View user's profile Send private message
Rajkumar_n

New User


Joined: 07 Dec 2006
Posts: 51
Location: Bloomington

PostPosted: Thu Apr 16, 2009 8:51 am
Reply with quote

Hi Muthu,

Sorry for the late reply, I was on vacation.

Thanks a lot for your excellent catch. Yes I was really mad to see the program getting the latest date from the first insert statement and it never went to other paras.

I made changes to the program and the program is working fine.

Thanks and Regards,
Rajkumar Nerella
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Thu Apr 16, 2009 8:56 am
Reply with quote

Good to hear it is working - thank you for letting us know icon_smile.gif

d
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DB2

 


Similar Topics
Topic Forum Replies
No new posts To get the the current time DFSORT/ICETOOL 13
No new posts RC query -Time column CA Products 3
No new posts C Compile time time stamps Java & MQSeries 10
No new posts Parallelization in CICS to reduce res... CICS 4
No new posts Insert system time/date (timestamp) u... DFSORT/ICETOOL 5
Search our Forums:

Back to Top