Need some help with ICETOOL. Is it possible to do a 1:1
copy of a data set and at the same pass through the input
count the number of record which match a certain criterion?
RC=12 shall be set if a certain number is exceeded.
Here is what I've tried:
//TOOLIN DD *
COPY FROM(INP01) TO(OUT01)
COUNT FROM(INP01) USING(DD01) HIGHER(1000)
/*
//DD01CNTL DD *
INCLUDE COND=(5,3,CH,EQ,C'@#H')
/*
ICETOOL calls DFSORT twice, so the input is read twice.
Another way I've found is using a intermediate data set
containing the records to be counted:
//TOOLIN DD *
COPY FROM(INP01) USING(DD01)
COUNT FROM(TEMP) HIGHER(1000)
/*
//DD01CNTL DD *
OUTFIL FNAMES=OUT01,INCLUDE=ALL
OUTFIL FNAMES=TEMP,INCLUDE=(5,3,CH,EQ,C'@#H')
/*
Q1: Is there a better was to do this?
We get some EXCP count in the JESYSMSG data set. I'm a bit
astonished to see that it takes some 560+ EXCPs to read the
INP01 data set in the first case and some 800+ EXCPs in the
second case. The data set contains some 9.3 million records.
Q2: Why is it that OUTFIL needs so many more EXCPs than the
simple COPY?
Also, filling the output data set requires a much different
number of EXCPs in the two cases (using the same data set
instance in both runs): Some 550+ in the first case and
some 1600+ in the second case.
Q3: Again, how can the big difference be explained?
Peter Hunkeler
CREDIT SUISSE
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html