Skip to main content

Create procedure returns X20

  • February 15, 2013
  • 0 replies
  • 0 views

Problem:

When I run this against the Stored Procedure I get a x020 last symbol read 'CHAR'

-- CREATE PROCEDURE  DP0GWPRD.VSNSV220

  CREATE PROCEDURE  UBMW.VSNSV220

       ( IN     APPL_CD              CHAR(4),

          IN     PLAN_NUM              CHAR(6),

          IN     DIVSN_ID                 CHAR(10),

          IN     PART_NUM              INTEGER,

          IN     TRAN_ID                  DECIMAL(3,0),

          IN     FILESET                  CHAR(1),

          IN     UNIQUE_ID              DECIMAL(15,0),

          IN     SCHEMA                  CHAR(8),

          IN     CICS_REGION_ID     CHAR(2),

          IN     IPARM1                   CHAR(10),

          OUT    RETURN_CODE    CHAR(2),

          OUT    OPARM1              CHAR(200)

         )

         RESULT SETS 1

         EXTERNAL NAME VSNSV220

         LANGUAGE COBOL

         PARAMETER STYLE GENERAL

         DETERMINISTIC

         NO DBINFO

         NO COLLID

--       WLM ENVIRONMENT DP0GWPRD

         NO WLM ENVIRONMENT

         ASUTIME LIMIT 500000

         STAY RESIDENT YES

         PROGRAM TYPE SUB

         SECURITY DB2

       RUN OPTIONS 'H(,,ANY,FREE),STAC(,,ANY,),STO(,,,20K),BE(1K,,FREE),

LIBS(32,0,),ALL31(ON),MSGFILE(SYSOUT,FBA,121,0,ENQ)'

         COMMIT ON RETURN NO

         ;

This one appears to be more complex and works fine.

  drop procedure UBMW.CINSP075 RESTRICT;

--       SET CURRENT SQLID = 'U3MK' ;

       CREATE PROCEDURE  UBMW.CINSP075

              (IN    XPACKAGE  CHAR(6),

               IN    APPNM    CHAR(8),

               IN    USERID   CHAR(8),

               IN    APPLID   CHAR(8),

               INOUT TS       CHAR(26),

               INOUT ESEVERE  CHAR(1),

               INOUT ENUM     INTEGER,

               INOUT EGROUP   INTEGER,

               INOUT ESQLCD   INTEGER,

               INOUT EPGM     CHAR(8),

               INOUT ETEXT    CHAR(250),

               INOUT EDBAVAIL CHAR(1),

               INOUT CLNTID   INTEGER,

               INOUT SSN      CHAR(9),

               INOUT SSNTYPCD CHAR(1),

               INOUT VBSFLAG  CHAR(1)

                 )

                RESULT SETS 06

              EXTERNAL NAME CINSP075

              LANGUAGE COBOL

             PARAMETER STYLE GENERAL

               NOT DETERMINISTIC

       MODIFIES SQL DATA

       NO DBINFO

       NO COLLID

       WLM ENVIRONMENT DSNWUN2

       ASUTIME LIMIT 500000

       STAY RESIDENT YES

       PROGRAM TYPE MAIN

       SECURITY USER

       RUN OPTIONS

       'H(,,ANY,FREE),STAC(,,ANY,),STO(,,,20K),BE(1K,,FREE),

          LIBS(32,0,),ALL31(ON)'

             COMMIT ON RETURN NO

             ;

Resolution:

SCHEMA is an SQL reserved word defined by Appendix F in the DB2 Universal Database for OS/390 and z/OS SQL Reference Version 7.  If you quote the identifier "schema" or change it to something else, it will work.  Even if it works on DB2 today, it may not work in the future so you should probably quote it even on your mainframe.

          IN     UNIQUE_ID              DECIMAL(15,0),

          IN     "SCHEMA"                  CHAR(8),

          IN     CICS_REGION_ID     CHAR(2),

Old KB# 6692

#MFDS
#EnterpriseDeveloper