jcl - 当我指定 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。我需要帮助?
解决方案
如此处详述, IDCAMS 对语句的输出数据集有一些要求PRINT
,它以不太明显的方式强制执行。
默认SYSPRINT
是RECFM=VBA,LRECL=125
,但根据上面的链接
您可以通过在 SYSPRINT 语句的 DCB 参数中放置其他值来更改默认值。但是,您不能使用 F 或固定块 (FB) 的记录格式;那些被更改为VBA。
注意分号后面的部分:IDCAMS 将自动更改它不喜欢的所有 DCB 参数。
玩弄了参数后,似乎比上面所说的更严格:evenRECFM=VB
将被更改为VBA
,所有LRECL
小于 125 的 s 都将更改为 125。
PS:你真的想要这样PRINT
的数据集吗?
RECORD SEQUENCE NUMBER - 69
//IKJEFT1A EXEC PGM=IKJEFT1A
RECORD SEQUENCE NUMBER - 70
//*
或者你想REPRO
这样吗?
//IKJEFT1A 执行 PGM=IKJEFT1A
//*
PPS:此行为还将影响已分配的预先存在的数据集DISP=SHR
。最有趣的效果是使用已经存在的 FB80 数据集并DISP=MOD
在 IDCAMSPRINT
步骤中对其进行分配时。该步骤以返回码 0 完成,但随后尝试读取数据集导致 I/O 错误。
推荐阅读
- javascript - 在这种情况下,为什么 Angular HTTPClient 重复其余调用两次?
- r - 矩阵乘数误差 - 将最大值转换为和
- python - 相机校准基本疑惑
- reactjs - 如何动态创建动画视图并保持其他动画状态反应?
- javascript - 如何用 JavaScript 解决这个问题?
- reactjs - 如何在 React 中沿滑块移动的 ReachUI 中放置标签
- python-3.x - 如何使用python函数遍历从另一个函数接收到的文件
- vue.js - 使用 travis 在 gh 页面上部署后的空白页面
- javascript - 我错过了什么或者这种行为对于“if 语句”来说很奇怪吗?
- django - Django 频道上的错误命令 Eval