IDCAMS ALTER 的数据集名称是否需要分隔符?

问题描述 投票:0回答:1

好吧,我对整个大型机/JCL 的事情有点陌生。这绝对是一个n00b问题,但老实说我不知道答案。

我做了一些查找,但我没有看到这个应该是一个非常简单的问题的答案,IMO。在编写 JCL 过程时,我想要获取当前的生产数据集并使用版本号(如 &BUVER)对其进行备份。我正在复制的示例使用 IDCAMS,而 SYSIN DD 语句使用

ALTER 'HLQ.MY.PROD.DS01' NEWNM('HLQ.MY.PROD.DS01.VER100.D010122')

DS 名称周围的抽搐是否必要?我正在尝试编写一个过程来使用

HLQ.MY.PROD.DS01.&BUVERNO.&BUDATE
备份一组常规的 DS 名称以及版本和备份日期,我不确定是否可以将符号放在 tics 中,或者是否可以保留 tics关闭整个事情并按照上面的方式连接符号。

'HLQ.MY.PROD.DS01.&BUVERNO.&BUDATE'
有用吗?

如果没有,

HLQ.MY.PROD.DS01.&BUVERNO.&BUDATE
有用吗?

或者我正在尝试做一些根本不允许的事情?

感谢您对此提供任何帮助?

procedure jcl
1个回答
0
投票

CoMo G-Dawg,

对于 PGM=IDCAMS,单引号不是必需的。即使它们存在,它也确保所包含的数据集是绝对数据集名称。然而,某些 IDCAMS 命令(例如 DEFINE CLUSTER)可以用作 TSO 命令。(使用 PGM=IKJEFT01)。在这种情况下,如果名称未用单引号引起来,系统可能会附加前缀(通常是您的 ID)作为第一个限定符。因此,根据您运行命令的方式,您可能需要单引号。

如果您想确保它在两种环境中都有效,请始终使用单引号。

需要导出符号&BUVERNO和&BUDATE,以便将它们导出到SYSIN。另请注意,作业运行的作业类需要定义 SYSSYM=ALLOW。

// your job card
// EXPORT SYMLIST=*                                     
// SET BUVERNO=VER100                                   
// SET BUDATE=D010122                                   
//*                                                     
//STEP0100 EXEC PGM=IDCAMS                              
//SYSPRINT DD SYSOUT=*                                  
//SYSIN    DD *,SYMBOLS=EXECSYS                         
  ALTER 'HLQ.MY.PROD.DS01'          -              
        NEWNAME('HLQ.MY.PROD.DS01.&BUVERNO..&BUDATE')   
/*                                                      
© www.soinside.com 2019 - 2024. All rights reserved.