【发布时间】:2020-12-04 22:10:40
【问题描述】:
我编写了这个简单的代码来打印我通过 JCL 传递的参数,为什么它不打印参数?
代码:
CBL APOST
IDENTIFICATION DIVISION.
PROGRAM-ID. GETAPIT.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 PARM-BUFFER.
05 PARM-LENGTH PIC S9(4) COMP.
05 PARM-DATA.
10 numb PIC X(6).
10 filler PIC X(250).
PROCEDURE DIVISION using PARM-BUFFER.
MAINLINE SECTION.
DISPLAY "NUMB: " numb of PARM-DATA.
MAINLINE-EXIT.
GOBACK.
//MVSSYNSQ JOB (3911),'&SYSUID',CLASS=F,MSGCLASS=R,NOTIFY=&SYSUID
/*JOBPARM R=51,L=100
//*
//GETAPI1 EXEC PGM=GETAPIT,PARM='000100'
//STEPLIB DD DISP=SHR,DSN=MVJE.ZCONN.LOADLIB
//SYSPRINT DD SYSOUT=*
OUTPUT:
********************************* TOP OF DATA
NUMB:
【问题讨论】:
-
你的 JCL 长什么样,程序做了什么(也许你根本看不到输出)?
-
只打印我正在传递的参数 STEP EXEC PGM,PARM='000100'
-
你能提供你的 JCL 和你的输出吗?
-
阅读“我有 JCL”和“我看到输出”很有趣——但如果你不显示这些,我们只能猜测而不是确定的答案。将缺失的信息添加到您的问题中,我们可能会提供答案...
-
@Simon Sobisch:
numb是一个定义为PIC X(6)的字符字段。您将其与字段PARM-LENGTH混为一谈。但即使这个字段也会以字符格式显示为可读数字(负数除外)。来自 IBM Enterprise Cobol 手册的“DISPLAY”语句部分:如果 identifier-1 是二进制、内部十进制或内部浮点数据项,则 identifier-1 会自动转换为外部格式,如下所示: v 二进制和内部十进制项目转换为分区十进制。负符号值会导致低阶符号过冲。.