JCL用于将某些成员从一个PDS复制到另一个PDS

时间:2010-09-28 08:34:09

标签: mainframe jcl

我正在尝试将一些成员从一个PDS复制到另一个PDS。假设我在一个PDS中有500个成员。我试图将前100个移动到第二个PDS,下一个100移动到第三个PDS,依此类推。还应从源PDS中删除复制到另一个PDS的成员。

是否可以使用JCL执行此操作?我在看IEBGENER,但在那里我发现我们可以通过指定名称来直接复制成员。

2 个答案:

答案 0 :(得分:1)

您可以在多个工作步骤中执行此操作。作为大纲:

  • 将LISTDS'input-pds-name'EMEMBERS的输出捕获到数据集中
  • 使用ICETOOL操作MEMBERS列表以生成IDCAMS REPRO和DELETE命令
  • 运行IDCAMS REPRO
  • 运行IDCAMS DELETE

设置ICETOOL以选择MEMBERS列表并将其格式化为REPRO / DELETE命令 到目前为止,这是最困难的一步。事实上,你可能需要链接一对 ICETOOL采取措施全力以赴。这可能需要很长时间 除非你有很多经验,否则要弄明白 使用ICETOOL。这里 是IBM DFSORT Programming Guide的链接 (ICETOOL只是DFSORT的BATCH前端),让您了解一下您的情况 反对。

我建议采用另一种方法。尝试编写REXX程序来替换 ICETOOL步骤。捕获LISTDS输出并将其格式化为 适当的IDCAMS REPRO / DELETE命令将是一个更简单的过程。

REXX几乎可以在每个IBM大型机上使用,因此访问不应该是一个问题。

如果需要,请提供有关数据集命名约定的更多详细信息 更多的帮助。特别是输出PDS名称。我不需要或不想要 确切的名称,它们是如何构建的。例如,他们看起来像什么 像这样:

  • HLQ.SOMENAME.FILE001
  • HLQ.SOMENAME.FILE002
  • HLQ.SOMENAME.FILE003

其中前100个成员被复制到FILE001,下一个100被复制到FILE002 等等。这可以改变你的一般化程度 文件复制实用程序。另外,你是否继续以100块为单位进行复制 输入PDS是否有效或是否有一些停止限制?

答案 1 :(得分:0)

如果您有一个名为“SAS”的产品,那么将选定的成员从一个PDS复制到另一个PD13非常容易。

DATA PDS;                                              
FILENAME OLD 'A*.B*.C*' DISP=SHR;              
FILENAME NEW 'A*.B*.D*' DISP=OLD;
PROC PDSCOPY INDD=OLD OUTDD=NEW ALIASMATCH=BOTH        
SHAREINPUT;                                      
SELECT  AJ:;                                        
RUN;                                                   

注意:以AJ开头的所有成员都将从旧数据集复制到新数据集。