将2个PDS成员合并为1

时间:2015-11-19 07:56:14

标签: zos jcl

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

我的尝试是使用 IEBCOPY ,但不知怎的,我无法执行此特定任务,尽管我找到了一些有用的示例here

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

1 个答案:

答案 0 :(得分:5)

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

//SOMENAME DD DISP=SHR,DSN=yourpds(yourmem1)
//         DD DISP=SHR,DSN=yourpds(yourmem1)

您可以直接在运行您要测试的步骤的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 

注意输出的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 

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