2012-12-17 245 views
0

我正在學習大型機編程(TSO,JCL,COBOL ...),但我遇到了一個我似乎無法解決的問題。無法獲得JCL SORT的Outfil工作

我有一個記錄包含3個字段的文件,我想使用'outfil'在輸出文件中只包含某些記錄。

我JCL如下:

000001 //C8112J1 JOB (12345678),C8112,MSGCLASS=H, 
000002 //   MSGLEVEL=(1,1),NOTIFY=C8112 
(...) 
000007 //DSNDEL EXEC PGM=IDCAMS 
000008 //SYSPRINT DD SYSOUT=* 
000009 //SYSIN DD * 
000010 DELETE C8112.DATA.FX.SORT 
000011 SET  MAXCC = 0 
000012 /* 
(...) 
000014 //*     --------- S O R T ----------- 
000020 //MYSORT EXEC PGM=SORT,COND=(0,NE) 
000021 //SORTIN DD DSN=C8112.DATA.FX,DISP=SHR 
000022 //SORTOUT DD DSN=C8112.DATA.FX.SORT, 
000023 //   SPACE=(TRK,(100,100),RLSE), 
000024 //   DISP=(NEW,CATLG,DELETE), 
000025 //   DCB=(LRECL=61,RECFM=FB) 
000026 //SYSIN DD * 
000027 SORT FIELDS=COPY 
000028 //* SORT FIELDS=(1,18,CH,A) OU SORT=COPY 
000029 OUTFIL INCLUDE=(1,18,CH,EQ,C'ANDRADE,LUISA') 
... 
000031 //*  OUTREC=(39,41,1,18,19,38) 
000032 END 
000033 //SYSOUT DD SYSOUT=* 
000034 /* 

和輸出文件:

000001 LUIS,CARLOS  AV.PAULO VI   RMR  
000002 DIAS,PATTY  RUA PEDRO CALMON LX 
000003 ANDRADE,LUISA  AV. DA LIBERDADE LX  (1) 
000004 SILVA,TONI  PALACIO VALMOR  LX 
000005 ANDRADE,LUISA  AV. DA BOAVISTA  POT (2) 
000006 CISCO,MANUEL  QUINTA DA AVELEDA TC 

是不是我應該只得到記錄(1)和(2)?順便說一下,我也嘗試了'outrec'來改變字節組織,但它沒有工作。 任何人都可以給我一個暗示我做錯了什麼?

回答

2

嘗試以下操作:

000020 //MYSORT EXEC PGM=SORT,COND=(0,NE) 
    000021 //SORTIN DD DSN=C8112.DATA.FX,DISP=SHR 
    000022 //SORTOUT DD DSN=C8112.DATA.FX.SORT, 
    000023 //   SPACE=(TRK,(100,100),RLSE), 
    000024 //   DISP=(NEW,CATLG,DELETE), 
    000025 //   DCB=(LRECL=61,RECFM=FB) 
    000026 //SYSIN DD * 
    000027 SORT FIELDS=COPY 
    000029 OUTFIL INCLUDE=(1,18,CH,EQ,C'ANDRADE,LUISA') 
    ... 
    000032 END 
    000031 /* 
    000033 //SYSOUT DD SYSOUT=* 
    000034 //* 

SORT SYSIN不允許 「意見」。你認爲那些線可能是評論真的不是。他們終止SYSIN DD語句。基本上,我只是擺脫了:

//* SORT FIELDS=(1,18,CH,A) OU SORT=COPY 

//*  OUTREC=(39,41,1,18,19,38) 

那麼這一切工作正常。請記住,JCL評論不是SORT評論! DD *之後的內容是數據,而不是JCL源語句,因此JCL類型註釋約定在此不起作用。 DD *通常由以下行開始的行終止:/*

+0

它解決了這個問題,但得到了另一個,當我取消註釋'outrec聲明。我得到了MAXCC = 16。但那是另一個問題。謝謝! – csbl81

+0

@ CSbl81 OUTREC目前無效(語法錯誤)。你想用它做什麼? – NealB

+0

我試圖重新組織字段的順序。 – csbl81

3

您可以在DFSORT中使用單個*作爲註釋分隔符,而不是// * - 正如已經指出的那樣,終止SYSIN就像編碼/ 一樣。 (我注意到你確實有一個/,我注意到了。)