JCLB

サンプル

SORTユーティリティのサンプルです。

//***********************************************************
//*      SORT01                                             *
//***********************************************************
//SORT01   EXEC SORT,SPACE=50
//SYSPRINT DD  SYSOUT=*
//SYSDBOUT DD  SYSOUT=*
//SORTOUT  DD  DSN=&&GAT002P,DISP=(,PASS),
//             UNIT=SYSDA,SPACE=(TRK,(1500,450),RLSE),
//             DCB=(RECFM=FB,LRECL=120,BLKSIZE=0)
//SORTIN   DD  DSN=GA.GAT001P,DISP=SHR
//SYSIN    DD  *
  SORT FIELDS=COPY
/*
//


SORT

SORTユーティリティを使用することで、あるKEYをもとに昇順、降順などの 高速な並べ替えや、その他のいろいろな機能をPGMを作成することなく 簡単におこなうことができます。

//SORT01   EXEC SORT,SPACE=50

SORTの指定は上記のような形でおこないます。 特に説明入らないと思いますが、SPACEは通常省略しても 問題ありません。大量のデータを使用する際に、SPACE情報でデータセットに割り振る 容量を越えそうなときなどに指定すると、上記の例だと最初に 50シリンダをデータセットの領域に割り振ってくれます。 こうすることで容量を超えてABENDすることを回避することができます。


//SYSIN    DD  *
  SORT FIELDS=COPY
/*

SYSIN  DD * 〜 /* までがSORTを使用する際にパラメータを与える領域になります。 SORT FIELDSで実際にSORTする際のKEYとなる位置を指定します。 上記の場合は単純にデータセットをまるまるCOPYします。

//SYSIN    DD  *
 SORT FIELDS=(1,4,CH,A,20,7,CH,A)
/*

上記のように指定すると、1バイト目から4バイトを第一のKEY、20から7バイトを第二のKEYとして ソートを実行します。CHは文字型、Aは昇順を表します。

・CH・・・文字
・ZD・・・ゾーン十進数
・PD・・・パック十進数
・BI・・・バイナリデータ

・A・・・昇順(ascending)
・D・・・降順(desending)


INCLUDE/OMIT

//SYSIN    DD  *
 SORT FIELDS=(1,4,CH,A,20,7,CH,A)
 INCLUDE COND=(1,4,CH,EQ,C'9876',OR,7,3,CH,EQ,C'123')

上記のようにINCLUDEやOMITを指定することで、指定する数値や文字列などを含むレコードを抽出・または削ることが できます。上記の例では1桁目から4バイトが文字列の’9876’のものか、または7桁目から3バイトが ’123’という文字列のものを抽出するという意味になります。


SUM FIELDS

//SYSIN    DD  *
 SORT FIELDS=(1,4,CH,A)
 SUM FIELDS=NONE

SUM FIELDSパラメータを指定すると、指定した項目をサマリーすることができます。上記例のようにNONEを指定した場合には、SORT FIELDSで指定したKEY項目が同ーのものが複数存在する場合に、その重複したKEYのレコードをサプレス(1件に絞る)します。実際にサマリー領域を指定すると、その部分を同一KEYでサマリー(足しこみ)して出力します。SUM FIELDSを使用した場合、KEY項目が同一のものが複数ある場合、指定した領域以外の属性は、どのレコードのものが付与されるかはわかりません。ただし、EQUALSを指定すると、入力ファイルの同一KEYで一番最初のレコードの属性を付与することができます。

 SUM FIELDS=(10,3,PD,13,3,PD)

とすると、10バイト目から3バイトと13バイト目から3バイトが加算されます。(同じソートキーのレコードは1件になる)但し、サマリーした結果が桁あふれする場合は、正常に動作しません。


SORT コンカチ

//SORTIN   DD  DSN=GA.GAT001P,DISP=SHR
//         DD  DSN=GA.GAT002P,DISP=SHR

SORTでは複数ファイルをインプットにして、1ファイルにコンカチすることができます。指定は上記のとおりです。 ただし複数ファイルをコンカチさせるときは同じレイアウトのものにしないと、後続のプログラムでABENDしたり しますので気をつけてください。まあいうまでもないかもしれませんが・・・


終わりに

現在の傾向として、HOSTのシステムというのは徐々に廃止されていく傾向にあります。したがって、これからJCLを使用するという機会は、ほとんどなくなるかもしれません。ただ、HOSTにもいい部分はたくさんあります。何よりサーバーよりはるかに安定していますからね。だからこそ完全になくなることはないだろうと僕は思っています。今回ここに乗せたJCLやSORTはごく基礎的なものです。けれど昔と違い、DISKもメモリーも安価になった今は、運用・保守のことも考えて、なるべく「簡単でわかりやすい仕組みを作る」ことが重要視されています。ですからここに書かれていることだけでもそれなりの仕組みを作ることができるはずです。今後も役立つことがあればどんどん追加していくつもりですのでちょこちょこ覗いてみてください。


前へ目次へ


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送