Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

REGIONAL(1) データ・セットの作成

REGIONAL(1) データ・セットは、順次アクセスか直接アクセスの どちらかを使って作成することができます。表 21 は、領域データ・セットを作成するためのステートメントとオプションを示しています。

SEQUENTIAL OUTPUT ファイルを使ってデータ・セットを作成するとき、 ファイルをオープンすると、データ・セット上のすべてのトラックが 消去され、各トラックの先頭に、そのトラック上で使用できるスペースの 大きさを記録する容量レコードが書き込まれることになります。 レコードは領域番号の昇順で提示しなくてはならず、そのシーケンスから省略された領域は ダミー・レコードによって埋められます。 このシーケンスにエラーがあると、あるいは、重複キーを提示すると、KEY 条件が発生します。 ファイルがクローズされるときに、現行エクステントの終わりのスペース にはダミー・レコードが埋め込まれます。

DIRECT OUTPUT ファイルを使ってデータ・セットを作成すると、 そのデータ・セットに割り振られた 1 次エクステント全体が、 ファイルのオープン時にダミー・レコードで埋められます。 レコードをランダム順で提示することができますが、 レコードを重複して提示した場合、既存レコードは上書きされます。

順次作成の場合、データ・セットは最大 15 までのエクステントを 持つことができ、また複数のボリューム上に またがっていてもかまいません。 直接作成の場合、データ・セットは 1 つしかエクステントを持つ ことはできず、したがって 1 つのボリューム上にしか存在することは できません。

REGIONAL(1) データ・セットの作成例が、図 32 に示し てあります。 この例のデータ・セットは、電話番号とその電話番号を割り当てる加入者の氏名リストです。 電話番号は領域データ・セット内の領域番号と対応しており、各領域番号が占め る領域には加入者名のデータが入っています。

図 32. REGIONAL(1) データ・セットの作成
 //EX9    JOB
 //STEP1  EXEC IBMZCBG,PARM.PLI='NOP,MAR(1,72)',PARM.BIND='LIST'
 //PLI.SYSIN  DD  *
  CRR1:   PROC OPTIONS(MAIN);
   /*  CREATING A REGIONAL(1) DATA SET  -  PHONE DIRECTORY     */

    DCL NOS FILE RECORD OUTPUT DIRECT KEYED ENV(REGIONAL(1));
    DCL  SYSIN FILE INPUT RECORD;
    DCL  SYSIN_REC BIT(1) INIT('1'B);
    DCL 1   CARD,
         2   NAME   CHAR(20),
         2   NUMBER CHAR( 2),
         2   CARD_1 CHAR(58);
    DCL IOFIELD CHAR(20);

       ON ENDFILE (SYSIN) SYSIN_REC = '0'B;
       OPEN FILE(NOS);
       READ FILE(SYSIN) INTO(CARD);

       DO WHILE(SYSIN_REC);
          IOFIELD = NAME;
          WRITE FILE(NOS) FROM(IOFIELD) KEYFROM(NUMBER);
          PUT FILE(SYSPRINT) SKIP EDIT (CARD) (A);
          READ FILE(SYSIN) INTO(CARD);
    END;

       CLOSE FILE(NOS);
   END CRR1;
 /*
 //GO.SYSLMOD DD DSN=&&GOSET,DISP=(OLD,DELETE)
 //GO.NOS     DD DSN=MYID.NOS,UNIT=SYSDA,SPACE=(20,100),
 //           DCB=(RECFM=F,BLKSIZE=20,DSORG=DA),DISP=(NEW,KEEP)
 //GO.SYSIN DD *
 ACTION,G.           12
 BAKER,R.            13
 BRAMLEY,O.H.        28
 CHEESNAME,L.        11
 CORY,G.             36
 ELLIOTT,D.          85
 FIGGINS,E.S.        43
 HARVEY,C.D.W.       25
 HASTINGS,G.M.       31
 KENDALL,J.G.        24
 LANCASTER,W.R.      64
 MILES,R.            23
 NEWMAN,M.W.         40
 PITT,W.H.           55
 ROLF,D.E.           14
 SHEERS,C.D.         21
 SURCLIFFE,M.        42
 TAYLOR,G.C.         47
 WILTON,L.W.         44
 WINSTONE,E.M.       37
 /*

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)