微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我指定RECFM = FB时,RECFM = FBA

如何解决当我指定RECFM = FB时,RECFM = FBA

我使用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语句的输出数据集有一些要求,该要求以不太明显的方式实施。

默认SYSPRINTRECFM=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错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。