【问题标题】:How to edit name of members of pds using JCL?如何使用 JCL 编辑 pds 成员的名称?
【发布时间】:2017-07-21 05:29:54
【问题描述】:

我想使用 JCL 将 PDS 的所有成员复制到另一个已编辑名称的成员。我已将 PDS 的所有成员复制到另一个 PDS,但如何编辑成员名称。

【问题讨论】:

  • 虽然您在复制时可能错过了重命名的机会(假设您使用了 IEBCOPY),但我认为 @NealB 是您的最佳选择。 IEHPROGM 可以做到,但现在有多少人使用它?您可以批量运行 TSO 并使用 TSO RENAME,但这有点像大锤。如果您想要的更改有一些“模式”,您可以为 IDCAMS“生成”所有 SYSIN。所以,要么接受,要么告诉我们你为什么不喜欢给出的答案。

标签: mainframe jcl


【解决方案1】:

IDCAMS ALTER... JCL 看起来像:

//STEPX EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=A
//SYSIN    DD *
 ALTER HLQ.MY.PDS(OLDNAME) NEWNAME(HLQ.MY.PDS(NEWNAME))
 ... for as many members as you want to rename
/*

【讨论】:

  • 这实际上可能会改变,记得先复制 PDS,这样你就有两个副本。
【解决方案2】:

我在底部添加了 2 个超链接,用于简要讨论这些实用程序。

我想使用 JCL 将 PDS 的所有成员复制到另一个已编辑名称的成员。

首先确定您是否有内部 SAS。如果是这样,那么使用 PROC SOURCE 而不是 IEBPTPCH [更困难],以便首先获得一个顺序数据集 [对于那些在 Rio Linda 的人来说,它是一个平面文件]。然后前往 TSO 2 [edit] 或 3.4 并使用 TSO 编辑器编辑此顺序数据集,以根据需要手动更改每个成员的名称。如果您使用过 IEBPTPCH,请意识到您还必须进行一些 PROC SOURCE 为您所做的额外更改。然后保存这个顺序数据集,注意现在每个成员都已列出,您甚至可以在 TSO 编辑器中工作时对每个成员本身进行大规模更改 - 即每个成员中所有工作卡中的帐号更改就像使用查找/更改键,因为您将其视为一个长序列文件。

我已将 PDS 的所有成员复制到另一个 PDS,但如何编辑成员名称。

现在使用 IEBUPDTE,将重建的顺序数据集作为 //SYSIN,将新的输出文件作为新的 PDS,使用 //SYSUT2 作为输出!太简单了。

现在,在您创建了一个全新的 PDS/TSO 库之后,您会注意到统计数据完全丢失了。哇。不要惊慌。前往 TSO 3.5,然后将它们重新放入,一切顺利。

祝你好运。

PROC SOURCE IEBPTPCH & IEBUPDTE

【讨论】:

    猜你喜欢
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多