首页 > 学技术 > 技术网文 > IBM AS400应用论坛 > 正文

[精华] 请教:关于一次清除lib下所有表的数据问题


来源 chinaunix.net 酷勤网整理

各位朋友,如何一次将lib下所有表的数据清空,有朋友说用cl可以,如何作呀,请朋友们指教。



 utirei 回复于:2005-12-07 13:39:50

clrpfm 表名


 liu__jiang 回复于:2005-12-07 13:55:59

楼上说的只能一个表一个表清,不能满足楼主说的一次全部清掉,偶也不知道更好的办法,期待中……但怀疑没有楼主说的可以一次全部清掉的方法。


 pro-group 回复于:2005-12-07 14:00:27

清空LIB下所有的database ,要写CL程序了。


 心城 回复于:2005-12-07 14:45:25

如何写呢,请朋友们讲一个范例呀,再次感谢。


 xuguopeng 回复于:2005-12-07 14:59:28

PGM 
DSPFD..........将一个LIB下所有PF名输出到一个表内
 RCVF  ......... 读取该表   
CLRPFM  ..........读一个 清空一个
ENDPGM


如果你有WDS的话就比较简单了 做个OPTION就可以了


 心城 回复于:2005-12-07 23:10:03

谢谢。


 mamei 回复于:2005-12-08 09:28:05

CLRPFM  ..........读一个 清空一个
ENDPGM

------------------------
在CLRPFM与ENDPGM加一个MONMSG,加一个RPG
如果有CLR不成功的,PRINT 一个LIST!!
这样公保险一些!


 leason 回复于:2005-12-08 13:56:54

首先请问楼主清空数据的同时是否释放空间.如你的表格没有做过RGZPFM
或表格的属性中Reuse deleted records  . . . . .   *YES   没有选YES的话.
那么即使你删除了所有表格的数据,这些表格的空间还是占用那么多的哦.
要是楼主你要求删除的同时释放表格的空间,那么请把表格的
Reuse deleted records  . . . . .   *YES  选为YES (用CHGPF命令修改)

或者你删除所有表格后,对每个表格进行命令RGZPFM.

以下提供删除整个LIB下的CLP程序:.如LIBAA  里有A1,A2,A3.三个表.

[color=Red]CLP程序名为:BBB       
            PGM                                              
START:                                                                                      
             CLRPFM     FILE(LIBAAA/A1) 
             CLRPFM     FILE(LIBAAA/A2) 
             CLRPFM     FILE(LIBAAA/A3)  
             DLTOVR     FILE(*ALL)   (这句可要可不要)                         
             ENDPGM    [/color]
编译好的BBB CLP程序后.

可直接CALL 或使用SBMJOB 命令放在BATCH里面运行,这样是在线删除,所以在程序执行前,请在LIB LIST 上面增加你要删除数据的LIB

要是LIB里面的数据很大,清除的过程中占用很多时间的,

楼主可以工作计划的安排WRKJOBSCDE   让系统社定时间自行清除数据就可以了.

单这样程序要更改一下,如下:(这样做建议使用两个CLP放到BATCH里面进行)

[color=Blue]CLP程序BBB1

             PGM                                              
START:                                                        
             SBMJOB     CMD(CALL PGM(LIBAAA/BBB2)) +     
                           JOB(BBB2) JOBQ(ZZPLIB/ZBATCHL3) 
             /*ZZPLIB/ZBATCH1这个请查询你的系统中那些Job Queues */
             /*可使用命令WRKJOBQ 查询*/
             ENDPGM                                           


CLP程序BBB2
             PGM                                             
START:                                                       
             ADDLIBLE   LIB(LIBAAA) POSITION(*AFTER  XXXLIB) 
           /* XXXLIB是代表你的系统操作时最前面的一个LIB.*/
           /*上面的语句就是把你LIBAAA放在最前面*/
             MONMSG     MSGID(CPF2103)                       
             CLRPFM     FILE(LIBAAA/A1) 
             CLRPFM     FILE(LIBAAA/A2) 
             CLRPFM     FILE(LIBAAA/A3) 
             RMVLIBLE   LIB(LIBAAA)                         
             DLTOVR     FILE(*ALL)                           
             ENDPGM[/color]

[ 本帖最后由 leason 于 2005-12-8 14:12 编辑 ]


 心城 回复于:2005-12-09 17:18:19

谢谢楼上几位朋友的解答。


 jolliking 回复于:2006-02-10 17:32:36

顶。。。正需要。。。谢谢


 utirei 回复于:2006-02-11 12:32:18

想了一下,全部重新编译不是也可以吗?


 xiaofeizhu 回复于:2006-02-11 23:16:52

shift+f4, 增加一个option, 
CR clrpfm &l/&n
保存,

pdm下shift + F5, 目标类型*file, 属性pf-dta
CR  OPTION
SHIFT + F1, 
回车提交执行


 utirei 回复于:2006-02-14 11:24:25

还是楼上的这种方法简单!


 jlwrp 回复于:2006-02-14 15:49:58

是啊,还是牛人多啊!!!


 qingzhou 回复于:2006-02-14 17:06:40

引用:原帖由 xiaofeizhu 于 2006-2-11 23:16 发表
shift+f4, 增加一个option, 
CR clrpfm &l/&n
保存,

pdm下shift + F5, 目标类型*file, 属性pf-dta
CR  OPTION
SHIFT + F1, 
回车提交执行 


利用PDM的 9. Work with user-defined options创建用户自定义的快捷选项,可以达到一些简便效果。

加入精华~~~




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=664151
转载请注明作者名及原文出处



收藏本页到: