如何在AS/400中不重建SRCPF修改其记录长度?
AS/400 SRCPF记录长度修改方案
- 明确说明:CHGSRCPF命令无法修改SRCPF的记录长度,因为记录长度是物理文件的核心属性,创建后无法直接在线修改。但可以通过以下步骤实现保留数据且修改记录长度的需求:
方法一:备份-重建-恢复
- 备份原SRCPF的所有成员:
SAVOBJ OBJ(QRPGLESRC) LIB(DAR) DEV(*SAVF) SAVF(DAR/SAVESRC) - 删除原SRCPF:
DLTF FILE(DAR/QRPGLESRC) - 创建记录长度为112的新SRCPF:
CRTSRCPF FILE(DAR/QRPGLESRC) RCDLEN(112) - 恢复备份的成员到新文件:
RSTOBJ OBJ(QRPGLESRC) SAVLIB(DAR) DEV(*SAVF) SAVF(DAR/SAVESRC)
方法二:复制文件并修改属性(更高效)
- 复制原SRCPF为新文件,同时指定记录长度112:
CRTDUPOBJ OBJ(QRPGLESRC) FROMLIB(DAR) OBJTYPE(*FILE) TOLIB(DAR) NEWOBJ(QRPGLESRC_NEW) CRTSRCPF(*YES) RCDLEN(112) - 删除原文件:
DLTF FILE(DAR/QRPGLESRC) - 将新文件重命名为原文件名:
RNMOBJ OBJ(DAR/QRPGLESRC_NEW) OBJTYPE(*FILE) NEWOBJ(QRPGLESRC)
- 补充说明:复制CLLE程序后出现格式错误,是因为原SRCPF记录长度92无法容纳长度为112的源码行,导致内容截断或格式不匹配,修改记录长度后即可正常存储。
内容的提问来源于stack exchange,提问作者Dar
相关产品推荐
相关产品推荐

