Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Query on writing cobol program to read more input

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> COBOL Programming
View previous topic :: :: View next topic  
Author Message
ashok_uddaraju

New User


Joined: 21 Feb 2007
Posts: 70
Location: bangalore

PostPosted: Tue Feb 15, 2011 8:30 pm    Post subject: Query on writing cobol program to read more input
Reply with quote

Hi,

Currently i have a program which reads the input file which has thousands of records and writes in output file as mentioned below

0000001
0000002
0000003

I want to write the reords tin output file as 0000001,0000002, 0000003

Please suggest how this can be done.

do not post attachments, not everybody can see/download them,
limiting in this way the number of people who can help

the code has been inlined and surrounded by the code tags

Code:

000100 IDENTIFICATION DIVISION.                                         00000100
000200 PROGRAM-ID.    CACHH.                                            00000200
000300 DATE-WRITTEN.  15-02-2011.                                       00000300
000400****************************************************************  00000400
000600***************************************************************** 00000600
001600*                                                                 00001600
001700 ENVIRONMENT DIVISION.                                            00001700
001800 CONFIGURATION SECTION.                                           00001800
001900*                                                                 00001900
002000 INPUT-OUTPUT SECTION.                                            00002000
002100 FILE-CONTROL.                                                    00002100
002200*                                                                 00002200
002300      SELECT INPUTF1         ASSIGN TO INFLE1.                    00002300
002400      SELECT OUTPUTF1        ASSIGN TO OUTFLE1.                   00002400
002600*                                                                 00002600
002700 DATA DIVISION.                                                   00002700
002800 FILE SECTION.                                                    00002800
002900*                                                                 00002900
003000 FD  INPUTF1                                                      00003000
003100     RECORDING MODE IS F                                          00003100
003200     BLOCK CONTAINS 0 RECORDS.                                    00003200
003300 01  IN-RECORD1                      PIC X(8).                    00003300
003400*                                                                 00003400
003500 FD  OUTPUTF1                                                     00003500
003600     RECORDING MODE IS F                                          00003600
003700     BLOCK CONTAINS 0 RECORDS.                                    00003700
003800 01  OP-RECORD1                      PIC X(80).                   00003800
003900*                                                                 00003900
004400*                                                                 00004400
004500*-----------------------------------------------------------------00004500
004600 WORKING-STORAGE SECTION.                                         00004600
004700*-----------------------------------------------------------------00004700
004800*                                                                 00004800
004900 01 WS-RECORD1.                                                   00004900
005000    05 WS-FLD1                 PIC X(08) VALUE SPACES.            00005000
005700*                                                                 00005700
005800 01 WS-EOF                  PIC  X(01) VALUE SPACES.              00005800
005900 01 WS-WRITE-COUNT          PIC  9(04) VALUE ZEROES.              00005900
006000 01 WS-READ-COUNT           PIC  9(04) VALUE ZEROES.              00006000
006100 01 WS-BLANK-LINE           PIC  X(80) VALUE SPACES.              00006100
006200 01 WS-CLOSE                PIC  X(03) VALUE "));".               00006200
006210 01 WS-CLOSE1               PIC  X(02) VALUE "))".                00006210
006300*-----------------------------------------------------------------00006300
006400 01 WS-OUT-REC1-LINE1.                                            00006400
006500     05 FILLER                      PIC X(60) VALUE               00006500
006600 "(SELECT xxxxx.xxxxx_xx                                          00006600
006700     05 FILLER                      PIC X(20) VALUE SPACES.       00006700
006800 01 WS-OUT-REC1-LINE2.                                            00006800
006900     05 FILLER                      PIC X(06) VALUE SPACES.       00006900
007000     05 FILLER                      PIC X(41) VALUE               00007000
007100 "FROM xxxxxx.xxxxxxxx.xxxxx_xxxxxxxxxx".                         00007100
007200     05 FILLER                      PIC X(23) VALUE SPACES.       00007200
007300 01 WS-OUT-REC1-LINE3.                                            00007300
007400     05 FILLER                      PIC X(06) VALUE SPACES.       00007400
007500     05 FILLER                      PIC X(37) VALUE               00007500
007600 "WHERE xxx_xx_xxx = 1".                                          00007600
007700     05 FILLER                      PIC X(37) VALUE SPACES.       00007700
007810 01 WS-OUT-REC1-LINE4.                                            00007810
007850     05 FILLER                      PIC X(60) VALUE               00007850
007860 "AND xx_xxxxx_xxxxxxx IN (".                                     00007860
007870     05 FILLER                      PIC X(20) VALUE SPACES.       00007870
007900 01 WS-OUT-REC1-LINE5.                                            00007900
008000     05 FILLER                      PIC X(56) VALUE               00008000
008100 "UNION".                                                         00008100
008200     05 FILLER                      PIC X(24) VALUE SPACES.       00008200
007900 01 WS-OUT-REC1-LINE6.                                            00007900
008000     05 FILLER                      PIC X(56) VALUE               00008000
008100 "(SELECT xxxxxxx.xxxx".                                          00008100
008200     05 FILLER                      PIC X(24) VALUE SPACES.       00008200
007900 01 WS-OUT-REC1-LINE7.                                            00007900
008000     05 FILLER                      PIC X(56) VALUE               00008000
008100 "FROM xxxxxxxxx.xxxxxxxx.xxxxxxx_xxxxxxx".                       00008100
008200     05 FILLER                      PIC X(24) VALUE SPACES.       00008200
007900 01 WS-OUT-REC1-LINE8.                                            00007900
008000     05 FILLER                      PIC X(56) VALUE               00008000
008100 "WHERE xxxxxxx.xxxxxx (".                                        00008100
008200     05 FILLER                      PIC X(24) VALUE SPACES.       00008200
008600 01 WS-OUT-REC1-LINE9.                                            00008600
008710     05 FILLER                      PIC X(01) VALUE ",".          00008710
008800     05 FILLER                      PIC X(01) VALUE "'".          00008800
008900     05 WS-OUT-REC1-LN9-FLD         PIC X(08) VALUE SPACES.       00008900
009000     05 FILLER                      PIC X(01) VALUE "'".          00009000
009210 01 WS-OUT-REC1-LINE10.                                           00009210
009230     05 FILLER                      PIC X(01) VALUE "'".          00009230
009240     05 WS-OUT-REC1-LN10-FLD         PIC X(08) VALUE SPACES.      00009240
009250     05 FILLER                      PIC X(01) VALUE "'".          00009250
009300*                                                                 00009300
026100*-----------------------------------------------------------------00026100
026200 PROCEDURE DIVISION.                                              00026200
026300*-----------------------------------------------------------------00026300
026400 A0000-MAINLINE.                                                  00026400
026500*-----------------------------------------------------------------00026500
026700     OPEN OUTPUT OUTPUTF1                                         00026700
026900     MOVE 'N' TO WS-EOF                                           00026900
027000     PERFORM A1100-WRITE-OUT-FILE1                                00027000
027300      WRITE OP-RECORD1 FROM WS-CLOSE1                             00027300
027000     PERFORM A1101-WRITE-OUT-FILE1                                00027000
027300      WRITE OP-RECORD1 FROM WS-CLOSE                              00027300
027600     CLOSE OUTPUTF1                                               00027600
027800     STOP RUN.                                                    00027800
027900*                                                                 00027900
028000*-----------------------------------------------------------------00028000
028100 A1000-READ-INFILE1.                                              00028100
028200*-----------------------------------------------------------------00028200
028600     READ INPUTF1 INTO WS-RECORD1                                 00028600
028700       AT END MOVE 'Y' TO WS-EOF                                  00028700
028800       NOT AT END                                                 00028800
028801       ADD 1 TO WS-READ-COUNT                                     00028801
028810         IF WS-READ-COUNT = 1                                     00028810
028900          MOVE WS-FLD1  TO WS-OUT-REC1-LN10-FLD                   00028900
029000          WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE10                00029000
029010          ELSE                                                    00029010
029100          MOVE WS-FLD1  TO WS-OUT-REC1-LN9-FLD                    00029100
029200          WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE9                 00029200
029210          END-IF                                                  00029210
029300     END-READ.                                                    00029300
028000*-----------------------------------------------------------------00028000
028100 A1001-READ-INFILE1.                                              00028100
028200*-----------------------------------------------------------------00028200
028600     READ INPUTF1 INTO WS-RECORD1                                 00028600
028700       AT END MOVE 'Y' TO WS-EOF                                  00028700
028800       NOT AT END                                                 00028800
028801       ADD 1 TO WS-READ-COUNT                                     00028801
028810         IF WS-READ-COUNT = 1                                     00028810
028900          MOVE WS-FLD1  TO WS-OUT-REC1-LN10-FLD                   00028900
029000          WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE10                00029000
029010          ELSE                                                    00029010
029100          MOVE WS-FLD1  TO WS-OUT-REC1-LN9-FLD                    00029100
029200          WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE9                 00029200
029210          END-IF                                                  00029210
029300     END-READ.                                                    00029300
029400*-----------------------------------------------------------------00029400
029500 A1100-WRITE-OUT-FILE1.                                           00029500
029600*---------------------------------------------------------------- 00029600
030200     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE1                      00030200
030300     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE2                      00030300
030400     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE3                      00030400
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE4                      00030410
030502     OPEN INPUT  INPUTF1                                          00030502
030510     PERFORM A1000-READ-INFILE1 UNTIL WS-EOF = 'Y'                00030510
030520     CLOSE INPUTF1.                                               00030520
029400*-----------------------------------------------------------------00029400
029500 A1101-WRITE-OUT-FILE1.                                           00029500
029600*---------------------------------------------------------------- 00029600
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE5                      00030410
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE6                      00030410
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE7                      00030410
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE8                      00030410
           MOVE 'N' TO WS-EOF                                                   
           MOVE ZEROES TO WS-READ-COUNT                                         
030502     OPEN INPUT  INPUTF1                                          00030502
030510     PERFORM A1001-READ-INFILE1 UNTIL WS-EOF = 'Y'                00030510
030520     CLOSE INPUTF1.                                               00030520
Back to top
View user's profile Send private message

Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 7913
Location: Bellevue, IA

PostPosted: Tue Feb 15, 2011 9:04 pm    Post subject:
Reply with quote

There is a link to manuals at the top of this page. Click on it, find the COBOL Language Reference manual, and read up on reference modification. You may also wish to meditate on the fact that a WRITE statement writes a record -- period -- so if you want variables from multiple input records on one output record, the number of WRITE statements executed will not equal the number of INPUT statements executed.
Back to top
View user's profile Send private message
Kjeld

Active User


Joined: 15 Dec 2009
Posts: 365
Location: Denmark

PostPosted: Wed Feb 16, 2011 8:54 pm    Post subject:
Reply with quote

You will have to define how many input values should fit into one physical output record, and create an output buffer area that will hold the allowed number of values. Then you start reading values in, and move them to the next available position in the output area.

When the area is full, you write the output record, re-initialise the output area, and start filling from first byte again.

When you reach eof on input you should write out the partially filled record.
Back to top
View user's profile Send private message
Ronald Burr

Active User


Joined: 22 Oct 2009
Posts: 293
Location: U.S.A.

PostPosted: Wed Feb 16, 2011 10:10 pm    Post subject:
Reply with quote

I "believe" that this is what you want to do. Note the changes to LINE8 (where you forgot an 'IN'), LINE9 (to accommodate multiple values), the replacement code in the A1000-READ-INFILE1 paragraph (and the elimination of the A1001 paragraph which was an exact duplicate), and other code changes noted by ===>.
NB the code offered is UNTESTED but I believe that it should work, as coded.

Code:
000100 IDENTIFICATION DIVISION.                                         00000100
000200 PROGRAM-ID.    CACHH.                                            00000200
000300 DATE-WRITTEN.  15-02-2011.                                       00000300
000400****************************************************************  00000400
000600***************************************************************** 00000600
001600*                                                                 00001600
001700 ENVIRONMENT DIVISION.                                            00001700
001800 CONFIGURATION SECTION.                                           00001800
001900*                                                                 00001900
002000 INPUT-OUTPUT SECTION.                                            00002000
002100 FILE-CONTROL.                                                    00002100
002200*                                                                 00002200
002300      SELECT INPUTF1         ASSIGN TO INFLE1.                    00002300
002400      SELECT OUTPUTF1        ASSIGN TO OUTFLE1.                   00002400
002600*                                                                 00002600
002700 DATA DIVISION.                                                   00002700
002800 FILE SECTION.                                                    00002800
002900*                                                                 00002900
003000 FD  INPUTF1                                                      00003000
003100     RECORDING MODE IS F                                          00003100
003200     BLOCK CONTAINS 0 RECORDS.                                    00003200
003300 01  IN-RECORD1                      PIC X(8).                    00003300
003400*                                                                 00003400
003500 FD  OUTPUTF1                                                     00003500
003600     RECORDING MODE IS F                                          00003600
003700     BLOCK CONTAINS 0 RECORDS.                                    00003700
003800 01  OP-RECORD1                      PIC X(80).                   00003800
003900*                                                                 00003900
004400*                                                                 00004400
004500*-----------------------------------------------------------------00004500
004600 WORKING-STORAGE SECTION.                                         00004600
004700*-----------------------------------------------------------------00004700
004800*                                                                 00004800
004900 01 WS-RECORD1.                                                   00004900
005000    05 WS-FLD1                 PIC X(08) VALUE SPACES.            00005000
005700*                                                                 00005700
005800 01 WS-EOF                  PIC  X(01) VALUE SPACES.              00005800
005900 01 WS-WRITE-COUNT          PIC  9(04) VALUE ZEROES.              00005900
006000 01 WS-READ-COUNT           PIC  9(04) VALUE ZEROES.              00006000
006100 01 WS-BLANK-LINE           PIC  X(80) VALUE SPACES.              00006100
006200 01 WS-CLOSE                PIC  X(03) VALUE "));".               00006200
006210 01 WS-CLOSE1               PIC  X(02) VALUE "))".                00006210
006300*-----------------------------------------------------------------00006300
006400 01 WS-OUT-REC1-LINE1.                                            00006400
006500     05 FILLER                      PIC X(60) VALUE               00006500
006600 "(SELECT xxxxx.xxxxx_xx                                          00006600
006700     05 FILLER                      PIC X(20) VALUE SPACES.       00006700
006800 01 WS-OUT-REC1-LINE2.                                            00006800
006900     05 FILLER                      PIC X(06) VALUE SPACES.       00006900
007000     05 FILLER                      PIC X(41) VALUE               00007000
007100 "FROM xxxxxx.xxxxxxxx.xxxxx_xxxxxxxxxx".                         00007100
007200     05 FILLER                      PIC X(23) VALUE SPACES.       00007200
007300 01 WS-OUT-REC1-LINE3.                                            00007300
007400     05 FILLER                      PIC X(06) VALUE SPACES.       00007400
007500     05 FILLER                      PIC X(37) VALUE               00007500
007600 "WHERE xxx_xx_xxx = 1".                                          00007600
007700     05 FILLER                      PIC X(37) VALUE SPACES.       00007700
007810 01 WS-OUT-REC1-LINE4.                                            00007810
007850     05 FILLER                      PIC X(60) VALUE               00007850
007860 "AND xx_xxxxx_xxxxxxx IN (".                                     00007860
007870     05 FILLER                      PIC X(20) VALUE SPACES.       00007870
007900 01 WS-OUT-REC1-LINE5.                                            00007900
008000     05 FILLER                      PIC X(56) VALUE               00008000
008100 "UNION".                                                         00008100
008200     05 FILLER                      PIC X(24) VALUE SPACES.       00008200
007900 01 WS-OUT-REC1-LINE6.                                            00007900
008000     05 FILLER                      PIC X(56) VALUE               00008000
008100 "(SELECT xxxxxxx.xxxx".                                          00008100
008200     05 FILLER                      PIC X(24) VALUE SPACES.       00008200
007900 01 WS-OUT-REC1-LINE7.                                            00007900
008000     05 FILLER                      PIC X(56) VALUE               00008000
008100 "FROM xxxxxxxxx.xxxxxxxx.xxxxxxx_xxxxxxx".                       00008100
008200     05 FILLER                      PIC X(24) VALUE SPACES.       00008200
007900 01 WS-OUT-REC1-LINE8.                                            00007900
008000     05 FILLER                      PIC X(56) VALUE               00008000
008100 "WHERE xxxxxxx.xxxxxx (".                                        00008100
===>   "WHERE xxxxxxx.xxxxxx IN (".
008200     05 FILLER                      PIC X(24) VALUE SPACES.       00008200
008600 01 WS-OUT-REC1-LINE9.                                            00008600
===>       05 WS-OUT-REC1-LN9-SET         OCCURS 7 INDEXED BY NDXL9.
===>          10 WS-OUT-REC1-LN9-C1       PIC X(01).
===>          10 WS-OUT-REC1-LN9-Q1       PIC X(01).
===>          10 WS-OUT-REC1-LN9-FLD      PIC X(08).
===>          10 WS-OUT-REC1-LN9-Q2       PIC X(01).
026100*-----------------------------------------------------------------00026100
026200 PROCEDURE DIVISION.                                              00026200
026300*-----------------------------------------------------------------00026300
026400 A0000-MAINLINE.                                                  00026400
026500*-----------------------------------------------------------------00026500
026700     OPEN OUTPUT OUTPUTF1                                         00026700
026900     MOVE 'N' TO WS-EOF                                           00026900
027000     PERFORM A1100-WRITE-OUT-FILE1                                00027000
027300      WRITE OP-RECORD1 FROM WS-CLOSE1                             00027300
027000     PERFORM A1101-WRITE-OUT-FILE1                                00027000
027300      WRITE OP-RECORD1 FROM WS-CLOSE                              00027300
027600     CLOSE OUTPUTF1                                               00027600
027800     STOP RUN.                                                    00027800
027900*                                                                 00027900
028000*-----------------------------------------------------------------00028000
028100 A1000-READ-INFILE1.                                              00028100
028200*-----------------------------------------------------------------00028200
028600     READ INPUTF1 INTO WS-RECORD1                                 00028600
===>       AT END
===>         IF WS-OUT-REC1-LN9-C1(NDXL9) NOT = SPACE
===>         THEN
===>           WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE9
===>         END-IF
===>       NOT AT END
===>         ADD 1 TO WS-READ-COUNT
===>         IF WS-READ-COUNT = 1 AND
===>            NDXL1 = 1
===>         THEN
===>           MOVE SPACE TO WS-OUT-REC1-LN9-C1(NDXL9)
===>         ELSE
===>           MOVE "," TO WS-OUT-REC1-LN9-C1(NDXL9)
===>         END-IF
===>         MOVE QUOTE TO WS-OUT-REC1-LN9-Q1(NDXL9)
===>         MOVE WS-FLD1 TO WS-OUT-REC1-LN9-FLD(NDXL9)
===>         MOVE QUOTE TO WS-OUT-REC1-LN9-Q2(NDXL9)
===>         IF NDXL9 = 7
===>         THEN
===>           WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE9
===>           MOVE SPACES TO WS-OUT-REC1-LINE9
===>           SET NDXL9 TO 1
===>         ELSE
===>           SET NDXL9 UP BY 1
===>         END-IF
029300     END-READ.                                                    00029300
028000*-----------------------------------------------------------------00028000
029500 A1100-WRITE-OUT-FILE1.                                           00029500
029600*---------------------------------------------------------------- 00029600
030200     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE1                      00030200
030300     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE2                      00030300
030400     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE3                      00030400
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE4                      00030410
030502     OPEN INPUT  INPUTF1                                          00030502
===>       SET NDXL9 TO 1
===>       MOVE SPACES TO WS-OUT-REC1-LINE9
030510     PERFORM A1000-READ-INFILE1 UNTIL WS-EOF = 'Y'                00030510
030520     CLOSE INPUTF1.                                               00030520
029400*-----------------------------------------------------------------00029400
029500 A1101-WRITE-OUT-FILE1.                                           00029500
029600*---------------------------------------------------------------- 00029600
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE5                      00030410
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE6                      00030410
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE7                      00030410
030410     WRITE OP-RECORD1 FROM WS-OUT-REC1-LINE8                      00030410
           MOVE 'N' TO WS-EOF                                                   
           MOVE ZEROES TO WS-READ-COUNT                                         
030502     OPEN INPUT  INPUTF1                                          00030502
===>       SET NDXL9 TO 1
===>       MOVE SPACES TO WS-OUT-REC1-LINE9
030510*    PERFORM A1001-READ-INFILE1 UNTIL WS-EOF = 'Y'                00030510
===>       PERFORM A1000-READ-INFILE1 UNTIL WS-EOF = 'Y'
030520     CLOSE INPUTF1.                                               00030520
Back to top
View user's profile Send private message
ashok_uddaraju

New User


Joined: 21 Feb 2007
Posts: 70
Location: bangalore

PostPosted: Tue Mar 01, 2011 2:01 am    Post subject: Reply to: Query on writing cobol program to read more input
Reply with quote

Thanks thi code works. The bynamic sql query has around 5000 records which is to be repaeted 2 times. Hen i run this through jcl the query doen't exceute as the space is not sufficinet for entire query, but the same runs well when i run it through SPUFI. Please suggest if there are any parameters that i can use in the jcl to run this query
Back to top
View user's profile Send private message
daveporcelan

Active Member


Joined: 01 Dec 2006
Posts: 645
Location: Pennsylvania

PostPosted: Tue Mar 01, 2011 2:15 am    Post subject:
Reply with quote

Give it more space on line 12 of your JCL.

Does it show what the error is in your sysout?

Do you think showing your JCL and error would help people here answer your question?

Or, do you think it would be easier for people here to just guess?
Back to top
View user's profile Send private message
ashok_uddaraju

New User


Joined: 21 Feb 2007
Posts: 70
Location: bangalore

PostPosted: Tue Mar 01, 2011 2:46 am    Post subject: Reply to: Query on writing cobol program to read more input
Reply with quote

Hi,

The error message is as below

DSNT408I SQLCODE = -010, ERROR: THE STRING CONSTANT BEGINNING '442@@@@@@ IS NO
DSNT418I SQLSTATE = 42603 SQLSTATE RETURN CODE
DSNT415I SQLERRP = DSNHTOKR SQL PROCEDURE DETECTING ERROR
DSNT416I SQLERRD = 805 0 0 -1 32762 0 SQL DIAGNOSTIC INFORMATION
DSNT416I SQLERRD = X'00000325' X'00000000' X'00000000' X'FFFFFFFF' X'000
INFORMATION


The query get preapred but whil runningt through jCL it fails
Back to top
View user's profile Send private message
enrico-sorichetti

Global Moderator


Joined: 14 Mar 2007
Posts: 10203
Location: italy

PostPosted: Tue Mar 01, 2011 2:48 am    Post subject: Reply to: Query on writing cobol program to read more input
Reply with quote

what about doing a bit of work Yourself and reading the manuals?
the messages posted are likely to give You very good hints on what is going on!
Back to top
View user's profile Send private message
ashok_uddaraju

New User


Joined: 21 Feb 2007
Posts: 70
Location: bangalore

PostPosted: Tue Mar 01, 2011 2:54 am    Post subject: Reply to: Query on writing cobol program to read more input
Reply with quote

i know the why the erro is occurring. But want to know how to make my JCL reday to run query with hude input which otherwise is failing as the file is not able to hold such huge data

Note: The size of input file is fine as the same input file runs good via SPUFI
Back to top
View user's profile Send private message
dick scherrer

Site Director


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

PostPosted: Tue Mar 01, 2011 2:57 am    Post subject:
Reply with quote

Hello,

Quote:
Hen i run this through jcl the query doen't exceute as the space is not sufficinet for entire query

Quote:
DSNT408I SQLCODE = -010, ERROR: THE STRING CONSTANT BEGINNING '442@@@@@@ IS NOT . . .


Why do you believe the error (-010) has anything to do with "space"?
Back to top
View user's profile Send private message
Kjeld

Active User


Joined: 15 Dec 2009
Posts: 365
Location: Denmark

PostPosted: Tue Mar 01, 2011 5:55 am    Post subject:
Reply with quote

Honestly, if your coding is as sloppy as your written English, anything can happen!
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 7913
Location: Bellevue, IA

PostPosted: Tue Mar 01, 2011 6:20 am    Post subject:
Reply with quote

Quote:
i know the why the erro is occurring. But want to know how to make my JCL reday to run query with hude input which otherwise is failing as the file is not able to hold such huge data
Communication is an important aspect of IT, and so far you are showing you should not be in IT by your extremely poor communications.

1. There is no such word as "erro" in English. If you claim this is a typo, that makes it worse since you presumably proof-read your post beofre submitting it.

2. Where have you posted your JCL for review? And if you now have a JCL issue, why did you not start a new topic instead of continuing the programming topic?

3. "reday" is not an English word.

4. "hude"is not an English word.

5. How much is "huge data"? For some people, 5,000 records would be a lot while for others 500,000 records would be a lot and yet for others, 50,000,000 records would be a lot. "Huge data" is a meaningless term unless quantified.

6. "I" is captialized in English -- period. If you want to use script kiddy language or IM text, this is not the forum for it since we expect proper (at least reasonably) English.
Back to top
View user's profile Send private message
dick scherrer

Site Director


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

PostPosted: Tue Mar 01, 2011 9:12 am    Post subject:
Reply with quote

Hello,

If there is a "space" problem, you have not yet posted anything we can use to help you. You need to post the actual JCL from the problem step(s) and the error(s) that have occurred using this JCL.

Suggest you click Preview when you believe your post is ready for the forum. "Previewed" posts often cause choices that would be better served if posted differently to be recognized. When the post appears as you really want, then Submit.

As was mentioned, there is no reason to use chat-speak here. . .
Back to top
View user's profile Send private message
Kjeld

Active User


Joined: 15 Dec 2009
Posts: 365
Location: Denmark

PostPosted: Tue Mar 01, 2011 3:46 pm    Post subject:
Reply with quote

dick scherrer wrote:
Hello,

Quote:
Hen i run this through jcl the query doen't exceute as the space is not sufficinet for entire query

Quote:
DSNT408I SQLCODE = -010, ERROR: THE STRING CONSTANT BEGINNING '442@@@@@@ IS NOT . . .


Why do you believe the error (-010) has anything to do with "space"?

Check your file for if you have included the trailing apostrophe
Code:
'

The -10 sql code suggests that your trailing apostrophe may be missing, as you may already have learnt from the manual.
Back to top
View user's profile Send private message
GuyC

Senior Member


Joined: 11 Aug 2009
Posts: 1278
Location: Belgium

PostPosted: Tue Mar 01, 2011 8:38 pm    Post subject:
Reply with quote

Robert Sample wrote:
1. There is no such word as "erro" in English. If you claim this is a typo, that makes it worse since you presumably proof-read your post beofre submitting it.
oops
Back to top
View user's profile Send private message
Kjeld

Active User


Joined: 15 Dec 2009
Posts: 365
Location: Denmark

PostPosted: Tue Mar 01, 2011 8:49 pm    Post subject:
Reply with quote

Yes, one could think it was made delibleratly icon_smile.gif
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 7913
Location: Bellevue, IA

PostPosted: Wed Mar 02, 2011 1:55 am    Post subject:
Reply with quote

Kjeld -- too subtle, perhaps?
Back to top
View user's profile Send private message
daveporcelan

Active Member


Joined: 01 Dec 2006
Posts: 645
Location: Pennsylvania

PostPosted: Wed Mar 02, 2011 2:12 am    Post subject:
Reply with quote

Do you think the original poster has been scared off?
Back to top
View user's profile Send private message
Kjeld

Active User


Joined: 15 Dec 2009
Posts: 365
Location: Denmark

PostPosted: Wed Mar 02, 2011 1:02 pm    Post subject:
Reply with quote

Yeah, he opened a similar subject in the DB2 forum, but didn't appear to have taken the advice offered in this thread seriously. 2 moderators and a senior fell upon him immediately.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> COBOL Programming All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts I can not compile my program PL1 V3.R... Miguel Fernandez PL/I & Assembler 13 Tue Dec 06, 2016 8:30 pm
No new posts Performing arithmetic on input field zh_lad DFSORT/ICETOOL 24 Tue Dec 06, 2016 8:04 pm
No new posts High CPU consumption Job using IAM fi... aswinir JCL & VSAM 8 Thu Dec 01, 2016 8:28 pm
No new posts IMS BMP program causes 878 system abend Artemk IMS DB/DC 7 Tue Nov 22, 2016 8:26 pm
This topic is locked: you cannot edit posts or make replies. Db2 SQL query to convert rows into co... subratarec DB2 5 Thu Nov 17, 2016 4:51 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us