JCL学习之二

来源:互联网 发布:数据保密协议书 编辑:程序博客网 时间:2024/05/29 07:11

拿一个JCL代码抄上去,都会出错。。。
//CN00032 JOB TEST1,BAI,NOTIFY=CN0003
//STEP1   EXEC PGM=IEFBR14          
//DD1     DD   DSN=CN0003.TEST.TEXT1,
//    DISP=(,CATLG),RECFM=FB,       
//    SPACE=(TRK,(10,2,5)),LRECL=80,
//BLKSIZE=160,UNIT=SYSDA
SUB了,出错了。。。,看了反馈信息,才知道是因为Keywork参数BLKSIZE行写在了第三列。

在JCL中,空格并不是随便用的,Name和语句,参数的位置都是有范围的,通常,用列号来划分这些。具体

则么规定,我也不太清楚,查查资料去。。(这个必须要搞明白)。
改成:
//CN00032 JOB TEST1,BAI,NOTIFY=CN0003
//STEP1   EXEC PGM=IEFBR14          
//DD1     DD   DSN=CN0003.TEST.TEXT1,
//    DISP=(,CATLG),RECFM=FB,       
//    SPACE=(TRK,(10,2,5)),LRECL=80,
//    BLKSIZE=160,UNIT=SYSDA        
SUB,TSO SDSF ST,终于看到了多少天来最期待的画面。。
看来,参数不可以顶格写了。
pic1

TSO SDSF ST,

pic2     
RC终于等于零了。

 

2、删除数据集
//CN0003D JOB TEST2,BAICHUNLI,NOTIFY=CN0003,           
//        CLASS=A,MSGCLASS=C                           
//STEP1   EXEC PGM=IEFBR14                             
//DD1     DD DSN=CN0003.TEST.TEXT1,DISP=(OLD,DELETE)   
//
SUB,
pic3 
MAXCC=0.(0,4表示正确,8,12表示错误)
pic4                                                
よかった!

信心大增,哈哈。下面,接着再写一个,这次自己写。写一个创建顺序数据集的,代码如下:
//CRESDS JOB 'CREATE PDS',BAICHUNLI,NOTIFY=CN0003,        
//       CLASS=A,MSGCLASS=C                               
//STEP   EXEC PGM=IEFBR14                                 
//DD1    DD DSN=CN0003.TEST.PSD1(NEW1),                   
//       DISP=(NEW,CATLG),                                
//       SPACE=(TRK,(6,2)),                               
//       UNIT=3390,                                       
//       DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)              
//                                                        
SUB,MACC=0,OK!
TSO SDSF ST:

pic5

没错,执行的很顺利,但是很意外。
我想在CN0003.TEST.PDS1下面创建Member NEW1,这样写的代码:
//DD1    DD DSN=CN0003.TEST.PSD1(NEW1),  
没有任何错误,相反,缺成功建立了一个分区文件,看来,(NEW1)被JSE给忽略了。
结果缺创建了一个 CN0003.TEST.PSD1 ,当前的DSLIST如下:

pic6

那么,如何在已存在的PDS下创建Member呢?

先去看看文档吧,看明白了再写。。。