IBM大型机论坛索引
 
 登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答  寄存器
 

迁移的数据集删除


IBM大型机论坛 -> JCL& VSAM
发表新话题   该主题已锁定:您无法编辑帖子或回复。
查看上一个主题 :: 查看下一个主题  
作者 信息
Trilok dewangan

新的用户


已加入:2008年6月19日
帖子:39
地点:美国

 发布 发表:2008年8月18日星期一3:54 pm
引用回复

你好,

我有一些如下所示的数据集...所有都在磁带中迁移。我想删除这些数据集,并且相同的数量超过25,000。

数据集就像

XXX.YYY.ZZZ.ABC
XXX.YYY.ZZZ.ASD
XXX.YYY.ZZZ.AFD
...
...
...
等等。总之,我想删除所有以XXX.YYY.ZZZ。*开头的数据集。并且所有都迁移到磁带中。

谢谢,
Trilok
回到顶部
查看用户资料 发送私信
克里提卡伊

新的用户


已加入:2008年8月10日
帖子:45
地点:印度

 发布 发表:2008年8月18日星期一3:57 pm
引用回复

尝试使用IDCAMS并删除。

问候,
J
回到顶部
查看用户资料 发送私信
克里提卡伊

新的用户


已加入:2008年8月10日
帖子:45
地点:印度

 发布 发表:2008年8月18日星期一4:07 pm
引用回复

Use this JCLand check out if it helps out. I could execute it successfully.

// STEP010 EXEC PGM = IEFBR14
// DD1 DD DSN =< 数据集 >,
// DISP =(MOD,DELETE,DELETE),
// UNIT = SYSDA,
//空格=(CYL,(30,10),RLSE)
// SYSOUT DD SYSOUT = *
// SYSPRINT DD SYSOUT = *
// SYSUDUMP DD SYSOUT = *
// SYSABOUT DD SYSOUT = *

问候,
J
回到顶部
查看用户资料 发送私信
外籍人士

全球主持人


已加入:2007年3月14日
帖子:8794
地点:威尔士威尔士

 发布 发表:2008年8月18日星期一4:22 pm
引用回复

克里提卡伊写道:
Use this JCLand check out if it helps out. I could execute it successfully.

// STEP010 EXEC PGM = IEFBR14
// DD1 DD DSN =< 数据集 >,
// DISP =(MOD,DELETE,DELETE),
// UNIT = SYSDA,
//空格=(CYL,(30,10),RLSE)


使用IEFBR14将导致从磁带上调出数据集 之前 删除它。当您只想删除数据集时,为什么要浪费时间和资源来物理调用数据集。

IDCAMS解决方案可以,但仅限于使用通配符。

CSI是使用REXX的一种更加灵活的方法,我可能在某处有一个。如果我已经有它会发布。
回到顶部
查看用户资料 发送私信
外籍人士

全球主持人


已加入:2007年3月14日
帖子:8794
地点:威尔士威尔士

 发布 发表:2008年8月18日星期一4:39 pm
引用回复

The JCL- uses PARM values to select (a) What you want to do and (b) on which types of datasets.

对于您的第一次运行,请使用PARM ='CSIUTIL 扫描 MIGR'获取将被删除的数据集的列表。

对于实际运行,请使用PARM ='CSIUTIL 跑 MIGR'删除迁移的数据集。

通过阅读JCL中的注释,您可能还会看到它还能做什么。

EXCLUDE DD会将数据集排除在处理之外,但是我不记得它是否可以使用*后面的前缀,即ABC.NODEL。*,但是您肯定使用了完全限定的DSN。应该很容易为您工作。
码:

// STEP0020 EXEC PGM = IKJEFT01,DYNAMNBR = 256,                   
//           PARM='CSIUTIL 扫描 DASD TAPE MIGR'               
// *   PARM VALUES - 扫描    - LIST ONLY                       
// *               - 跑     -处理请求-删除或HSM
// *               - DASD   -列出/删除DASD数据集           
// *               - MIGR   -列出/删除迁移的数据集       
// *               - TAPE   -列表/删除磁带数据集           
// *               - RCALL   -列出/调用选定的数据集       
// *               - ARCH   -列出/迁移所选数据集到ML1
// *               - ARCH2   -列出/迁移选定的数据集到ML2
// SYSEXEC DD DSN = MY.REXX,DISP = SHR                           
// SYSOUT   DD SYSOUT=*                                       
// SYSTSPRT DD SYSOUT = *                                       
// SYSTSIN  DD DUMMY                                           
//数据集DD *                                               
HLQ。**
/*                                                           
//排除  DD *                                               
HLQ.DATASET.ONE
HLQ.DATASET.NINE
/*                                                           


The 雷克斯 code - called CSIUTIL in MY.REXX
码:

/* 雷克斯 ** INVOKE CSI VIA BATCH 雷克斯 PROCESS
       **列出或删除给定DSN模式的所有条目
           还可以通过DASD TAPE或MIGR过滤                       */
ARG 跑TYP UNIT
如果RUNTYP<> "RUN" 然后 跑TYP = "SCAN"
IF POS('MIGR',UNIT) > 0 & POS('RCALL',UNIT) > 0 然后 DO
   SAY " "
   SAY "既针对迁移数据集又进行了回调和高清删除"
   SAY "退出RURN代码16 ***退出返回代码16"
   EXIT(16)
结束
 "执行*排除磁盘( STEM EXC. FINIS"
 DO A = 1 TO EXC.0
   IF POS('*',EXC.A) > 0 然后 DO
     EXCLDIT.A = STRIP(SUBSTR(EXC.A,1,POS('*',EXC.A)-1))
     GEN.A = "Y"
   END
   ELSE DO
     EXCLDIT.A = STRIP(EXC.A)
     GEN.A = "N"
   END
 END
 "执行*磁盘数据集( STEM CAT. FINIS"
 DO KCNT = 1 TO CAT.0               
 KEY = SUBSTR(CAT.KCNT,1,44)     
MODRSNRC = SUBSTR(' ',1,4)         
CSIFILTK = SUBSTR(KEY,1,44)   
CSICATNM = SUBSTR(' ',1,44)   
CSIRESNM = SUBSTR(' ',1,44)   
CSIDTYPS = SUBSTR(' ',1,16)
CSICLDI  = SUBSTR('Y',1,1) 
CSIRESUM = SUBSTR(' ',1,1) 
CSIS1CAT = SUBSTR(' ',1,1)
CSIRESRV = SUBSTR(' ',1,1) 
CSINUMEN ='0002'X         
CSIFLD1  = 'VOLSER  '   
CSIFLD2  = 'DEVTYP  '   
CSIOPTS = CSICLDI !! CSIRESUM! CSIS1CAT !! CSIRESRV
CSIFIELD = CSIFILTK! CSICATNM !! CSIRESNM !! CSIDTYPS! CSIOPTS
CSIFIELD = CSIFIELD !! CSINUMEN !! CSIFLD1 !! CSIFLD2
沃克伦= 4096
DWORK ='00001000'X !!拷贝数('00'X,WORKLEN-4)
恢复='Y'
类别= SUBSTR(' ',1,44)
DNAMET = SUBSTR(' ',1,44)
恢复时='Y'
 地址LINKPGM'IGGCSI00  MODRSNRC  CSIFIELD  DWORK'
 RESUME = SUBSTR(CSIFIELD,150,1)   
 USEDLEN = C2D(SUBSTR(DWORK,9,4))   
 POS1=15                           
 DO WHILE POS1 < USEDLEN           
   IF SUBSTR(DWORK,POS1+1,1) = '0' 
    然后 DO
         CATNAME=SUBSTR(DWORK,POS1+2,44)
         IF CATNAME <> CATNAMET 然后
          DO                       
           CATNAMET = CATNAME
          结束
         POS1 = POS1 + 50
         END
   DNAME = SUBSTR(DWORK,POS1+2,44) 
   PRO = "Y"
   DO ZZ = 1 TO EXC.0
     EXCLDLN = LENGTH(EXCLDIT.ZZ)
     IF GEN.ZZ = "N" 然后 DO
       IF STRIP(DNAME) = STRIP(EXCLDIT.ZZ) 然后 PRO = "N"
     END
     ELSE DO
       IF STRIP(LEFT(DNAME,EXCLDLN)) = STRIP(EXCLDIT.ZZ) 然后 PRO = "N"
     END
   END
   IF SUBSTR(DWORK,POS1+1,1)='C'然后DTYPE ='CLUSTER'
    其他
      如果SUBSTR(DWORK,POS1+1,1)='D'然后DTYPE ='DATA    '
     ELSE
      如果SUBSTR(DWORK,POS1+1,1)='I'THEN DTYPE ='INDEX   '
     ELSE
      如果SUBSTR(DWORK,POS1+1,1)='A'THEN DTYPE ='NONVSAM'
     ELSE
      如果SUBSTR(DWORK,POS1+1,1)='H'然后DTYPE ='GDS     '
     ELSE
      如果SUBSTR(DWORK,POS1+1,1)='B'THEN DTYPE ='GDG     '
     ELSE
      如果SUBSTR(DWORK,POS1+1,1)='R'THEN DTYPE ='路径    '
     ELSE
      如果SUBSTR(DWORK,POS1+1,1)='G'THEN DTYPE ='AIX     '
     ELSE
      如果SUBSTR(DWORK,POS1+1,1)='X'THEN DTYPE ='ALIAS   '
     ELSE
      如果SUBSTR(DWORK,POS1+1,1)='U'THEN DTYPE ='UCAT    '
     ELSE
      DTYPE = '        '
    POS1 = POS1 + 46
    NUMVOL = C2D(SUBSTR(DWORK,POS1+4,2))/6
    POS2 = POS1+8                   
    DO I=1 TO NUMVOL               
      VOLSER.I = SUBSTR(' ',1,6)
    结束
    DO I = 1 TO NUMVOL             
      VOLSER.I = SUBSTR(DWORK,POS2,6)
      POS2 = POS2 + 6
    结束
    IF NUMVOL > 1 然后 MVL = '+'
      其他
        MVL = ' '
    DEVTY1 = SUBSTR(DWORK,POS2,4)
    DEVTY2 = C2X(DEVTY1)
    如果SUBSTR(DEVTY2,5,2)='20'THEN DELDEV ='DASD'
      其他
        如果SUBSTR(DEVTY2,5,2)='80'THEN DELDEV ='TAPE'
          其他
            DELDEV = 'XXXX'
   如果DELDEV ='DASD'然后MIGLEV ='ML1'
      其他
        MIGLEV = ' ML2'
    IF DNAMET <> DNAME 然后    
    DO                           
     DNAMET=DNAME
     DNAM2 = STRIP(DNAME)
     如果DTYPE ='GDG'! DELDEV ='XXXX'然后PRO ='N'
     IF PRO = "Y" 然后 DO
       如果VOLSER.1 ='MIGRAT'THEN
         DO
          IF POS('MIGR',UNIT) > 0 ! POS('RCALL',UNIT) > 0 然后 DO
            如果RUNTYP= "RUN" 然后
            DO
              IF POS('MIGR',UNIT) > 0 然后 DO
                说 "          HDEL FOR "DNAM2
                " HDELETE '"DNAM2"'"
              结束
              其他 IF POS('RCALL',UNIT) > 0 然后 DO
                说 "          HRECALL FOR "DNAM2
                " HRECALL '"DNAM2"'"
              结束
            结束
            其他
              说 COPIES(' ',8)DTYPE DNAME VOLSER.1 MVL MIGLEV
          结束
         END
       ELSE IF VOLSER.1 <> 'MIGRAT' 然后
         DO
         如果DTYPE ='CLUSTER'& POS('DASD',UNIT) > 0 然后 DO
             IF 跑TYP = "RUN" 然后 DO
               " DELETE '"DNAM2"'"
             END
             ELSE
               SAY COPIES(' ',8)DTYPE DNAME VOLSER.1 MVL DELDEV
          结束
          别做
          IF DELDEV = 'TAPE' & POS('TAPE',UNIT) > 0
           THEN
             DO
               IF 跑TYP = "RUN" 然后
                 DO
                    " DELETE '"DNAM2"' NOSCRATCH "
                 END
               ELSE
                 SAY COPIES(' ',8)DTYPE DNAME VOLSER.1 MVL DELDEV
            结束
          IF DELDEV = 'DASD' & POS('DASD',UNIT) > 0 ,
           & VOLSER.1 <> 'MIGRAT' 然后
            DO
               IF 跑TYP = "RUN" 然后
                 DO
                    " DELETE '"DNAM2"'"
                 END
                 ELSE
                   SAY COPIES(' ',8)DTYPE DNAME VOLSER.1 MVL DELDEV
            结束
          IF DELDEV = 'DASD' & POS('ARCH',UNIT) > 0 ,
           & VOLSER.1 <> 'MIGRAT' 然后
            DO
               IF SUBSTR(UNIT,POS('ARCH',UNIT)+4,1) = '2'
                 THEN ML = "ML2"
                 ELSE ML = ""
               IF 跑TYP = "RUN" 然后
                 DO
                    说 COPIES(' ',8)DTYPE DNAME VOLSER.1 MVL DELDEV
                    " HMIG '"DNAM2"'" ML
                 END
                 ELSE
                   SAY COPIES(' ',8)DTYPE DNAME VOLSER.1 MVL DELDEV
            结束
         END
       END
    结束
    POS1 = POS1 + C2D(SUBSTR(DWORK,POS1,2))
  结束
结束
结束
结束
回到顶部
查看用户资料 发送私信
萨拉罗古

新的用户


已加入:2008年11月12日
帖子:22
地点:印度

 发布 发表:2009年2月9日星期一11:38 am
引用回复

我已经复制了您发送的代码。我有一个错误
当exec load DD引用顺序数据集时,不得指定IRX0408E Exec成员名称。
您能告诉我如何给rexx程序吗?
回到顶部
查看用户资料 发送私信
外籍人士

全球主持人


已加入:2007年3月14日
帖子:8794
地点:威尔士威尔士

 发布 发表:2009年2月9日星期一3:25 pm
引用回复

将代码放入PDS成员
回到顶部
查看用户资料 发送私信
萨拉罗古

新的用户


已加入:2008年11月12日
帖子:22
地点:印度

 发布 发表:2009年2月9日星期一3:35 pm
引用回复

我把它放在工作的PDS中给出了同样的错误。
回到顶部
查看用户资料 发送私信
外籍人士

全球主持人


已加入:2007年3月14日
帖子:8794
地点:威尔士威尔士

 发布 发表:2009年2月9日星期一3:43 pm
引用回复

发布 the JCLand the 错误信息(s)
回到顶部
查看用户资料 发送私信
萨拉罗古

新的用户


已加入:2008年11月12日
帖子:22
地点:印度

 发布 发表:2009年2月9日星期一3:56 pm
引用回复

码:
// H2567AMB作业('DSCACCIA'),MSGCLASS=O,TIME=(,5),NOTIFY=&SYSUID       
// STEP0020 EXEC PGM = IKJEFT01,DYNAMNBR = 256,                             
//           PARM='CSIUTIL 扫描 DASD TAPE MIGR'                       
// *   PARM VALUES - 扫描    - LIST ONLY                               
// *               - 跑     -处理请求-删除或HSM         
// *               - DASD   -列出/删除DASD数据集               
// *               - MIGR   -列出/删除迁移的数据集           
// *               - TAPE   -列表/删除磁带数据集               
// *               - RCALL   -列出/调用选定的数据集           
// *               - ARCH   -列出/迁移所选数据集到ML1   
// *               - ARCH2   -列出/迁移选定的数据集到ML2   
// SYSEXEC DD DSN = H2567AM.TEST.PROCS(REXX),DISP=SHR                   
// SYSOUT   DD SYSOUT=*                                                 
// SYSTSPRT DD SYSOUT = *                                                 
// SYSTSIN  DD DUMMY                                                   
//数据集DD *                                                       
H2567AM。**                                                              
/*                                                                     
//排除  DD *   
H2567AM.BACKUP     
H2567AM.TEST.BACKUP
/* 


码:
错误信息
当exec load DD引用顺序数据集时,不得指定IRX0408E Exec成员名称。
 READY
 END   


这是我在SYSTSPRT中收到的错误消息
回到顶部
查看用户资料 发送私信
外籍人士

全球主持人


已加入:2007年3月14日
帖子:8794
地点:威尔士威尔士

 发布 发表:2009年2月9日星期一5:01 pm
引用回复

雷克斯代码必须在成员CSIUTIL(或PARM语句中指定的名称)中,并且不对SYSEXEC语句中的成员名称进行编码
回到顶部
查看用户资料 发送私信
萨拉罗古

新的用户


已加入:2008年11月12日
帖子:22
地点:印度

 发布 发表:2009年2月9日星期一5:20 pm
引用回复

非常感谢。我不了解REXX如何从基础上学习它。
回到顶部
查看用户资料 发送私信
阿努·达万(Anuj Dhawan)

高级会员


已加入:2006年4月22日
帖子:6250
地点:印度孟买

 发布 发表:2009年2月9日星期一5:49 pm
引用回复

你好

请检查“ CLIST”中的这些链接&REXX”是论坛的一部分,它们不过是那里的“粘性”而已。

ibmmainframes.com/viewtopic.php?t=21147
ibmmainframes.com/viewtopic.php?t=20367

请学习在这些论坛上进行搜索,您将获得比预期更多的链接。
回到顶部
查看用户资料 发送私信
萨拉罗古

新的用户


已加入:2008年11月12日
帖子:22
地点:印度

 发布 发表:2009年2月9日星期一5:55 pm
引用回复

感谢您的建议。我再次感谢您在此方面的帮助。
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

 发布 发表:2012年2月10日,星期五3:16上午
引用回复

目前尚不清楚是否提到了解决方案。

但是这个
码:
// SYSEXEC DD DSN = H2567AM.TEST.PROCS(REXX),DISP=SHR


将导致此消息中提到的情况:
码:
当exec load DD引用顺序数据集时,不得指定IRX0408E Exec成员名称。


SYSEXEC DD语句应引用PDS名称,而不是PDS成员。

PDS成员在应用程序中显示为顺序数据集。而在这种情况下,您只想提供包含该成员的PDS。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

 发布 发表于:星期五二月10,2012 3:29上午
引用回复

佩奎德罗 icon_wink.gif


该主题已在复活后
码:
...           3 year(s) - (月差/ 12)
...           3 year(s) - (difference )
...          36 months
...        1095 days
...       26289 hours
...     1577361 minutes
...    94641660 seconds
回到顶部
查看用户资料 发送私信
佩德罗

全球主持人


已加入:2006年9月1日
帖子:2214
地点:硅谷

 发布 发表:2012年2月10日,星期五4:20 am
引用回复

抱歉。

它以某种方式出现在最近添加的线程列表中。 (或类似的东西)。我通常不看旧东西。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

 发布 发表于:星期五二月10,2012 10:15上午
引用回复

为什么要对不起 ?我只是拉你的腿 icon_biggrin.gif
回到顶部
查看用户资料 发送私信
唐·雷西

活跃成员


已加入:2010年7月6日
帖子:696
地点:加拿大安大略省惠特比

 发布 发表:2012年2月10日,星期五7:24 pm
引用回复

我不确定此板是否在其他地方提到过(我无法在搜索中找到它),但是IEFBR14不再必须先删除已迁移的数据集,然后再删除它。

显然,新行为是在z / OS中,而不是IEFBR14本身。系统将拦截由IEFBR14产生的HRECALL请求,如果DISP为DELETE,DELETE,则将执行HDELETE。
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

 发布 发表:2012年2月10日星期五7:44 pm
引用回复

这是显式的DELETE,DELETE还是与(OLD,DELETE)一起使用?

这将使IEFBR14变得“特别”,就像OS的一部分,而不是什么都不做的程序。有点难以描述。还是他们改变了IEFBR14本身来做到这一点?有趣。
回到顶部
查看用户资料 发送私信
唐·雷西

活跃成员


已加入:2010年7月6日
帖子:696
地点:加拿大安大略省惠特比

 发布 发表:2012年2月10日,星期五11:46 pm
引用回复

抱歉,我的意思是(MOD,DELETE,DELETE)。 (OLD,DELETE,DELETE)应该也可以工作。我倾向于使用前者,因为即使DSN不存在,它也可以工作。

我了解他们没有更改IEFBR14。现在,操作系统将其视为“特殊”程序。由于引入了不一致,因此在IBM-MAIN上引起了一些争议。另一方面,这是非常有用的不一致。
回到顶部
查看用户资料 发送私信
阿努·达万(Anuj Dhawan)

高级会员


已加入:2006年4月22日
帖子:6250
地点:印度孟买

 发布 发表:2012年2月13日星期一5:01 pm
引用回复

z / OS 1.11中的增强功能是批处理分配/取消分配处理将检查程序名称是否恰好是“ IEFBR14”,如果是,则对于DISP为DELETE的已迁移数据集,只需对其进行HDELETE,而无需HRECALLing。 DISP =(*,DELETE)适用。
回到顶部
查看用户资料 发送私信
史蒂文·丹尼尔斯

新的用户


加入:2021年1月22日
帖子:1
所在地:美国

 发布 发表:2021年1月22日星期五9:41 pm
引用回复

我使用PARM ='CSIUTIL 扫描 MIGR'运行以获取将被删除且没有输出的数据集的列表。
回到顶部
查看用户资料 发送私信
罗希特·乌马尔吉卡(Rohit Umarjikar)

全球主持人


已加入:2010年9月21日
帖子:2575
地点:美国纽约

 发布 发表:2021年1月22日星期五10:42下午
引用回复

欢迎!
如果有特定问题,请避免拖延任何旧帖子,并开始自己的新帖子,如果需要,可以在新帖子中引用此帖子。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   该主题已锁定:您无法编辑帖子或回复。 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> JCL& VSAM

 


类似主题
话题 论坛 回覆
没有新帖 捕获GDG数据集名称 JCL& VSAM 10
没有新帖 正在更新对象时更新DFSMShsm DB ... JCL& VSAM 0
没有新帖 从内部获取数据集名称... TSO / ISPF 18
没有新帖 什么是DSORG(Datset组织)... JCL& VSAM 8
没有新帖 IEBGENER不在PD中创建成员... JCL& VSAM 7
搜索我们的论坛:

回到顶部