我正在尝试通过动态分配文件
OPEN FILE (OUT) TITLE('DSN(XXXXX.XXXXX.MILTEST),LRECL(80)');
文件已创建,但记录大小为默认值。我尝试了 env 变量和备用名称,DD_DDNAME
但不断得到
引发了 UNDEFINEDFILE 条件 ABENDU4038
我正在尝试通过动态分配文件
OPEN FILE (OUT) TITLE('DSN(XXXXX.XXXXX.MILTEST),LRECL(80)');
文件已创建,但记录大小为默认值。我尝试了 env 变量和备用名称,DD_DDNAME
但不断得到
引发了 UNDEFINEDFILE 条件 ABENDU4038
试试这个在 Enterprise PL/I 中创建一个新文件:
Dcl theLrecl = 42;
Dcl userDataset char(44) init('USER.DATASET');
dcl fileTitle char(88);
fileTitle ='DSN('||trim(userDataset)||'),NEW,CYL,SPACE(1,1),KEEP,LRECL('||theLrecl||')';
Put Skip List('fileTitle=',trim(fileTitle)); /* optionally show the title for debugging purposes */
dcl tempFile file print;
OPEN FILE(tempFile) title(trim(fileTitle));
注意:'title' 字符串不能包含空格;所以修剪它以确保。
更多详细信息位于http://www-01.ibm.com/support/docview.wss?uid=isg1PK74015
哎呀,误读的问题;这是知识中心关于 LRECL 的片段;
LRECL LRECL 选项与 RECSIZE 选项相同。
LRECL (n) 如果 LRECL 未指定且未由 LINESIZE 值暗示(TYPE(FIXED) 文件除外,默认值为 1024。
RECSIZE RECSIZE 选项指定数据集中记录的长度 n。
RECSIZE 512 (n) - 对于区域和固定长度的数据集,RECSIZE 指定数据集中每条记录的长度;对于所有其他数据集类型,RECSIZE 指定记录可能具有的最大长度。
这两个选项的全部细节出现在第 6 章:使用“Enterprise PL/I for z/OS - Programming Guide Version 4 Release 4”的数据集和文件