Fixes are available
Rational Developer for System z Fix Pack 1 (9.1.1.3) for 9.1.1.
Rational Developer for System z Interim Fix 1 for 9.1.1.3
Rational Developer for System z Fix Pack 1 (9.1.1.4) for 9.1.1.
Rational Developer for System z Fix Pack 1 (9.1.1.5) for 9.1.1.
Rational Developer for System z Fix Pack 1 (9.1.1.6) for 9.1.1.
Rational Developer for System z Fix Pack 1 (9.1.1.7) for 9.1.1.
Rational Developer for System z Fix Pack 1 (9.1.1.8) for 9.1.1
Rational Developer for System z Fix Pack 9 (9.1.1.9) for 9.1.1
APAR status
Closed as program error.
Error description
RDz PLI real-time syntax check raises incorrect error on SELECT CASE statement. APAR Error Description *************************************************************** In Rational Developer for System z - RDz - v9.1.1.1, PLI real-time syntax check raises incorrect error on SELECT CASE statement. Steps to reproduce: 1) create the following program in PLI editor: MYPROG: PROC() OPTIONS(MAIN); DEFAULT RANGE(*) STATIC; DCL INFO CHAR (20) INIT('START'); EXEC SQL DECLARE TABLE1 TABLE ( COL1 CHAR(10) NOT NULL, STATUS CHAR(1) NOT NULL, LABEL1 CHAR(10) NOT NULL, LABEL2 CHAR(10) NOT NULL, LABEL3 CHAR(10) NOT NULL ) ; DCL 1 TABLE1, 5 COL1 CHAR(10), 5 STATUS CHAR(1), 5 LABEL1 CHAR(10), 5 LABEL2 CHAR(10), 5 LABEL3 CHAR(10); DISPLAY(INFO); EXEC SQL DECLARE mycursor CURSOR FOR SELECT T.COL1 ,CASE T.STATUS WHEN 'S' THEN T.LABEL1 WHEN 'V' THEN T.LABEL2 ELSE T.LABEL3 END FROM TABLE1 T; END MYPROG; 2) Observe errors after SELECT T.COL1 statement - '"ExecContent" is invalid' on ELSE line - '"ExecContent" is invalid' on END line
Local fix
There is no known workaround at this time.
Problem summary
PL/I real-time syntax check raises incorrect error on SELECT CASE statement. Steps to reproduce: 1) create the following program in PLI editor: P61804: PROC() OPTIONS(MAIN); DEFAULT RANGE(*) STATIC; DCL INFO CHAR (20) INIT('START'); EXEC SQL DECLARE TABLE1 TABLE ( COL1 CHAR(10) NOT NULL, STATUS CHAR(1) NOT NULL, LABEL1 CHAR(10) NOT NULL, LABEL2 CHAR(10) NOT NULL, LABEL3 CHAR(10) NOT NULL ) ; DCL 1 TABLE1, 5 COL1 CHAR(10), 5 STATUS CHAR(1), 5 LABEL1 CHAR(10), 5 LABEL2 CHAR(10), 5 LABEL3 CHAR(10); DISPLAY(INFO); EXEC SQL DECLARE mycursor CURSOR FOR SELECT T.COL1 ,CASE T.STATUS WHEN 'S' THEN T.LABEL1 WHEN 'V' THEN T.LABEL2 ELSE T.LABEL3 END FROM TABLE1 T; END P61804; 2) Observe errors - '"ExecContent" is invalid' on ELSE line - '"ExecContent" is invalid' on END line
Problem conclusion
Modified PL/I parser to properly handle ELSE and END keywords in SQL statements. The problem listed in this APAR has been resolved with IBM Rational Developer for System z V9.1.1.3 Fix Pack which is available from the Recommended Fixes support download page: http://www-1.ibm.com/support/docview.wss?rs=2294&uid=swg27006335
Temporary fix
Comments
APAR Information
APAR number
PI51378
Reported component name
RATL DEV FOR SY
Reported component ID
5724T0700
Reported release
911
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2015-10-28
Closed date
2016-02-25
Last modified date
2016-02-25
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
RATL DEV FOR SY
Fixed component ID
5724T0700
Applicable component levels
R911 PSY
UP
Document Information
Modified date:
14 October 2021