将2个PDS成员合并为1

Kla*_*ulz 0 jcl zos

我有一个看似简单的任务,就是将一个PDS的2名成员合并,比如MYDSN.X(A)和MYDSN.X(B)到一个共同的成员MYDSN.X(AB).

我的尝试是使用IEBCOPY,但不知怎的,我无法完成这个特定的任务,虽然我在这里找到了很多有用的例子.

此任务的另一个特例是创建一个新成员,例如MYDSN.X(A3),其中包含MYDSN.X(A)内容的3倍.关于这个特例的任何想法呢?

Bil*_*ger 5

使用数据集连接,您想要做的事情非常简单:

//SOMENAME DD DISP=SHR,DSN=yourpds(yourmem1)
//         DD DISP=SHR,DSN=yourpds(yourmem1)
Run Code Online (Sandbox Code Playgroud)

您可以直接在运行要测试的步骤的JCL中使用它,或者,如果您需要永久副本,则可以复制:

//SORTCOPY EXEC PGM=SORT
//SORTIN   DD DISP=SHR,DSN=yourpds(yourmem1) 
//         DD DISP=SHR,DSN=yourpds(yourmem2)
//SORTOUT  DD DISP=OLD,DSN=yourpds(yournew) 
//SYSOUT   DD SYSOUT=* 
//SYSIN    DD * 
 OPTION COPY 
Run Code Online (Sandbox Code Playgroud)

注意DISP=OLD输出.这将确保如果两个同时运行的作业同时运行,您将不会丢失数据.

PDSE比PDS"更安全".

如果您想要同一成员的多个副本:

//SORTCOPY EXEC PGM=SORT
//SORTIN   DD DISP=SHR,DSN=yourpds(yourmem1) 
//         DD DISP=SHR,DSN=yourpds(yourmem1)
//         DD DISP=SHR,DSN=yourpds(yourmem1)
//         DD DISP=SHR,DSN=yourpds(yourmem1)
//SORTOUT  DD DISP=OLD,DSN=yourpds(yournew) 
//SYSOUT   DD SYSOUT=* 
//SYSIN    DD * 
 OPTION COPY 
Run Code Online (Sandbox Code Playgroud)

使用编辑器重复非常简单.