问题描述
我使用IDCAMS将VSAM KSDS中的记录打印到PS文件(在JCL中创建)。
//OUTDD DD DSN=&SYSUID...PUTOUT,disP=(NEW,CATLG,DELETE),// SPACE=(TRK,(1,0)),// DCB=(RECFM=FB,DSORG=PS,LRECL=120),BLKSIZE=9600
尽管我在Jcl中指定了RECFM = FB,但是当我查看Z00838.PUTOUT的属性时,它显示了FBA。我需要帮助吗?
解决方法
详细的here IDCAMS对PRINT
语句的输出数据集有一些要求,该要求以不太明显的方式实施。
默认SYSPRINT
为RECFM=VBA,LRECL=125
,但按照上面的链接
您可以通过在DCB中放置其他值来更改默认值 SYSPRINT语句的参数。但是,您不能使用记录 F或固定块(FB)的格式;那些更改为VBA。
注意分号后的部分:IDCAMS将自动更改它不喜欢的所有DCB参数。
在使用参数之后,它似乎比上面所述更加严格:甚至RECFM=VB
都将更改为VBA
,所有小于{125的LRECL
都将更改为125。
P.S .:您真的要PRINT
这样的数据集吗?
RECORD SEQUENCE NUMBER - 69
//IKJEFT1A EXEC PGM=IKJEFT1A
RECORD SEQUENCE NUMBER - 70
//*
还是您要REPRO
这样?
// IKJEFT1A EXEC PGM = IKJEFT1A
// *
P.P.S .:此行为还将影响已用DISP=SHR
分配的现有数据集。
最有趣的效果是使用已经存在一些内容的预先存在的FB80数据集,并在IDCAMS DISP=MOD
步骤中使用PRINT
对其进行分配。该步骤以返回码0完成,但随后尝试读取数据集导致I / O错误。