Subscript exceeded size of Array



Support for OS/VS COBOL, VS COBOL II, COBOL for OS/390 & VM and Enterprise COBOL for z/OS

Subscript exceeded size of Array

Postby srikarg » Tue Jul 14, 2009 9:51 pm

Hi I have program like this. Pls find below variable declarations & Para in which i am getting eror.

please help me out. TQ.

variable declarations:

LT-OCCD-TABLE            PIC X(29)   VALUE               
                             'OCCD-CALC-ARR'.           
                                                         
LT-DATE-CONV-ERR         PIC X(128)   VALUE             
'ERROR CALLING DATE CONVERSION MODULE CUMDT001'.         
LT-FETCH-ERROR           PIC X(128)  VALUE               
         'FETCH ON CR_DR_ACTIVITY FAILED'.               
LT-DA-SELECT-ERROR       PIC X(128)  VALUE               
         'SQL SELECT FAILED ON DB_ACTIVITY TABLE'.       
LT-BA-SELECT-ERROR       PIC X(128)  VALUE               
         'SQL SELECT FAILED ON BILL_ACCT TABLE  '.       
LT-CH-SELECT-ERROR       PIC X(128)  VALUE               
         'SQL SELECT FAILED ON COLL_HIST TABLE  '.       
LT-DC-SELECT-ERROR       PIC X(128)  VALUE               
         'SQL SELECT FAILED ON DT_CONST TABLE   '.       
LT-DYC-SELECT-ERROR      PIC X(128)  VALUE               
         'SQL SELECT FAILED ON DT_YEARLY_CONST TABLE'.   
LT-TABLE-SIZE-ERROR      PIC X(128)  VALUE               
         'A SUBSCRIPT EXCEEDED THE SIZE OF THE ARRAY'.   
LT-INVALID-TRANS         PIC X(128)  VALUE               
'AN INVALID TRANSACTION TYPE WAS FOUND ON THE OCTH REC'.
LT-VSAM-ERROR            PIC X(128)  VALUE               
'A VSAM ERROR OCCURED ON FILE UCCMST. CHECK VSAM STATUS'.
                                                         
LT-INTERNAL              PIC X(10)  VALUE 'INTERNAL'.   
                                                         
LT-OPEN                  PIC X(10)  VALUE 'OPEN'.       
LT-READ                  PIC X(10)  VALUE 'READ'.       


Paragraph in which I am getting error:


*    Para A9620     ---------------------------------------------       
*    THIS MOVES THE FIELDS FROM WS-PERIOD-OF-DEBT ARRAY INTO 
*    THE OCCD ARRAY USING WS-PERIOD-SFX-2(WS-PERIOD-SUB) AS   
*    SUBSCRIPT.                                               
*                                                             
**************************************************************
*                                                             
                                                             
     MOVE WS-PERIOD-SFX-2(WS-PERIOD-SUB) TO WS-OCCD-SUB.     
                                                             
     IF WS-OCCD-SUB > WS-OCCD-TABLE-SIZE                     
        MOVE  'A9620'         TO ERR-KY-PARAGRPH-NO           
        MOVE  LT-OCCD-TABLE   TO ERR-NM-FILE                 
        PERFORM A9740-TABLE-SIZE-ERROR.                       
                                                             
     MOVE WS-PERIOD-BILLACCT(WS-PERIOD-SUB) TO               
          OCCD-BILLACCT-NUMBER(WS-OCCD-SUB).                 
                                                             
     MOVE WS-PERIOD-SFX-1(WS-PERIOD-SUB) TO                   
          OCCD-BILLACCT-SUFFIX-1(WS-OCCD-SUB).               
                                                             
     MOVE WS-PERIOD-SFX-2(WS-PERIOD-SUB) TO                   
          OCCD-BILLACCT-SUFFIX-2(WS-OCCD-SUB).               
                                                             
     MOVE WS-PERIOD-START-DATE(WS-PERIOD-SUB) TO             
          OCCD-PERIOD-START-DATE(WS-OCCD-SUB).               
                                                             
     MOVE WS-PERIOD-END-DATE(WS-PERIOD-SUB) TO               
                                                               
      MOVE WS-PERIOD-TRAN-FLAG(WS-PERIOD-SUB) TO               
           OCCD-PERIOD-TRAN-FLAG(WS-OCCD-SUB).                 
                                                               
      ADD 1 TO WS-PERIOD-SUB.                                   
      EJECT                                                     
  A9700-NON-FATAL-ERROR.       



Para A9740:

    EJECT                                                       
 A9740-TABLE-SIZE-ERROR.                                         
*****************************************************************
*                                                               *
*                A 9 7 4 0  -  TABLE SIZE ERROR                 *
*              ----------------------------------               *
*    THIS DEALS WITH SUBSCRIPTS OUTSIDE THE RANGE OF THE ARRAY  *
*                                                               *
*****************************************************************
                                                                 
     MOVE LT-PGM-ID              TO ERR-KY-PGM-ID.               
     MOVE LT-INTERNAL            TO ERR-AR-TYP-ACCESS.           
     MOVE LT-TABLE-SIZE-ERROR    TO ERR-TX-RMKS-128.             
     MOVE LT-SPECIAL-ERROR       TO ERR-CD-TYPE-ERR.             
                                                                 
     MOVE LT-WRITE-ERROR         TO ERR-CD-ERR-ACT.               
     CALL 'CUBCO002' USING SQLCA ERR-ERROR-RECORD.               
                                                                 
     MOVE LT-CLOSE-FILES         TO ERR-CD-ERR-ACT.               
     CALL 'CUBCO002' USING SQLCA ERR-ERROR-RECORD.               
                                                                 
     SET OCCD-TABLE-SIZE-ERROR   TO TRUE.                         
     GOBACK.                                                     
     EJECT                                                       



Please Note: if u need any details pls approache me.. pls help me out . Tq
srikarg
 
Posts: 2
Joined: Tue Jul 14, 2009 9:41 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Subscript exceeded size of Array

Postby dick scherrer » Wed Jul 15, 2009 1:40 am

Hello and welcome to the forum,

It appears that the value in the "suffix" is larger than the maximum value. . .

You have picked a few bits of code to post (in the future, please use the "Code" tag for readability), but they don't show any of the problem. The arrays are not posted. The subscript fields are not posted. The invalid value encountered is not posted.

Also, ther error routine does not appear to show the invalid value? Suggest this be modified and then the value causing the error be posted as part of your problem description.
Hope this helps,
d.sch.
User avatar
dick scherrer
Global moderator
 
Posts: 6268
Joined: Sat Jun 09, 2007 8:58 am
Has thanked: 3 times
Been thanked: 93 times

Re: Subscript exceeded size of Array

Postby srikarg » Wed Jul 15, 2009 12:20 pm

Sorry I didn't get u.. can u please me more clear what should i need to do ? Tq
srikarg
 
Posts: 2
Joined: Tue Jul 14, 2009 9:41 pm
Has thanked: 0 time
Been thanked: 0 time

Re: Subscript exceeded size of Array

Postby dick scherrer » Thu Jul 16, 2009 1:47 am

Hello,

can u please me more clear what should i need to do
What you chose to post does not provide anything for us to use to help you. . .

What value caused the code to execute A9740-TABLE-SIZE-ERROR? The error procedure needs to be changed to show the actual problem, not just where it occurred.

You didn't post anything about the arrays or the subscripts.

With nothing to work with, we cannot offer mush help.
Hope this helps,
d.sch.
User avatar
dick scherrer
Global moderator
 
Posts: 6268
Joined: Sat Jun 09, 2007 8:58 am
Has thanked: 3 times
Been thanked: 93 times


Return to IBM Cobol

 


  • Related topics
    Replies
    Views
    Last post