DSE 大型机实用指南系列第一弹 JCL Handbook
欢迎下载与点评DSE101 JCL Handbook (157)
PL/1中的冒泡排序(How to write Bubble Sort with PL/1)
SHELL: PROCEDURE OPTIONS (MAIN);
DECLARE
ARRAY(50) FIXED BIN(15),
(K,N) FIXED BIN(15);
GET LIST(N);
GET EDIT((ARRAY(K) DO K = 1 TO N));
PUT EDIT((ARRAY(K) DO K = 1 TO N));
CALL BUBBLE(ARRAY,N);
END BUBBLE;
BUBBLE: PROCEDURE(ARRAY,N); /* BUBBLE SORT*/
DECLARE (I,J) FIXED BIN(15);
DECLARE S BIT(1); /* SWITCH */
DECLARE Y FIXED BIN(15); /* TEMPO */
DO I = N-1 BY -1 TO 1;
S = ’1′B;
DO J = 1 TO I;
IF X(J)>X(J+1) THEN DO;
S = ’0′B;
Y = X(J);
X(J) = X(J+1);
X(J+1) = Y;
END;
END;
IF S THEN RETURN;
END;
RETURN;
END SRT;
PL/1中的Hello World(How to write Hello World with PL/1)
HELLO: PROCEDURE OPTIONS (MAIN);
/* A PROGRAM TO OUTPUT HELLO WORLD */
FLAG = 0;
LOOP: DO WHILE (FLAG = 0);
PUT SKIP DATA('HELLO WORLD!');
END LOOP;
END HELLO;
JCL Utility 之 IDCAMS删除Data Set(Deleting Cataloged Data Sets)
IDCAMS Utility中,还提供了一个’DELETE’命令,用于删除Cataloged Data Set。在删除Data Set的同时,对Data Set进行uncatalog操作。’DELETE’可以操作的包括:
1. Sequential Data Set 2. Partitioned Data Set 3. Partitioned Data Set中的member
‘DELETE’命令的语法:
| //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A //SYSIN DD * DELETE data-set-name DELETE data-set-name(member) /* |
删除Data Set的例子:
DELETE MIB.TEMP.DATA
删除member的例子:
DELETE MIB.PGM.LOAD(COMPIT)
PURGE:
在使用’DELETE’命令时,还可以使用’PURGE’参数。使用’DELETE’时,默认情况是’NOPURGE’。添加’PURGE’参数后,即不管现在Data Set的状态是什么,都进行删除操作。
使用’PURGE’参数删除的一个例子:
//SYSIN DD *
DELETE data-set-name -
PURGE
ERASE:
在使用’DELETE’命令时,还可以添加’ERASE’参数,即在删除Date Set之后,使用二进制的’0’来覆盖 Data Set所占用的磁盘空间。也就是所谓的完全删除。
使用’ ERASE’参数删除的一个例子:
//SYSIN DD *
DELETE data-set-name -
ERASE
即在删除’ data-set-name’后,’ data-set-name’所占用的DASD空间,会被二进制的’0’所覆盖。
JCL Utility 之 IDCAMS重命名Data Set(Renaming Data Sets)
IDCAMS的另一个常用功能就是Data Set的重命名。Data Set的重命名使用’ALTER’命令来完成。’ALTER’可以重命名操作的Data Set,除了Sequential Data Set外,还可以操作Partitioned Data Set,以及对Partitioned Data Set中member的重命名。
使用’ALTER’命令重命名Data Set的语法:
ALTER old-data-set-name NEWNAME(new-data-set-name)
其中’ old-data-set-name’和’ new-data-set-name’既可以是’ Partitioned Data Set’,也可以是’ Sequential Data Set’。
使用’ALTER’命令重命名member的语法:
ALTER data-set-name(old-member) NEWNAME(data-set-name(new-member))
以下是一个在JCL中使用’ALTER’命令的例子:
| //STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A //SYSIN DD * ALTER MIB.TEMP.DATA NEWNAME(MIB.TEST.DATA) ALTER MIB.PGM.LOAD(COMP) NEWNAME(MIB.PGM.LOAD(COMPIT)) /* |
在以上的JCL中,分别将名为’MIB.TEMP.DATA’的Data Set重命名为了名为’ MIB.TEST.DATA’的Data Set。
在第二个’ALTER’命令中,将名为’ COMP’的member,重命名为了’ COMPIT’。


