3

MF PS をいくつかのデータセットに分割しようとしています。たとえば、600 個のレコードを含むデータセットがある場合、これをそれぞれ 100 個のレコードを持つ 6 つのファイルに分割したいと考えています。JCLソートを使用してこれを行うことは可能ですか?

4

4 に答える 4

4

以下の JCL は、DFSORT を使用して DD SOTRIN を 3 つの出力 DATASET (OUT1、OUT2、および OUT3) に均等に分割し、6 つにまたがってそれを行い、さらに 3 つの出力 DD ステートメントを追加し、それらを FNAMES ステートメントに追加します。

//SPLIT EXEC PGM=ICEMAN  
//SYSOUT DD SYSOUT=*  
//SORTIN DD DSN=Y897797.INPUT1,DISP=OLD  
//OUT1 DD DSN=Y897797.SPLIT1,DISP=(NEW,CATLG),  
// SPACE=(CYL,(5,5)),UNIT=SYSDA  
//OUT2 DD DSN=Y897797.SPLIT2,DISP=(NEW,CATLG),  
// SPACE=(CYL,(5,5)),UNIT=SYSDA  
//OUT3 DD DSN=Y897797.SPLIT3,DISP=(NEW,CATLG),  
// SPACE=(CYL,(5,5)),UNIT=SYSDA  
//SYSIN DD *  
SORT FIELDS=(21,5,FS,A)  
OUTFIL FNAMES=(OUT1,OUT2,OUT3),SPLIT  
/*  

SORT FIELDS=(21,5,FS,A) は、sortint データセットをソートする方法です。以下は、この fields ステートメントの意味です。

21 ソートするフィールドの先頭
5 ソートするフィールドの長さ
FS Floating Sign (Signed Numeric)
A 昇順

DFSORT Getting Started Manual
Smart DFSORT Tricksには、多くの役立つ例と、データセットからレコードを分割する他のいくつかの方法があります。

于 2011-03-03T12:11:13.493 に答える
2

SPLIT は単なる SPLIT であり、数字と関連付けることはできません。

SPLITBY=n は、指定された各 OUTFIL データセット間で n レコードを「ローテーション」します。SPLIT は SPLITBY=1 と同じです。

SPLIT1R=n は 1 つの「ローテーション」のみを実行します (n レコードが最初の OUTFIL データセットに書き込まれ、次に n レコードが 2 番目の OUTFIL に書き込まれ、最後の OUTFIL データセットが使用されるまで同様に続きます。これには、入力の残りのレコードが含まれます。いくらでも。

OUTFIL FILES=OUT1 は許可されません。OUTFIL FNAMES=(OUT1,OUT2,OUT3),SPLIT にする必要があります。

STATREC/ENDREC または INCLUDE/OMIT を使用する場合、OUTFIL SAVE を使用して、他の OUTFIL データセットのいずれにも書き込まれないレコードのファイルを確立できます。

于 2013-01-22T00:57:43.770 に答える
1
  • DeuianのSORTCARDは、入力ファイルを出力ファイルに均等に分割します。たとえば、 3つの出力ファイルがある場合、入力レコードの合計を3で割ると、各入力ファイルのレコード数になります
  • cosのうち、以下のように、分割が発生することに基づいてカウントを指定できます。入力ファイルを暗黙的に出力ファイルに分割し、それぞれ10000レコードを記録します。たとえば、入力ファイルに40000レコードがあり、それらを3つの出力ファイルに分割すると、出力ファイルに10000+10000/3レコードが取得されます。

OUTFIL FNAMES =(OUT1、OUT2、OUT3)、SPLIT = 10000

  • 一言で言えば、出力レコード数に制約がない場合にそれを利用できます。分割中にそのような基準がある場合は、以下のコードが役立ちます...

SORT FIELDS = COPY
OUTFIL FILES = OUT1、ENDREC = 10000 OUTFIL
FILES = 02、STARTREC = 10001、ENDREC = 20000 OUTFIL FILES = 03、STARTREC = 20001、ENDREC = 30000

  • 最後に、入力ファイルに30000を超えるレコードがあり、それらのレコードをどうするかを指定しなかった場合、SORTはそれらについて気にしません。つまり、最後の出力ファイルには10000レコードしか保持されません。

私があなたを明確にしたことを願っています。さらに質問がある場合は戻ってください。

于 2011-04-30T11:04:01.507 に答える