IBM Support

PM72648: CMPL PRESENCE OF FIELD WITH PIC XBXBX ETC. FOR 37 BYTES OR MORE CAUSES COBOL COMPILER ERRORS IN SQL SELECT STATEMENT.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The presence of an edit string with PIC XBXBXetc. of 37 bytes,
    or more, causes Enterprise COBOL compiler errors for a
    SQL SELECT statement using the DB2 Coprocessor (SQL option).
    
    This is a very specific example of the failing code.
    A program contains this definition in WORKING-STORAGE:
            01  EDIT-CHAR                   PIC
                          XBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBX.
    (That is 37 bytes of XBXBX.....)
    The PROCEDURE DIVISION contains an EXEC SQL statement
    with the following clauses:
               EXEC SQL
                  SELECT .....
                  INTO  .....
                  FROM .....
                  WHERE .....
                  ORDER BY .....
                  FETCH FIRST 1 ROW ONLY
                  WITH UR
               END-EXEC.
    The END-EXEC line number is flagged inline with
    IGYPS2106-S "        " was found in the "MOVE" statement.
                It was not allowed in this context.  The
                statement was discarded.
    IGYPS0007-E An alphanumeric literal was not properly continued
                The end of the literal was assumed on the last
                source line.
    In addition to the messages above,  this warning is at the end
    of the listing for the same END-EXEC line number.
    IGYPS0001-W   A blank was missing before character " " in
                  column 25.  A blank was assumed.
    .
    
    In the IGYPS2106-S message, the "        " contains nulls -
    X'0000000000000000'.
    The " " in the IGYPS0001 message is a X'08'.
    The "MOVE" referenced is in the SQL CoProcessor generated code
    and does not print in the listing.
    

Local fix

  • Split the edit word into smaller parts.
    If the edit word is shortened to 35 or fewer bytes
    the problem does not occur.
    
    NOTE: Also see APAR PM08727, which solves a similar problem.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of Enterprise COBOL V4 using the SQL   *
    *                 compiler option on programs that have a      *
    *                 picture string that is more than 30          *
    *                 characters long for a numeric edited data    *
    *                 item.                                        *
    *                                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: When compiling a program with the SQL   *
    *                      option that has EXEC SQL statements     *
    *                      and a data item that is declared with   *
    *                      more than 30 characters in the picture  *
    *                      clause without any repetition factor    *
    *                      like the following:                     *
    *                      01 DN                                   *
    *                         PIC XBXBXBXBXBXBXBXBXBXBXBXBXBXBXBX  *
    *                      the compiler incorrectly issues the     *
    *                      following messages:                     *
    *                      IGYPS0001-W   A blank was missing       *
    *                      before character """ in column 18.      *
    *                      A blank was assumed.                    *
    *                      IGYPS2106-S   """ was found in the      *
    *                      "MOVE" statement.  It was not allowed   *
    *                      in this context.  The statement was     *
    *                      discarded.                              *
    *                                                              *
    ****************************************************************
    * RECOMMENDATION: Apply the provided PTF.                      *
    *                                                              *
    ****************************************************************
    Some storage corruption occurred at compile time when compiling
    a program with the SQL option that has an EXEC SQL statement
    and a data item declared with a PICTURE clause that has more tha
    30 characters in the picture string without repetition factor.
    

Problem conclusion

  • The compiler was modified to avoid the storage corruption and
    no longer incorrectly issues the error messages.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM72648

  • Reported component name

    ENT COBOL FOR Z

  • Reported component ID

    5655S7100

  • Reported release

    420

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-09-11

  • Closed date

    2012-11-07

  • Last modified date

    2012-12-04

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UK83293 UK83294

Modules/Macros

  •    IGYTSQL2
    

Fix information

  • Fixed component name

    ENT COBOL FOR Z

  • Fixed component ID

    5655S7100

Applicable component levels

  • R400 PSY UK83293

       UP12/11/09 P F211

  • R420 PSY UK83294

       UP12/11/09 P F211

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SS6SG3","label":"Enterprise COBOL for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"4.2","Edition":"","Line of Business":{"code":"LOB17","label":"Mainframe TPS"}}]

Document Information

Modified date:
04 December 2012