zOs/JCL/XBWWWCO
$#@
$*( generate copy for www tables
attention db2 utility does NOT like
listDefs with thousands of parts ||
$*)
$= dbSys = DVBP
call sqlConnect $dbSys
$<>
$>. fEdit('~tmp.jcl(xbwwwCo)')
$<=[
select t.dbname db, t.tsName ts, s.partitions parts
from sysibm.systables t join sysibm.sysTableSpace s
on t.dbName = s.dbName and t.tsName = s.name
where t.dbname like 'XB%' and t.type not in ('A', 'V')
and (t.name like '%WW%' or t.tsname like '%WW%')
order by t.dbName, t.tsName
$]
$@. sqlRdr()
cTs = 0
cP2 = 0
cPa = 0
cSt = 0
$| $forWith i $@/forI/
if cPa + $PARTS > 100 | cSt = 0 then $@[
if cSt <> 0 then $@[
$@utilStmt
cP2 = cP2 + cPa
$]
cPa = 0
if cSt // 80 = 0 then $@=[
$= jc =- substr(m.ut_alfUc, cSt % 80 + 1, 1)
//A540769$jc JOB (CP00,KE50),'DB2 ADMIN', 00010002
// TIME=1440,REGION=0M,CLASS=M1,SCHENV=DB2, 00020003
// MSGCLASS=T,NOTIFY=&SYSUID 00021002
$]
cSt = cSt + 1
$=cSt =- right(cSt, 4, 0)
$@=[
//************* $DB.$TS, done $-[cTs$] ts, $-[cP2$] parts
//UT$cSt EXEC PGM=DSNUTILB,TIME=1440,
// PARM=(DVBP,'A540769$jc.COPY')
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTEMPL DD DSN=DVBP.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
--OPTIONS(PREVIEW)
LISTDEF LST
$]
$]
$@=[
INCLUDE TABLESPACE $DB.$TS PARTLEVEL -- $PARTS
$]
cTs = cTs + 1
cPa = cPa + $PARTS
$/forI/
$@utilStmt
$proc $@=/utilStmt/
COPY LIST LST COPYDDN(TCOPYS)
FULL YES PARALLEL
SHRLEVEL CHANGE
$/utilStmt/
cP2 = cP2 + cPa
$$ //************* done $-[cTs$] ts, $-[cP2$] parts
say 'cTs='cTs 'parts='cP2
$#out 20151203 16:31:39