zOs/war/sql0

}¢--- A540769.WK.SQL($) cre=2009-12-14 mod=2016-09-08-11.08.17 A540769 ---------
select current timestamp, d.*
  from sysibm.sysdummy1 d
  where 2 > 1
  ;
}¢--- A540769.WK.SQL(##SQLCOM) cre=2014-05-06 mod=2014-05-06-13.50.59 A540769 ---
--??? #HCCD (TS) FULL IMAGE COPY > 7 DAYS
select what, count(*)

-- ??? SELECT  'DI,PI,PA,IN' , DBID , PSID , PARTITION , INST
  from
   ( select s.dbName, s.name, p.partition
       , c.inst, s.dbid, s.psid
       , overlay(case
           when c.inst is null
               then raise_Error(70001, 'c.inst null '
                  || s.dbName || '.' || s.name)
           when s.nTables < 1 then 'n noTables ' || s.nTables
           when p.spaceF = -1     then 'n defineNo ' || p.spaceF
           when f.icType is null then 'f f.icType null'
           when f.icType <> 'F'  then 'f f.icType ' || f.icType
           when f.timestamp < current timestamp-7 days then 'f week'
           when r.updateStatsTime is null then 'f noRts'
           when r.copyLastTime is null then 'f r.copyLast null'
           when i.timestamp < r.copyLastTime - 60 seconds
                  then 'f i << r.copyLast'
           when r.nactive * 0.1 <= r.copyupdatedpages
                  then 'f updates'
           when i.icType is null then 'f i.icType null'
           when i.icType not in ('I','F') then 'i i.icType '||i.icType
           when r.copyupdatedpages <> 0 then 'i updates'
           when r.copyChanges <> 0 then 'i changes'
           when r.copyUpdateLRSN is not null then 'i updLRSN'
           when r.copyUpdateTime is not null then 'i updTime'
           else 'n noUpdates'
           end, case when s.clone <> 'Y'      then '      '
                     when s.instance = c.inst then ' base '
                                              else ' clone'
                end, 2, 0, octets) what
    from sysibm.sysTablespace s
      left join  -- clone handling: add instances
          ( select           1 from sysibm.sysDummy1
            union all select 2 from sysibm.sysDummy1
          ) c (inst)
        on s.instance = c.inst or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
      left join sysibm.sysTableSpaceStats r
        on    s.dbName = r.dbName and s.name = r.name
          and s.dbid = r.dbid and s.psid = r.psid
          and p.partition = r.partition and r.instance = c.inst
      left join -- newest incremental or full copy or log discontinuity
         ( select c.*
             , row_number() over(partition by dbName, tsName, dsNum
                                           , instance
                                order by timestamp desc) rn
             from sysibm.sysCopy c
             where c.icType not IN ('A', 'B', 'C', 'D', 'M', 'Q')
         ) i on i.rn = 1
                and s.dbName = i.dbName and s.Name = i.tsName
                and p.partition = i.dsNum
                and i.instance = c.inst
      left join -- newest full copy or log discontinuity
         ( select c.*
             , row_number() over(partition by dbName, tsName, dsNum
                                           , instance
                                order by timestamp desc) rn
             from sysibm.sysCopy c
             where c.icType not IN ('A', 'B', 'C', 'D', 'I', 'M', 'Q')
         ) f on f.rn = 1
                and s.dbName = f.dbName and s.Name = f.tsName
                and p.partition = f.dsNum
                and f.instance = c.inst
    ) q
where NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A00%%') -- BE SAVE
  AND NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A01%%') -- BE SAVE
  AND NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A02%%') -- BE SAVE
  AND NOT (DBNAME ='CD02A1P' AND NAME ='A600A')     -- BE SAVE
  AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB1') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB2') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB3') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB4') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB1') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB2') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB3') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB4') -- MQ LOB
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A00') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A01') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A02') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A03') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A04') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A05') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A06') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A07') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A08') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A09') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XR01A1P' AND NAME ='A200A') -- ERET: ARMIN BREYER
  AND NOT (DBNAME ='XR01A1P' AND NAME ='A201A') -- ERET: ARMIN BREYER
  AND NOT TRANSLATE(DBNAME, '999999999AAAAAA', '012345678FISWXY')
          = 'DA999999'                         -- USER DATENBANKEN
  AND NOT (DBNAME LIKE 'DACME%%')              -- MAIL HEINZ BÜHLER
  AND NOT (DBNAME LIKE 'DB2ALA%%')             -- MAREC  GENERATED
  AND NOT (DBNAME LIKE 'DB2MAPP%%')            -- REORG MAPPING TABLES
  AND NOT (DBNAME LIKE 'DB2PLAN%%')            -- EXPLAIN TABLES
  AND NOT (DBNAME LIKE 'DSNDB%%')              -- DB2 CATALOG
  AND NOT (DBNAME = 'DSNTESQ')                 -- DB2 CATALOG CLONE
  AND NOT (DBNAME LIKE 'DSN8%%')               -- IBM TEST DB
  AND NOT (DBNAME LIKE '%%MAREC%%')            -- MAREC GENERATED
  AND NOT (DBNAME LIKE 'WKDBD%%')              -- DB2 WORK DATABASE
group by what
;
--??? where what like 'f%%'
--???  #HCCD (TS) FULL IMAGE COPY > 7 DAYS
--??? SELECT  'DI,PI,PA,IN' , DBID , PSID , PARTITION , INST
select what, count(*)
  from
   ( select s.dbName, s.name, p.partition
       , c.inst, s.dbid, s.psid
       , case when c.inst is null
                  then raise_Error(70001, 'c.inst null '
                     || s.dbName || '.' || s.name)
              when s.nTables < 1 then 'n noTables ' || s.nTables
              when p.space < 0      then 'n defineNo ' || s.space
              when f.icType is null then 'f f.icType null'
              when f.icType <> 'F'  then 'f f.logDiscontinuity'
              when f.timestamp < current timestamp-7 days then 'f week'
              when i.icType is null then 'f i.icType null'
              when i.icType not in ('I','F') then 'f i.logDiscontinuity'
              when r.updateStatsTime is null then 'f noRts'
              when r.copyLastTime is null then 'f r.copyLast null'
              when i.timestamp < r.copyLastTime - 60 seconds
                     then 'f i << r.copyLast'
              when r.nactive * 0.1 <= r.copyupdatedpages
                     then 'f updates'
              when r.copyupdatedpages > 0 then 'i updates'
              when r.copyChanges > 0 then 'i changes'
              when r.copyUpdateLRSN is not null then 'i openUpdate'
              else 'n noUpdates'
         end what
    from sysibm.sysTablespace s
      left join  -- clone handling: add instances
          ( select           1 from sysibm.sysDummy1
            union all select 2 from sysibm.sysDummy1
          ) c (inst)
        on s.instance = c.inst or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
      left join sysibm.sysTableSpaceStats r
        on    s.dbName = r.dbName and s.name = r.name
          and s.dbid = r.dbid and s.psid = r.psid
          and p.partition = r.partition and r.instance = c.inst
      left join -- newest incremental or full copy or log discontinuity
         ( select c.*
             , row_number() over(partition by dbName, tsName, dsNum
                                           , instance
                                order by timestamp desc) rn
             from sysibm.sysCopy c
             where c.icType not in ('D', 'M', 'Q', 'R', 'T', 'X', 'Z')
         ) i on i.rn = 1
                and s.dbName = i.dbName and s.Name = i.tsName
                and p.partition = i.dsNum
                and i.instance = c.inst
      left join -- newest full copy or log discontinuity
         ( select c.*
             , row_number() over(partition by dbName, tsName, dsNum
                                           , instance
                                order by timestamp desc) rn
             from sysibm.sysCopy c
             where c.icType not in ('D','I','M','Q', 'R', 'T', 'X', 'Z')
         ) f on f.rn = 1
                and s.dbName = f.dbName and s.Name = f.tsName
                and p.partition = f.dsNum
                and f.instance = c.inst
    ) q
where NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A00%%') -- BE SAVE
  AND NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A01%%') -- BE SAVE
  AND NOT (DBNAME ='BE01A1P' AND NAME LIKE 'A02%%') -- BE SAVE
  AND NOT (DBNAME ='CD02A1P' AND NAME ='A600A')     -- BE SAVE
  AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB1') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB2') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB3') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF' AND NAME ='TSBLOB4') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB1') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB2') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB3') -- MQ LOB
  AND NOT (DBNAME ='CSQDBOF$' AND NAME ='TSBLOB4') -- MQ LOB
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A00') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A01') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A02') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A03') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A04') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A05') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A06') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A07') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A08') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XC01A1P' AND NAME ='A200A09') -- EOS: ARMIN BREYER
  AND NOT (DBNAME ='XR01A1P' AND NAME ='A200A') -- ERET: ARMIN BREYER
  AND NOT (DBNAME ='XR01A1P' AND NAME ='A201A') -- ERET: ARMIN BREYER
  AND NOT TRANSLATE(DBNAME, '999999999AAAAAA', '012345678FISWXY')
          = 'DA999999'                         -- USER DATENBANKEN
  AND NOT (DBNAME LIKE 'DACME%%')              -- MAIL HEINZ BÜHLER
  AND NOT (DBNAME LIKE 'DB2ALA%%')             -- MAREC  GENERATED
  AND NOT (DBNAME LIKE 'DB2MAPP%%')            -- REORG MAPPING TABLES
  AND NOT (DBNAME LIKE 'DB2PLAN%%')            -- EXPLAIN TABLES
  AND NOT (DBNAME LIKE 'DSNDB%%')              -- DB2 CATALOG
  AND NOT (DBNAME = 'DSNTESQ')                 -- DB2 CATALOG CLONE
  AND NOT (DBNAME LIKE 'DSN8%%')               -- IBM TEST DB
  AND NOT (DBNAME LIKE '%%MAREC%%')            -- MAREC GENERATED
  AND NOT (DBNAME LIKE 'WKDBD%%')              -- DB2 WORK DATABASE
group by what
;x;
   where what like 'f%%'
}¢--- A540769.WK.SQL(#GTOTTOP) cre=2013-11-07 mod=2013-11-08-11.33.59 A540769 ---
-- total Verbrauch und groesste Verbraucher pro Periode
--      Anpassungen (f '-->>')
--          g1: erste Gruppierung, typischerweise ZeitPeriode
--          g2: zweite Gruppierung, z.B. Plan
--          table, where ....
--      Output: fuer jede Gruppe g1
--                   Total Zeile       (group by g1)
--                   n Detail Zeilen   (group by g1, g2)
--                                     die 5 groessten von diesem g1
----------------------------------------------------------------------
set current path oa1p;
with a as
(                                       --->>> Periode anpassen
  select trunc_timestamp(dateTime, 'hh')
             + ( minute(dateTime) / 10 * 10) minutes g1
                                        --->>> zweite Gruppierung
      , cast(left(groupName, 4) || '.' || planName as char(13)) g2
      , 600 secs                        --->>> Normierung pro Sekunde
      , g.*
                                        --->>> source table
    from pbxx.TACCT_GENERAL_20131107 g
                                        --->>> where
    where subsystem = 'DBP6'
        and dateTime between '2013-11-07-09.00.00'
                         and '2013-11-07-12.00.00'
 -- fetch first 1000 rows only
)
, g as
(
  select g1, g2, min(secs) secs
    , row_number() over(partition by g1
                        order by sum(real(a.ELAPSETCB)) desc) rn
    , min(dateTime) tstFrom, max(dateTime) tstTo
-- begin prb insert srn aa e~/secs
-- tacct_general a, all, expr sum(real(~)/secs)
    , sum(real(a.ELAPSETOD)/secs) ELAPSETOD
    , sum(real(a.ELAPSETCB)/secs) ELAPSETCB
    , sum(real(a.EDB2TOD)/secs) EDB2TOD
    , sum(real(a.EDB2TCB)/secs) EDB2TCB
    , sum(real(a.P2COMMITS)/secs) P2COMMITS
    , sum(real(a.ABORTS)/secs) ABORTS
    , sum(real(a.SELECTS)/secs) SELECTS
    , sum(real(a.INSERTS)/secs) INSERTS
    , sum(real(a.UPDATES)/secs) UPDATES
    , sum(real(a.DELETES)/secs) DELETES
    , sum(real(a.DESCRIBES)/secs) DESCRIBES
    , sum(real(a.PREPARES)/secs) PREPARES
    , sum(real(a.OPENS)/secs) OPENS
    , sum(real(a.FETCHES)/secs) FETCHES
    , sum(real(a.CLOSES)/secs) CLOSES
    , sum(real(a.LOGWRTELAP)/secs) LOGWRTELAP
    , sum(real(a.LOGRECORDS)/secs) LOGRECORDS
    , sum(real(a.LOGBYTES)/secs) LOGBYTES
    , sum(real(a.BPGETPAGE)/secs) BPGETPAGE
    , sum(real(a.BPPGUPDAT)/secs) BPPGUPDAT
    , sum(real(a.BPSYNCRD)/secs) BPSYNCRD
    , sum(real(a.BPPREFET)/secs) BPPREFET
    , sum(real(a.BPSYNCWR)/secs) BPSYNCWR
    , sum(real(a.BPLISTPREF)/secs) BPLISTPREF
    , sum(real(a.BPDPF)/secs) BPDPF
    , sum(real(a.BPNGT)/secs) BPNGT
    , sum(real(a.BPSIO)/secs) BPSIO
    , sum(real(a.OCCURRENCES)/secs) OCCURRENCES
    , sum(real(a.LUWIDCOMIT)/secs) LUWIDCOMIT
    , sum(real(a.TRANSCNT)/secs) TRANSCNT
    , sum(real(a.CLASS2CNT)/secs) CLASS2CNT
    , sum(real(a.CLASS3CNT)/secs) CLASS3CNT
    , sum(real(a.IFCIDSEQ#)/secs) IFCIDSEQ#
    , sum(real(a.ELAPSESRB)/secs) ELAPSESRB
    , sum(real(a.EDB2SRB)/secs) EDB2SRB
    , sum(real(a.EWAITIO)/secs) EWAITIO
    , sum(real(a.EWAITLAL)/secs) EWAITLAL
    , sum(real(a.ENTEXEVNT)/secs) ENTEXEVNT
    , sum(real(a.WAITEVNT)/secs) WAITEVNT
    , sum(real(a.WAITREADIO)/secs) WAITREADIO
    , sum(real(a.WAITWRITEIO)/secs) WAITWRITEIO
    , sum(real(a.WAITSYNCEVENT)/secs) WAITSYNCEVENT
    , sum(real(a.WAITARCLOG)/secs) WAITARCLOG
    , sum(real(a.WEVLOCK)/secs) WEVLOCK
    , sum(real(a.WEVREAD)/secs) WEVREAD
    , sum(real(a.WEVWRITE)/secs) WEVWRITE
    , sum(real(a.WEVSYNCH)/secs) WEVSYNCH
    , sum(real(a.CLASS1CPU_ZIIP)/secs) CLASS1CPU_ZIIP
    , sum(real(a.CLASS2CPU_ZIIP)/secs) CLASS2CPU_ZIIP
    , sum(real(a.TRIGGERCPU_ZIIP)/secs) TRIGGERCPU_ZIIP
    , sum(real(a.CPUZIIPELIGIBLE)/secs) CPUZIIPELIGIBLE
    , sum(real(a.ARCLOG)/secs) ARCLOG
    , sum(real(a.DRAINLKRND)/secs) DRAINLKRND
    , sum(real(a.DRAINLKWDR)/secs) DRAINLKWDR
    , sum(real(a.CLAIMRLWCL)/secs) CLAIMRLWCL
    , sum(real(a.CLAIMRLRNC)/secs) CLAIMRLRNC
    , sum(real(a.ARCHREADWAR)/secs) ARCHREADWAR
    , sum(real(a.ARCHREADNAR)/secs) ARCHREADNAR
    , sum(real(a.OPENCLSELAP)/secs) OPENCLSELAP
    , sum(real(a.SYSLGRNGELAP)/secs) SYSLGRNGELAP
    , sum(real(a.DATASETELAP)/secs) DATASETELAP
    , sum(real(a.OTHERSWELAP)/secs) OTHERSWELAP
    , sum(real(a.OPENCLSEVNT)/secs) OPENCLSEVNT
    , sum(real(a.SYSLGRNGEVNT)/secs) SYSLGRNGEVNT
    , sum(real(a.DATASETEVNT)/secs) DATASETEVNT
    , sum(real(a.OTHERSWEVNT)/secs) OTHERSWEVNT
    , sum(real(a.LATCHCNTWTP)/secs) LATCHCNTWTP
    , sum(real(a.LATCHCNTRNH)/secs) LATCHCNTRNH
    , sum(real(a.GBLMSGELAP)/secs) GBLMSGELAP
    , sum(real(a.GBLMSGEVNT)/secs) GBLMSGEVNT
    , sum(real(a.GBLLOKELAP)/secs) GBLLOKELAP
    , sum(real(a.GBLLOKEVNT)/secs) GBLLOKEVNT
    , sum(real(a.SPTCB)/secs) SPTCB
    , sum(real(a.SPTCBINDB2)/secs) SPTCBINDB2
    , sum(real(a.SPEVNT)/secs) SPEVNT
    , sum(real(a.SPWAITELAP)/secs) SPWAITELAP
    , sum(real(a.SPWAITCNT)/secs) SPWAITCNT
    , sum(real(a.PARATASKS)/secs) PARATASKS
    , sum(real(a.PARALLTASKS)/secs) PARALLTASKS
    , sum(real(a.CPUSUCONV)/secs) CPUSUCONV
    , sum(real(a.LOGWRTEVNT)/secs) LOGWRTEVNT
    , sum(real(a.FUNCTCB)/secs) FUNCTCB
    , sum(real(a.FUNCSQLTCB)/secs) FUNCSQLTCB
    , sum(real(a.FUNCSQLEVNT)/secs) FUNCSQLEVNT
    , sum(real(a.LOBWAITCNT)/secs) LOBWAITCNT
    , sum(real(a.FUNCWAIT)/secs) FUNCWAIT
    , sum(real(a.FUNCELAP)/secs) FUNCELAP
    , sum(real(a.FUNCSQLELAP)/secs) FUNCSQLELAP
    , sum(real(a.TRIGGERTCB)/secs) TRIGGERTCB
    , sum(real(a.TRIGGERELAP)/secs) TRIGGERELAP
    , sum(real(a.PREENCTCB)/secs) PREENCTCB
    , sum(real(a.PREENCSQLTCB)/secs) PREENCSQLTCB
    , sum(real(a.SPROCELAP)/secs) SPROCELAP
    , sum(real(a.SPROCSQLELAP)/secs) SPROCSQLELAP
    , sum(real(a.ENCTRIGGERTCB)/secs) ENCTRIGGERTCB
    , sum(real(a.ENCTRIGGERELAP)/secs) ENCTRIGGERELAP
    , sum(real(a.LOBWAITELAP)/secs) LOBWAITELAP
    , sum(real(a.SPNFCPUZIIP)/secs) SPNFCPUZIIP
    , sum(real(a.SPNFCPU)/secs) SPNFCPU
    , sum(real(a.SPNFELAP)/secs) SPNFELAP
    , sum(real(a.UDFNFCPUZIIP)/secs) UDFNFCPUZIIP
    , sum(real(a.UDFNFCPU)/secs) UDFNFCPU
    , sum(real(a.UDFNFELAP)/secs) UDFNFELAP
    , sum(real(a.SVPOINTREQ)/secs) SVPOINTREQ
    , sum(real(a.SVPOINTREL)/secs) SVPOINTREL
    , sum(real(a.SVPOROLLBK)/secs) SVPOROLLBK
    , sum(real(a.WTELAWTK)/secs) WTELAWTK
    , sum(real(a.WTELAWTM)/secs) WTELAWTM
    , sum(real(a.WTELAWTN)/secs) WTELAWTN
    , sum(real(a.WTELAWTO)/secs) WTELAWTO
    , sum(real(a.WTELAWTQ)/secs) WTELAWTQ
    , sum(real(a.WTEVARNK)/secs) WTEVARNK
    , sum(real(a.WTEVARNM)/secs) WTEVARNM
    , sum(real(a.WTEVARNN)/secs) WTEVARNN
    , sum(real(a.WTEVARNO)/secs) WTEVARNO
    , sum(real(a.WTEVARNQ)/secs) WTEVARNQ
    , sum(real(a.WTELAWFC)/secs) WTELAWFC
    , sum(real(a.WTEVFCCT)/secs) WTEVFCCT
    , sum(real(a.WTELIXLT)/secs) WTELIXLT
    , sum(real(a.WTEVIXLE)/secs) WTEVIXLE
    , sum(real(a.SETCURPREC)/secs) SETCURPREC
    , sum(real(a.DCLGLOBALTT)/secs) DCLGLOBALTT
    , sum(real(a.PARAGLOBALTT)/secs) PARAGLOBALTT
    , sum(real(a.PARAMAXDEG)/secs) PARAMAXDEG
    , sum(real(a.PARAREDGRP)/secs) PARAREDGRP
    , sum(real(a.SQLCALLAB)/secs) SQLCALLAB
    , sum(real(a.SQLCALLTO)/secs) SQLCALLTO
    , sum(real(a.SQLCRGTT)/secs) SQLCRGTT
    , sum(real(a.REOPTIMIZE)/secs) REOPTIMIZE
    , sum(real(a.DIRECTROWIX)/secs) DIRECTROWIX
    , sum(real(a.DIRECTROWTS)/secs) DIRECTROWTS
    , sum(real(a.FUNC)/secs) FUNC
    , sum(real(a.FUNCAB)/secs) FUNCAB
    , sum(real(a.FUNCTO)/secs) FUNCTO
    , sum(real(a.FUNCRJ)/secs) FUNCRJ
    , sum(real(a.DEADLOCKS)/secs) DEADLOCKS
    , sum(real(a.SUSPENDS)/secs) SUSPENDS
    , sum(real(a.TIMEOUTS)/secs) TIMEOUTS
    , sum(real(a.LOCKESHR)/secs) LOCKESHR
    , sum(real(a.LOCKEXCL)/secs) LOCKEXCL
    , sum(real(a.MAXPGLOCKS)/secs) MAXPGLOCKS
    , sum(real(a.SUSPLATCH)/secs) SUSPLATCH
    , sum(real(a.SUSPOTHER)/secs) SUSPOTHER
    , sum(real(a.LOCKREQS)/secs) LOCKREQS
    , sum(real(a.CLAIMREQ)/secs) CLAIMREQ
    , sum(real(a.CLAIMREQUN)/secs) CLAIMREQUN
    , sum(real(a.DRAINREQ)/secs) DRAINREQ
    , sum(real(a.DRAINREQUN)/secs) DRAINREQUN
    , sum(real(a.GBPREADINVBD)/secs) GBPREADINVBD
    , sum(real(a.GBPREADINVBR)/secs) GBPREADINVBR
    , sum(real(a.GBPREADNOPGD)/secs) GBPREADNOPGD
    , sum(real(a.GBPREADNOPGR)/secs) GBPREADNOPGR
    , sum(real(a.GBPREADNOPGN)/secs) GBPREADNOPGN
    , sum(real(a.GBPWRITCHG)/secs) GBPWRITCHG
    , sum(real(a.GBPWRITCLEAN)/secs) GBPWRITCLEAN
    , sum(real(a.GBPUNREGPG)/secs) GBPUNREGPG
    , sum(real(a.GBPEXPLICITXI)/secs) GBPEXPLICITXI
    , sum(real(a.GBPWRITCHK2)/secs) GBPWRITCHK2
    , sum(real(a.GBPASYNPRIM)/secs) GBPASYNPRIM
    , sum(real(a.GBPASYNSEC)/secs) GBPASYNSEC
    , sum(real(a.GBPDEPGETPG)/secs) GBPDEPGETPG
    , sum(real(a.GBPPLKSPMAP)/secs) GBPPLKSPMAP
    , sum(real(a.GBPPLKDATA)/secs) GBPPLKDATA
    , sum(real(a.GBPPLKIDX)/secs) GBPPLKIDX
    , sum(real(a.GBPPLKUNLK)/secs) GBPPLKUNLK
    , sum(real(a.GBPPSUSSPMAP)/secs) GBPPSUSSPMAP
    , sum(real(a.GBPPSUSDATA)/secs) GBPPSUSDATA
    , sum(real(a.GBPPSUSIDX)/secs) GBPPSUSIDX
    , sum(real(a.GBPWARMULTI)/secs) GBPWARMULTI
    , sum(real(a.GBPWAR)/secs) GBPWAR
    , sum(real(a.GLPLOCKLK)/secs) GLPLOCKLK
    , sum(real(a.GLPLOCKCHG)/secs) GLPLOCKCHG
    , sum(real(a.GLPLOCKUNLK)/secs) GLPLOCKUNLK
    , sum(real(a.GLXESSYNCLK)/secs) GLXESSYNCLK
    , sum(real(a.GLXESSYNCCHG)/secs) GLXESSYNCCHG
    , sum(real(a.GLXESSYNCUNLK)/secs) GLXESSYNCUNLK
    , sum(real(a.GLSUSPIRLM)/secs) GLSUSPIRLM
    , sum(real(a.GLSUSPXES)/secs) GLSUSPXES
    , sum(real(a.GLSUSPFALSE)/secs) GLSUSPFALSE
    , sum(real(a.GLINCOMPAT)/secs) GLINCOMPAT
    , sum(real(a.GLNOTFYSENT)/secs) GLNOTFYSENT
    , sum(real(a.GLFALSECONT)/secs) GLFALSECONT
    , sum(real(a.RLFCPULIMITU)/secs) RLFCPULIMITU
    , sum(real(a.RLFCPUUSEDU)/secs) RLFCPUUSEDU
    , sum(real(a.UNLOCKREQS)/secs) UNLOCKREQS
    , sum(real(a.QUERYREQS)/secs) QUERYREQS
    , sum(real(a.CHNGREQS)/secs) CHNGREQS
    , sum(real(a.IFIELAPSED)/secs) IFIELAPSED
    , sum(real(a.IFITCBCPU)/secs) IFITCBCPU
    , sum(real(a.IFIELAPDTC)/secs) IFIELAPDTC
    , sum(real(a.IFIELAPEXT)/secs) IFIELAPEXT
    , sum(real(a.PROGRAMS)/secs) PROGRAMS
-- end   prb insert srn aa e~/secs
    from a
    group by g1, g2
)
, t as
(
   select g1, '  total' g2, min(secs) secs, 0 rn
        , min(tstFrom) tstFrom, max(tstTo) tstTo
-- begin prb insert sn
-- tacct_general g, all, expr sum(~)
    , sum(g.ELAPSETOD) ELAPSETOD
    , sum(g.ELAPSETCB) ELAPSETCB
    , sum(g.EDB2TOD) EDB2TOD
    , sum(g.EDB2TCB) EDB2TCB
    , sum(g.P2COMMITS) P2COMMITS
    , sum(g.ABORTS) ABORTS
    , sum(g.SELECTS) SELECTS
    , sum(g.INSERTS) INSERTS
    , sum(g.UPDATES) UPDATES
    , sum(g.DELETES) DELETES
    , sum(g.DESCRIBES) DESCRIBES
    , sum(g.PREPARES) PREPARES
    , sum(g.OPENS) OPENS
    , sum(g.FETCHES) FETCHES
    , sum(g.CLOSES) CLOSES
    , sum(g.LOGWRTELAP) LOGWRTELAP
    , sum(g.LOGRECORDS) LOGRECORDS
    , sum(g.LOGBYTES) LOGBYTES
    , sum(g.BPGETPAGE) BPGETPAGE
    , sum(g.BPPGUPDAT) BPPGUPDAT
    , sum(g.BPSYNCRD) BPSYNCRD
    , sum(g.BPPREFET) BPPREFET
    , sum(g.BPSYNCWR) BPSYNCWR
    , sum(g.BPLISTPREF) BPLISTPREF
    , sum(g.BPDPF) BPDPF
    , sum(g.BPNGT) BPNGT
    , sum(g.BPSIO) BPSIO
    , sum(g.OCCURRENCES) OCCURRENCES
    , sum(g.LUWIDCOMIT) LUWIDCOMIT
    , sum(g.TRANSCNT) TRANSCNT
    , sum(g.CLASS2CNT) CLASS2CNT
    , sum(g.CLASS3CNT) CLASS3CNT
    , sum(g.IFCIDSEQ#) IFCIDSEQ#
    , sum(g.ELAPSESRB) ELAPSESRB
    , sum(g.EDB2SRB) EDB2SRB
    , sum(g.EWAITIO) EWAITIO
    , sum(g.EWAITLAL) EWAITLAL
    , sum(g.ENTEXEVNT) ENTEXEVNT
    , sum(g.WAITEVNT) WAITEVNT
    , sum(g.WAITREADIO) WAITREADIO
    , sum(g.WAITWRITEIO) WAITWRITEIO
    , sum(g.WAITSYNCEVENT) WAITSYNCEVENT
    , sum(g.WAITARCLOG) WAITARCLOG
    , sum(g.WEVLOCK) WEVLOCK
    , sum(g.WEVREAD) WEVREAD
    , sum(g.WEVWRITE) WEVWRITE
    , sum(g.WEVSYNCH) WEVSYNCH
    , sum(g.CLASS1CPU_ZIIP) CLASS1CPU_ZIIP
    , sum(g.CLASS2CPU_ZIIP) CLASS2CPU_ZIIP
    , sum(g.TRIGGERCPU_ZIIP) TRIGGERCPU_ZIIP
    , sum(g.CPUZIIPELIGIBLE) CPUZIIPELIGIBLE
    , sum(g.ARCLOG) ARCLOG
    , sum(g.DRAINLKRND) DRAINLKRND
    , sum(g.DRAINLKWDR) DRAINLKWDR
    , sum(g.CLAIMRLWCL) CLAIMRLWCL
    , sum(g.CLAIMRLRNC) CLAIMRLRNC
    , sum(g.ARCHREADWAR) ARCHREADWAR
    , sum(g.ARCHREADNAR) ARCHREADNAR
    , sum(g.OPENCLSELAP) OPENCLSELAP
    , sum(g.SYSLGRNGELAP) SYSLGRNGELAP
    , sum(g.DATASETELAP) DATASETELAP
    , sum(g.OTHERSWELAP) OTHERSWELAP
    , sum(g.OPENCLSEVNT) OPENCLSEVNT
    , sum(g.SYSLGRNGEVNT) SYSLGRNGEVNT
    , sum(g.DATASETEVNT) DATASETEVNT
    , sum(g.OTHERSWEVNT) OTHERSWEVNT
    , sum(g.LATCHCNTWTP) LATCHCNTWTP
    , sum(g.LATCHCNTRNH) LATCHCNTRNH
    , sum(g.GBLMSGELAP) GBLMSGELAP
    , sum(g.GBLMSGEVNT) GBLMSGEVNT
    , sum(g.GBLLOKELAP) GBLLOKELAP
    , sum(g.GBLLOKEVNT) GBLLOKEVNT
    , sum(g.SPTCB) SPTCB
    , sum(g.SPTCBINDB2) SPTCBINDB2
    , sum(g.SPEVNT) SPEVNT
    , sum(g.SPWAITELAP) SPWAITELAP
    , sum(g.SPWAITCNT) SPWAITCNT
    , sum(g.PARATASKS) PARATASKS
    , sum(g.PARALLTASKS) PARALLTASKS
    , sum(g.CPUSUCONV) CPUSUCONV
    , sum(g.LOGWRTEVNT) LOGWRTEVNT
    , sum(g.FUNCTCB) FUNCTCB
    , sum(g.FUNCSQLTCB) FUNCSQLTCB
    , sum(g.FUNCSQLEVNT) FUNCSQLEVNT
    , sum(g.LOBWAITCNT) LOBWAITCNT
    , sum(g.FUNCWAIT) FUNCWAIT
    , sum(g.FUNCELAP) FUNCELAP
    , sum(g.FUNCSQLELAP) FUNCSQLELAP
    , sum(g.TRIGGERTCB) TRIGGERTCB
    , sum(g.TRIGGERELAP) TRIGGERELAP
    , sum(g.PREENCTCB) PREENCTCB
    , sum(g.PREENCSQLTCB) PREENCSQLTCB
    , sum(g.SPROCELAP) SPROCELAP
    , sum(g.SPROCSQLELAP) SPROCSQLELAP
    , sum(g.ENCTRIGGERTCB) ENCTRIGGERTCB
    , sum(g.ENCTRIGGERELAP) ENCTRIGGERELAP
    , sum(g.LOBWAITELAP) LOBWAITELAP
    , sum(g.SPNFCPUZIIP) SPNFCPUZIIP
    , sum(g.SPNFCPU) SPNFCPU
    , sum(g.SPNFELAP) SPNFELAP
    , sum(g.UDFNFCPUZIIP) UDFNFCPUZIIP
    , sum(g.UDFNFCPU) UDFNFCPU
    , sum(g.UDFNFELAP) UDFNFELAP
    , sum(g.SVPOINTREQ) SVPOINTREQ
    , sum(g.SVPOINTREL) SVPOINTREL
    , sum(g.SVPOROLLBK) SVPOROLLBK
    , sum(g.WTELAWTK) WTELAWTK
    , sum(g.WTELAWTM) WTELAWTM
    , sum(g.WTELAWTN) WTELAWTN
    , sum(g.WTELAWTO) WTELAWTO
    , sum(g.WTELAWTQ) WTELAWTQ
    , sum(g.WTEVARNK) WTEVARNK
    , sum(g.WTEVARNM) WTEVARNM
    , sum(g.WTEVARNN) WTEVARNN
    , sum(g.WTEVARNO) WTEVARNO
    , sum(g.WTEVARNQ) WTEVARNQ
    , sum(g.WTELAWFC) WTELAWFC
    , sum(g.WTEVFCCT) WTEVFCCT
    , sum(g.WTELIXLT) WTELIXLT
    , sum(g.WTEVIXLE) WTEVIXLE
    , sum(g.SETCURPREC) SETCURPREC
    , sum(g.DCLGLOBALTT) DCLGLOBALTT
    , sum(g.PARAGLOBALTT) PARAGLOBALTT
    , sum(g.PARAMAXDEG) PARAMAXDEG
    , sum(g.PARAREDGRP) PARAREDGRP
    , sum(g.SQLCALLAB) SQLCALLAB
    , sum(g.SQLCALLTO) SQLCALLTO
    , sum(g.SQLCRGTT) SQLCRGTT
    , sum(g.REOPTIMIZE) REOPTIMIZE
    , sum(g.DIRECTROWIX) DIRECTROWIX
    , sum(g.DIRECTROWTS) DIRECTROWTS
    , sum(g.FUNC) FUNC
    , sum(g.FUNCAB) FUNCAB
    , sum(g.FUNCTO) FUNCTO
    , sum(g.FUNCRJ) FUNCRJ
    , sum(g.DEADLOCKS) DEADLOCKS
    , sum(g.SUSPENDS) SUSPENDS
    , sum(g.TIMEOUTS) TIMEOUTS
    , sum(g.LOCKESHR) LOCKESHR
    , sum(g.LOCKEXCL) LOCKEXCL
    , sum(g.MAXPGLOCKS) MAXPGLOCKS
    , sum(g.SUSPLATCH) SUSPLATCH
    , sum(g.SUSPOTHER) SUSPOTHER
    , sum(g.LOCKREQS) LOCKREQS
    , sum(g.CLAIMREQ) CLAIMREQ
    , sum(g.CLAIMREQUN) CLAIMREQUN
    , sum(g.DRAINREQ) DRAINREQ
    , sum(g.DRAINREQUN) DRAINREQUN
    , sum(g.GBPREADINVBD) GBPREADINVBD
    , sum(g.GBPREADINVBR) GBPREADINVBR
    , sum(g.GBPREADNOPGD) GBPREADNOPGD
    , sum(g.GBPREADNOPGR) GBPREADNOPGR
    , sum(g.GBPREADNOPGN) GBPREADNOPGN
    , sum(g.GBPWRITCHG) GBPWRITCHG
    , sum(g.GBPWRITCLEAN) GBPWRITCLEAN
    , sum(g.GBPUNREGPG) GBPUNREGPG
    , sum(g.GBPEXPLICITXI) GBPEXPLICITXI
    , sum(g.GBPWRITCHK2) GBPWRITCHK2
    , sum(g.GBPASYNPRIM) GBPASYNPRIM
    , sum(g.GBPASYNSEC) GBPASYNSEC
    , sum(g.GBPDEPGETPG) GBPDEPGETPG
    , sum(g.GBPPLKSPMAP) GBPPLKSPMAP
    , sum(g.GBPPLKDATA) GBPPLKDATA
    , sum(g.GBPPLKIDX) GBPPLKIDX
    , sum(g.GBPPLKUNLK) GBPPLKUNLK
    , sum(g.GBPPSUSSPMAP) GBPPSUSSPMAP
    , sum(g.GBPPSUSDATA) GBPPSUSDATA
    , sum(g.GBPPSUSIDX) GBPPSUSIDX
    , sum(g.GBPWARMULTI) GBPWARMULTI
    , sum(g.GBPWAR) GBPWAR
    , sum(g.GLPLOCKLK) GLPLOCKLK
    , sum(g.GLPLOCKCHG) GLPLOCKCHG
    , sum(g.GLPLOCKUNLK) GLPLOCKUNLK
    , sum(g.GLXESSYNCLK) GLXESSYNCLK
    , sum(g.GLXESSYNCCHG) GLXESSYNCCHG
    , sum(g.GLXESSYNCUNLK) GLXESSYNCUNLK
    , sum(g.GLSUSPIRLM) GLSUSPIRLM
    , sum(g.GLSUSPXES) GLSUSPXES
    , sum(g.GLSUSPFALSE) GLSUSPFALSE
    , sum(g.GLINCOMPAT) GLINCOMPAT
    , sum(g.GLNOTFYSENT) GLNOTFYSENT
    , sum(g.GLFALSECONT) GLFALSECONT
    , sum(g.RLFCPULIMITU) RLFCPULIMITU
    , sum(g.RLFCPUUSEDU) RLFCPUUSEDU
    , sum(g.UNLOCKREQS) UNLOCKREQS
    , sum(g.QUERYREQS) QUERYREQS
    , sum(g.CHNGREQS) CHNGREQS
    , sum(g.IFIELAPSED) IFIELAPSED
    , sum(g.IFITCBCPU) IFITCBCPU
    , sum(g.IFIELAPDTC) IFIELAPDTC
    , sum(g.IFIELAPEXT) IFIELAPEXT
    , sum(g.PROGRAMS) PROGRAMS
  from g
  group by g1
)
, u as
(
   select * from g
                                        --->>> Anzahl Detail Zeilen
     where rn <= 5
   union all select * from t
)
                                        --->>> Formattierung g1
select substr(char(g1), 1, 19) "tstGroup"
    , smallint(rn) rn
                                        --->>> Formattierung g2
    , g2 "dbSy.plan"
-- begin prb insert en au
-- tacct_general u, fsoFmtE7, all, expr ~
    , fosFmtE7(u.ELAPSETOD) "totElap"
    , fosFmtE7(u.ELAPSETCB) "totCPU"
    , fosFmtE7(u.EDB2TOD) "db2Elap"
    , fosFmtE7(u.EDB2TCB) "db2CPU"
    , fosGeWait(u.eWaitIO, u.waitReadIO, u.waitWriteIO, u.openClsElap
      , u.datasetElap, u.eWaitLAL, u.sysLgRngElap, u.logWrtElap
      , u.waitArcLog, u.archReadWar, u.drainLkWDR, u.claimRlWcl
      , u.gblLokElap, u.wtelawtk, u.wtelawtm, u.wtelawtn, u.wtelawto
      , u.wtelawtq, u.gblMsgElap, u.waitSyncEvent, u.otherSWElap
      , u.spWaitElap, u.funcWait
      , u.lobWaitElap) "wait    % 1.   % 2.   % 3."
    , fosFmtE7((u.p2Commits + u.aborts + u.selects + u.inserts
      + u.updates + u.deletes + u.describes + u.prepares + u.opens
      + u.fetches + u.closes + u.setcurprec + u.dclglobaltt
      + u.sqlcrgtt)) "sqls"
    , fosFmtE7(u.P2COMMITS) "commit"
    , fosFmtE7(u.ABORTS) "abort"
    , fosFmtE7(u.SELECTS) SELECTS
    , fosFmtE7(u.INSERTS) INSERTS
    , fosFmtE7(u.UPDATES) UPDATES
    , fosFmtE7(u.DELETES) DELETES
    , fosFmtE7(u.DESCRIBES) DESCRIBES
    , fosFmtE7(u.PREPARES) PREPARES
    , fosFmtE7(u.OPENS) OPENS
    , fosFmtE7(u.FETCHES) FETCHES
    , fosFmtE7(u.CLOSES) CLOSES
    , fosFmtE7(u.LOGWRTELAP) "logEla"
    , fosFmtE7(u.LOGRECORDS) "logRecs"
    , fosFmtE7(u.LOGBYTES) "logByte"
    , fosFmtE7(u.BPGETPAGE) BPGETPAGE
    , fosFmtE7(u.BPPGUPDAT) BPPGUPDAT
    , fosFmtE7(u.BPSYNCRD) BPSYNCRD
    , fosFmtE7(u.BPPREFET) BPPREFET
    , fosFmtE7(u.BPSYNCWR) BPSYNCWR
    , fosFmtE7(u.BPLISTPREF) BPLISTPREF
    , fosFmtE7(u.BPDPF) BPDPF
    , fosFmtE7(u.BPNGT) BPNGT
    , fosFmtE7(u.BPSIO) BPSIO
    , REAL((u.eWaitIO + u.waitReadIO + u.waitWriteIO + u.openClsElap
      + u.datasetElap + u.eWaitLAL + u.sysLgRngElap + u.logWrtElap
      + u.waitArcLog + u.archReadWar + u.drainLkWDR + u.claimRlWcl
      + u.gblLokElap + u.wtelawtk + u.wtelawtm + u.wtelawtn
      + u.wtelawto + u.wtelawtq + u.gblMsgElap + u.waitSyncEvent
      + u.otherSWElap + u.spWaitElap + u.funcWait
      + u.lobWaitElap)) "wait"
    , fosFmtE7(u.OCCURRENCES) OCCURRENCES
    , fosFmtE7(u.LUWIDCOMIT) LUWIDCOMIT
    , fosFmtE7(u.TRANSCNT) TRANSCNT
    , fosFmtE7(u.CLASS2CNT) CLASS2CNT
    , fosFmtE7(u.CLASS3CNT) CLASS3CNT
    , fosFmtE7(u.IFCIDSEQ#) IFCIDSEQ#
    , fosFmtE7(u.ELAPSESRB) ELAPSESRB
    , fosFmtE7(u.EDB2SRB) EDB2SRB
    , fosFmtE7(u.EWAITIO) "synIOWait"
    , fosFmtE7(u.EWAITLAL) "locLoLaWai"
    , fosFmtE7(u.ENTEXEVNT) ENTEXEVNT
    , fosFmtE7(u.WAITEVNT) WAITEVNT
    , fosFmtE7(u.WAITREADIO) "othReaWait"
    , fosFmtE7(u.WAITWRITEIO) "othWriWait"
    , fosFmtE7(u.WAITSYNCEVENT) "uniSwiWait"
    , fosFmtE7(u.WAITARCLOG) "arcLogWait"
    , fosFmtE7(u.WEVLOCK) WEVLOCK
    , fosFmtE7(u.WEVREAD) WEVREAD
    , fosFmtE7(u.WEVWRITE) WEVWRITE
    , fosFmtE7(u.WEVSYNCH) WEVSYNCH
    , fosFmtE7(u.CLASS1CPU_ZIIP) CLASS1CPU_ZIIP
    , fosFmtE7(u.CLASS2CPU_ZIIP) CLASS2CPU_ZIIP
    , fosFmtE7(u.TRIGGERCPU_ZIIP) TRIGGERCPU_ZIIP
    , fosFmtE7(u.CPUZIIPELIGIBLE) CPUZIIPELIGIBLE
    , fosFmtE7(u.ARCLOG) ARCLOG
    , fosFmtE7(u.DRAINLKRND) DRAINLKRND
    , fosFmtE7(u.DRAINLKWDR) "drainWait"
    , fosFmtE7(u.CLAIMRLWCL) "claimWait"
    , fosFmtE7(u.CLAIMRLRNC) CLAIMRLRNC
    , fosFmtE7(u.ARCHREADWAR) "arcReaWait"
    , fosFmtE7(u.ARCHREADNAR) ARCHREADNAR
    , fosFmtE7(u.OPENCLSELAP) "opeCloWait"
    , fosFmtE7(u.SYSLGRNGELAP) "sysLgRaWai"
    , fosFmtE7(u.DATASETELAP) "datSetWait"
    , fosFmtE7(u.OTHERSWELAP) "othSwiEla"
    , fosFmtE7(u.OPENCLSEVNT) OPENCLSEVNT
    , fosFmtE7(u.SYSLGRNGEVNT) SYSLGRNGEVNT
    , fosFmtE7(u.DATASETEVNT) DATASETEVNT
    , fosFmtE7(u.OTHERSWEVNT) OTHERSWEVNT
    , fosFmtE7(u.LATCHCNTWTP) LATCHCNTWTP
    , fosFmtE7(u.LATCHCNTRNH) LATCHCNTRNH
    , fosFmtE7(u.GBLMSGELAP) "gblMsgWait"
    , fosFmtE7(u.GBLMSGEVNT) GBLMSGEVNT
    , fosFmtE7(u.GBLLOKELAP) "gblConWait"
    , fosFmtE7(u.GBLLOKEVNT) GBLLOKEVNT
    , fosFmtE7(u.SPTCB) "stoProCpu"
    , fosFmtE7(u.SPTCBINDB2) "stoProDb2"
    , fosFmtE7(u.SPEVNT) SPEVNT
    , fosFmtE7(u.SPWAITELAP) "stoProWait"
    , fosFmtE7(u.SPWAITCNT) SPWAITCNT
    , fosFmtE7(u.PARATASKS) PARATASKS
    , fosFmtE7(u.PARALLTASKS) PARALLTASKS
    , fosFmtE7(u.CPUSUCONV) CPUSUCONV
    , fosFmtE7(u.LOGWRTEVNT) LOGWRTEVNT
    , fosFmtE7(u.FUNCTCB) "funcCpu"
    , fosFmtE7(u.FUNCSQLTCB) "funcD2Cpu"
    , fosFmtE7(u.FUNCSQLEVNT) FUNCSQLEVNT
    , fosFmtE7(u.LOBWAITCNT) LOBWAITCNT
    , fosFmtE7(u.FUNCWAIT) "funcWait"
    , fosFmtE7(u.FUNCELAP) "funcEla"
    , fosFmtE7(u.FUNCSQLELAP) "funcD2Ela"
    , fosFmtE7(u.TRIGGERTCB) "triD2Cpu"
    , fosFmtE7(u.TRIGGERELAP) "triD2Ela"
    , fosFmtE7(u.PREENCTCB) "???"
    , fosFmtE7(u.PREENCSQLTCB) "???"
    , fosFmtE7(u.SPROCELAP) "stoProToEl"
    , fosFmtE7(u.SPROCSQLELAP) "stoProD2El"
    , fosFmtE7(u.ENCTRIGGERTCB) "triNesToCp"
    , fosFmtE7(u.ENCTRIGGERELAP) "triNesToEl"
    , fosFmtE7(u.LOBWAITELAP) LOBWAITELAP
    , fosFmtE7(u.SPNFCPUZIIP) "???"
    , fosFmtE7(u.SPNFCPU) "???"
    , fosFmtE7(u.SPNFELAP) "???"
    , fosFmtE7(u.UDFNFCPUZIIP) UDFNFCPUZIIP
    , fosFmtE7(u.UDFNFCPU) UDFNFCPU
    , fosFmtE7(u.UDFNFELAP) UDFNFELAP
    , fosFmtE7(u.SVPOINTREQ) SVPOINTREQ
    , fosFmtE7(u.SVPOINTREL) SVPOINTREL
    , fosFmtE7(u.SVPOROLLBK) SVPOROLLBK
    , fosFmtE7(u.WTELAWTK) "gblChiWait"
    , fosFmtE7(u.WTELAWTM) "gblOtLWait"
    , fosFmtE7(u.WTELAWTN) "gblPrPWait"
    , fosFmtE7(u.WTELAWTO) "gblPgPWait"
    , fosFmtE7(u.WTELAWTQ) "gblOtPWait"
    , fosFmtE7(u.WTEVARNK) WTEVARNK
    , fosFmtE7(u.WTEVARNM) WTEVARNM
    , fosFmtE7(u.WTEVARNN) WTEVARNN
    , fosFmtE7(u.WTEVARNO) WTEVARNO
    , fosFmtE7(u.WTEVARNQ) WTEVARNQ
    , fosFmtE7(u.WTELAWFC) "???"
    , fosFmtE7(u.WTEVFCCT) WTEVFCCT
    , fosFmtE7(u.WTELIXLT) WTELIXLT
    , fosFmtE7(u.WTEVIXLE) WTEVIXLE
    , fosFmtE7(u.SETCURPREC) SETCURPREC
    , fosFmtE7(u.DCLGLOBALTT) DCLGLOBALTT
    , fosFmtE7(u.PARAGLOBALTT) PARAGLOBALTT
    , fosFmtE7(u.PARAMAXDEG) PARAMAXDEG
    , fosFmtE7(u.PARAREDGRP) PARAREDGRP
    , fosFmtE7(u.SQLCALLAB) SQLCALLAB
    , fosFmtE7(u.SQLCALLTO) SQLCALLTO
    , fosFmtE7(u.SQLCRGTT) SQLCRGTT
    , fosFmtE7(u.REOPTIMIZE) REOPTIMIZE
    , fosFmtE7(u.DIRECTROWIX) DIRECTROWIX
    , fosFmtE7(u.DIRECTROWTS) DIRECTROWTS
    , fosFmtE7(u.FUNC) FUNC
    , fosFmtE7(u.FUNCAB) FUNCAB
    , fosFmtE7(u.FUNCTO) FUNCTO
    , fosFmtE7(u.FUNCRJ) FUNCRJ
    , fosFmtE7(u.DEADLOCKS) DEADLOCKS
    , fosFmtE7(u.SUSPENDS) SUSPENDS
    , fosFmtE7(u.TIMEOUTS) TIMEOUTS
    , fosFmtE7(u.LOCKESHR) LOCKESHR
    , fosFmtE7(u.LOCKEXCL) LOCKEXCL
    , fosFmtE7(u.MAXPGLOCKS) MAXPGLOCKS
    , fosFmtE7(u.SUSPLATCH) SUSPLATCH
    , fosFmtE7(u.SUSPOTHER) SUSPOTHER
    , fosFmtE7(u.LOCKREQS) LOCKREQS
    , fosFmtE7(u.CLAIMREQ) CLAIMREQ
    , fosFmtE7(u.CLAIMREQUN) CLAIMREQUN
    , fosFmtE7(u.DRAINREQ) DRAINREQ
    , fosFmtE7(u.DRAINREQUN) DRAINREQUN
    , fosFmtE7(u.GBPREADINVBD) GBPREADINVBD
    , fosFmtE7(u.GBPREADINVBR) GBPREADINVBR
    , fosFmtE7(u.GBPREADNOPGD) GBPREADNOPGD
    , fosFmtE7(u.GBPREADNOPGR) GBPREADNOPGR
    , fosFmtE7(u.GBPREADNOPGN) GBPREADNOPGN
    , fosFmtE7(u.GBPWRITCHG) GBPWRITCHG
    , fosFmtE7(u.GBPWRITCLEAN) GBPWRITCLEAN
    , fosFmtE7(u.GBPUNREGPG) GBPUNREGPG
    , fosFmtE7(u.GBPEXPLICITXI) GBPEXPLICITXI
    , fosFmtE7(u.GBPWRITCHK2) GBPWRITCHK2
    , fosFmtE7(u.GBPASYNPRIM) GBPASYNPRIM
    , fosFmtE7(u.GBPASYNSEC) GBPASYNSEC
    , fosFmtE7(u.GBPDEPGETPG) GBPDEPGETPG
    , fosFmtE7(u.GBPPLKSPMAP) GBPPLKSPMAP
    , fosFmtE7(u.GBPPLKDATA) GBPPLKDATA
    , fosFmtE7(u.GBPPLKIDX) GBPPLKIDX
    , fosFmtE7(u.GBPPLKUNLK) GBPPLKUNLK
    , fosFmtE7(u.GBPPSUSSPMAP) GBPPSUSSPMAP
    , fosFmtE7(u.GBPPSUSDATA) GBPPSUSDATA
    , fosFmtE7(u.GBPPSUSIDX) GBPPSUSIDX
    , fosFmtE7(u.GBPWARMULTI) GBPWARMULTI
    , fosFmtE7(u.GBPWAR) GBPWAR
    , fosFmtE7(u.GLPLOCKLK) GLPLOCKLK
    , fosFmtE7(u.GLPLOCKCHG) GLPLOCKCHG
    , fosFmtE7(u.GLPLOCKUNLK) GLPLOCKUNLK
    , fosFmtE7(u.GLXESSYNCLK) GLXESSYNCLK
    , fosFmtE7(u.GLXESSYNCCHG) GLXESSYNCCHG
    , fosFmtE7(u.GLXESSYNCUNLK) GLXESSYNCUNLK
    , fosFmtE7(u.GLSUSPIRLM) GLSUSPIRLM
    , fosFmtE7(u.GLSUSPXES) GLSUSPXES
    , fosFmtE7(u.GLSUSPFALSE) GLSUSPFALSE
    , fosFmtE7(u.GLINCOMPAT) GLINCOMPAT
    , fosFmtE7(u.GLNOTFYSENT) GLNOTFYSENT
    , fosFmtE7(u.GLFALSECONT) GLFALSECONT
    , fosFmtE7(u.RLFCPULIMITU) RLFCPULIMITU
    , fosFmtE7(u.RLFCPUUSEDU) RLFCPUUSEDU
    , fosFmtE7(u.UNLOCKREQS) UNLOCKREQS
    , fosFmtE7(u.QUERYREQS) QUERYREQS
    , fosFmtE7(u.CHNGREQS) CHNGREQS
    , fosFmtE7(u.IFIELAPSED) IFIELAPSED
    , fosFmtE7(u.IFITCBCPU) IFITCBCPU
    , fosFmtE7(u.IFIELAPDTC) IFIELAPDTC
    , fosFmtE7(u.IFIELAPEXT) IFIELAPEXT
    , fosFmtE7(u.PROGRAMS) PROGRAMS
-- end   prb insert en au
    , secs
    , tstFrom
    , tstTo
 from u
 order by g1, rn
 with ur
}¢--- A540769.WK.SQL(ABUBDDL) cre=2013-11-20 mod=2014-06-02-08.53.17 A540769 ---
set current sqlid = 'S100447';
xrop  tablespace qz01a1p.a045a ;
xrop  tablespace qz01a1p.a046a ;
commit;
CREATE TABLESPACE a045a
  IN qz01a1p
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE a046a
  IN qz01a1p
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE oa1p.tQZ045AbUbEvent
  ( ab         CHAR(8) NOT NULL
  , rz         CHAR(3) NOT NULL
  , dbSy       char(4) NOT NULL
  , tst        timestamp(0) not null
  , event      char(4) NOT NULL
  , orTst      timestamp(0) not null  default '0001-01-01-00.00.00'
  , link       char(60) NOT NULL default
  , cont       varchar(500) not null default
  )
 in qz01a1p.a045a
;
CREATE UNIQUE INDEX oa1p.iQZ045A1
  ON oa1p.tQZ045AbUbEvent
   (ab, rz, dbSy, tst)
   include (event)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE TABLE oa1p.tQZ046AbUbRule
  ( rule       char(8) not null
  , type       char(8) not null
  , subType    char(8) not null
  , va1        char(16) not null
  , va2        char(16) not null
  , va3        char(60) not null with default
  , va4        char(200) not null with default
  )
 in qz01a1p.a046a
;
CREATE        INDEX oa1p.iQZ046A1
  ON oa1p.tQZ046AbUbRule
   (rule, type, subType, va1, va2)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
set current sqlid = 'S100447';
drop  view oa1p.vQZ045AbUbLast ;
drop  view oa1p.vQZ046AbUbCal ;
create view oa1p.vQZ045AbUbLast as
with r as
(
  select rule ab
      , type, subType
      , char(va1, 3) rz
      , char(va2, 4) dbSy
      , va3, va4
    from oa1p.tQZ046AbUbRule
    where type in ('ab', 'abub', 'conn')
)
, s as
(
   select r.*
      , (select max(e.tst)
           from oa1p.tQZ045AbUbEvent e
           where r.ab = e.ab and r.rz = e.rz and r.dbSy = e.dbSy
        ) evTst
     from r
)
, l as
(
  select s.*, e.event, e.orTst, e.link, e.cont
    from s
      left join oa1p.tQZ045AbUbEvent e
        on s.ab = e.ab and s.rz = e.rz and s.dbSy = e.dbSy
          and s.evTst = e.tst
)
select f.*, c.evTst conTst, c.event conEv, c.subType conPri
       , ( select evTst from s where s.ab = 'abub') abubTst
    from l f
      left join l c
        on c.ab = 'connect' and c.type = 'conn'
            and c.rz = f.rz
;
create view oa1p.vQZ046AbUbCal as
with d (dt, x) as
(
   select current date, 0 from sysibm.sysDummy1
   union all select dt - 1 days, x+1 from d where x < 8
)
, t as
(
   select cast( timestamp(dt, strip(va2)||':00') as timestamp(0)) start
        , r.*
     from d join oa1p.tQZ046AbUbRule r
        on r.type = 'cal' and r.subType not like 'trunc%'
)
, s as
(
  select *
    from t where 0 <
        case when subType = 'wtZe'
                 then locate(dayOfWeek_iso(start), va1)
             else raise_error(77701, 'cal bad subType ' || subType)
        end
  union all select
        case when subType = 'truncHH'
                 then trunc_timestamp(current timestamp, 'hh')
             when subType = 'truncDD'
                 then trunc_timestamp(current timestamp, 'dd')
             else raise_error(77702, 'cal bad subType ' || subType)
        end start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType like 'trunc%'
  union all select
        case when subType = 'truncHH'
                 then trunc_timestamp(current timestamp, 'hh') - 1 hour
             when subType = 'truncDD'
                 then trunc_timestamp(current timestamp, 'dd') - 1 day
             else raise_error(77702, 'cal bad subType ' || subType)
        end start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType like 'trunc%'
)
, o1 as
(
  select s.*
      , case when strip(va3) like 'e%' then 'e' else 's' end tiOuTy
    from s
)
, o2 as
(
  select o1.*
      , midnight_seconds(time(
          case when tiOuTy = 's' then strip(va3)
               else strip(substr(strip(va3), 2)) end ||':00')) tiOuSecs
    from o1
)
select rule cal
      , cast(start as timestamp(0)) start
      , tiOuTy, tiOuSecs
      , va4 calVa4
  from o2
;
create view oa1p.vQZ046AbUbCur as
with c as
(
   select c.*
       , row_number() over (partition by cal order by start desc) rn
     from oa1p.vQZ046AbUbCal c
     where start <= current timestamp
)
select a.cal, a.start, a.tiOuTy, a.tiOuSecs, a.calVa4
            , b.start prStart
   from c a left join c b on a.cal = b.cal and b.rn = 2
   where a.rn = 1
;
create view oa1p.vQZ045AbubState as
with r as
(
  select cast( case when tiOuTy = 'e' then evTst else start end
                + tiOuSecs seconds as timestamp(0)) until
      , r.*, c.*
    from oa1p.vQZ045AbUbLast r
      left join oa1p.vQZ046AbUbCur c
         on r.type = 'ab' and r.subType = c.cal
)
, s1 as
(
  select           -- s1 = timout or alarmTimeout (new)
        case when event is null or evTst is null then ' t'
             when cal is null                    then ''
             when evTst >= start and event not like '>%' then ''
             when until <  abubTst               then ' t'
             when until <  current timestamp     then 'at'
             when evTst >= start or tiOuTy = 'e' then ''
             when evTst < prStart or event like '>%' then ' t'
                                                 else ''
        end s1
        , r.*
        from r
)
, s2 as
(
  select
        case
          when type = 'conn' then  -- connection: alarm?
            case when conTst is null    then ' timeout'
                 when conTst >= abubTst then 'a' || event
                                        else ' ' || event
            end
          when s1 = '' then        -- event: in progress or alarm?
            case when event like '>%' then ' >'
                 when event = 'ok' or evTst <= abubTst then ' '||event
                                                       else 'a'||event
            end
          else                     -- timeout: is connection the reason?
            case when conEv is null or conEv <> 'ok' then 'cconTimeout'
                 when conTst + tiOuSecs seconds > current timestamp
                                               then 'cconRestart'
                 else left(s1, 1) || 'timeout'
            end
        end s2
      , s1.*
    from s1
)
, o as
(
  select rz, dbSy, ab
      , substr(s2, 1, 1) alarm
      , substr(s2, 2, 10) state
  --  , s1
      , event, evTst, orTst, link, cont
      , start, until, cal, tiOuTy, tiOuSecs, calVa4, prStart
      , conEv, conTst
      , abubTst
      , type, subType, va3, va4
    from s2
    order by conPri, dbSy, ab
)
select * from o
;
commit
}¢--- A540769.WK.SQL(ABUBDDL3) cre=2015-06-04 mod=2015-06-11-11.44.15 A540769 ---
-- select * from oa1p.vQZ045AbUbStat3 ; x where rz = 'RZZ' ;x;

set current sqlid = 'S100447';
drop   view oa1p.vQZ046AbUbCa3 ;
create view oa1p.vQZ046AbUbCa3 as
with d (dt, x) as
(
   select current date + 8 days, 0 from sysibm.sysDummy1
   union all select dt - 1 days, x+1 from d where x < 25
)
, t as
(
   select cast( timestamp(dt, strip(va2)||':00') as timestamp(0)) start
        , r.*
     from d join oa1p.tQZ046AbUbRule r
        on r.type = 'cal' and r.subType not like 'trunc%'
)
, c1 as
(
   select *
     from t
     where 0 <  case when subType = 'wtZe'
                     then locate(dayOfWeek_iso(start), va1)
                else raise_error(77701, 'cal bad subType ' || subType)
                end
  union all select trunc_timestamp(current timestamp, 'hh') start
       , r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncHH'
  union all select trunc_timestamp(current timestamp, 'hh')
          + 1 hour start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncHH'
  union all select trunc_timestamp(current timestamp, 'hh')
          - 1 hour start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncHH'
  union all select trunc_timestamp(current timestamp, 'dd') start
       , r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncDD'
  union all select trunc_timestamp(current timestamp, 'dd')
          + 1 day  start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncDD'
  union all select trunc_timestamp(current timestamp, 'dd')
          - 1 day start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncDD'
)
, c2 as
(
  select c1.*
      , case when strip(va3) like 'e%' then 'e' else 's' end tiOuTy
    from c1
)
, c3 as
(
  select c2.*
      , midnight_seconds(time(
          case when tiOuTy = 's' then strip(va3)
               else strip(substr(strip(va3), 2)) end ||':00')) tiOuSecs
      , case when cast(start as timestamp(0)) <= current timestamp
             then 1 else 0 end past
    from c2
)
, c as
(
  select rule cal
      , cast(start as timestamp(0)) start
      , smallInt( (row_number() over(partition by rule, past
                          order by start desc) -1 ) * past
                - (row_number() over(partition by rule, past
                          order by start asc)) * (1 - past)) seq
      , tiOuTy, tiOuSecs
      , va4 calVa4
    from c3
)
select *
    from c
    where seq between -1 and 1
;
create view oa1p.vQZ045AbUbStat3 as
with a as
 (
   select rule ab
       , type, subType
       , char(va1, 3) rz
       , char(va2, 4) dbSy
       , va3, va4
     from oa1p.tQZ046AbUbRule
     where type in ('ab', 'abub', 'conn')
 )
 , c1 as
 (
   select rz, max(tst) tst
      from oa1p.tQZ045AbUbEvent e
      where ab = 'connect'
      group by rz
 )
, con as
(
   select a.rz, e.tst conTst, e.event conEv, a.subType conPri
       , ( select value(max(e.tst), current timestamp)
             from oa1p.tQZ045AbUbEvent e
              where ab = 'abub'
         ) abubTst
      from c1
        join a
          on a.ab = 'connect' and a.type = 'conn' and a.rz = c1.rz
        join oa1p.tQZ045AbUbEvent e
           on e.ab = 'connect' and e.rz = c1.rz and e.tst = c1.tst
 )
 , b as
 (        -- join current next and previous calender
   select ab, a.type, subType, rz, dbSy
       , nx.start nxStart
       , cu.start cuStart
       , case when type = 'conn' then 'c'
              when cu.tiOuTy is null then 'n'
              else cu.tiOuTy end ct
       , cu.tiouTy cuTiOuTy
       , cu.tiouSecs cuTiOuSecs
       , cu.calVa4
       , pr.start prStart
       , pr.tiouTy prTiOuTy
       , pr.tiouSecs prTiOuSecs
       , pr.start + pr.tiouSecs seconds  prUntil
       , va3, va4
     from a
     left join oa1p.vQZ046AbUbCa3 nx
       on a.subType = nx.cal and nx.seq = -1
     left join oa1p.vQZ046AbUbCa3 cu
       on a.subType = cu.cal and cu.seq = 0
     left join oa1p.vQZ046AbUbCa3 pr
       on a.subType = pr.cal and pr.seq = 1
 )
 , tC as
(    -- find timestamp of current Event
   select b.*
          , ( select max(e.tst)
              from oa1p.tQZ045AbUbEvent e
              where b.ab = e.ab and b.rz = e.rz and b.dbSy = e.dbSy
            ) cuTst
     from b
 )
 , tP as
(    -- find timestamp of previous Event
   select tC.*
          , ( select max(e.tst)
              from oa1p.tQZ045AbUbEvent e
              where tC.ab = e.ab and tC.rz = e.rz and tC.dbSy = e.dbSy
                   and e.tst < value(min(tC.cuStart, tC.cuTst)
                                                   , tC.cuTst)
                   and e.event <> '' and e.event not like '>%'
            ) prTst
          , ( select max(e.tst)
              from oa1p.tQZ045AbUbEvent e
              where tC.ab = 'tecSv'
                   and tC.ab=e.ab and tC.rz = e.rz and tC.dbSy = e.dbSy
                   and strip(e.link) like 'DSN.ABUB.TECSV.%.CONSUM(%)'
            ) csTst
     from tC
 )
, e as              -- join events
(
     select tP.*
          , cu.event cuEvent, cu.link cuLink
          , pr.event prEvent, pr.link prLink
          , cs.event csEvent, cs.link csLink
          , conTst, conEv, conPri, abubTst
          , cu.cont, cu.orTst
     from tP
       left join oa1p.tQZ045AbUbEvent cu
           on tP.ab = cu.ab and tP.rz = cu.rz and tP.dbSy = cu.dbSy
                   and tP.cuTst = cu.tst
       left join oa1p.tQZ045AbUbEvent pr
           on tP.ab = pr.ab and tP.rz = pr.rz and tP.dbSy = pr.dbSy
                   and tP.prTst = pr.tst
       left join oa1p.tQZ045AbUbEvent cs
           on tP.ab = cs.ab and tP.rz = cs.rz and tP.dbSy = cs.dbSy
                   and tP.csTst = cs.tst
       left join con on tP.rz = con.rz
)
, e2 as
(    -- compute last finished event
  select
        case when cuEvent not like '>%' then cuEvent
             when prEvent not like '>%' then prEvent
        end fiEvent
      , case when cuEvent not like '>%' then cuTst
             when prEvent not like '>%' then prTst
        end fiTst
      , e.*
      from e
)
, f as              -- compute toTst: timeout timestamp
(    -- compute timeout timestamp toTst
   select case
        when fiEvent is null then '0001-01-01-00.00.00'
        when ct = 's' and fiTst >= cuStart then null
        when ct = 's' and current timestamp
                 >=  cuStart + cuTiOuSecs seconds
                then cuStart + cuTiOuSecs seconds
        when ct = 's' and fiTst >= prStart then null
        when ct = 's' then prStart + prTiOuSecs seconds
        when ct = 'e' and fiTst + cuTiOuSecs seconds
                <= current timestamp then fiTst + cuTiOuSecs seconds
        end toTst
       , e2.*
     from e2
)
/* ??????????????????????????????????
        when ct = 's' then case
            when cuEvent not like '>%' and cuTst >= cuStart then null
            when cuStart + cuTiOuSecs seconds <= current timestamp
                then cuStart + cuTiOuSecs seconds
            when cuEvent not like '>%' and cuTst >= prStart then null
            when prEvent not like '>%' and prTst >= prStart then null
            else prStart + prTiOuSecs seconds
            end
       when ct = 'e' then case
            when cuEvent not like '>%'
                and cuTst + cuTiOuSecs seconds >= current timestamp
                then null
            when prEvent not like '>%'
                and prTst + prTiOuSecs seconds >= current timestamp
                then null
            when cuTst + cuTiOuSecs seconds >= current timestamp
            when cuStart + cuTiOuSecs seconds <= current timestamp
                then cuStart + cuTiOuSecs seconds
            when cuEvent not like '>%' and cuTst >= prStart then null
            when prEvent not like '>%' and prTst >= prStart then null
            else prStart + prTiOuSecs seconds
            when cT = 's' and (cuEvent is null or cuEvent like '>%')
                then cuStart+cuTiOuSecs seconds
            when cT = 'e' and not (cuEvent is null or cuEvent like '>%')
                then cuTst+cuTiOuSecs seconds
            when cT = 'e'
                then value(prTst + cuTiOuSecs seconds
                          , '0001-01-01-00.00.00')
         end toTst
       , e.*
    from e
)  ?????????????????????? */
, g as              -- compute timeout: timeout text
(    -- compute timeout timestamp toTst
   select
         case
            when toTst is not null and (conEv is null
                         or conEv <> 'ok') then 'connTimeout'
            when toTst is not null and conTst + cuTiOuSecs seconds
                         > current timestamp then 'connRestart'
            when toTst is not null then 'timeout'
            when cT = 's' and fiTst > cuStart + cuTiOuSecs seconds
                                     then 'late'
            when cT = 's' and fiTst < cuStart
                          and fiTst > prStart + prTiOuSecs seconds
                                     then 'late'
            when cT = 'e' and cuEvent not like '>%'
                          and prEvent not like '>%'
                          and cuTst > prTst + prTiOuSecs seconds
                                     then 'late'
            else ''
         end timeout
       , f.*
     from f
)
, h as
(                   -- compute alarm and status
  select substr(case
              when fiEvent <> 'ok' then fiEvent
              when timeout <> '' then timeout
              when ab = 'tecSv' and rz = 'RZ2'
                 and dbSy in ('DBOF', 'DVBP') then 'prod'
              else 'ok'
         end, 1, 8) status
       , case
           when fiTst > abubTst then 'new'
           when toTst > abubTst then 'new'
           when toTst is null and nxStart > cuStart + 3 days
                   and cuTst < current timestamp - 1 day
           then 'old' else ''
         end alarm
       , g.*
     from g
    order by conPri, rz, dbSy, ab
)
select rz, dbSy, ab
      , alarm, status, timeout, cuEvent, cuTst, cuLink
      , csEvent, csTst, csLink
      , prEvent, prTst, prLink
      , type, va3, va4
      , cont, orTst, calVa4
      , fiEvent, fiTst
      , conTst, conEv, conPri, abubTst
      , ct, nxStart
      , cuStart, cuTiOuSecs, cuTiOuTy
      , prStart, prTiOuSecs, prTiOuTy
     from h
;
select * from oa1p.vQZ045AbUbStat3
}¢--- A540769.WK.SQL(ABUBDDX) cre=2014-05-15 mod=2014-05-15-09.09.53 A540769 ---
-- create view oa1p.vQZ045AbubState as
with r as
(
  select cast( case when tiOuTy = 'e' then evTst else start end
                + tiOuSecs seconds as timestamp(0)) until
      , r.*, c.*
    from oa1p.vQZ045AbUbLast r
      left join oa1p.vQZ046AbUbCur c
         on r.type = 'ab' and r.subType = c.cal
)
, s as
(
  select
        case when event is null or evTst is null then 'timeout'
             when cal is null   then event
             when evTst >= start and event in ('ok', 'err') then event
             when evTst >= start and until > current timestamp then '>'
             when (evTst >= prStart or tiOuTy = 'e')
                  and until > current timestamp
                  and event in ('ok', 'err') then event
             when conEv = 'err' then 'conTimeout'
             when conTst + tiOuSecs seconds > current timestamp
                                               then 'conRestart'
             else 'timeout'
        end state
      , r.*
    from r
)
, o as
(
  select rz, dbSy, ab
      , char(case when type = 'conn' and conTst > abubTst then 'a'
             when type = 'conn' or state in ('ok', '>')   then ''
             when state in ('conTimeout', 'conRestart')   then 'c'
             when state = 'timeout' and (until <= abubTst
                 or until is null or abubTst is null)     then ''
             when state <> 'timeout' and (evTst <= abubTst
                 or evTst is null or abubTst is null)     then ''
                                                          else 'a'
        end, 1) alarm
      , char(state, 10) state
      , event, evTst, orTst, link, cont
      , start, until, cal, tiOuTy, tiOuSecs, calVa4, prStart
      , conEv, conTst
      , abubTst
      , type, subType, va3, va4
    from s
    order by conPri, dbSy, ab
)
select * from o
;
commit
;
select * from  oa1p.vQZ045AbubState ;
sele
}¢--- A540769.WK.SQL(ABUBDD1) cre=2014-05-30 mod=2014-06-02-08.43.33 A540769 ---

with r as
(
  select cast( case when tiOuTy = 'e' then evTst else start end
                + tiOuSecs seconds as timestamp(0)) until
      , r.*, c.*
    from oa1p.vQZ045AbUbLast r
      left join oa1p.vQZ046AbUbCur c
         on r.type = 'ab' and r.subType = c.cal
)
, s1 as
(
  select           -- s1 = timout or alarmTimeout (new)
        case when event is null or evTst is null then ' t'
             when cal is null                    then ''
             when evTst >= start and event not like '>%' then ''
             when until <  abubTst               then ' t'
             when until <  current timestamp     then 'at'
             when evTst >= start or tiOuTy = 'e' then ''
             when evTst < prStart or event like '>%' then ' t'
                                                 else ''
        end s1
        , r.*
        from r
)
, s2 as
(
  select
        case
          when type = 'conn' then  -- connection: alarm?
            case when conTst is null    then ' timeout'
                 when conTst >= abubTst then 'a' || event
                                        else ' ' || event
            end
          when s1 = '' then        -- event: in progress or alarm?
            case when event like '>%' then ' >'
                 when event = 'ok' or evTst <= abubTst then ' '||event
                                                       else 'a'||event
            end
          else                     -- timeout: is connection the reason?
            case when conEv is null or conEv <> 'ok' then 'cconTimeout'
                 when conTst + tiOuSecs seconds > current timestamp
                                               then 'cconRestart'
                 else left(s1, 1) || 'timeout'
            end
        end s2
      , s1.*
    from s1
)
, o as
(
  select rz, dbSy, ab
      , substr(s2, 1, 1) alarm
      , substr(s2, 2, 10) state
      , s1
      , event, evTst, orTst, link, cont
      , start, until, cal, tiOuTy, tiOuSecs, calVa4, prStart
      , conEv, conTst
      , abubTst
      , type, subType, va3, va4
    from s2
    order by conPri, dbSy, ab
)
select o.rz, o.dbSy, o.ab, o.alarm, v.alarm, o.state, v.state, o.s1
      , o.*, v.*
    from o full outer join  oa1p.vQZ045AbubState v
        on o.rz = v.rz and o.dbSy = v.dbSy and o.ab = v.ab
;
commit
}¢--- A540769.WK.SQL(ABUBEVNT) cre=2015-06-02 mod=2015-06-02-16.42.52 A540769 ---
select count(*), event
    from OA1P.TQZ045ABUBEVENT
    group by event
}¢--- A540769.WK.SQL(ABUBRULE) cre=2014-10-06 mod=2014-10-06-17.37.32 A540769 ---
update   oa1p.tqz046AbubRule
  set va4 = trim(left(va4, 65))
    where rule like 'logE2%'
      and  type = 'code'
;
select length(va4), hex(va4)
      , trim(left(va4, 65))
      , r.*
    from oa1p.tqz046AbubRule r
    where rule like 'logE2%'
      and  type = 'code'
;
commit
;
}¢--- A540769.WK.SQL(ABUBSEHI) cre=2014-09-15 mod=2014-09-15-12.37.20 A540769 ---
select *
    from oa1p.tqz046abubRule
    where va1 like 'RQ%'
}¢--- A540769.WK.SQL(ABUBSEL) cre=2013-11-20 mod=2016-08-24-08.10.24 A540769 ---
--select * from oa1p.vQZ045AbUbState
--;
select * from oa1p.tQZ045AbUbEvent
     where ab = 'mvExt' and rz = 'RZZ' -- and event <> '>'
       and tst > current timestamp - 9 days
    order by tst desc
    fetch first 100  rows  only;
; x;
;x;
delete from oa1p.tQZ045AbUbEvent
     where ab = 'tstXDoc'
;
commit;
;x;
select * from oa1p.tQZ045AbUbEvent
    where                ab = 'mvExt'
        and tst > current timestamp -16  days
 --     and rz = 'RZ2' and dbSy = 'DVBP'
    order by rz, tst desc
; x;
xpdate oa1p.tQZ046AbUbRule r
   set va4 = strip(left(va4, 46))
     where type = 'code' and rule = 'logEx'
;
select *
     from oa1p.tQZ046AbUbRule r
     where type = 'code' and rule = 'logEx'
;
commit
;x;
select * from oa1p.tQZ045AbUbEvent
    where                ab = 'logEx'
        and tst > current timestamp -16  days
    order by tst desc
; x;
select * from oa1p.vQZ045AbUbState
;x;
select * from oa1p.tQZ045AbUbEvent
    where rz = 'RQ2' and ab = 'logE2'
        and tst > current timestamp - 6  days
    order by tst desc
; x;
select * from oa1p.vQZ046AbUbCur;
    where (state <> 'ok' and (ab <> 'ddlCon'
               or evTst > current timestamp - 40 hours))
          or (rz = 'RZ2' and dbSy in ('DBOF', 'DVBP'))
          or alarm <> ''
;
  select *
    from oa1p.tQZ045AbUbEvent e
    order by tst desc
    fetch first 100 rows only
    ;x;
, n as
(
  select e.*, c.start, c.until
       , row_number() over(partition by e.ab, e.rz, e.dbSy
                           order by start asc) nRn
    from e
      left join oa1p.vQZ046AbUbCal c
         on e.type = 'ab' and e.subType = c.cal
           and c.start > value(e.evTst, '2000-01-01-00.00.00')
      where eRn = 1
)
, m as
(
  select n.*
        , case when conEv <> 'err'
               then conTst + (until - start) else null end conUntil
    from n
    where nRn = 1
)
select *
    from oa1p.vQZ046AbUbCur c
    order by cal, start desc
;x;
with f as
(
select c.*, case when start > current timestamp then 1 else 0 end isFut
    from oa1p.vQZ046AbUbCal c
)
select f.*
    , case when isFut = 1
 then row_number() over(partition by cal, isFut order by start asc)
 else 1 - row_number() over(partition by cal, isFut order by start desc)
 end rr
    from f
    order by cal, start desc
;x;
select f.*
    , row_number() over(partition by cal, isFut order by start asc) rA
    , row_number() over(partition by cal, isFut order by start desc) rD
    from f
    order by cal, start desc
;x;
select *
    from oa1p.vQZ045AbUbstate
    where state <> 'ok' or alarm <> '' or state is null
 -- where type = 'ab'
 ;
select *
    from oa1p.vQZ045AbUbState
    where state <> 'ok' or alarm <> ''
 ;;;;
    where ab <> 'connect' or state is not null
;;,
select *
    from oa1p.vQZ045AbUbState
;;,
with l as
(
  select *
    from oa1p.tQZ045AbUbEvent e
    where e.tst
    = (select f.tst
        from oa1p.tQZ045AbUbEvent f
        where e.ab = f.ab and e.rz = f.rz
            and e.dbSy = f.dbSy
        order by tst desc
        fetch first 1 row only
      )
)
, r as
(
  select r.rule ab, char(r.va2, 3) rz, char(r.va3, 4) dbSy
      , l.tst, l.event, l.link, r.va1 cal
    from oa1p.TQZ046AbUbRule r left join l
        on r.rule = l.ab and r.va2 = l.rz and r.va3 = l.dbSy
    where r.typ = 'ab'
)
, n as
(
  select r.*, c.start, c.until
       , row_number() over(partition by r.ab, r.rz, r.dbSy
                           order by start asc) rn
    from r left join oa1p.vQZ046Cal c
      on r.cal = c.cal and c.start > value(r.tst, '2000-01-01-00.00.00')
)
select ab, rz, dbSy
      , case when until < current timestamp then 'timeout'
                                            else event end state
      , event
      , cast(tst as timestamp(0)) tst
      , cast(start as timestamp(0)) start
      , cast(until as timestamp(0)) until
      , link, cal
    from n
    where rn = 1
;;;
  select ab, rz, dbSy, tst, event
      c.start, c.until, link, cal
    from r left join
;;;
select * FROM L;;;;
    from oa1p.vQZ046AbUbEvent
    where
select *
   from oa1p.vQZ046Cal
   order by cal, start desc
;;;
with d (dt, x) as
(
   select current date, 0 from sysibm.sysDummy1
   union all select dt- 1 day, x+1 from d where x < 5
)
, t as
(
   select timestamp(dt, strip(va2) || ':00') start
        , timestamp(dt, strip(va2) || ':00')
              + (time(strip(va3) || ':00') - time('00:00:00')) until
        , r.*
     from d join oa1p.tQZ046AbUbRule r
        on r.typ = 'cal'
)
, s as
(
   select case when sub = 'wtZe' then locate(dayOfWeek_iso(start), va1)
              else raise_error(77701, 'cal bad sub ' || sub)
         end sel
         , t.*
     from t
     where start between current timestamp - 5 days
                     and current timestamp
)
select rule cal, start, until
   from s
   where sel > 0
   order by cal, start desc
;;;
,  d2 as
(
   select timestamp(dt, tStart) start
       , timestamp(dt, tStart) + len stop
       , d1.*,r1.*
     from d1,join r1
 )
select * from d2 order by start desc, ab;;;
       , case when sub = 'wtZe' then locate(dayOfWeek_iso(start), va1)
              else raise_error(77701, 'cal bad sub ' || sub)
         end sel
select dayOfWeek_iso(start)
      , locate(dayOfWeek_iso(start), va1)
      , start + (hour(len) * 60 + minute(len)) minutes stop
      , t.*
    from t
    where locate(dayOfWeek_iso(start), va1) > 0
    order by start desc
}¢--- A540769.WK.SQL(ABUBSELC) cre=2015-06-03 mod=2015-06-04-13.27.26 A540769 ---
/*
select * from oa1p.vQZ045AbUbState
 -- order by evTst desc
; x;  */
set current sqlid = 'S100447';
create view oa1p.vQZ045AbUbStat3 as
with a as
 (
   select rule ab
       , type, subType
       , char(va1, 3) rz
       , char(va2, 4) dbSy
       , va3, va4
     from oa1p.tQZ046AbUbRule
     where type in ('ab', 'abub', 'conn')
 )
 , c1 as
 (
   select rz, max(tst) tst
      from oa1p.tQZ045AbUbEvent e
      where ab = 'connect'
      group by rz
 )
, con as
(
   select a.rz, e.tst conTst, e.event conEv, a.subType conPri
       , ( select value(max(e.tst), current timestamp)
             from oa1p.tQZ045AbUbEvent e
              where ab = 'abub'
         ) - 2 hour abubTst
      from c1
        join a
          on a.ab = 'connect' and a.type = 'conn' and a.rz = c1.rz
        join oa1p.tQZ045AbUbEvent e
           on e.ab = 'connect' and e.rz = c1.rz and e.tst = c1.tst
 )
 , b as
 (        -- join current next and previous calender
   select ab, a.type, subType, rz, dbSy
       , nx.start nxStart
       , cu.start cuStart
       , case when type = 'conn' then 'c'
              when cu.tiOuTy is null then 'n'
              else cu.tiOuTy end ct
       , cu.tiouTy cuTiOuTy
       , cu.tiouSecs cuTiOuSecs
       , pr.start prStart
       , pr.tiouTy prTiOuTy
       , pr.tiouSecs prTiOuSecs
       , pr.start + pr.tiouSecs seconds  prUntil
       , va3, va4
     from a
     left join oa1p.vQZ046AbUbCa3 nx
       on a.subType = nx.cal and nx.seq = -1
     left join oa1p.vQZ046AbUbCa3 cu
       on a.subType = cu.cal and cu.seq = 0
     left join oa1p.vQZ046AbUbCa3 pr
       on a.subType = pr.cal and pr.seq = 1
 )
 , tC as
(    -- find timestamp of current Event
   select b.*
          , ( select max(e.tst)
              from oa1p.tQZ045AbUbEvent e
              where b.ab = e.ab and b.rz = e.rz and b.dbSy = e.dbSy
            ) cuTst
     from b
 )
 , tP as
(    -- find timestamp of previous Event
   select tC.*
          , ( select max(e.tst)
              from oa1p.tQZ045AbUbEvent e
              where tC.ab = e.ab and tC.rz = e.rz and tC.dbSy = e.dbSy
                   and e.tst < case tC.ct when 's' then tC.cuStart
                                        else tC.cuTst end
                   and e.tst >= case tC.ct when 's' then tC.prStart
                                        else '0001-01-01-00.00.00' end
                   and (tC.ct <> 'e' or e.event not like '<')
            ) prTst
          , ( select max(e.tst)
              from oa1p.tQZ045AbUbEvent e
              where tC.ab = 'tecSv'
                   and tC.ab=e.ab and tC.rz = e.rz and tC.dbSy = e.dbSy
                   and strip(e.link) like 'DSN.ABUB.TECSV.%.CONSUM(%)'
            ) csTst
     from tC
 )
, e as
(
     select tP.*
          , cu.event cuEvent, cu.link cuLink
          , pr.event prEvent, pr.link prLink
          , cs.event csEvent, cs.link csLink
          , conTst, conEv, conPri, abubTst
          , case when conEv is null or conEv <> 'ok' then ' connTimeout'
                 when conTst + cuTiOuSecs seconds > current timestamp
                     then ' connRestarTO' else ' timeout' end conTO
     from tP
       left join oa1p.tQZ045AbUbEvent cu
           on tP.ab = cu.ab and tP.rz = cu.rz and tP.dbSy = cu.dbSy
                   and tP.cuTst = cu.tst
       left join oa1p.tQZ045AbUbEvent pr
           on tP.ab = pr.ab and tP.rz = pr.rz and tP.dbSy = pr.dbSy
                   and tP.prTst = pr.tst
       left join oa1p.tQZ045AbUbEvent cs
           on tP.ab = cs.ab and tP.rz = cs.rz and tP.dbSy = cs.dbSy
                   and tP.csTst = cs.tst
       left join con on tP.rz = con.rz
)
, f as
(    -- describe current state
   select rz, dbSy, ab
       , varchar(strip(value (cuEvent, '')
       || case cT
            when 's' then
              case
                when cuEvent is null or cuEvent like '>%' then
                  case
                    when abubTst > cuStart+cuTiOuSecs seconds
                      then conTO
                    when current timestamp > cuStart+cuTiOuSecs seconds
                      then conTo || ' new' else ''
                    end
                else case when cuTst > cuStart+cuTiOuSecs seconds
                            then ' late' else '' end
                   || case when cuTst>abubTst then ' new' else '' end
                end
            when 'e' then
              case
                when cuEvent is null or cuEvent like '>%' then
                  case
                    when abubTst > prTst+prTiOuSecs seconds
                        then conTo
                    when current timestamp > prTst+prTiOuSecs seconds
                        then conTo || ' new' else ''
                    end
                when cuTst + cuTiOuSecs seconds < abubTst
                    then conTO
                when cuTst + cuTiOuSecs seconds < current timestamp
                    then conTO || ' new'
                else case when prtst + prTiOuSecs seconds < cuTst
                           then ' late' else '' end
                  || case when cutst > abubTst then ' new' else '' end
                end
            else
              case when cuTst is null    then ' timeout'
                   when cuTst > abubTst  then ' new'
                   else '' end
            end), 20) cuSta
      , cuTst, cuLink
      , prEvent, prTst, prLink
      , csEvent, csTst, csLink
      , conTst, conEv, conPri, cT, conTO, abubTst
      , cuStart, cuTiOuSecs, cuTiOuTy
      , prStart, prTiOuSecs, prTiOuTy
     from e
     order by conPri, rz, dbSy, ab
)
select * from f
;
select * from oa1p.vQZ045AbUbStat3
 ; commit
 ; x;
 select * from tP
 order by ab, rz, dbSy
 ;x;
 , s3 as
 (
   select s2.*
       , case when prTiOuTy = 'e' then e1Tst
              when type = 'conn' then e1Tst
              else cuStart
         end e2Start
       , case when prTiOuTy = 'e' then null
              when type = 'conn' then null
                  else prStart + prTiouSecs seconds
         end e2Until
     from s2
 )
 select * from s3;
 rollback;
                   and pr.start <= e.tst
         ) prTst
 , s as
 (
   select ab, r.type, subType, rz, dbSy
       , nx.start nxStart
       , cu.start cuStart
       , cu.tiouTy cuTiOuTy
       , cu.tiouSecs cuTiOuSecs
       , cu.start + cu.tiouSecs seconds  cuUntil
       , (select max(e.tst)
              from oa1p.tQZ045AbUbEvent e
              where r.ab = e.ab and r.rz = e.rz and r.dbSy = e.dbSy
                   and e.tst >=
                   case when cu.tiOuTy = 'e'
                          then current timestamp - cu.tiOuSecs seconds
                        when r.type = 'conn'
                          then current timestamp - 10 years
                        else cu.start
                   end
         ) cuTst
       , pr.start prStart
       , pr.tiouTy prTiOuTy
       , pr.tiouSecs prTiOuSecs
       , pr.start + pr.tiouSecs seconds  prUntil
       , (select max(e.tst)
              from oa1p.tQZ045AbUbEvent e
              where r.ab = e.ab and r.rz = e.rz and r.dbSy = e.dbSy
                   and cu.start > e.tst
                   and pr.start <= e.tst
         ) prTst
       , va3, va4
     from r
     left join oa1p.vQZ046AbUbCa3 nx
       on r.subType = nx.cal and nx.seq = -1
     left join oa1p.vQZ046AbUbCa3 cu
       on r.subType = cu.cal and cu.seq = 0
     left join oa1p.vQZ046AbUbCa3 pr
       on r.subType = pr.cal and pr.seq = 1
 )
   select
          value(cu.event, '')
       || case when s.type = 'conn'              then ''
               when cuTiOuTy = 'e' and cu.event is null then ' timeout'
               when current timestamp <= cuUntil then ''
               when cu.event is null             then ' timeout'
               when cu.event like '>%'           then ' timeout'
               when cu.tst <= cuUntil            then ''
                                                 else ' prte'
          end cuState
     , s.*, cu.*, pr.*
     from s
       left join oa1p.tQZ045AbUbEvent cu
           on s.ab = cu.ab and s.rz = cu.rz and s.dbSy = cu.dbSy
                   and cuTst = cu.tst
       left join oa1p.tQZ045AbUbEvent pr
           on s.ab = pr.ab and s.rz = pr.rz and s.dbSy = pr.dbSy
                   and prTst = pr.tst
     order by s.rz, s.dbSy, s.ab
 ;
 rollback
 ;
 , s as
 (
    select r.*
       , (select max(e.tst)
            from oa1p.tQZ045AbUbEvent e
            where r.ab = e.ab and r.rz = e.rz and r.dbSy = e.dbSy
         ) evTst

 )
 , l as
rollback;
set current sqlid = 'S100447';
drop   view oa1p.vQZ046AbUbCa3 ;
create view oa1p.vQZ046AbUbCa3 as
with d (dt, x) as
(
   select current date + 8 days, 0 from sysibm.sysDummy1
   union all select dt - 1 days, x+1 from d where x < 18
)
, t as
(
   select cast( timestamp(dt, strip(va2)||':00') as timestamp(0)) start
        , r.*
     from d join oa1p.tQZ046AbUbRule r
        on r.type = 'cal' and r.subType not like 'trunc%'
)
, c1 as
(
   select *
     from t
     where 0 <  case when subType = 'wtZe'
                     then locate(dayOfWeek_iso(start), va1)
                else raise_error(77701, 'cal bad subType ' || subType)
                end
  union all select trunc_timestamp(current timestamp, 'hh') start
       , r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncHH'
  union all select trunc_timestamp(current timestamp, 'hh')
          + 1 hour start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncHH'
  union all select trunc_timestamp(current timestamp, 'hh')
          - 1 hour start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncHH'
  union all select trunc_timestamp(current timestamp, 'dd') start
       , r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncDD'
  union all select trunc_timestamp(current timestamp, 'dd')
          + 1 day  start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncDD'
  union all select trunc_timestamp(current timestamp, 'dd')
          - 1 day start, r.*
     from oa1p.tQZ046AbUbRule r
     where r.type = 'cal' and r.subType = 'truncDD'
)
, c2 as
(
  select c1.*
      , case when strip(va3) like 'e%' then 'e' else 's' end tiOuTy
    from c1
)
, c3 as
(
  select c2.*
      , midnight_seconds(time(
          case when tiOuTy = 's' then strip(va3)
               else strip(substr(strip(va3), 2)) end ||':00')) tiOuSecs
      , case when cast(start as timestamp(0)) <= current timestamp
             then 1 else 0 end past
    from c2
)
, c as
(
  select rule cal
      , cast(start as timestamp(0)) start
      , smallInt( (row_number() over(partition by rule, past
                          order by start desc) -1 ) * past
                - (row_number() over(partition by rule, past
                          order by start asc)) * (1 - past)) seq
      , tiOuTy, tiOuSecs
      , va4 calVa4
    from c3
)
select *
    from c
    where seq between -1 and 1
;
select * from oa1p.vQZ046AbUbCa3
    order by cal, start desc
;
commit;x;
}¢--- A540769.WK.SQL(ABUBSE2) cre=2014-04-29 mod=2014-04-29-12.11.08 A540769 ---
select * from oa1p.vqz046AbubCal
    where cal = 'logEx'
;
select * from oa1p.vqz046AbubCur
    where cal = 'logEx'
;
select * from oa1p.vQZ045AbubState -- where rz = 'RR2'
;x;
with r as
-- create view oa1p.vQZ046AbUbCur as
with c as
(
   select c.*
       , row_number() over (partition by cal order by start desc) rn
     from oa1p.vQZ046AbUbCal c
     where start <= current timestamp
)
select a.cal, a.start, a.tiOuTy, a.tiOuSecs, a.calVa4
            , b.start prStart
   from c a left join c b on a.cal = b.cal and b.rn = 2
   where a.rn = 1
      and a.cal = 'logEx'
;
-- create view oa1p.vQZ045AbubState as
with r as
(
  select cast( case when tiOuTy = 'e' then evTst else start end
                + tiOuSecs seconds as timestamp(0)) until
      , r.*, c.*
    from oa1p.vQZ045AbUbLast r
      left join oa1p.vQZ046AbUbCur c
         on r.type = 'ab' and r.subType = c.cal
)
, s as
(
  select
        case when event is null then 'timeout'
             when cal is null   then event
             when evTst >= start and event in ('ok', 'err') then event
             when evTst >= start and until > current timestamp then '>'
             when evTst >= prStart and until > current timestamp
                  and event in ('ok', 'err') then event
             when conEv = 'err' then 'conTimeout'
             when conTst + tiOuSecs seconds > current timestamp
                                               then 'conRestart'
             else 'timeout'
        end state
      , r.*
    from r
)
, o as
(
  select rz, dbSy, ab
      , char(case when type = 'conn' and conTst > abubTst then 'a'
             when type = 'conn' or state in ('ok', '>')   then ''
             when state in ('conTimeout', 'conRestart')   then 'c'
             when evTst is Null or evTst <= abubTst       then ''
                                                          else 'a'
        end, 1) alarm
      , char(state, 10) state
      , event, evTst, orTst, link, cont
      , start, until, cal, tiOuTy, tiOuSecs, calVa4
      , conEv, conTst
      , abubTst
      , type, subType, va3, va4
    from s
    order by conPri, dbSy, ab
)
select * from o
     where rz = 'RR2' and ab like 'logE%'
;
commit
}¢--- A540769.WK.SQL(ADBCHG) cre=2008-11-04 mod=2008-11-04-11.36.13 F540769 ----
select count(*)
    from s100447.adbChg
;
select count(*), status
    from s100447.adbChg
    group by status
;
select count(*), status, left(char(alteredts), 7)
    from s100447.adbChg
    group by status, left(char(alteredts), 7)
    order by 3 desc, 2 asc
;
}¢--- A540769.WK.SQL(ADBCLEAN) cre=2008-01-11 mod=2008-01-11-13.21.42 F540769 ---
            select 'ADBCHK  ', count(*) from adb.ADBCHK                 00010000
union all   select 'ADBCHKPT', count(*) from adb.ADBCHKPT               00020000
union all   select 'ADBHOLD ', count(*) from adb.ADBHOLD                00030000
union all   select 'ADBPART ', count(*) from adb.ADBPART                00040000
;                                                                       00050000
delete from adb.ADBCHKPT where timestmp < current timestamp - 10 days   00060001
;                                                                       00061001
            select 'ADBCHK  ', count(*) from adb.ADBCHK                 00070001
union all   select 'ADBCHKPT', count(*) from adb.ADBCHKPT               00080001
union all   select 'ADBHOLD ', count(*) from adb.ADBHOLD                00090001
union all   select 'ADBPART ', count(*) from adb.ADBPART                00100001
;                                                                       00110001
commit                                                                  00120002
;                                                                       00130001
}¢--- A540769.WK.SQL(ADBHOLD) cre=2008-01-11 mod=2008-01-11-13.22.49 F540769 ---
select coalesce(c.userid, h.userid),                                    00001011
       coalesce(c.worklist, h.worklist),                                00001111
       c.COMITNUM coNu,c.COMMAND com, c.COMMAND_RESTART coRe,c.TIMESTMP,00002009
       count(*), h.stATUS, left(h.HOLDVAR, 10)                          00003012
    from adb.adbchkpt c                                                 00010004
    full outer join adb.adbhold h                                       00010104
    on c.userid = h.userid and c.worklist = h.worklist                  00010204
    group by c.userid, h.userid, c.worklist, h.worklist,                00010312
             c.COMITNUM, c.COMMAND, c.COMMAND_RESTART,c.TIMestmp,       00010412
             h.status, left(h.HOLDVAR, 10)                              00010512
    order by 1, 2, 8, 9                                                 00010612
;                                                                       00010704
SELECT count(*), c.timestmp, h.userid, h.worklist, h.suffix,            00010815
         h.stATUS, left(h.HOLDVAR, 10)                                  00010915
    FROM adb.adbhold h, adb.ADBCHKPT c                                  00011013
    where h.userid = c.userid and h.worklist = c.worklist               00011113
      and h.suffix = c.suffix                                           00011216
    group by c.timestmp, h.userid, h.worklist, h.suffix,                00011315
             h.stATUS, left(h.HOLDVAR, 10)                              00011415
    order by 7, 1 desc                                                  00011518
    ;                                                                   00011615
SELECT * FROM ADB.ADBCHKPT;                                             00011813
SELECT * FROM ADB.ADBHOLD                                               00012013
 -- WHERE WORKLIST = 'DB2BATCH'                                         00020002
}¢--- A540769.WK.SQL(ADBPRE) cre=2008-11-13 mod=2008-11-13-13.45.41 F540769 ----
select count(*)
    from s100447.adbcprereq
;
select count(*), c
from
(
select count(*) c, changeid
    from s100447.adbcprereq
    group by changeid
) c
    group by c
    order by c desc
;
x
select count(*), status
    from s100447.adbChg
    group by status
;
select count(*), status, left(char(alteredts), 7)
    from s100447.adbChg
    group by status, left(char(alteredts), 7)
    order by 3 desc, 2 asc
;
}¢--- A540769.WK.SQL(ADBREF) cre=2008-12-12 mod=2008-12-12-14.21.35 F540769 ----
delete
    from S100447.ADBCHGSR
    where changeid > 3600
 ;

SELECT *
    from S100447.ADBCHGSR
    where name like 'TDG129%'
}¢--- A540769.WK.SQL(ADBVERS) cre=2007-02-23 mod=2007-06-25-11.16.00 F540769 ---
 select v.versionId,
         char(left(strip(v.owner) || '.' || strip(v.name), 30), 30),
         char(left(strip(l.qualifier) || '.' || strip(l.name), 30), 30),
         l.qCnt,
         v.createdTs
     from s100447.adbcVersion v
       left join (
           select versionId, qualifier, name,
                 count(*) qCnt
             from s100447.adbcVerLines
             group by versionId, qualifier, name
         ) l
         on v.versionId = l.versionId
     where v.owner = 'A540769' and v.name like 'TWK301.TRG%'
     order by v.owner, v.name
     ;
     x
 select v.versionId,
         char(strip(v.owner) || '.' || strip(v.name), 30),
         l.verLinSeq,
         l.operation,
         char(strip(l.qualifier) || '.' || strip(l.name), 30),
         l.rowType,
         createdTs
     from s100447.adbcVersion v
       left join s100447.adbcVerLines l
         on v.versionId = l.versionId
     where owner = 'A540769'
     order by v.versionId, l.verLinSeq
}¢--- A540769.WK.SQL(ALIAS) cre=2012-05-25 mod=2012-05-25-15.24.48 A540769 -----
$#@
$<#¢
TPC014A1
TPC019A1
TPC020A1
TPC021A1
TPC022A1
TPC023A1
TPC024A1
TPC025A1
TPC026A1
TPC027A1
TPC029A1
TPC030A1
TPC031A1
TPC040A1
TPC040H1
TPC041A1
TPC041H1
TPC050A1
TPC051A1
TPC052A1
TPC053A1
TPC060A1
TPC061A1
TPC062A1
TPC070A1
TPC089A1
TPC090A1
TPC099A1
TPC100A1
TPC101A1
TPC103A1
TPC104A1
TPC105A1
TPC106A1
TPC107A1
TPC112A1
TPC113A1
TPC114A1
TPC145A1
TPC145H1
TPC146A1
TPC146H1
TPC147A1
TPC147H1
TPC150A1
TPC151A1
TPC152A1
TPC153A1
TPC154A1
VPC014A1A
VPC019A1A
VPC020A1A
VPC021A1A
VPC022A1A
VPC023A1A
VPC024A1A
VPC025A1A
VPC026A1A
VPC027A1A
VPC029A1A
VPC030A1A
VPC031A1A
VPC040A1A
VPC041A1A
VPC050A1A
VPC051A1A
VPC052A1A
VPC053A1A
VPC060A1A
VPC061A1A
VPC062A1A
VPC070A1A
VPC089A1A
VPC090A1A
VPC099A1A
VPC100A1A
VPC101A1A
VPC103A1A
VPC104A1A
VPC105A1A
VPC106A1A
VPC107A1A
VPC112A1A
VPC113A1A
VPC114A1A
VPC145A1A
VPC146A1A
VPC147A1A
VPC150A1A
VPC151A1A
VPC152A1A
VPC153A1A
VPC154A1A
$! $@for tb $@¢
    $$ CREATE    create alias OA1P14.$tb for OA1P.$tb ;
    $!
$#out                                              20120525 15:23:20
CREATE    create alias OA1P14.TPC014A1 for OA1P.TPC014A1 ;
CREATE    create alias OA1P14.TPC019A1 for OA1P.TPC019A1 ;
CREATE    create alias OA1P14.TPC020A1 for OA1P.TPC020A1 ;
CREATE    create alias OA1P14.TPC021A1 for OA1P.TPC021A1 ;
CREATE    create alias OA1P14.TPC022A1 for OA1P.TPC022A1 ;
CREATE    create alias OA1P14.TPC023A1 for OA1P.TPC023A1 ;
CREATE    create alias OA1P14.TPC024A1 for OA1P.TPC024A1 ;
CREATE    create alias OA1P14.TPC025A1 for OA1P.TPC025A1 ;
CREATE    create alias OA1P14.TPC026A1 for OA1P.TPC026A1 ;
CREATE    create alias OA1P14.TPC027A1 for OA1P.TPC027A1 ;
CREATE    create alias OA1P14.TPC029A1 for OA1P.TPC029A1 ;
CREATE    create alias OA1P14.TPC030A1 for OA1P.TPC030A1 ;
CREATE    create alias OA1P14.TPC031A1 for OA1P.TPC031A1 ;
CREATE    create alias OA1P14.TPC040A1 for OA1P.TPC040A1 ;
CREATE    create alias OA1P14.TPC040H1 for OA1P.TPC040H1 ;
CREATE    create alias OA1P14.TPC041A1 for OA1P.TPC041A1 ;
CREATE    create alias OA1P14.TPC041H1 for OA1P.TPC041H1 ;
CREATE    create alias OA1P14.TPC050A1 for OA1P.TPC050A1 ;
CREATE    create alias OA1P14.TPC051A1 for OA1P.TPC051A1 ;
CREATE    create alias OA1P14.TPC052A1 for OA1P.TPC052A1 ;
CREATE    create alias OA1P14.TPC053A1 for OA1P.TPC053A1 ;
CREATE    create alias OA1P14.TPC060A1 for OA1P.TPC060A1 ;
CREATE    create alias OA1P14.TPC061A1 for OA1P.TPC061A1 ;
CREATE    create alias OA1P14.TPC062A1 for OA1P.TPC062A1 ;
CREATE    create alias OA1P14.TPC070A1 for OA1P.TPC070A1 ;
CREATE    create alias OA1P14.TPC089A1 for OA1P.TPC089A1 ;
CREATE    create alias OA1P14.TPC090A1 for OA1P.TPC090A1 ;
CREATE    create alias OA1P14.TPC099A1 for OA1P.TPC099A1 ;
CREATE    create alias OA1P14.TPC100A1 for OA1P.TPC100A1 ;
CREATE    create alias OA1P14.TPC101A1 for OA1P.TPC101A1 ;
CREATE    create alias OA1P14.TPC103A1 for OA1P.TPC103A1 ;
CREATE    create alias OA1P14.TPC104A1 for OA1P.TPC104A1 ;
CREATE    create alias OA1P14.TPC105A1 for OA1P.TPC105A1 ;
CREATE    create alias OA1P14.TPC106A1 for OA1P.TPC106A1 ;
CREATE    create alias OA1P14.TPC107A1 for OA1P.TPC107A1 ;
CREATE    create alias OA1P14.TPC112A1 for OA1P.TPC112A1 ;
CREATE    create alias OA1P14.TPC113A1 for OA1P.TPC113A1 ;
CREATE    create alias OA1P14.TPC114A1 for OA1P.TPC114A1 ;
CREATE    create alias OA1P14.TPC145A1 for OA1P.TPC145A1 ;
CREATE    create alias OA1P14.TPC145H1 for OA1P.TPC145H1 ;
CREATE    create alias OA1P14.TPC146A1 for OA1P.TPC146A1 ;
CREATE    create alias OA1P14.TPC146H1 for OA1P.TPC146H1 ;
CREATE    create alias OA1P14.TPC147A1 for OA1P.TPC147A1 ;
CREATE    create alias OA1P14.TPC147H1 for OA1P.TPC147H1 ;
CREATE    create alias OA1P14.TPC150A1 for OA1P.TPC150A1 ;
CREATE    create alias OA1P14.TPC151A1 for OA1P.TPC151A1 ;
CREATE    create alias OA1P14.TPC152A1 for OA1P.TPC152A1 ;
CREATE    create alias OA1P14.TPC153A1 for OA1P.TPC153A1 ;
CREATE    create alias OA1P14.TPC154A1 for OA1P.TPC154A1 ;
CREATE    create alias OA1P14.VPC014A1A for OA1P.VPC014A1A ;
CREATE    create alias OA1P14.VPC019A1A for OA1P.VPC019A1A ;
CREATE    create alias OA1P14.VPC020A1A for OA1P.VPC020A1A ;
CREATE    create alias OA1P14.VPC021A1A for OA1P.VPC021A1A ;
CREATE    create alias OA1P14.VPC022A1A for OA1P.VPC022A1A ;
CREATE    create alias OA1P14.VPC023A1A for OA1P.VPC023A1A ;
CREATE    create alias OA1P14.VPC024A1A for OA1P.VPC024A1A ;
CREATE    create alias OA1P14.VPC025A1A for OA1P.VPC025A1A ;
CREATE    create alias OA1P14.VPC026A1A for OA1P.VPC026A1A ;
CREATE    create alias OA1P14.VPC027A1A for OA1P.VPC027A1A ;
CREATE    create alias OA1P14.VPC029A1A for OA1P.VPC029A1A ;
CREATE    create alias OA1P14.VPC030A1A for OA1P.VPC030A1A ;
CREATE    create alias OA1P14.VPC031A1A for OA1P.VPC031A1A ;
CREATE    create alias OA1P14.VPC040A1A for OA1P.VPC040A1A ;
CREATE    create alias OA1P14.VPC041A1A for OA1P.VPC041A1A ;
CREATE    create alias OA1P14.VPC050A1A for OA1P.VPC050A1A ;
CREATE    create alias OA1P14.VPC051A1A for OA1P.VPC051A1A ;
CREATE    create alias OA1P14.VPC052A1A for OA1P.VPC052A1A ;
CREATE    create alias OA1P14.VPC053A1A for OA1P.VPC053A1A ;
CREATE    create alias OA1P14.VPC060A1A for OA1P.VPC060A1A ;
CREATE    create alias OA1P14.VPC061A1A for OA1P.VPC061A1A ;
CREATE    create alias OA1P14.VPC062A1A for OA1P.VPC062A1A ;
CREATE    create alias OA1P14.VPC070A1A for OA1P.VPC070A1A ;
CREATE    create alias OA1P14.VPC089A1A for OA1P.VPC089A1A ;
CREATE    create alias OA1P14.VPC090A1A for OA1P.VPC090A1A ;
CREATE    create alias OA1P14.VPC099A1A for OA1P.VPC099A1A ;
CREATE    create alias OA1P14.VPC100A1A for OA1P.VPC100A1A ;
CREATE    create alias OA1P14.VPC101A1A for OA1P.VPC101A1A ;
CREATE    create alias OA1P14.VPC103A1A for OA1P.VPC103A1A ;
CREATE    create alias OA1P14.VPC104A1A for OA1P.VPC104A1A ;
CREATE    create alias OA1P14.VPC105A1A for OA1P.VPC105A1A ;
CREATE    create alias OA1P14.VPC106A1A for OA1P.VPC106A1A ;
CREATE    create alias OA1P14.VPC107A1A for OA1P.VPC107A1A ;
CREATE    create alias OA1P14.VPC112A1A for OA1P.VPC112A1A ;
CREATE    create alias OA1P14.VPC113A1A for OA1P.VPC113A1A ;
CREATE    create alias OA1P14.VPC114A1A for OA1P.VPC114A1A ;
CREATE    create alias OA1P14.VPC145A1A for OA1P.VPC145A1A ;
CREATE    create alias OA1P14.VPC146A1A for OA1P.VPC146A1A ;
CREATE    create alias OA1P14.VPC147A1A for OA1P.VPC147A1A ;
CREATE    create alias OA1P14.VPC150A1A for OA1P.VPC150A1A ;
CREATE    create alias OA1P14.VPC151A1A for OA1P.VPC151A1A ;
CREATE    create alias OA1P14.VPC152A1A for OA1P.VPC152A1A ;
CREATE    create alias OA1P14.VPC153A1A for OA1P.VPC153A1A ;
CREATE    create alias OA1P14.VPC154A1A for OA1P.VPC154A1A ;
$#out                                              20120525 15:23:09
CREATE    create alias OA1P14.TPC014A1 for OA1P.TPC014A1 ;
*** run error ***
undefined variable li in envGet(li)
$#out
}¢--- A540769.WK.SQL(ALIASCR) cre=2008-03-04 mod=2008-03-04-13.47.53 F540769 ---
call sqlConnect DBLF
$;
$<<EOF
   SET CURRENT SQLID='S100447';
   CREATE ALIAS OA1P01.TPC014A1 FOR OA1P.TPC014A1;
   CREATE ALIAS OA1P01.TPC020A1 FOR OA1P.TPC020A1;
   CREATE ALIAS OA1P01.TPC021A1 FOR OA1P.TPC021A1;
   CREATE ALIAS OA1P01.TPC022A1 FOR OA1P.TPC022A1;
   CREATE ALIAS OA1P01.TPC023A1 FOR OA1P.TPC023A1;
   CREATE ALIAS OA1P01.TPC024A1 FOR OA1P.TPC024A1;
   CREATE ALIAS OA1P01.TPC025A1 FOR OA1P.TPC025A1;
   CREATE ALIAS OA1P01.TPC026A1 FOR OA1P.TPC026A1;
   CREATE ALIAS OA1P01.TPC027A1 FOR OA1P.TPC027A1;
   CREATE ALIAS OA1P01.TPC029A1 FOR OA1P.TPC029A1;
   CREATE ALIAS OA1P01.TPC030A1 FOR OA1P.TPC030A1;
   CREATE ALIAS OA1P01.TPC031A1 FOR OA1P.TPC031A1;
   CREATE ALIAS OA1P01.TPC040A1 FOR OA1P.TPC040A1;
   CREATE ALIAS OA1P01.TPC040H1 FOR OA1P.TPC040H1;
   CREATE ALIAS OA1P01.TPC041A1 FOR OA1P.TPC041A1;
   CREATE ALIAS OA1P01.TPC041H1 FOR OA1P.TPC041H1;
   CREATE ALIAS OA1P01.TPC050A1 FOR OA1P.TPC050A1;
   CREATE ALIAS OA1P01.TPC051A1 FOR OA1P.TPC051A1;
   CREATE ALIAS OA1P01.TPC052A1 FOR OA1P.TPC052A1;
   CREATE ALIAS OA1P01.TPC053A1 FOR OA1P.TPC053A1;
   CREATE ALIAS OA1P01.TPC060A1 FOR OA1P.TPC060A1;
   CREATE ALIAS OA1P01.TPC061A1 FOR OA1P.TPC061A1;
   CREATE ALIAS OA1P01.TPC062A1 FOR OA1P.TPC062A1;
   CREATE ALIAS OA1P01.TPC070A1 FOR OA1P.TPC070A1;
   CREATE ALIAS OA1P01.TPC098A1 FOR OA1P.TPC098A1;
   CREATE ALIAS OA1P01.TPC099A1 FOR OA1P.TPC099A1;
   CREATE ALIAS OA1P01.TPC100A1 FOR OA1P.TPC100A1;
   CREATE ALIAS OA1P01.TPC101A1 FOR OA1P.TPC101A1;
   CREATE ALIAS OA1P01.TPC102A1 FOR OA1P.TPC102A1;
   CREATE ALIAS OA1P01.TPC103A1 FOR OA1P.TPC103A1;
   CREATE ALIAS OA1P01.TPC104A1 FOR OA1P.TPC104A1;
   CREATE ALIAS OA1P01.TPC105A1 FOR OA1P.TPC105A1;
   CREATE ALIAS OA1P01.TPC106A1 FOR OA1P.TPC106A1;
--
   CREATE ALIAS OA1P01.VPC014A1A FOR OA1P.VPC014A1A;
   CREATE ALIAS OA1P01.VPC020A1A FOR OA1P.VPC020A1A;
   CREATE ALIAS OA1P01.VPC021A1A FOR OA1P.VPC021A1A;
   CREATE ALIAS OA1P01.VPC022A1A FOR OA1P.VPC022A1A;
   CREATE ALIAS OA1P01.VPC023A1A FOR OA1P.VPC023A1A;
   CREATE ALIAS OA1P01.VPC024A1A FOR OA1P.VPC024A1A;
   CREATE ALIAS OA1P01.VPC025A1A FOR OA1P.VPC025A1A;
   CREATE ALIAS OA1P01.VPC026A1A FOR OA1P.VPC026A1A;
   CREATE ALIAS OA1P01.VPC027A1A FOR OA1P.VPC027A1A;
   CREATE ALIAS OA1P01.VPC029A1A FOR OA1P.VPC029A1A;
   CREATE ALIAS OA1P01.VPC030A1A FOR OA1P.VPC030A1A;
   CREATE ALIAS OA1P01.VPC031A1A FOR OA1P.VPC031A1A;
   CREATE ALIAS OA1P01.VPC040A1A FOR OA1P.VPC040A1A;
   CREATE ALIAS OA1P01.VPC041A1A FOR OA1P.VPC041A1A;
   CREATE ALIAS OA1P01.VPC050A1A FOR OA1P.VPC050A1A;
   CREATE ALIAS OA1P01.VPC051A1A FOR OA1P.VPC051A1A;
   CREATE ALIAS OA1P01.VPC052A1A FOR OA1P.VPC052A1A;
   CREATE ALIAS OA1P01.VPC053A1A FOR OA1P.VPC053A1A;
   CREATE ALIAS OA1P01.VPC060A1A FOR OA1P.VPC060A1A;
   CREATE ALIAS OA1P01.VPC061A1A FOR OA1P.VPC061A1A;
   CREATE ALIAS OA1P01.VPC062A1A FOR OA1P.VPC062A1A;
   CREATE ALIAS OA1P01.VPC070A1A FOR OA1P.VPC070A1A;
   CREATE ALIAS OA1P01.VPC098A1A FOR OA1P.VPC098A1A;
   CREATE ALIAS OA1P01.VPC099A1A FOR OA1P.VPC099A1A;
   CREATE ALIAS OA1P01.VPC100A1A FOR OA1P.VPC100A1A;
   CREATE ALIAS OA1P01.VPC101A1A FOR OA1P.VPC101A1A;
   CREATE ALIAS OA1P01.VPC102A1A FOR OA1P.VPC102A1A;
   CREATE ALIAS OA1P01.VPC103A1A FOR OA1P.VPC103A1A;
   CREATE ALIAS OA1P01.VPC104A1A FOR OA1P.VPC104A1A;
   CREATE ALIAS OA1P01.VPC105A1A FOR OA1P.VPC105A1A;
   CREATE ALIAS OA1P01.VPC106A1A FOR OA1P.VPC106A1A;
   COMMIT;
--
   CREATE ALIAS OA1P02.TPC014A1 FOR OA1P.TPC014A1;
   CREATE ALIAS OA1P02.TPC020A1 FOR OA1P.TPC020A1;
   CREATE ALIAS OA1P02.TPC021A1 FOR OA1P.TPC021A1;
   CREATE ALIAS OA1P02.TPC022A1 FOR OA1P.TPC022A1;
   CREATE ALIAS OA1P02.TPC023A1 FOR OA1P.TPC023A1;
   CREATE ALIAS OA1P02.TPC024A1 FOR OA1P.TPC024A1;
   CREATE ALIAS OA1P02.TPC025A1 FOR OA1P.TPC025A1;
   CREATE ALIAS OA1P02.TPC026A1 FOR OA1P.TPC026A1;
   CREATE ALIAS OA1P02.TPC027A1 FOR OA1P.TPC027A1;
   CREATE ALIAS OA1P02.TPC029A1 FOR OA1P.TPC029A1;
   CREATE ALIAS OA1P02.TPC030A1 FOR OA1P.TPC030A1;
   CREATE ALIAS OA1P02.TPC031A1 FOR OA1P.TPC031A1;
   CREATE ALIAS OA1P02.TPC040A1 FOR OA1P.TPC040A1;
   CREATE ALIAS OA1P02.TPC040H1 FOR OA1P.TPC040H1;
   CREATE ALIAS OA1P02.TPC041A1 FOR OA1P.TPC041A1;
   CREATE ALIAS OA1P02.TPC041H1 FOR OA1P.TPC041H1;
   CREATE ALIAS OA1P02.TPC050A1 FOR OA1P.TPC050A1;
   CREATE ALIAS OA1P02.TPC051A1 FOR OA1P.TPC051A1;
   CREATE ALIAS OA1P02.TPC052A1 FOR OA1P.TPC052A1;
   CREATE ALIAS OA1P02.TPC053A1 FOR OA1P.TPC053A1;
   CREATE ALIAS OA1P02.TPC060A1 FOR OA1P.TPC060A1;
   CREATE ALIAS OA1P02.TPC061A1 FOR OA1P.TPC061A1;
   CREATE ALIAS OA1P02.TPC062A1 FOR OA1P.TPC062A1;
   CREATE ALIAS OA1P02.TPC070A1 FOR OA1P.TPC070A1;
   CREATE ALIAS OA1P02.TPC098A1 FOR OA1P.TPC098A1;
   CREATE ALIAS OA1P02.TPC099A1 FOR OA1P.TPC099A1;
   CREATE ALIAS OA1P02.TPC100A1 FOR OA1P.TPC100A1;
   CREATE ALIAS OA1P02.TPC101A1 FOR OA1P.TPC101A1;
   CREATE ALIAS OA1P02.TPC102A1 FOR OA1P.TPC102A1;
   CREATE ALIAS OA1P02.TPC103A1 FOR OA1P.TPC103A1;
   CREATE ALIAS OA1P02.TPC104A1 FOR OA1P.TPC104A1;
   CREATE ALIAS OA1P02.TPC105A1 FOR OA1P.TPC105A1;
   CREATE ALIAS OA1P02.TPC106A1 FOR OA1P.TPC106A1;
--
   CREATE ALIAS OA1P02.VPC014A1A FOR OA1P.VPC014A1A;
   CREATE ALIAS OA1P02.VPC020A1A FOR OA1P.VPC020A1A;
   CREATE ALIAS OA1P02.VPC021A1A FOR OA1P.VPC021A1A;
   CREATE ALIAS OA1P02.VPC022A1A FOR OA1P.VPC022A1A;
   CREATE ALIAS OA1P02.VPC023A1A FOR OA1P.VPC023A1A;
   CREATE ALIAS OA1P02.VPC024A1A FOR OA1P.VPC024A1A;
   CREATE ALIAS OA1P02.VPC025A1A FOR OA1P.VPC025A1A;
   CREATE ALIAS OA1P02.VPC026A1A FOR OA1P.VPC026A1A;
   CREATE ALIAS OA1P02.VPC027A1A FOR OA1P.VPC027A1A;
   CREATE ALIAS OA1P02.VPC029A1A FOR OA1P.VPC029A1A;
   CREATE ALIAS OA1P02.VPC030A1A FOR OA1P.VPC030A1A;
   CREATE ALIAS OA1P02.VPC031A1A FOR OA1P.VPC031A1A;
   CREATE ALIAS OA1P02.VPC040A1A FOR OA1P.VPC040A1A;
   CREATE ALIAS OA1P02.VPC041A1A FOR OA1P.VPC041A1A;
   CREATE ALIAS OA1P02.VPC050A1A FOR OA1P.VPC050A1A;
   CREATE ALIAS OA1P02.VPC051A1A FOR OA1P.VPC051A1A;
   CREATE ALIAS OA1P02.VPC052A1A FOR OA1P.VPC052A1A;
   CREATE ALIAS OA1P02.VPC053A1A FOR OA1P.VPC053A1A;
   CREATE ALIAS OA1P02.VPC060A1A FOR OA1P.VPC060A1A;
   CREATE ALIAS OA1P02.VPC061A1A FOR OA1P.VPC061A1A;
   CREATE ALIAS OA1P02.VPC062A1A FOR OA1P.VPC062A1A;
   CREATE ALIAS OA1P02.VPC070A1A FOR OA1P.VPC070A1A;
   CREATE ALIAS OA1P02.VPC098A1A FOR OA1P.VPC098A1A;
   CREATE ALIAS OA1P02.VPC099A1A FOR OA1P.VPC099A1A;
   CREATE ALIAS OA1P02.VPC100A1A FOR OA1P.VPC100A1A;
   CREATE ALIAS OA1P02.VPC101A1A FOR OA1P.VPC101A1A;
   CREATE ALIAS OA1P02.VPC102A1A FOR OA1P.VPC102A1A;
   CREATE ALIAS OA1P02.VPC103A1A FOR OA1P.VPC103A1A;
   CREATE ALIAS OA1P02.VPC104A1A FOR OA1P.VPC104A1A;
   CREATE ALIAS OA1P02.VPC105A1A FOR OA1P.VPC105A1A;
   CREATE ALIAS OA1P02.VPC106A1A FOR OA1P.VPC106A1A;
   COMMIT;
--
   CREATE ALIAS OA1P03.TPC014A1 FOR OA1P.TPC014A1;
   CREATE ALIAS OA1P03.TPC020A1 FOR OA1P.TPC020A1;
   CREATE ALIAS OA1P03.TPC021A1 FOR OA1P.TPC021A1;
   CREATE ALIAS OA1P03.TPC022A1 FOR OA1P.TPC022A1;
   CREATE ALIAS OA1P03.TPC023A1 FOR OA1P.TPC023A1;
   CREATE ALIAS OA1P03.TPC024A1 FOR OA1P.TPC024A1;
   CREATE ALIAS OA1P03.TPC025A1 FOR OA1P.TPC025A1;
   CREATE ALIAS OA1P03.TPC026A1 FOR OA1P.TPC026A1;
   CREATE ALIAS OA1P03.TPC027A1 FOR OA1P.TPC027A1;
   CREATE ALIAS OA1P03.TPC029A1 FOR OA1P.TPC029A1;
   CREATE ALIAS OA1P03.TPC030A1 FOR OA1P.TPC030A1;
   CREATE ALIAS OA1P03.TPC031A1 FOR OA1P.TPC031A1;
   CREATE ALIAS OA1P03.TPC040A1 FOR OA1P.TPC040A1;
   CREATE ALIAS OA1P03.TPC040H1 FOR OA1P.TPC040H1;
   CREATE ALIAS OA1P03.TPC041A1 FOR OA1P.TPC041A1;
   CREATE ALIAS OA1P03.TPC041H1 FOR OA1P.TPC041H1;
   CREATE ALIAS OA1P03.TPC050A1 FOR OA1P.TPC050A1;
   CREATE ALIAS OA1P03.TPC051A1 FOR OA1P.TPC051A1;
   CREATE ALIAS OA1P03.TPC052A1 FOR OA1P.TPC052A1;
   CREATE ALIAS OA1P03.TPC053A1 FOR OA1P.TPC053A1;
   CREATE ALIAS OA1P03.TPC060A1 FOR OA1P.TPC060A1;
   CREATE ALIAS OA1P03.TPC061A1 FOR OA1P.TPC061A1;
   CREATE ALIAS OA1P03.TPC062A1 FOR OA1P.TPC062A1;
   CREATE ALIAS OA1P03.TPC070A1 FOR OA1P.TPC070A1;
   CREATE ALIAS OA1P03.TPC098A1 FOR OA1P.TPC098A1;
   CREATE ALIAS OA1P03.TPC099A1 FOR OA1P.TPC099A1;
   CREATE ALIAS OA1P03.TPC100A1 FOR OA1P.TPC100A1;
   CREATE ALIAS OA1P03.TPC101A1 FOR OA1P.TPC101A1;
   CREATE ALIAS OA1P03.TPC102A1 FOR OA1P.TPC102A1;
   CREATE ALIAS OA1P03.TPC103A1 FOR OA1P.TPC103A1;
   CREATE ALIAS OA1P03.TPC104A1 FOR OA1P.TPC104A1;
   CREATE ALIAS OA1P03.TPC105A1 FOR OA1P.TPC105A1;
   CREATE ALIAS OA1P03.TPC106A1 FOR OA1P.TPC106A1;
--
   CREATE ALIAS OA1P03.VPC014A1A FOR OA1P.VPC014A1A;
   CREATE ALIAS OA1P03.VPC020A1A FOR OA1P.VPC020A1A;
   CREATE ALIAS OA1P03.VPC021A1A FOR OA1P.VPC021A1A;
   CREATE ALIAS OA1P03.VPC022A1A FOR OA1P.VPC022A1A;
   CREATE ALIAS OA1P03.VPC023A1A FOR OA1P.VPC023A1A;
   CREATE ALIAS OA1P03.VPC024A1A FOR OA1P.VPC024A1A;
   CREATE ALIAS OA1P03.VPC025A1A FOR OA1P.VPC025A1A;
   CREATE ALIAS OA1P03.VPC026A1A FOR OA1P.VPC026A1A;
   CREATE ALIAS OA1P03.VPC027A1A FOR OA1P.VPC027A1A;
   CREATE ALIAS OA1P03.VPC029A1A FOR OA1P.VPC029A1A;
   CREATE ALIAS OA1P03.VPC030A1A FOR OA1P.VPC030A1A;
   CREATE ALIAS OA1P03.VPC031A1A FOR OA1P.VPC031A1A;
   CREATE ALIAS OA1P03.VPC040A1A FOR OA1P.VPC040A1A;
   CREATE ALIAS OA1P03.VPC041A1A FOR OA1P.VPC041A1A;
   CREATE ALIAS OA1P03.VPC050A1A FOR OA1P.VPC050A1A;
   CREATE ALIAS OA1P03.VPC051A1A FOR OA1P.VPC051A1A;
   CREATE ALIAS OA1P03.VPC052A1A FOR OA1P.VPC052A1A;
   CREATE ALIAS OA1P03.VPC053A1A FOR OA1P.VPC053A1A;
   CREATE ALIAS OA1P03.VPC060A1A FOR OA1P.VPC060A1A;
   CREATE ALIAS OA1P03.VPC061A1A FOR OA1P.VPC061A1A;
   CREATE ALIAS OA1P03.VPC062A1A FOR OA1P.VPC062A1A;
   CREATE ALIAS OA1P03.VPC070A1A FOR OA1P.VPC070A1A;
   CREATE ALIAS OA1P03.VPC098A1A FOR OA1P.VPC098A1A;
   CREATE ALIAS OA1P03.VPC099A1A FOR OA1P.VPC099A1A;
   CREATE ALIAS OA1P03.VPC100A1A FOR OA1P.VPC100A1A;
   CREATE ALIAS OA1P03.VPC101A1A FOR OA1P.VPC101A1A;
   CREATE ALIAS OA1P03.VPC102A1A FOR OA1P.VPC102A1A;
   CREATE ALIAS OA1P03.VPC103A1A FOR OA1P.VPC103A1A;
   CREATE ALIAS OA1P03.VPC104A1A FOR OA1P.VPC104A1A;
   CREATE ALIAS OA1P03.VPC105A1A FOR OA1P.VPC105A1A;
   CREATE ALIAS OA1P03.VPC106A1A FOR OA1P.VPC106A1A;
   COMMIT;
--
   CREATE ALIAS OA1P04.TPC014A1 FOR OA1P.TPC014A1;
   CREATE ALIAS OA1P04.TPC020A1 FOR OA1P.TPC020A1;
   CREATE ALIAS OA1P04.TPC021A1 FOR OA1P.TPC021A1;
   CREATE ALIAS OA1P04.TPC022A1 FOR OA1P.TPC022A1;
   CREATE ALIAS OA1P04.TPC023A1 FOR OA1P.TPC023A1;
   CREATE ALIAS OA1P04.TPC024A1 FOR OA1P.TPC024A1;
   CREATE ALIAS OA1P04.TPC025A1 FOR OA1P.TPC025A1;
   CREATE ALIAS OA1P04.TPC026A1 FOR OA1P.TPC026A1;
   CREATE ALIAS OA1P04.TPC027A1 FOR OA1P.TPC027A1;
   CREATE ALIAS OA1P04.TPC029A1 FOR OA1P.TPC029A1;
   CREATE ALIAS OA1P04.TPC030A1 FOR OA1P.TPC030A1;
   CREATE ALIAS OA1P04.TPC031A1 FOR OA1P.TPC031A1;
   CREATE ALIAS OA1P04.TPC040A1 FOR OA1P.TPC040A1;
   CREATE ALIAS OA1P04.TPC040H1 FOR OA1P.TPC040H1;
   CREATE ALIAS OA1P04.TPC041A1 FOR OA1P.TPC041A1;
   CREATE ALIAS OA1P04.TPC041H1 FOR OA1P.TPC041H1;
   CREATE ALIAS OA1P04.TPC050A1 FOR OA1P.TPC050A1;
   CREATE ALIAS OA1P04.TPC051A1 FOR OA1P.TPC051A1;
   CREATE ALIAS OA1P04.TPC052A1 FOR OA1P.TPC052A1;
   CREATE ALIAS OA1P04.TPC053A1 FOR OA1P.TPC053A1;
   CREATE ALIAS OA1P04.TPC060A1 FOR OA1P.TPC060A1;
   CREATE ALIAS OA1P04.TPC061A1 FOR OA1P.TPC061A1;
   CREATE ALIAS OA1P04.TPC062A1 FOR OA1P.TPC062A1;
   CREATE ALIAS OA1P04.TPC070A1 FOR OA1P.TPC070A1;
   CREATE ALIAS OA1P04.TPC098A1 FOR OA1P.TPC098A1;
   CREATE ALIAS OA1P04.TPC099A1 FOR OA1P.TPC099A1;
   CREATE ALIAS OA1P04.TPC100A1 FOR OA1P.TPC100A1;
   CREATE ALIAS OA1P04.TPC101A1 FOR OA1P.TPC101A1;
   CREATE ALIAS OA1P04.TPC102A1 FOR OA1P.TPC102A1;
   CREATE ALIAS OA1P04.TPC103A1 FOR OA1P.TPC103A1;
   CREATE ALIAS OA1P04.TPC104A1 FOR OA1P.TPC104A1;
   CREATE ALIAS OA1P04.TPC105A1 FOR OA1P.TPC105A1;
   CREATE ALIAS OA1P04.TPC106A1 FOR OA1P.TPC106A1;
--
   CREATE ALIAS OA1P04.VPC014A1A FOR OA1P.VPC014A1A;
   CREATE ALIAS OA1P04.VPC020A1A FOR OA1P.VPC020A1A;
   CREATE ALIAS OA1P04.VPC021A1A FOR OA1P.VPC021A1A;
   CREATE ALIAS OA1P04.VPC022A1A FOR OA1P.VPC022A1A;
   CREATE ALIAS OA1P04.VPC023A1A FOR OA1P.VPC023A1A;
   CREATE ALIAS OA1P04.VPC024A1A FOR OA1P.VPC024A1A;
   CREATE ALIAS OA1P04.VPC025A1A FOR OA1P.VPC025A1A;
   CREATE ALIAS OA1P04.VPC026A1A FOR OA1P.VPC026A1A;
   CREATE ALIAS OA1P04.VPC027A1A FOR OA1P.VPC027A1A;
   CREATE ALIAS OA1P04.VPC029A1A FOR OA1P.VPC029A1A;
   CREATE ALIAS OA1P04.VPC030A1A FOR OA1P.VPC030A1A;
   CREATE ALIAS OA1P04.VPC031A1A FOR OA1P.VPC031A1A;
   CREATE ALIAS OA1P04.VPC040A1A FOR OA1P.VPC040A1A;
   CREATE ALIAS OA1P04.VPC041A1A FOR OA1P.VPC041A1A;
   CREATE ALIAS OA1P04.VPC050A1A FOR OA1P.VPC050A1A;
   CREATE ALIAS OA1P04.VPC051A1A FOR OA1P.VPC051A1A;
   CREATE ALIAS OA1P04.VPC052A1A FOR OA1P.VPC052A1A;
   CREATE ALIAS OA1P04.VPC053A1A FOR OA1P.VPC053A1A;
   CREATE ALIAS OA1P04.VPC060A1A FOR OA1P.VPC060A1A;
   CREATE ALIAS OA1P04.VPC061A1A FOR OA1P.VPC061A1A;
   CREATE ALIAS OA1P04.VPC062A1A FOR OA1P.VPC062A1A;
   CREATE ALIAS OA1P04.VPC070A1A FOR OA1P.VPC070A1A;
   CREATE ALIAS OA1P04.VPC098A1A FOR OA1P.VPC098A1A;
   CREATE ALIAS OA1P04.VPC099A1A FOR OA1P.VPC099A1A;
   CREATE ALIAS OA1P04.VPC100A1A FOR OA1P.VPC100A1A;
   CREATE ALIAS OA1P04.VPC101A1A FOR OA1P.VPC101A1A;
   CREATE ALIAS OA1P04.VPC102A1A FOR OA1P.VPC102A1A;
   CREATE ALIAS OA1P04.VPC103A1A FOR OA1P.VPC103A1A;
   CREATE ALIAS OA1P04.VPC104A1A FOR OA1P.VPC104A1A;
   CREATE ALIAS OA1P04.VPC105A1A FOR OA1P.VPC105A1A;
   CREATE ALIAS OA1P04.VPC106A1A FOR OA1P.VPC106A1A;
   COMMIT;
--
   CREATE ALIAS OA1P05.TPC014A1 FOR OA1P.TPC014A1;
   CREATE ALIAS OA1P05.TPC020A1 FOR OA1P.TPC020A1;
   CREATE ALIAS OA1P05.TPC021A1 FOR OA1P.TPC021A1;
   CREATE ALIAS OA1P05.TPC022A1 FOR OA1P.TPC022A1;
   CREATE ALIAS OA1P05.TPC023A1 FOR OA1P.TPC023A1;
   CREATE ALIAS OA1P05.TPC024A1 FOR OA1P.TPC024A1;
   CREATE ALIAS OA1P05.TPC025A1 FOR OA1P.TPC025A1;
   CREATE ALIAS OA1P05.TPC026A1 FOR OA1P.TPC026A1;
   CREATE ALIAS OA1P05.TPC027A1 FOR OA1P.TPC027A1;
   CREATE ALIAS OA1P05.TPC029A1 FOR OA1P.TPC029A1;
   CREATE ALIAS OA1P05.TPC030A1 FOR OA1P.TPC030A1;
   CREATE ALIAS OA1P05.TPC031A1 FOR OA1P.TPC031A1;
   CREATE ALIAS OA1P05.TPC040A1 FOR OA1P.TPC040A1;
   CREATE ALIAS OA1P05.TPC040H1 FOR OA1P.TPC040H1;
   CREATE ALIAS OA1P05.TPC041A1 FOR OA1P.TPC041A1;
   CREATE ALIAS OA1P05.TPC041H1 FOR OA1P.TPC041H1;
   CREATE ALIAS OA1P05.TPC050A1 FOR OA1P.TPC050A1;
   CREATE ALIAS OA1P05.TPC051A1 FOR OA1P.TPC051A1;
   CREATE ALIAS OA1P05.TPC052A1 FOR OA1P.TPC052A1;
   CREATE ALIAS OA1P05.TPC053A1 FOR OA1P.TPC053A1;
   CREATE ALIAS OA1P05.TPC060A1 FOR OA1P.TPC060A1;
   CREATE ALIAS OA1P05.TPC061A1 FOR OA1P.TPC061A1;
   CREATE ALIAS OA1P05.TPC062A1 FOR OA1P.TPC062A1;
   CREATE ALIAS OA1P05.TPC070A1 FOR OA1P.TPC070A1;
   CREATE ALIAS OA1P05.TPC098A1 FOR OA1P.TPC098A1;
   CREATE ALIAS OA1P05.TPC099A1 FOR OA1P.TPC099A1;
   CREATE ALIAS OA1P05.TPC100A1 FOR OA1P.TPC100A1;
   CREATE ALIAS OA1P05.TPC101A1 FOR OA1P.TPC101A1;
   CREATE ALIAS OA1P05.TPC102A1 FOR OA1P.TPC102A1;
   CREATE ALIAS OA1P05.TPC103A1 FOR OA1P.TPC103A1;
   CREATE ALIAS OA1P05.TPC104A1 FOR OA1P.TPC104A1;
   CREATE ALIAS OA1P05.TPC105A1 FOR OA1P.TPC105A1;
   CREATE ALIAS OA1P05.TPC106A1 FOR OA1P.TPC106A1;
--
   CREATE ALIAS OA1P05.VPC014A1A FOR OA1P.VPC014A1A;
   CREATE ALIAS OA1P05.VPC020A1A FOR OA1P.VPC020A1A;
   CREATE ALIAS OA1P05.VPC021A1A FOR OA1P.VPC021A1A;
   CREATE ALIAS OA1P05.VPC022A1A FOR OA1P.VPC022A1A;
   CREATE ALIAS OA1P05.VPC023A1A FOR OA1P.VPC023A1A;
   CREATE ALIAS OA1P05.VPC024A1A FOR OA1P.VPC024A1A;
   CREATE ALIAS OA1P05.VPC025A1A FOR OA1P.VPC025A1A;
   CREATE ALIAS OA1P05.VPC026A1A FOR OA1P.VPC026A1A;
   CREATE ALIAS OA1P05.VPC027A1A FOR OA1P.VPC027A1A;
   CREATE ALIAS OA1P05.VPC029A1A FOR OA1P.VPC029A1A;
   CREATE ALIAS OA1P05.VPC030A1A FOR OA1P.VPC030A1A;
   CREATE ALIAS OA1P05.VPC031A1A FOR OA1P.VPC031A1A;
   CREATE ALIAS OA1P05.VPC040A1A FOR OA1P.VPC040A1A;
   CREATE ALIAS OA1P05.VPC041A1A FOR OA1P.VPC041A1A;
   CREATE ALIAS OA1P05.VPC050A1A FOR OA1P.VPC050A1A;
   CREATE ALIAS OA1P05.VPC051A1A FOR OA1P.VPC051A1A;
   CREATE ALIAS OA1P05.VPC052A1A FOR OA1P.VPC052A1A;
   CREATE ALIAS OA1P05.VPC053A1A FOR OA1P.VPC053A1A;
   CREATE ALIAS OA1P05.VPC060A1A FOR OA1P.VPC060A1A;
   CREATE ALIAS OA1P05.VPC061A1A FOR OA1P.VPC061A1A;
   CREATE ALIAS OA1P05.VPC062A1A FOR OA1P.VPC062A1A;
   CREATE ALIAS OA1P05.VPC070A1A FOR OA1P.VPC070A1A;
   CREATE ALIAS OA1P05.VPC098A1A FOR OA1P.VPC098A1A;
   CREATE ALIAS OA1P05.VPC099A1A FOR OA1P.VPC099A1A;
   CREATE ALIAS OA1P05.VPC100A1A FOR OA1P.VPC100A1A;
   CREATE ALIAS OA1P05.VPC101A1A FOR OA1P.VPC101A1A;
   CREATE ALIAS OA1P05.VPC102A1A FOR OA1P.VPC102A1A;
   CREATE ALIAS OA1P05.VPC103A1A FOR OA1P.VPC103A1A;
   CREATE ALIAS OA1P05.VPC104A1A FOR OA1P.VPC104A1A;
   CREATE ALIAS OA1P05.VPC105A1A FOR OA1P.VPC105A1A;
   CREATE ALIAS OA1P05.VPC106A1A FOR OA1P.VPC106A1A;
   COMMIT;
--
   CREATE ALIAS OA1P06.TPC014A1 FOR OA1P.TPC014A1;
   CREATE ALIAS OA1P06.TPC020A1 FOR OA1P.TPC020A1;
   CREATE ALIAS OA1P06.TPC021A1 FOR OA1P.TPC021A1;
   CREATE ALIAS OA1P06.TPC022A1 FOR OA1P.TPC022A1;
   CREATE ALIAS OA1P06.TPC023A1 FOR OA1P.TPC023A1;
   CREATE ALIAS OA1P06.TPC024A1 FOR OA1P.TPC024A1;
   CREATE ALIAS OA1P06.TPC025A1 FOR OA1P.TPC025A1;
   CREATE ALIAS OA1P06.TPC026A1 FOR OA1P.TPC026A1;
   CREATE ALIAS OA1P06.TPC027A1 FOR OA1P.TPC027A1;
   CREATE ALIAS OA1P06.TPC029A1 FOR OA1P.TPC029A1;
   CREATE ALIAS OA1P06.TPC030A1 FOR OA1P.TPC030A1;
   CREATE ALIAS OA1P06.TPC031A1 FOR OA1P.TPC031A1;
   CREATE ALIAS OA1P06.TPC040A1 FOR OA1P.TPC040A1;
   CREATE ALIAS OA1P06.TPC040H1 FOR OA1P.TPC040H1;
   CREATE ALIAS OA1P06.TPC041A1 FOR OA1P.TPC041A1;
   CREATE ALIAS OA1P06.TPC041H1 FOR OA1P.TPC041H1;
   CREATE ALIAS OA1P06.TPC050A1 FOR OA1P.TPC050A1;
   CREATE ALIAS OA1P06.TPC051A1 FOR OA1P.TPC051A1;
   CREATE ALIAS OA1P06.TPC052A1 FOR OA1P.TPC052A1;
   CREATE ALIAS OA1P06.TPC053A1 FOR OA1P.TPC053A1;
   CREATE ALIAS OA1P06.TPC060A1 FOR OA1P.TPC060A1;
   CREATE ALIAS OA1P06.TPC061A1 FOR OA1P.TPC061A1;
   CREATE ALIAS OA1P06.TPC062A1 FOR OA1P.TPC062A1;
   CREATE ALIAS OA1P06.TPC070A1 FOR OA1P.TPC070A1;
   CREATE ALIAS OA1P06.TPC098A1 FOR OA1P.TPC098A1;
   CREATE ALIAS OA1P06.TPC099A1 FOR OA1P.TPC099A1;
   CREATE ALIAS OA1P06.TPC100A1 FOR OA1P.TPC100A1;
   CREATE ALIAS OA1P06.TPC101A1 FOR OA1P.TPC101A1;
   CREATE ALIAS OA1P06.TPC102A1 FOR OA1P.TPC102A1;
   CREATE ALIAS OA1P06.TPC103A1 FOR OA1P.TPC103A1;
   CREATE ALIAS OA1P06.TPC104A1 FOR OA1P.TPC104A1;
   CREATE ALIAS OA1P06.TPC105A1 FOR OA1P.TPC105A1;
   CREATE ALIAS OA1P06.TPC106A1 FOR OA1P.TPC106A1;
--
   CREATE ALIAS OA1P06.VPC014A1A FOR OA1P.VPC014A1A;
   CREATE ALIAS OA1P06.VPC020A1A FOR OA1P.VPC020A1A;
   CREATE ALIAS OA1P06.VPC021A1A FOR OA1P.VPC021A1A;
   CREATE ALIAS OA1P06.VPC022A1A FOR OA1P.VPC022A1A;
   CREATE ALIAS OA1P06.VPC023A1A FOR OA1P.VPC023A1A;
   CREATE ALIAS OA1P06.VPC024A1A FOR OA1P.VPC024A1A;
   CREATE ALIAS OA1P06.VPC025A1A FOR OA1P.VPC025A1A;
   CREATE ALIAS OA1P06.VPC026A1A FOR OA1P.VPC026A1A;
   CREATE ALIAS OA1P06.VPC027A1A FOR OA1P.VPC027A1A;
   CREATE ALIAS OA1P06.VPC029A1A FOR OA1P.VPC029A1A;
   CREATE ALIAS OA1P06.VPC030A1A FOR OA1P.VPC030A1A;
   CREATE ALIAS OA1P06.VPC031A1A FOR OA1P.VPC031A1A;
   CREATE ALIAS OA1P06.VPC040A1A FOR OA1P.VPC040A1A;
   CREATE ALIAS OA1P06.VPC041A1A FOR OA1P.VPC041A1A;
   CREATE ALIAS OA1P06.VPC050A1A FOR OA1P.VPC050A1A;
   CREATE ALIAS OA1P06.VPC051A1A FOR OA1P.VPC051A1A;
   CREATE ALIAS OA1P06.VPC052A1A FOR OA1P.VPC052A1A;
   CREATE ALIAS OA1P06.VPC053A1A FOR OA1P.VPC053A1A;
   CREATE ALIAS OA1P06.VPC060A1A FOR OA1P.VPC060A1A;
   CREATE ALIAS OA1P06.VPC061A1A FOR OA1P.VPC061A1A;
   CREATE ALIAS OA1P06.VPC062A1A FOR OA1P.VPC062A1A;
   CREATE ALIAS OA1P06.VPC070A1A FOR OA1P.VPC070A1A;
   CREATE ALIAS OA1P06.VPC098A1A FOR OA1P.VPC098A1A;
   CREATE ALIAS OA1P06.VPC099A1A FOR OA1P.VPC099A1A;
   CREATE ALIAS OA1P06.VPC100A1A FOR OA1P.VPC100A1A;
   CREATE ALIAS OA1P06.VPC101A1A FOR OA1P.VPC101A1A;
   CREATE ALIAS OA1P06.VPC102A1A FOR OA1P.VPC102A1A;
   CREATE ALIAS OA1P06.VPC103A1A FOR OA1P.VPC103A1A;
   CREATE ALIAS OA1P06.VPC104A1A FOR OA1P.VPC104A1A;
   CREATE ALIAS OA1P06.VPC105A1A FOR OA1P.VPC105A1A;
   CREATE ALIAS OA1P06.VPC106A1A FOR OA1P.VPC106A1A;
   COMMIT;
--
   CREATE ALIAS OA1P07.TPC014A1 FOR OA1P.TPC014A1;
   CREATE ALIAS OA1P07.TPC020A1 FOR OA1P.TPC020A1;
   CREATE ALIAS OA1P07.TPC021A1 FOR OA1P.TPC021A1;
   CREATE ALIAS OA1P07.TPC022A1 FOR OA1P.TPC022A1;
   CREATE ALIAS OA1P07.TPC023A1 FOR OA1P.TPC023A1;
   CREATE ALIAS OA1P07.TPC024A1 FOR OA1P.TPC024A1;
   CREATE ALIAS OA1P07.TPC025A1 FOR OA1P.TPC025A1;
   CREATE ALIAS OA1P07.TPC026A1 FOR OA1P.TPC026A1;
   CREATE ALIAS OA1P07.TPC027A1 FOR OA1P.TPC027A1;
   CREATE ALIAS OA1P07.TPC029A1 FOR OA1P.TPC029A1;
   CREATE ALIAS OA1P07.TPC030A1 FOR OA1P.TPC030A1;
   CREATE ALIAS OA1P07.TPC031A1 FOR OA1P.TPC031A1;
   CREATE ALIAS OA1P07.TPC040A1 FOR OA1P.TPC040A1;
   CREATE ALIAS OA1P07.TPC040H1 FOR OA1P.TPC040H1;
   CREATE ALIAS OA1P07.TPC041A1 FOR OA1P.TPC041A1;
   CREATE ALIAS OA1P07.TPC041H1 FOR OA1P.TPC041H1;
   CREATE ALIAS OA1P07.TPC050A1 FOR OA1P.TPC050A1;
   CREATE ALIAS OA1P07.TPC051A1 FOR OA1P.TPC051A1;
   CREATE ALIAS OA1P07.TPC052A1 FOR OA1P.TPC052A1;
   CREATE ALIAS OA1P07.TPC053A1 FOR OA1P.TPC053A1;
   CREATE ALIAS OA1P07.TPC060A1 FOR OA1P.TPC060A1;
   CREATE ALIAS OA1P07.TPC061A1 FOR OA1P.TPC061A1;
   CREATE ALIAS OA1P07.TPC062A1 FOR OA1P.TPC062A1;
   CREATE ALIAS OA1P07.TPC070A1 FOR OA1P.TPC070A1;
   CREATE ALIAS OA1P07.TPC098A1 FOR OA1P.TPC098A1;
   CREATE ALIAS OA1P07.TPC099A1 FOR OA1P.TPC099A1;
   CREATE ALIAS OA1P07.TPC100A1 FOR OA1P.TPC100A1;
   CREATE ALIAS OA1P07.TPC101A1 FOR OA1P.TPC101A1;
   CREATE ALIAS OA1P07.TPC102A1 FOR OA1P.TPC102A1;
   CREATE ALIAS OA1P07.TPC103A1 FOR OA1P.TPC103A1;
   CREATE ALIAS OA1P07.TPC104A1 FOR OA1P.TPC104A1;
   CREATE ALIAS OA1P07.TPC105A1 FOR OA1P.TPC105A1;
   CREATE ALIAS OA1P07.TPC106A1 FOR OA1P.TPC106A1;
--
   CREATE ALIAS OA1P07.VPC014A1A FOR OA1P.VPC014A1A;
   CREATE ALIAS OA1P07.VPC020A1A FOR OA1P.VPC020A1A;
   CREATE ALIAS OA1P07.VPC021A1A FOR OA1P.VPC021A1A;
   CREATE ALIAS OA1P07.VPC022A1A FOR OA1P.VPC022A1A;
   CREATE ALIAS OA1P07.VPC023A1A FOR OA1P.VPC023A1A;
   CREATE ALIAS OA1P07.VPC024A1A FOR OA1P.VPC024A1A;
   CREATE ALIAS OA1P07.VPC025A1A FOR OA1P.VPC025A1A;
   CREATE ALIAS OA1P07.VPC026A1A FOR OA1P.VPC026A1A;
   CREATE ALIAS OA1P07.VPC027A1A FOR OA1P.VPC027A1A;
   CREATE ALIAS OA1P07.VPC029A1A FOR OA1P.VPC029A1A;
   CREATE ALIAS OA1P07.VPC030A1A FOR OA1P.VPC030A1A;
   CREATE ALIAS OA1P07.VPC031A1A FOR OA1P.VPC031A1A;
   CREATE ALIAS OA1P07.VPC040A1A FOR OA1P.VPC040A1A;
   CREATE ALIAS OA1P07.VPC041A1A FOR OA1P.VPC041A1A;
   CREATE ALIAS OA1P07.VPC050A1A FOR OA1P.VPC050A1A;
   CREATE ALIAS OA1P07.VPC051A1A FOR OA1P.VPC051A1A;
   CREATE ALIAS OA1P07.VPC052A1A FOR OA1P.VPC052A1A;
   CREATE ALIAS OA1P07.VPC053A1A FOR OA1P.VPC053A1A;
   CREATE ALIAS OA1P07.VPC060A1A FOR OA1P.VPC060A1A;
   CREATE ALIAS OA1P07.VPC061A1A FOR OA1P.VPC061A1A;
   CREATE ALIAS OA1P07.VPC062A1A FOR OA1P.VPC062A1A;
   CREATE ALIAS OA1P07.VPC070A1A FOR OA1P.VPC070A1A;
   CREATE ALIAS OA1P07.VPC098A1A FOR OA1P.VPC098A1A;
   CREATE ALIAS OA1P07.VPC099A1A FOR OA1P.VPC099A1A;
   CREATE ALIAS OA1P07.VPC100A1A FOR OA1P.VPC100A1A;
   CREATE ALIAS OA1P07.VPC101A1A FOR OA1P.VPC101A1A;
   CREATE ALIAS OA1P07.VPC102A1A FOR OA1P.VPC102A1A;
   CREATE ALIAS OA1P07.VPC103A1A FOR OA1P.VPC103A1A;
   CREATE ALIAS OA1P07.VPC104A1A FOR OA1P.VPC104A1A;
   CREATE ALIAS OA1P07.VPC105A1A FOR OA1P.VPC105A1A;
   CREATE ALIAS OA1P07.VPC106A1A FOR OA1P.VPC106A1A;
   COMMIT;
EOF
    $@for x $@{
         li = $x
         parse var li w1 w2 cr'.'tb .
         if w1 <> create then do
              $$ $x
              iterate
              end
         call sql2St x, "select 1 from sysibm.sysTables" ,
                          "where type = 'A' and creator = '"cr"'" ,
                                           "and name = '"tb"'"
         if m.x.0 = 0 then
             $$ $x
         $}
$>~wk.sql(aliascrt)
$;
call sqlDisconnect
$***out            20080304 13:47:22
$***out            20080304 13:46:40
$***out            20080304 13:36:55
$***out            20080304 13:35:43
$***out            20080304 13:34:45
$***out            20080304 13:33:40
$***out            20080304 13:22:28
$***out            20080304 13:20:46
}¢--- A540769.WK.SQL(ALIASCRT) cre= mod= ---------------------------------------
   SET CURRENT SQLID='S100447';
--
   COMMIT;
--
--
   COMMIT;
--
--
   COMMIT;
--
--
   COMMIT;
--
--
   COMMIT;
--
--
   COMMIT;
--
--
   COMMIT;
}¢--- A540769.WK.SQL(ALIASDRO) cre=2008-03-04 mod=2008-03-04-13.45.57 F540769 ---
   SET CURRENT SQLID='S100447';
   drop ALIAS OA1T07.VPC014A1A                   ;
   drop ALIAS OA1T07.VPC020A1A                   ;
   drop ALIAS OA1T07.VPC021A1A                   ;
   drop ALIAS OA1T07.VPC022A1A                   ;
   drop ALIAS OA1T07.VPC023A1A                   ;
   drop ALIAS OA1T07.VPC024A1A                   ;
   drop ALIAS OA1T07.VPC025A1A                   ;
   drop ALIAS OA1T07.VPC026A1A                   ;
   drop ALIAS OA1T07.VPC027A1A                   ;
   drop ALIAS OA1T07.VPC029A1A                   ;
   drop ALIAS OA1T07.VPC030A1A                   ;
   drop ALIAS OA1T07.VPC031A1A                   ;
   commit; -- OA1T07.VPC040A1A                   ;
   drop ALIAS OA1T07.VPC041A1A                   ;
   drop ALIAS OA1T07.VPC050A1A                   ;
   drop ALIAS OA1T07.VPC051A1A                   ;
   drop ALIAS OA1T07.VPC052A1A                   ;
   drop ALIAS OA1T07.VPC053A1A                   ;
   drop ALIAS OA1T07.VPC060A1A                   ;
   drop ALIAS OA1T07.VPC061A1A                   ;
   drop ALIAS OA1T07.VPC062A1A                   ;
   drop ALIAS OA1T07.VPC070A1A                   ;
   drop ALIAS OA1T07.VPC098A1A                   ;
   drop ALIAS OA1T07.VPC099A1A                   ;
   drop ALIAS OA1T07.VPC100A1A                   ;
   drop ALIAS OA1T07.VPC101A1A                   ;
   drop ALIAS OA1T07.VPC102A1A                   ;
   drop ALIAS OA1T07.VPC103A1A                   ;
   drop ALIAS OA1T07.VPC104A1A                   ;
   drop ALIAS OA1T07.VPC105A1A                   ;
   drop ALIAS OA1T07.VPC106A1A                   ;
   COMMIT;
}¢--- A540769.WK.SQL(ALIASMK) cre=2010-06-15 mod=2016-11-03-09.27.27 A540769 ---
$*(--- wsh script um  Alias abzugleichen -------------------------------

     1. $=fun=list: eine Liste der Alias erstellen, ins dsn $aliasDsn
           ==> auf dem quellSystem, connect auf die richtige ssid|
     2. $=fun=comp: Alias vergleichen: die fehlenden
                          oder unterschiedlichen aliase rausschreiben
           ==> auf dem zielSystem, connect auf die richtige ssid|
     3. $=fun=crea: create fehlende Alias (sonst wie comp)
-------------------------------------------------------------------- $*)

call sqlConnect dbtf
$=fun = comp
$=aliasDsn=A540769.WK.TEXW(ALIAS)
eq = 0
nn = 0

if $fun == 'list' then $@¢
    $>$aliasDsn
    call sqlPreOpen 1, "select strip(creator) || '.' || strip(name),",
                          "strip(location), createdTs, ",
                          "strip(tbCreator) || '.' || strip(tbName)",
                        "from sysibm.sysTables" ,
                        "where type = 'A'",
                        "order by 1, 2"
    do while sqlFetchInto(1, ":tb, :loc, :cr, :to")
        $$- 'tb' tb 'loc' loc 'to' to 'cr' cr
        nn = nn + 1
        end
    say nn 'alias gefunden'
    call sqlClose 1
$! else $@¢
    call sqlExec "set current sqlId = 'S100447'"
    $@proc prep $@¢
    call sqlPrepare 1, "select strip(creator) || '.' || strip(name),",
                              "strip(location), createdTs, type, ",
                              "strip(tbCreator) || '.' || strip(tbName)",
                            "from sysibm.sysTables" ,
                            "where  creator = ? and name = ?"
                $!
    $@prep()
    $;
    $<$aliasDsn
    $@for line $@¢
        parse value $line with 'tb' cr '.' tb 'loc' loc 'to' to 'cr' tst .
        if sqlOpAllCl(1, st, ":fTb, :fLo, :fTst, :fTy, :fTo",
               , strip(cr), strip(tb)) = 1 then do
            if strip(loc) = fLo & strip(to) = fTo & fTy == 'A' then do
                eq = eq+1 /* say 'equal' strip(fTb) '=' */
                end
            else do
                m = 'notEq' strip(fTb)':' strip(loc)'.'strip(to) ,
                                      '<>' fTy fLo'.'fTo
                say m
                $$- m
                end
            end
        else if m.st.0 > 0 then do
            say tb 'with' m.st.0 'rows'
            end
        else do
            $$- 'missing' strip(cr)'.'strip(tb) 'loc' strip(loc) $*+
                  'to' strip(to) tst
            if loc = '' & $fun == 'crea' then do
                call sqlExec 'create alias' strip(cr)'.'strip(tb) ,
                             'for' strip(to)
                nn = nn + 1
                if nn // 100 = 1 then do
                    say 'created' nn  strip(cr)'.'strip(tb)
                    call sqlCommit
                    $@prep()
                    end
                end
            end
        $!
    call sqlCommit
    say 'total equal' eq
$!
call sqlDisconnect
$#out                                              20100615 16:50:30
$#out                                              20100615 16:48:52
$#out                                              20100615 16:47:50
$#out                                              20100615 16:16:57
notEq OA1P.TTP011A1RZ4: CHSKA000DBOL.OA1P.TTP011A1 <> A .OA1P.TTP011A1
notEq OA1P.TTP012A1RZ4: CHSKA000DBOL.OA1P.TTP012A1 <> A .OA1P.TTP012A1
notEq OA1P17.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P17.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P18.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P18.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P19.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P19.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P20.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P20.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P21.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P21.TAV415A1: .OA1P03.TAV415A1 <> T ..
notEq OA1P22.TAV413A1: .OA1P03.TAV413A1 <> T ..
notEq OA1P22.TAV415A1: .OA1P03.TAV415A1 <> T ..
$#out                                              20100615 16:16:42
}¢--- A540769.WK.SQL(ALIASYN) cre=2006-05-23 mod=2006-06-07-14.25.32 F540769 ---
SELECT  'CREATE ALIAS '
      || STRIP(A.CREATOR) || '.' || STRIP(A.NAME) || ' FOR '
      || CASE WHEN A.LOCATION <> ''
              THEN STRIP(A.LOCATION) || '.' ELSE '' END
      || STRIP(A.TBCREATOR) || '.' || STRIP(A.TBNAME) || ';'
      --,A.NAME, A.CREATOR, A.DBNAME, A.TSNAME, 'X' || A.LOCATION || 'Y'
    FROM SYSIBM.SYSTABLES A, SYSIBM.SYSTABLES T
    WHERE   A.TBCREATOR = T.CREATOR
        AND A.TBNAME    = T.NAME
        AND A.TYPE =  'A'
        AND T.TYPE <> 'A'
        AND T.DBNAME LIKE 'DDI01'
;
SELECT STRIP(S.CREATOR) || ' - CREATE SYNONYM '
       || STRIP(S.NAME) ||' FOR '
       || STRIP(S.TBCREATOR) || '.' || STRIP(S.TBNAME) || ';'
  FROM SYSIBM.SYSSYNONYMS S,SYSIBM.SYSTABLES T
    WHERE   S.TBCREATOR = T.CREATOR
        AND S.TBNAME = T.NAME
        AND T.DBNAME LIKE 'DDI01'
    ORDER BY S.CREATOR
;
}¢--- A540769.WK.SQL(ALTER) cre=2013-03-13 mod=2013-03-13-12.47.43 A540769 -----
set current sqlid = 'S100447';
alter table A540769.twk403p1
    alter column name drop not    null;
rollback
}¢--- A540769.WK.SQL(ALTERADD) cre=2014-12-23 mod=2014-12-23-12.19.40 A540769 ---
alter table A540769.plan_table                                          00010000
 add "SCAN_DIRECTION"     CHAR(1)                                       00020000
 add "EXPANSION_REASON"   CHAR(2)      NOT NULL WITH DEFAULT            00030000
;                                                                       00040000
rollback                                                                00050000
}¢--- A540769.WK.SQL(ALTERGEN) cre=2014-12-12 mod=2014-12-12-11.45.32 A540769 ---
 $#@
 $*(                      alter genid to restart at next value
 $*)
 $= fun = s               $** s = show
                          $** a = alter restart to mx+1
 $= tb = TTT609A1
 $= cr = OA1P
 $= idCol = "INSTANCE_TUID"
 call sqlConnect DE0G
 mxC = sql2One('select max('$idCol') from' $cr'.'$tb)
 say $cr'.'$tb 'max' $idCol '=' mxC
 mxS = sql2One('select value(s.restartWith, s.maxAssignedVal)' ,
                    'from sysibm.sysSequencesDep   d' ,
                      'join sysibm.sysSequences s' ,
                         'on s.sequenceId = d.bSequenceId' ,
                    "where dName = '"$tb"' and dCreator = '"$cr"'")
 say $cr'.'$tb 'sequece max =' mxS
 if $fun == 'a' then $@¢
     call sqlUpdate 3, 'alter table' $cr'.'$tb,
          'alter' $idCol 'restart with' (mxC + 1)
     say 'altered to restart with' (mxC + 1)
     $!
 $#out                                              20141212 11:35:05
}¢--- A540769.WK.SQL(ALTERQTJ) cre=2012-06-27 mod=2012-06-28-17.36.21 A540769 ---
//A540769W JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M                                     00030000
//*MAIN CLASS=LOG0                                                      00040000
//S1       EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,                      00020001
//            PARM='%WSH'
//SYSPROC   DD DSN=A540769.WK.REXX,DISP=SHR
//SYSPRINT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//SYSTSPRT  DD SYSOUT=*
//OUT       DD SYSOUT=*
//SYSTSIN   DD DUMMY
//WSH       DD *
$#@
call sqlConnect dbba
say "set sqlid sqlcode:" sqlUpdate(, "set current sqlid = 'S100447'")
$=dSp=200
$=dPa=1000
$=dTi=10
$=sleep=5
$;
$<#¢
 with s as
 (
 SELECT strip(DBNAME) db, strip(tsName) ts,
         sum(case when pqty = -1 then 0 else 1 end) pri,
         sum(case when sqty = -1 then 0 else 1 end) sec,
         count(*) cnt
      from SYSIBM.SYSTABLEPART
      where dbname not like 'DSNDB%' and dbName not like 'WKDB%'
      group by dbName, tsName
 )
 select * from s
     where pri >  0 or sec > 0
     order by db, ts
     with ur
$!
call sqlQuery(55)
cPa = 0
lSp = 0
do cSp=1 while sqlFetch(55, d)
    cPa = cPa + m.d.cnt
 /* say m.d.db m.d.ts m.d.pri m.d.sec m.d.cnt */
    s1 = 'alter tablespace' m.d.db'.'m.d.ts
    if m.d.pri <> 0 then
        call sqlUpdate , s1 'priqty -1', '* say'
    if m.d.sec <> 0 then
        call sqlUpdate , s1 'secqty -1', '* say'
    if cSp >= lSp | cPa >= lPa | time('e') >= lTi then do
        say time() 'commit' cSp 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
                      ': sqlCode' sqlUpdate(, 'commit')
        call sleep $sleep, 0
        lSp = cSp + $dSp
        lPa = cPa + $dPa
        lTi = time('e') + $dTi
        end
    end
say time() 'end commit' (cSp-1) 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
                      ': sqlCode' sqlUpdate(, 'commit')
call sqlClose 55
$;
$<#¢
 with s as
 (
 SELECT strip(ixCreator) cr, strip(ixName) ix,
         sum(case when pqty = -1 then 0 else 1 end) pri,
         sum(case when sqty = -1 then 0 else 1 end) sec,
         count(*) cnt
      from SYSIBM.SYSIndexPART ip
         join sysibm.sysIndexes ix
           on ip.ixcreator = ix.creator and ip.ixName = ix.name
      where ix.dbname not like 'DSNDB%' and  ix.dbName not like 'WKDB%'
      group by ixCreator, ixName
 )
 select * from s
     where pri > 0 or sec > 0
     order by cr, ix
     with ur
$!
call sqlQuery(66)
cPa = 0
lSp = 0
do cSp=1 while sqlFetch(66, d)
    cPa = cPa + m.d.cnt
 /*  say m.d.cr m.d.ix m.d.pri m.d.sec m.d.cnt */
    s1 = 'alter index' m.d.cr'."'m.d.ix'"'
    if m.d.pri <> 0 then
        call sqlUpdate , s1 'priqty -1', '* say'
    if m.d.sec <> 0 then
        call sqlUpdate , s1 'secqty -1', '* say'
    if cSp >= lSp | cPa >= lPa | time('e') >= lTi then do
        say time() 'commit' cSp 'ix,' cPa 'parts,' m.d.cr'.'m.d.ix ,
                      ': sqlCode' sqlUpdate(, 'commit')
        call sleep $sleep, 0
        lSp = cSp + $dSp
        lPa = cPa + $dPa
        lTi = time('e') + $dTi
        end
    end
say time() 'end commit' (cSp-1) 'ix,' cPa 'parts,' m.d.db'.'m.d.ts ,
                      ': sqlCode' sqlUpdate(, 'commit')
call sqlClose 66
$;
$#out                                              20120628 17:30:19
$#out                                              20120628 13:47:29
$#out                                              20120627 17:51:57
}¢--- A540769.WK.SQL(ALTERQTY) cre=2012-06-27 mod=2016-03-29-14.00.57 A540769 ---
$#@
call sqlConnect dp4g
$<>
$<#¢
 with s as
 (
 SELECT strip(DBNAME) db, strip(tsName) ts,
         sum(case when pqty = -1 then 0 else 1 end) pri,
         sum(case when sqty = -1 then 0 else 1 end) sec,
         count(*) cnt
      from SYSIBM.SYSTABLEPART
      where dbname like 'DB2PDB%'
      group by dbName, tsName
 )
 select 'alter tablespace' || strip(dbName) || '.' || strip(tsName)
           || ' priQty -1 secQty -1;'
     where pri >  0 or sec > 0
     order by db, ts
     with ur
$!
call sqlSel
$| call fTabAuto
$#end
call sqlConnect dp4g
say "set sqlid sqlcode:" sqlUpdate(, "set current sqlid = 'S100447'")
$=dSp=200
$=dPa=1000
$=dTi=10
$=sleep=1
$;
$<#¢
 with s as
 (
 SELECT strip(DBNAME) db, strip(tsName) ts,
         sum(case when pqty = -1 then 0 else 1 end) pri,
         sum(case when sqty = -1 then 0 else 1 end) sec,
         count(*) cnt
      from SYSIBM.SYSTABLEPART
      where dbname not like 'DSNDB%' and dbName not like 'WKDB%'
      group by dbName, tsName
 )
 select * from s
     where pri >  0 or sec > 0
     order by db, ts
     with ur
$!
call sqlQuery(55)
cPa = 0
lSp = 0
do cSp=1 while sqlFetch(55, d)
    cPa = cPa + m.d.cnt
 /* say m.d.db m.d.ts m.d.pri m.d.sec m.d.cnt */
    s1 = 'alter tablespace' m.d.db'.'m.d.ts
    if m.d.pri <> 0 then
        call sqlUpdate , s1 'priqty -1', '* say'
    if m.d.sec <> 0 then
        call sqlUpdate , s1 'secqty -1', '* say'
    if cSp >= lSp | cPa >= lPa | time('e') >= lTi then do
        say time() 'commit' cSp 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
                      ': sqlCode' sqlUpdate(, 'commit')
        call sleep $sleep, 0
        lSp = cSp + $dSp
        lPa = cPa + $dPa
        lTi = time('e') + $dTi
        end
    end
say time() 'end commit' (cSp-1) 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
                      ': sqlCode' sqlUpdate(, 'commit')
call sqlClose 55
$;
$<#¢
 with s as
 (
 SELECT strip(ixCreator) cr, strip(ixName) ix,
         sum(case when pqty = -1 then 0 else 1 end) pri,
         sum(case when sqty = -1 then 0 else 1 end) sec,
         count(*) cnt
      from SYSIBM.SYSIndexPART ip
         join sysibm.sysIndexes ix
           on ip.ixcreator = ix.creator and ip.ixName = ix.name
      where ix.dbname not like 'DSNDB%' and  ix.dbName not like 'WKDB%'
      group by ixCreator, ixName
 )
 select * from s
     where pri > 0 or sec > 0
     order by cr, ix
     with ur
$!
call sqlQuery(66)
cPa = 0
lSp = 0
do cSp=1 while sqlFetch(66, d)
    cPa = cPa + m.d.cnt
 /*  say m.d.cr m.d.ix m.d.pri m.d.sec m.d.cnt */
    s1 = 'alter index' m.d.cr'."'m.d.ix'"'
    if m.d.pri <> 0 then
        call sqlUpdate , s1 'priqty -1', '* say'
    if m.d.sec <> 0 then
        call sqlUpdate , s1 'secqty -1', '* say'
    if cSp >= lSp | cPa >= lPa | time('e') >= lTi then do
        say time() 'commit' cSp 'ix,' cPa 'parts,' m.d.cr'.'m.d.ix ,
                      ': sqlCode' sqlUpdate(, 'commit')
        call sleep $sleep, 0
        lSp = cSp + $dSp
        lPa = cPa + $dPa
        lTi = time('e') + $dTi
        end
    end
say time() 'end commit' (cSp-1) 'tb,' cPa 'parts,' m.d.db'.'m.d.ts ,
                      ': sqlCode' sqlUpdate(, 'commit')
call sqlClose 66
$;
$#out                                              20160329 13:58:22
DB      TS       P S C
DB2PDB1 DMRPRAAA 1 1 1
DB2PDB1 DMRPRATR 1 1 1
DB2PDB1 DMRPRAUB 1 1 1
DB2PDB1 DMRPRAUC 1 1 1
DB2PDB1 DMRPRAUD 1 1 1
DB2PDB1 DMRPRAUF 1 1 1
DB2PDB1 DMRPRAUG 1 1 1
DB2PDB1 DMRPRAUM 1 1 1
DB2PDB1 DMRPRAUN 1 1 1
DB2PDB1 DMRPRAUS 1 0 1
DB2PDB1 DMRPRAUU 1 1 1
DB2PDB1 DMRPRTA2 1 1 1
DB2PDB1 DMRPRTB2 1 1 1
DB2PDB1 DMRPRTBD 1 1 1
DB2PDB1 DMRPRTBS 1 1 1
DB2PDB1 DMRPRTD2 1 1 1
DB2PDB1 DMRPRTDD 1 1 1
DB2PDB1 DMRPRTDS 1 1 1
DB2PDB1 DMRPRTF2 1 1 1
DB2PDB1 DMRPRTFS 1 1 1
DB2PDB1 DMRPRTP2 1 1 1
DB2PDB1 DMRPRTSF 1 1 1
DB2PDB1 DMRPRTSS 1 0 1
DB2PDB1 DMRPRTT2 1 1 1
DB2PDB1 DMRPRTTS 1 1 1
$#out                                              20120628 13:47:29
$#out                                              20120627 17:51:57
}¢--- A540769.WK.SQL(ALTER01) cre=2012-05-25 mod=2012-05-25-10.37.02 A540769 ---
select count(*), ALT05004, year(ALT05006)
            from S100447.alter01
    where ALT05007 = 'DBOF'
    group by ALT05004, year(ALT05006)
    order by 3 desc, 2
 -- fetch first 1000 rows only
    with ur
}¢--- A540769.WK.SQL(ALTREST) cre=2006-03-06 mod=2006-03-06-10.35.16 F540769 ---
alter table dgdb9998.TWK0x1A                                            00020004
      alter column WK001xD restart with 111;                            00030003
commit;                                                                 00040000
}¢--- A540769.WK.SQL(ALTTB) cre=2006-03-03 mod=2006-03-03-17.26.11 F540769 -----
set current sqlid = 's100447';
alter table A540769.twk001a drop column
}¢--- A540769.WK.SQL(AUTH) cre=2008-06-30 mod=2008-07-07-10.14.54 F540769 ------
set current sqlid = 'Y104639';
select * from A540769a.Twk011A;
x
select current sqlid
    from sysibm.sysdummy1;
set current sqlid = 'A345345';
-- create database gibtEsNi;
--drop   database gibtEsNi;
rollback;
select *
 -- from oa1a.TMF009A1
    from A540769A.TWK011A
    fetch  first 10 rows only
;
update
 --      oa1a.TMF009A1
         A540769A.TWK011A
    set  WK011CH2 = 'x'
;
    fetch  first 10 rows only
}¢--- A540769.WK.SQL(AV115) cre=2015-03-19 mod=2015-03-19-10.12.05 A540769 -----
set current sqlid = 'S100447';
?REATE  INDEX OA1P.IAV115A1 ON OA1P.TAV115A1
        ( AV115264 ASC
        , AV115193 ASC
          )
           PARTITIONED
        USING STOGROUP GSMS
                                    ERASE NO
           FREEPAGE 0
           PCTFREE 10
           BUFFERPOOL BP1
           CLOSE YES
           DEFER YES
    ;
commit;
}¢--- A540769.WK.SQL(AV15047C) cre=2013-05-29 mod=2013-05-29-09.11.00 A540769 ---
set current sqlid = 'S100447';
set current schema OA1A;
CREATE  VIEW OA1A.VAV160B1
        ( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , TOTALMKTVALINREPRTCCY ,
        VALTYPECD , ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
        ASSETSUBCLASS , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD ,
        MSCISECTCD , MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD ,
        OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
        MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
        ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV111J1
  WHERE POSITIONTYPECD = 1 AND ISINCLFUNDUNBUNDLING = 'N' AND
        MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
        MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
        ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV112J1
  WHERE POSITIONTYPECD = 1 AND ISINCLFUNDUNBUNDLING = 'N' AND
        MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , 'FuBu-Pos' ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
        MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
        ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV113A1
  WHERE MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
        ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV121J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
        ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV122J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
        ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV123J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , OPICSDEALNO ,
        MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
        COUNTERCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , '000' , '05' , BVGCATCD , '00' , '00' , '00' , '00' , OBJUUID
        , ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV132A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , TRADEID ,
        MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
        CTRNOTIONALCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
        ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00' , '00' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV133A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
        TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
        MTYDT , ISO ) ) ) ) , MKTVALINREPRTCCY , 0 , COALESCE (
        MKTVALINREPRTCCY , 0 ) , '0' , COUNTERCCYCD , ANALYSISCNTRYCD ,
        ASSETMAINCLASS , ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00'
        , '00' , '00' , '00' , OBJUUID , ANALYSISCCYDERIVED ,
        ASSETCLASSDERIVED , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ,
        ''
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
;

-- OA1A.VAV160E1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.



CREATE  VIEW OA1A.VAV160E1
        ( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , TOTALMKTVALINREPRTCCY ,
        VALTYPECD , ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
        ASSETSUBCLASS , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD ,
        MSCISECTCD , MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD ,
        OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
        MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
        ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV111J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
        MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
        ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV112J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
        ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV121J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
        ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV122J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
        ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV123J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , OPICSDEALNO ,
        MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
        COUNTERCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , '000' , '05' , BVGCATCD , '00' , '00' , '00' , '00' , OBJUUID
        , ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV132A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , TRADEID ,
        MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
        CTRNOTIONALCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
        ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00' , '00' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV133A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
        TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
        MTYDT , ISO ) ) ) ) , MKTVALINREPRTCCY , 0 , COALESCE (
        MKTVALINREPRTCCY , 0 ) , '0' , COUNTERCCYCD , ANALYSISCNTRYCD ,
        ASSETMAINCLASS , ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00'
        , '00' , '00' , '00' , OBJUUID , ANALYSISCCYDERIVED ,
        ASSETCLASSDERIVED , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ,
        ''
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
;

-- OA1A.VAV160G1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.



CREATE  VIEW OA1A.VAV160G1
        ( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR , MTYDT ,
        SUBPERIODMONTH , SUBPERIODYEAR , REDEMPTCCYCD ,
        REDEMPTVALINREDEMPTCCY , REDEMPTVALINREPRTCCY , OBJUUID ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO , CASE WHEN (
        MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
        MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
        , 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
        CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
        MTYDT , ISO ) , 1 , 4 ) END , REDEMPTCCYCD ,
        REDEMPTVALINREDEMPTCCY , REDEMPTVALINREPRTCCY , OBJUUID ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV111J1
  WHERE POSITIONTYPECD = 1 AND REDEMPTVALINREDEMPTCCY IS NOT NULL AND
        REDEMPTVALINREPRTCCY IS NOT NULL AND VALTYPECD = '0' AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO , CASE WHEN (
        MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
        MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
        , 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
        CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
        MTYDT , ISO ) , 1 , 4 ) END , CASE WHEN ( SECPOSCCYCD IN (
        '    ' , '0000' ) ) THEN SECCCYCD ELSE SECPOSCCYCD END ,
        MKTVALINPOSCCY , MKTVALINREPRTCCY , OBJUUID ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV112J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        VALTYPECD = '0' AND REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO , '01.01.0001' ,
        '000000' , '0000' , ACCCCYCD , MKTVALINACCCCY , MKTVALINREPRTCCY
        , OBJUUID , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV121J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO , CASE WHEN (
        MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
        MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
        , 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
        CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
        MTYDT , ISO ) , 1 , 4 ) END , ACCCCYCD , MKTVALINACCCCY ,
        MKTVALINREPRTCCY , OBJUUID , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV123J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
        TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
        MTYDT , ISO ) ) ) ) , MTYDT , SUBSTR ( CHAR ( MTYDT , ISO ) , 1
        , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) , SUBSTR (
        CHAR ( MTYDT , ISO ) , 1 , 4 ) , TRDCCYCD ,
        BALANCEOFTRDPARTINTRDCCY , BALANCEOFTRDPARTINREPRTCCY , OBJUUID
        , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        TREASURYTYPECD = 1 AND ASSETSUBCLASS = '01' AND REPRTBLOCCD =
        '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
        TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
        MTYDT , ISO ) ) ) ) , MTYDT , SUBSTR ( CHAR ( MTYDT , ISO ) , 1
        , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) , SUBSTR (
        CHAR ( MTYDT , ISO ) , 1 , 4 ) , COUNTERCCYCD ,
        BALANCEOFCTRPARTINCTRCCY , BALANCEOFCTRPARTINREPRTCCY , OBJUUID
        , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
;

-- OA1A.VAV160C1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.



CREATE  VIEW OA1A.VAV160C1
        ( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR , MTYDT ,
        SUBPERIODMONTH , SUBPERIODYEAR , REDEMPTCCYCD ,
        REDEMPTVALINREDEMPTCCY , REDEMPTVALINREPRTCCY , OBJUUID ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO , CASE WHEN (
        MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
        MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
        , 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
        CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
        MTYDT , ISO ) , 1 , 4 ) END , REDEMPTCCYCD ,
        REDEMPTVALINREDEMPTCCY , REDEMPTVALINREPRTCCY , OBJUUID ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV111J1
  WHERE POSITIONTYPECD = 1 AND REDEMPTVALINREDEMPTCCY IS NOT NULL AND
        REDEMPTVALINREPRTCCY IS NOT NULL AND VALTYPECD = '0'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO , CASE WHEN (
        MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
        MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
        , 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
        CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
        MTYDT , ISO ) , 1 , 4 ) END , CASE WHEN ( SECPOSCCYCD IN (
        '    ' , '0000' ) ) THEN SECCCYCD ELSE SECPOSCCYCD END ,
        MKTVALINPOSCCY , MKTVALINREPRTCCY , OBJUUID ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV112J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        VALTYPECD = '0'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO , '01.01.0001' ,
        '000000' , '0000' , ACCCCYCD , MKTVALINACCCCY , MKTVALINREPRTCCY
        , OBJUUID , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV121J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO , CASE WHEN (
        MTYDT IS NULL ) THEN '31.12.9999' ELSE MTYDT END , CASE WHEN (
        MTYDT IS NULL ) THEN '999999' ELSE SUBSTR ( CHAR ( MTYDT , ISO )
        , 1 , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) END ,
        CASE WHEN ( MTYDT IS NULL ) THEN '9999' ELSE SUBSTR ( CHAR (
        MTYDT , ISO ) , 1 , 4 ) END , ACCCCYCD , MKTVALINACCCCY ,
        MKTVALINREPRTCCY , OBJUUID , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV123J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
        TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
        MTYDT , ISO ) ) ) ) , MTYDT , SUBSTR ( CHAR ( MTYDT , ISO ) , 1
        , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) , SUBSTR (
        CHAR ( MTYDT , ISO ) , 1 , 4 ) , TRDCCYCD ,
        BALANCEOFTRDPARTINTRDCCY , BALANCEOFTRDPARTINREPRTCCY , OBJUUID
        , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        TREASURYTYPECD = 1 AND ASSETSUBCLASS = '01'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
        TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
        MTYDT , ISO ) ) ) ) , MTYDT , SUBSTR ( CHAR ( MTYDT , ISO ) , 1
        , 4 ) CONCAT SUBSTR ( CHAR ( MTYDT , ISO ) , 6 , 2 ) , SUBSTR (
        CHAR ( MTYDT , ISO ) , 1 , 4 ) , COUNTERCCYCD ,
        BALANCEOFCTRPARTINCTRCCY , BALANCEOFCTRPARTINREPRTCCY , OBJUUID
        , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
;

-- OA1A.VAV160F1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.



CREATE  VIEW OA1A.VAV160F1
        ( PARTITIONID , REPRTUUID , OBJECTTYPECD , ELEMENTNBR ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , TOTALMKTVALINREPRTCCY ,
        VALTYPECD , ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
        ASSETSUBCLASS , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD ,
        MSCISECTCD , MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD ,
        OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , RATEGRPCD ) AS
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
        MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
        ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV111J1
  WHERE POSITIONTYPECD = 1 AND ISINCLFUNDUNBUNDLING = 'N' AND
        MKTVALINREPRTCCY IS NOT NULL AND REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , SECNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
        MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
        ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , RATEGRPCD
   FROM OA1A.VAV112J1
  WHERE POSITIONTYPECD = 1 AND ISINCLFUNDUNBUNDLING = 'N' AND
        MKTVALINREPRTCCY IS NOT NULL AND REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , 'FuBu-Pos' ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , MSCISECTCD ,
        MSCIGROUPCD , MSCIINDSTRYCD , MSCISUBINDSTRYCD , OBJUUID ,
        ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV113A1
  WHERE MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
        ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV121J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
        ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV122J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , ACCNO ,
        MKTVALINREPRTCCY , ACCRINTINREPRTCCY , COALESCE (
        MKTVALINREPRTCCY , 0 ) + ACCRINTINREPRTCCY , VALTYPECD ,
        ANALYSISCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , ANALYSISSECTCD , ANALYSISDEBTORCD , BVGCATCD , CASE WHEN (
        ANALYSISSECTCD = '260' ) THEN '15' ELSE '40' END , '10' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV123J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , OPICSDEALNO ,
        MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
        COUNTERCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS , ASSETSUBCLASS
        , '000' , '05' , BVGCATCD , '00' , '00' , '00' , '00' , OBJUUID
        , ANALYSISCCYDERIVED , ASSETCLASSDERIVED , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV132A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , TRADEID ,
        MKTVALINREPRTCCY , 0 , COALESCE ( MKTVALINREPRTCCY , 0 ) , '0' ,
        CTRNOTIONALCCYCD , ANALYSISCNTRYCD , ASSETMAINCLASS ,
        ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00' , '00' , '00' ,
        '00' , OBJUUID , ANALYSISCCYDERIVED , ASSETCLASSDERIVED ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED , ''
   FROM OA1A.VAV133A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , OBJECTTYPECD , CONCAT ( CONCAT (
        TRDCCYCD , '/' ) , CONCAT ( COUNTERCCYCD , CONCAT ( '@' , CHAR (
        MTYDT , ISO ) ) ) ) , MKTVALINREPRTCCY , 0 , COALESCE (
        MKTVALINREPRTCCY , 0 ) , '0' , COUNTERCCYCD , ANALYSISCNTRYCD ,
        ASSETMAINCLASS , ASSETSUBCLASS , '000' , '05' , BVGCATCD , '00'
        , '00' , '00' , '00' , OBJUUID , ANALYSISCCYDERIVED ,
        ASSETCLASSDERIVED , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ,
        ''
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
;

-- OA1A.VAV160H1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.



CREATE  VIEW OA1A.VAV160H1
        ( PARTITIONID , REPRTUUID , REDEMPTCCYCD , TOTALMKTVALINREPRTCCY
        , DURATION , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ) AS
SELECT  PARTITIONID , REPRTUUID , REDEMPTCCYCD , MKTVALINREPRTCCY +
        ACCRINTINREPRTCCY , DURATION , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED
   FROM OA1A.VAV111J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        VALTYPECD = '0'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , CASE WHEN ( SECPOSCCYCD IN ( '    ' ,
        '0000' ) ) THEN SECCCYCD ELSE SECPOSCCYCD END , MKTVALINREPRTCCY
        + ACCRINTINREPRTCCY , DURATION , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED
   FROM OA1A.VAV112J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        VALTYPECD = '0'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , ACCCCYCD , MKTVALINREPRTCCY +
        ACCRINTINREPRTCCY , 0 , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED
   FROM OA1A.VAV121J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , ACCCCYCD , MKTVALINREPRTCCY +
        ACCRINTINREPRTCCY , 0 , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED
   FROM OA1A.VAV123J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , TRDCCYCD , MKTVALINREPRTCCY , 0 ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        TREASURYTYPECD = 1 AND ASSETSUBCLASS = '01'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , COUNTERCCYCD , MKTVALINREPRTCCY , 0 ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL
;

-- OA1A.VAV160J1 WILL BE CREATED VIA THESE NATIVE DB2 COMMANDS.



CREATE  VIEW OA1A.VAV160J1
        ( PARTITIONID , REPRTUUID , REDEMPTCCYCD , TOTALMKTVALINREPRTCCY
        , DURATION , ASSETCLASS01DERIVED , ASSETCLASS02DERIVED ) AS
SELECT  PARTITIONID , REPRTUUID , REDEMPTCCYCD , MKTVALINREPRTCCY +
        ACCRINTINREPRTCCY , DURATION , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED
   FROM OA1A.VAV111J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        VALTYPECD = '0' AND REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , CASE WHEN ( SECPOSCCYCD IN ( '    ' ,
        '0000' ) ) THEN SECCCYCD ELSE SECPOSCCYCD END , MKTVALINREPRTCCY
        + ACCRINTINREPRTCCY , DURATION , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED
   FROM OA1A.VAV112J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        VALTYPECD = '0' AND REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , ACCCCYCD , MKTVALINREPRTCCY +
        ACCRINTINREPRTCCY , 0 , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED
   FROM OA1A.VAV121J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , ACCCCYCD , MKTVALINREPRTCCY +
        ACCRINTINREPRTCCY , 0 , ASSETCLASS01DERIVED ,
        ASSETCLASS02DERIVED
   FROM OA1A.VAV123J1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , TRDCCYCD , MKTVALINREPRTCCY , 0 ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        TREASURYTYPECD = 1 AND ASSETSUBCLASS = '01' AND REPRTBLOCCD =
        '10'
  UNION ALL
SELECT  PARTITIONID , REPRTUUID , COUNTERCCYCD , MKTVALINREPRTCCY , 0 ,
        ASSETCLASS01DERIVED , ASSETCLASS02DERIVED
   FROM OA1A.VAV135A1
  WHERE POSITIONTYPECD = 1 AND MKTVALINREPRTCCY IS NOT NULL AND
        REPRTBLOCCD = '10'
;
}¢--- A540769.WK.SQL(BEDIST) cre=2011-03-17 mod=2011-03-22-21.58.47 A540769 ----
with s1 as
( select count(*) s1Rows,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP, sammel1
    from OA1A01.VBE010A1 a
    group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP, sammel1
)
, vr as
( select count(*) vrRows,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP
    from OA1A01.VBE010A1 a
    group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP
)
, sv as
( select s1Rows, vrRows,
        s1.PROCBASE, s1.TECHBEZ, s1.DAT_BUCH,
        s1.DAT_VAL, s1.VERDTYP, s1.sammel1
    from s1, vr
    where   s1.procBase = vr.procBase
        and s1.techBez  = vr.techBez
        and s1.dat_Buch = vr.dat_buch
        and s1.dat_Val  = vr.dat_val
        and s1.verdtyp  = vr.verdtyp
)
, va as
( select sum(s1Rows) s1Rows, sum(vrRows) vrRows,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1
    from sv
    group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1
)
, bu as
( select count(*) buRows,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                 then 1 else 0 end) buS0Rows,
        sum(case when sammel1 > '1900-01-01-00:00:00'
                 then 1 else 0 end) buS1Rows,
        sum(case when sammel2 > '1900-01-01-00:00:00'
                 then 1 else 0 end) buS2Rows,
        PROCBASE, TECHBEZ, DAT_BUCH
    from OA1A01.VBE010A1 a
    group by PROCBASE, TECHBEZ, DAT_BUCH
)
, s as
( select s1Rows, vrRows, buRows, buS0Rows, buS1Rows, buS2Rows,
        va.PROCBASE, va.TECHBEZ, va.DAT_BUCH, va.DAT_VAL, va.sammel1
    from va, bu
    where   va.procBase = bu.procBase
        and va.techBez  = bu.techBez
        and va.dat_Buch = bu.dat_buch
)
select count(*) cnt,
       sum(s1Rows) s1Rows, min(s1Rows) s1RowF, max(s1Rows) s1RowT,
       sum(vrRows) vrRows, min(vrRows) vrRowF, max(vrRows) vrRowT,
       sum(buRows) buRows, min(buRows) buRowF, max(buRows) buRowT
    from s
    where procBase between 3300 and 3400
    group by floor(log(3*max(s1Rows, 0.1)))
           , floor(log(3*max(s1Rows, 0.1)))
           , floor(log(3*max(vrRows, 0.1)))
    order by 7 desc, 4 desc
;;;;;,,
select * from s
    where procBase between 3300 and 3400
    order by vrRows desc, s1Rows desc
    fetch first 100 rows only
;;;;;,,
select s1.*, bu.*
    from s1, bu
    where   s1.procBase = bu.procBase
        and s1.techBez  = bu.techBez
        and s1.dat_Buch = bu.dat_buch
        and s1.verdtyp  = bu.verdtyp
    order by buRows desc, rows desc
    fetch first 100 rows only
    with ur
;;;
, va as
( select count(*) vaCnt,
        max(
        sum(rows) vrRows,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                 then rows else 0 end) vrS0Rows,
        sum(case when sammel1 > '1900-01-01-00:00:00'
                 then rows else 0 end) vrS1Rows,
        max(case when sammel1 > '1900-01-01-00:00:00'
                 then rows else -1999999999 end) vrS1RowsMax,
        min(case when sammel1 > '1900-01-01-00:00:00'
                 then rows else +1999999999 end) vrS1RowsMin,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP
    from s1
    group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, VERDTYP
)
with g as
(
select  count(*) rows,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam1,
        sum(case when sammel2 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam2,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                   or sammel2 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam12,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
        , sammel1
    from OA1P01.VBE010A1 a
    where procBase between 3300 and 3303
    group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
       , sammel1
)
, k as
( select count(*) gCnt,
         sum(rows) rows, min(rows) rowsMin, max(rows) rowsMax,
         sum(sam1) sam1, min(sam1) sam1Min, max(sam1) sam1Max,
         sum(sam2) sam2, min(sam2) sam2Min, max(sam2) sam2Max,
         sum(sam12) sam12, min(sam12) sam12Min, max(sam12) sam12Max,
         verdTyp
      from g
      group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
)
, s  as
( select count(*) kCnt,
         sum(gCnt) gCnt, min(gCnt) gCntF, max(gCnt) gCntT,
     sum(rows) rows, min(rows) rowsF, max(rows) rowsT,
     sum(rowsMin) rowsMin, min(rowsMin) rowsMinF, max(rowsMin) rowsMinT,,
     sum(rowsMax) rowsMax, Max(rowsMax) rowsMaxF, max(rowsMax) rowsMaxT,,
     sum(sam1) sam1, min(sam1) sam1F, max(sam1) sam1T,
     sum(sam1Min) sam1Min, min(sam1Min) sam1MinF, max(sam1Min) sam1MinT,,
     sum(sam1Max) sam1Max, Max(sam1Max) sam1MaxF, max(sam1Max) sam1MaxT,,
     sum(sam2) sam2, min(sam2Min) sam2MinF, max(sam2Max) sam2MaxT,      ,
     sum(sam12) sam12, min(sam12Min) sam12MinF, max(sam12Max) sam12MaxT,,
     verdTyp
      from k
      group by verdTyp
             , floor(log(3*max(rowsMax, 0.1)))
             , floor(log(3*max(sam1Max, 0.1)))
             , floor(log(3*max(sam1Min, 0.1)))
)
select *
    from s
    order by 1, 5 desc, 4 desc
    with ur
;;;
with a as
(
select  count(*) cnt,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam1,
        sum(case when sammel2 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam2,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                   or sammel2 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam12,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
    from OA1P01.VBE010A1 a
    where procBase between 3300 and 3309
    group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
)
, r1 as
( select count(*) c,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
      from OA1P01.VBE010A1
    where procBase between 3300 and 3309
        and sammel1 > '1900-01-01-00:00:00'
      group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
               , sammel1
)
, s1 as
( select count(*) s1Cnt,
             sum(c) s1Sum,
             max(c) s1Max,
             min(c) s1Min,
          PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
      from r1
      group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, verdTyp
)
, j as
(select a.verdTyp
      , cnt, sam1, sam2, sam12
      , value(s1Cnt, 0) s1Cnt
      , value(s1Sum, 0) s1Sum
      , value(s1Max, 0) s1Max
      , value(s1Min, 0) s1Min
      , a.PROCBASE, a.TECHBEZ, a.DAT_BUCH, a.DAT_VAL
    from a
    left join s1
      on      s1.procbase = a.procbase
          and s1.techBez = a.techbez
          and s1.dat_buch = a.dat_Buch
          and s1.dat_val = a.dat_val
          and s1.verdTyp = a.verdTyp
)
select verdTyp
       , count(*) cnt, sum(cnt) "sumRows"
       , max(cnt)   "rowsMax",  max(s1Max) "s1MaxMax"
       , min(cnt)   "rows-",  max(cnt) "-rows"
       , min(sam1)  "sam1-",  max(sam1) "-sam1"
       , min(sam2)  "sam2-",  max(sam2) "-sam2"
       , min(sam12) "sam12-", max(sam12) "-sam12"
       , min(s1Cnt) "s1Cnt-", max(s1Cnt) "-s1Cnt"
       , min(s1Sum) "s1Sum-", max(s1Sum) "-s1Sum"
       , min(s1Max) "s1Max-", max(s1Max) "-s1Max"
       , min(s1Min) "s1Min-", max(s1Min) "-s1Min"
      from j
      group by verdTyp
             , floor(log(3*max(cnt, 0.1)))
             , floor(log(3*max(s1Max, 0.1)))
             , floor(log(3*max(s1Min, 0.1)))
    order by 1, 5 desc, 4 desc
    with ur
;;;
with a as
(
select  count(*) cnt,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam1,
        sum(case when sammel2 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam2,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                   or sammel2 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam12,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
    from OA1P01.VBE010A1 a
    where procBase between 3300 and 3309
    group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
, r1 as
( select  count(*) c,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
      from OA1P01.VBE010A1
    where procBase between 3300 and 3309
        and sammel1 > '1900-01-01-00:00:00'
      group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
               , sammel1
)
, s1 as
( select count(*) s1Cnt,
             sum(c) s1Sum,
             max(c) s1Max,
             min(c) s1Min,
          PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
      from r1
      group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
, j as
(select cnt, sam1, sam2, sam12
      , value(s1Cnt, 0) s1Cnt
      , value(s1Sum, 0) s1Sum
      , value(s1Max, 0) s1Max
      , value(s1Min, 0) s1Min
      , a.PROCBASE, a.TECHBEZ, a.DAT_BUCH, a.DAT_VAL
    from a
    left join s1
      on      s1.procbase = a.procbase
          and s1.techBez = a.techbez
          and s1.dat_buch = a.dat_Buch
          and s1.dat_val = a.dat_val
)
select count(*) cnt, sum(cnt) "sumRows"
       , max(cnt)   "rowsMax",  max(s1Max) "s1MaxMax"
       , min(cnt)   "rows-",  max(cnt) "-rows"
       , min(sam1)  "sam1-",  max(sam1) "-sam1"
       , min(sam2)  "sam2-",  max(sam2) "-sam2"
       , min(sam12) "sam12-", max(sam12) "-sam12"
       , min(s1Cnt) "s1Cnt-", max(s1Cnt) "-s1Cnt"
       , min(s1Sum) "s1Sum-", max(s1Sum) "-s1Sum"
       , min(s1Max) "s1Max-", max(s1Max) "-s1Max"
       , min(s1Min) "s1Min-", max(s1Min) "-s1Min"
      from j
      group by floor(log(max(cnt, 0.1)))
             , floor(log(max(s1Max, 0.1)))
    order by 4 desc, 3 desc
    with ur
;;;
with a as
( select
           case when sammel1 < '1900-01-01-00:00:00'
                  then ' ' else '1' end
        || case when sammel2 < '1900-01-01-00:00:00'
                 then ' ' else '2' end sam,
        verdTyp
    from OA1P01.VBE010A1
    where procBase = 111
)
select count(*), sam, verdTyp
    from a
    group by sam, verdTyp
    order by verdTyp
    with ur
;;;
with a as
(
select  count(*) cnt,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam1,
        sum(case when sammel2 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam2,
        sum(case when sammel1 < '1900-01-01-00:00:00'
                   or sammel2 < '1900-01-01-00:00:00'
                 then 0 else 1 end) sam12,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
    from OA1A01.VBE010A1 a
    group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
, r1 as
( select  count(*) c,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
      from OA1A01.VBE010A1
      where procBase = 1
        and sammel1 > '1900-01-01-00:00:00'
      group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
               , sammel1
)
, s1 as
( select count(*) s1Cnt,
             sum(c) s1Sum,
             max(c) s1Max,
             min(c) s1Min,
          PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
      from r1
      group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
select cnt, sam1, sam2, sam12
      , s1Cnt, s1Sum, s1Max, s1Min
      , a.PROCBASE, a.TECHBEZ, a.DAT_BUCH, a.DAT_VAL
    from a
    left join s1
      on      s1.procbase = a.procbase
          and s1.techBez = a.techbez
          and s1.dat_buch = a.dat_Buch
          and s1.dat_val = a.dat_val
    where a.procBase = 1
    order by cnt desc, sam2 desc, sam1 desc
;;;
    order by 1 desc
    fetch first 100 rows only
    where PROCBASE = 1
)
( select    from (select  count(*) c
    left join
select a.*,
    from a
    with ur
;;;
select *
    from OA1A01.VBE010A1 a
        where procbase = 1
        group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
)
, b as
(
select  count(*) c,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1, sammel2
    from OA1A01.VBE010A1
        where procbase = 1
            and (sammel1 > '1900-01-01-00:00:00'
              or sammel2 > '1900-01-01-00:00:00')
        group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1, sammel2
        order by 1 desc
        fetch first 100 rows only
        with ur
;;;
select *
        from OA1A01.VBE010A1
        where procbase = 1 and sammel1 > '1900-01-01-00:00:00'
        order by   sammel1 asc
        fetch first 100 rows only
        with ur
        ;;;;
select count(*), sammel1, sammel2,
        PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL, sammel1, sammel2
                , sammeltyp, verdtyp, sammelbegriff
        from OA1A01.VBE010A1
        where procbase = 1 and sammel1 > '1900-01-01-00:00:00'
        group by PROCBASE, TECHBEZ, DAT_BUCH, DAT_VAL
               , sammel1, sammel2, sammeltyp, verdtyp, sammelbegriff
        order by   sammel1 asc
        fetch first 100 rows only
        with ur
}¢--- A540769.WK.SQL(BEIX) cre=2011-05-27 mod=2011-05-27-15.47.05 A540769 ------
SET CURRENT SQLID='S100447';
DROP INDEX S100447.IBE010A3;
COMMIT;
CREATE INDEX OA1A04.IBE010A3
  ON OA1A04.TBE010A1
   (BE010001              ASC,
    BE010002              ASC,
    BE010034              ASC,
    BE010054              ASC)
  PARTITIONED
  USING STOGROUP GSMS
  FREEPAGE 0 PCTFREE 15
  DEFER YES
  BUFFERPOOL BP1;
COMMIT;
}¢--- A540769.WK.SQL(BEPRES) cre=2011-04-05 mod=2011-04-06-08.34.43 A540769 ----
SELECT
            B.PROCBASE
           ,B.TECHBEZ
           ,a.dat_erst_gb a
           ,b.dat_erst_gb b
    FROM    OA1t01.VBE010A1 A
    JOIN    OA1t01.VBE010A1 B ON
            B.SAMMEL1  = A.SAMMEL1
     AND    B.PROCBASE =   423
     AND    B.TECHBEZ  =  '0061024442892000'
    WHERE
            A.PROCBASE =   423
     AND    A.TECHBEZ  =  '0061024442892000'
     AND    A.SAMMEL2  =  '2005-06-08-00.07.28.699302'
     with ur
 ;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 0   for
                                    SELECT A.PROCBASE, A.TECHBEZ,
REPLACE (CHAR (A.DAT_BUCH, ISO), '-', ''), REPLACE (CHAR (A.DAT_VAL,
ISO), '-', ''), A.DAT_ERST_GB, A.VERDTYP, A.BUCHSEITE_KWA_VERD,
A.BUCHSEITE_BWA_VERD, A.STORNOFEHLER, A.STATUS_STORNO, A.STORNOSICHT,
A.STORNOTEIL, A.AUFTRAGS#_STORNO, A.GF_LAUF#_STORNO, A.ANZ_BEW_VERD,
A.BETR_KWA_VERD, A.BETR_BWA_VERD, A.SAMMEL2, A.DAT_MUT, A.PID_MUT,
A.PORTO_FREI, A.ZAZ_FREI, A.ZSK_FREI, A.UMSATZKOMM_FREI, A.ZUSATZTEXT,
A.ZUSATZTEXT_VERW, A.TAGSCHNITT, A.LIEFERANT, REPLACE (CHAR
(A.DAT_LIEF, ISO), '-', ''), REPLACE (CHAR (A.DAT_TRADE, ISO), '-',
''), A.AUFTRAGS#_QUAL, A.AUFTRAGS#, REPLACE (CHAR (A.DAT_AUFTRAG, ISO),
'-', ''), A.KUNDREF, REPLACE (CHAR (A.DAT_ERFASS, ISO), '-', ''),
A.ZEIT_ERFASS, REPLACE (CHAR (A.DAT_BELEG, ISO), '-', ''),
A.AUFTRAGGEBER_QUAL, A.BUID_AUFTRAGGEBER, A.AUFTRAGGEBER, A.AKTIONS#,
A.PID_ERFASS, REPLACE (CHAR (A.DAT_KONTROLL1, ISO), '-', ''),
A.ZEIT_KONTROLL1, A.PID_KONTROLL1, REPLACE (CHAR (A.DAT_KONTROLL2,
ISO), '-', ''), A.ZEIT_KONTROLL2, A.PID_KONTROLL2, REPLACE (CHAR
(A.DAT_DISPOFREI, ISO), '-', ''), A.ZEIT_DISPOFREI, A.PID_DISPOFREI,
A.GF_LAUF#, A.MELDETYP, A.BUCHSEITE, A.BEWEGART, A.AUSSERBILANZ,
A.WHRG_KTO, A.BETR_KTOWHRG, A.WHRG_BUCH, A.BETR_BUCHWHRG, A.WHRG_TRANS,
A.BETR_TRANSWHRG, A.KURS, REPLACE (CHAR (A.DAT_KURS, ISO), '-', ''),
A.ZEIT_KURS, A.ZEIT_VAL, A.PRODUKTE_NR, A.PREISKOMP_NR,
A.AUSPRAEGUNGS_ID, A.STORNOART, A.STORNOUMFANG, A.AUFTRAGS#_ORIG,
A.GF_LAUF#_ORIG, A.REFGRUND, A.SAMMELTYP, A.SAMMELBEGRIFF, A.OP_TYP,
A.OPOSTEN, A.BELEG, A.VORMERK#, A.KRIT_VAL, A.KOK_NVZ, A.PROZPFAD,
A.STRUKTUREN, A.SPESENART, A.BETR_BUSP, A.SAMMEL1, A.VERARBEITART,
A.VM_ABL, A.WS_ARTIKEL#, A.WS_PREIS, A.DE_SOUCHEN#, A.DE_ERMITTLUNGART,
A.DE_MELDUNG, A.DE_BUID_KONVERT, A.SA_KARTEN#, A.SA_TRANSORT,
A.SA_NAME, A.SA_ORT, A.ZV_QUAL, A.ZV_ANGABEN
FROM oa1t01.VBE010A1 A JOIN
     oa1t01.VBE010A1 D ON D.SAMMEL1 = A.SAMMEL1
AND D.PROCBASE = ?
AND D.TECHBEZ = ?
WHERE A.PROCBASE = ?
AND A.TECHBEZ = ?
AND A.SAMMEL2 = ?
for FETCH ONLY
;
select * from  plan_view1
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;
                                    SELECT A.PROCBASE, A.TECHBEZ,
REPLACE (CHAR (A.DAT_BUCH, ISO), '-', ''), REPLACE (CHAR (A.DAT_VAL,
ISO), '-', ''), A.DAT_ERST_GB, A.VERDTYP, A.BUCHSEITE_KWA_VERD,
A.BUCHSEITE_BWA_VERD, A.STORNOFEHLER, A.STATUS_STORNO, A.STORNOSICHT,
A.STORNOTEIL, A.AUFTRAGS#_STORNO, A.GF_LAUF#_STORNO, A.ANZ_BEW_VERD,
A.BETR_KWA_VERD, A.BETR_BWA_VERD, A.SAMMEL2, A.DAT_MUT, A.PID_MUT,
A.PORTO_FREI, A.ZAZ_FREI, A.ZSK_FREI, A.UMSATZKOMM_FREI, A.ZUSATZTEXT,
A.ZUSATZTEXT_VERW, A.TAGSCHNITT, A.LIEFERANT, REPLACE (CHAR
(A.DAT_LIEF, ISO), '-', ''), REPLACE (CHAR (A.DAT_TRADE, ISO), '-',
''), A.AUFTRAGS#_QUAL, A.AUFTRAGS#, REPLACE (CHAR (A.DAT_AUFTRAG, ISO),
'-', ''), A.KUNDREF, REPLACE (CHAR (A.DAT_ERFASS, ISO), '-', ''),
A.ZEIT_ERFASS, REPLACE (CHAR (A.DAT_BELEG, ISO), '-', ''),
A.AUFTRAGGEBER_QUAL, A.BUID_AUFTRAGGEBER, A.AUFTRAGGEBER, A.AKTIONS#,
A.PID_ERFASS, REPLACE (CHAR (A.DAT_KONTROLL1, ISO), '-', ''),
A.ZEIT_KONTROLL1, A.PID_KONTROLL1, REPLACE (CHAR (A.DAT_KONTROLL2,
ISO), '-', ''), A.ZEIT_KONTROLL2, A.PID_KONTROLL2, REPLACE (CHAR
(A.DAT_DISPOFREI, ISO), '-', ''), A.ZEIT_DISPOFREI, A.PID_DISPOFREI,
A.GF_LAUF#, A.MELDETYP, A.BUCHSEITE, A.BEWEGART, A.AUSSERBILANZ,
A.WHRG_KTO, A.BETR_KTOWHRG, A.WHRG_BUCH, A.BETR_BUCHWHRG, A.WHRG_TRANS,
A.BETR_TRANSWHRG, A.KURS, REPLACE (CHAR (A.DAT_KURS, ISO), '-', ''),
A.ZEIT_KURS, A.ZEIT_VAL, A.PRODUKTE_NR, A.PREISKOMP_NR,
A.AUSPRAEGUNGS_ID, A.STORNOART, A.STORNOUMFANG, A.AUFTRAGS#_ORIG,
A.GF_LAUF#_ORIG, A.REFGRUND, A.SAMMELTYP, A.SAMMELBEGRIFF, A.OP_TYP,
A.OPOSTEN, A.BELEG, A.VORMERK#, A.KRIT_VAL, A.KOK_NVZ, A.PROZPFAD,
A.STRUKTUREN, A.SPESENART, A.BETR_BUSP, A.SAMMEL1, A.VERARBEITART,
A.VM_ABL, A.WS_ARTIKEL#, A.WS_PREIS, A.DE_SOUCHEN#, A.DE_ERMITTLUNGART,
A.DE_MELDUNG, A.DE_BUID_KONVERT, A.SA_KARTEN#, A.SA_TRANSORT,
A.SA_NAME, A.SA_ORT, A.ZV_QUAL, A.ZV_ANGABEN
FROM oa1t01.VBE010A1 A JOIN
     oa1t01.VBE010A1 D ON D.SAMMEL1 = A.SAMMEL1
AND D.PROCBASE = 423
AND D.TECHBEZ = '0061024442892000'
WHERE A.PROCBASE = 423
AND A.TECHBEZ = '0061024442892000'
AND A.SAMMEL2 = '2005-06-08-00.07.28.699302'
for FETCH ONLY
;
;;
$#@
call sqlConnect 'DBTF'
$; $<@=¢
SELECT
            B.PROCBASE
           ,B.TECHBEZ
    FROM    OA1t01.VBE010A1 A
    JOIN    OA1t01.VBE010A1 B ON
            B.SAMMEL1  = A.SAMMEL1
     AND    B.PROCBASE =   423
     AND    B.TECHBEZ  =  '0061024442892000'
    WHERE
            A.PROCBASE =   423
     AND    A.TECHBEZ  =  '0061024442892000'
     AND    A.SAMMEL2  =  '2005-06-08-00.07.28.699302'
     with ur
$! call sqlSel
$=s=-=¢
select
    D.PROCBASE
   ,D.TECHBEZ
     from  oa1t01.VBE010A1 A
     join  oa1t01.VBE010A1 D
       on
           D.SAMMEL1          =    A.SAMMEL1
      and  D.PROCBASE         =     ?
      and  D.TECHBEZ          =     ?
 $*( where A.PROCBASE         =     ?
      and  A.TECHBEZ          =     ?
      and  A.SAMMEL2          =     ?
 $*) with ur
$!
say $s
call sqlPrepare 1, $s
pr = 423
te = '0061024442892000'
s2 = '2005-06-08-00.07.28.699302'
call sqlOpen 1, pr, te, pr, te,s2
do while sqlFetchInto(1, ':fp, :ft')
    say fp ft
    end
call sqlClose 1
call sqlDisconnect
$#out                                              20110405 17:50:33
@O.131.1 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.2 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.3 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.4 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.5 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.6 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.7 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
@O.131.8 class=SQL131, PROCBASE=423, TECHBEZ=0061024442892000
$#out                                              20110405 17:46:53
}¢--- A540769.WK.SQL(BERTS) cre=2011-02-24 mod=2011-02-24-15.09.50 A540769 -----
set current path oa1p;
select substr(name,1, 5),
    substr(fosFmtE7(sum(totalRows)), 1, 7) "tot",
    substr(fosFmtE7(sum(case when substr(name, 6, 2) = '01'
                        then totalRows else 0 end)), 1, 7) "i01",
    substr(fosFmtE7(sum(case when substr(name, 6, 2) = '02'
                        then totalRows else 0 end)), 1, 7) "i02",
    substr(fosFmtE7(sum(case when substr(name, 6, 2) = '03'
                        then totalRows else 0 end)), 1, 7) "i03",
    substr(fosFmtE7(sum(case when substr(name, 6, 2) = '04'
                        then totalRows else 0 end)), 1, 7) "i04"
    from sysibm.sysTableSpaceStats r
    where dbName = 'BE01A1P' and name like 'A01%'
    group by substr(name,1, 5)
    order by 1
    ;,;
select totalRows, r.*
    from sysibm.sysTableSpaceStats r
    where dbName = 'BE01A1P' and name like 'A01%'
    order by name, partition
}¢--- A540769.WK.SQL(BEY) cre=2006-07-28 mod=2006-07-28-16.45.24 F540769 -------
select * from                oa1t.TPO001a1;
select * from                oa1t.TPO002a1;
select * from                oa1t.TPO003a1;
select * from                oa1t.TPO004a1;
select * from                oa1t.TPO005a1;
select * from                oa1t.TPO006a1;
sdf
set current sqlid = 's100447';
-- drop ALIAS oa1t.TPO001A1 ;
-- drop ALIAS oa1t.TPO001A3 ;
-- drop ALIAS oa1t.TPO001A4 ;
-- drop ALIAS oa1t.TPO001A5 ;
-- drop ALIAS oa1t.TPO001A6 ;
commit;
CREATE ALIAS oa1t.TPO001A1 FOR    OA1z.TPO001A1;
CREATE ALIAS oa1t.TPO003A1 FOR    OA1z.TPO003A1;
CREATE ALIAS oa1t.TPO004A1 FOR    OA1z.TPO004A1;
CREATE ALIAS oa1t.TPO005A1 FOR    OA1z.TPO005A1;
CREATE ALIAS oa1t.TPO006A1 FOR    OA1z.TPO006A1;
commit;
CREATE ALIAS oa1t.TPO001A1 FOR    CHSKA000DBZF.OA1t.TPO001A1;
CREATE ALIAS oa1t.TPO003A1 FOR    CHSKA000DBZF.OA1t.TPO003A1;
CREATE ALIAS oa1t.TPO004A1 FOR    CHSKA000DBZF.OA1t.TPO004A1;
CREATE ALIAS oa1t.TPO005A1 FOR    CHSKA000DBZF.OA1t.TPO005A1;
CREATE ALIAS oa1t.TPO006A1 FOR    CHSKA000DBZF.OA1t.TPO006A1;
commit;
CREATE ALIAS oa1t.TPO001A1 FOR    OA1z.TPO001A1;
CREATE ALIAS oa1t.TPO001A3 FOR    OA1z.TPO003A1;
CREATE ALIAS oa1t.TPO001A4 FOR    OA1z.TPO004A1;
CREATE ALIAS oa1t.TPO001A5 FOR    OA1z.TPO005A1;
CREATE ALIAS oa1t.TPO001A6 FOR    OA1z.TPO006A1;
commit;
select * from                oa1t.TPO002A1;
sdf
select * from        sysibm.locations;
--DROP   ALIAS oa1t.TPO002A1 ;
-- CREATE ALIAS oa1t.TPO002A1 FOR    CHSKA000DBZF.OA1t.TPO002A1;
CREATE ALIAS oa1t.TPO002A1 FOR    OA1z.TPO002A1;
commit;
-- select * from    CHSKA000DBZF.oa1z.TPO002A1;
select * from    oa1z.TPO002A1;
commit;
                     OA1Z. TPO002A1
                           TPO003A1
                           TPO004A1
                           TPO005A1
                           TPO006A1
                           TPO001A1
}¢--- A540769.WK.SQL(BE010CR) cre=2011-04-28 mod=2011-04-28-17.19.10 A540769 ---
set current sqlid = 'S100447';
select current timestamp from sysibm.sysDummy1;
  CREATE INDEX GDBB290.IBE010A3
    ON GDBB290.TBE010A1
     (BE010001              ASC,
      BE010002              ASC,
      BE010034              ASC,
      BE010054              ASC)
    PARTITIONED
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    FREEPAGE 0 PCTFREE 15
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
       BUFFERPOOL BP1
        CLOSE YES
        COPY NO
        DEFER NO
        DEFINE YES;
select current timestamp from sysibm.sysDummy1;
commit;
}¢--- A540769.WK.SQL(BINDBIND) cre=2012-07-11 mod=2014-09-25-08.26.55 A540769 ---
insert into oa1p.tQZ040BindPgm
     values ('KUGE', 'YCDUVGA', '31.12.2014', 7, 'info yQuCorc');
select * from oa1p.vQZ040Bind
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040BindRz
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
;x;
insert into oa1p.tQZ040BindPgm
     values ('AURA', 'YCDSGET', current date, 7, 'info yQuCorc');
insert into oa1p.tQZ040BindPgm -- (appl, pgm, install)
    values ('nnn', 'YCDCCFG', '08.08.2014', 9, 'info 9 yavvdps ....');
select * from oa1p.vQZ040BindDBP
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040ReBind
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
;x;
insert into oa1p.tQZ040BindPgm
     values ('AURA', 'YAUCORC', current date, 7, 'info yQuCorc');
insert into oa1p.tQZ040BindPgm -- (appl, pgm, install)
    values ('nnn', 'YAVVDPS', '01.04.2014', 9, 'info 9 yavvdps ....');
select * from oa1p.vQZ040Bind
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040BindRz
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040BindDBP
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
select * from oa1p.vQZ040ReBind
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
;x;
select * from oa1p.tQZ040BindPgm;
select * from oa1p.vQZ040BindPgm;
select * from oa1p.VQZ040BINDRDL;
select * from oa1p.vQZ040BindDBP;
select * from oa1p.vQZ040reBind
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq ;
 -- where rz = 'RZ1'
;
select * from oa1p.vQZ040Bind
 -- where rz = 'RZ1'
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq
;x;
select * from oa1p.vQZ040BindPgm
    order by appl, pgm, install
;
select * from oa1p.vQZ040BindRDL
    order by appl, pgm, install, rdlSeq
;
select * from oa1p.vQZ040BindCQ
    order by appl, pgm, install, rdlSeq, cqSeq
;
select * from oa1p.vQZ040BindOV
    order by appl, pgm, install, rdlSeq, cqSeq, ovSeq
;x;
insert into oa1p.tQZ040BindPgm values ('MF', 'MF5000', current date);
insert into oa1p.tQZ040BindPgm values ('ELAR', 'ELA1', current date);
insert into oa1p.tQZ040BindPgm values ('AURA', 'YAUCORC', current date);
insert into oa1p.tQZ040BindPgm values ('nnn', 'YCDSGET', current date);
insert into oa1p.tQZ040BindPgm values ('nnn', 'YYWM05E', current date);
insert into oa1p.tQZ040BindPgm values ('nnn', 'YAVVDPS', '01.01.2013');
insert into oa1p.tQZ040BindPgm values ('nnn', 'YNILCTG', '10.02.2014');
select * from oa1p.vQZ040Bind
    where rz = 'RZ1'
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq
;x;
}¢--- A540769.WK.SQL(BINDCFGS) cre=2016-09-16 mod=2016-09-16-14.10.45 A540769 ---
select *
    from OA1P.TQZ042BINDCNFGhist
    where typ = 'wCo' and key like 'C%'
}¢--- A540769.WK.SQL(BINDCMN) cre=2015-01-15 mod=2015-01-15-16.40.58 A540769 ---
select strip(owner) || ' ' || strip(collid) || '.' || strip(name)
     ,lastUsed, timestamp, version, p.*
    from sysibm.sysPackage p
    where owner = 'CMNBATCH'
    order by lastUsed desc, timestamp desc
;y;
select substr(owner, 1, 8) owner
    ,  substr(version, 1, 4) vers, count(*)
    , max(lastUsed) lastUsed, max(timestamp) bind
    from sysibm.sysPackage
     group by owner, substr(version, 1, 4)
     order by 1, 2
}¢--- A540769.WK.SQL(BINDDBP) cre=2014-04-04 mod=2014-09-04-12.44.05 A540769 ---
select length(errMsg), length(strip(errMsg)), g.*
  from oa1p.tQZ043BindGen g order by restst desc
;x;
insert into oa1p.tQz040BindPgm values ('AURA', 'YAUCORC', '10.02.2014');
select * from oa1p.vQz040BindDBP
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq
;
select * from oa1p.vQz040BindPgm
    order by appl, pgm, install
;
select * from oa1p.vQz040BindRDL
    order by appl, pgm, install, rdlSeq
;
select * from oa1p.vQz040BindCQ
    order by appl, pgm, install, rdlSeq, cqSeq
;
select * from oa1p.vQz040BindOV
    order by appl, pgm, install, rdlSeq, cqSeq, ovSeq
;
select * from oa1p.vQz040BindGrp
    order by appl, pgm, install, rdlSeq, cqSeq
;
select * from oa1p.vQz040Bind
    order by appl, pgm, install, rdlSeq, cqSeq, ovSeq
;x;
insert into oa1p.tQz040BindPgm values ('MF', 'MF5000', current date);
insert into oa1p.tQz040BindPgm values ('ELAR', 'ELA1', current date);
insert into oa1p.tQz040BindPgm values ('AURA', 'YAUCORC', current date);
insert into oa1p.tQz040BindPgm values ('nnn', 'YCDSGET', current date);
insert into oa1p.tQz040BindPgm values ('nnn', 'YYWM05E', current date);
insert into oa1p.tQz040BindPgm values ('nnn', 'YAVVDPS', '01.01.2013');
insert into oa1p.tQz040BindPgm values ('nnn', 'YNILCTG', '10.02.2014');
select * from oa1p.vQz040BindDBP
    where rz = 'RZ1'
    order by pgm, appl, install, rdlSeq, cqSeq, ovSeq
;x;
}¢--- A540769.WK.SQL(BINDDBT1) cre=2015-12-14 mod=2015-12-14-20.30.10 A540769 ---
select length(errMsg), left(errMsg, 40), right(errMsg, 40)
      , t.*
    from oa1p.tQZ043BindGen t
    where genid = 482387
}¢--- A540769.WK.SQL(BINDDDL) cre=2014-04-04 mod=2014-09-04-12.37.38 A540769 ---
set current sqlid = 'S100447';
   xrop  table oa1p.tQZ040BindPgm;
   xrop  tablespace QZ01A1P.a041a ;
   xrop  tablespace QZ01A1P.a041h ;
   drop  tablespace QZ01A1P.a042a ;
   drop  tablespace QZ01A1P.a042h ;
   drop  tablespace QZ01A1P.a043a ;
   drop  tablespace QZ01A1P.a044a ;
commit;
set current sqlid = 'S100447';
drop  table oa1p.tQZ040BindPgm;
create global temporary table oa1p.tQZ040BindPgm
  ( appl char(4) not null
  , pgm  char(8) not null
  , install date
  , id integer
  , info char(70)
  )   ccsid unicode;

CREATE TABLESPACE a041a
  IN QZ01A1P
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE a041h
  IN QZ01A1P
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE a042a
  IN QZ01A1P
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE a042h
  IN QZ01A1P
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE oa1p.tQZ041BindParm
  ( appl       CHAR(4) NOT NULL default '%'
  , pgm        CHAR(8) NOT NULL default '%'
  , PRIO       smallint NOT NULL
  , rdl        char(10) NOT NULL default 'default'
  , cq         char(10) NOT NULL default 'default'
  , ov         char(10) NOT NULL default 'default'
  , installBegin date NOT NULL WITH DEFAULT
  , installEnd date NOT NULL WITH DEFAULT '31.12.9999'
  , rowBegin not null generated always as row begin
  , rowEnd   not null generated always as row end
  , rowtrans not null generated always as transaction start id
  , period business_time (installBegin, installEnd)
  , period system_time (rowBegin, rowEnd)
  , primary key (appl, pgm, business_time without overlaps)
  )
 in QZ01A1P.a041a
;
CREATE UNIQUE INDEX oa1p.iQZ041A1
  ON oa1p.tQZ041BindParm
   (appl, pgm, business_time without overlaps)
   include (prio, rdl, cq, ov)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE TABLE oa1p.tQZ041BindParmHist
        like oa1p.tQZ041BindParm
  in QZ01A1P.a041H
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      unicode
    NOT VOLATILE
;
alter table oa1p.tQZ041BindParm add versioning
      use history table oa1p.tQZ041BindParmHist
;
CREATE TABLE oa1p.tQZ042BindCnfg
  ( typ        char(3) not null
  , key        char(10) not null
  , seq        smallint not null
  , va1        char(16) not null
  , va2        char(16) not null
  , va3        char(16) not null with default
  , va4        char(16) not null with default
  , installBegin date NOT NULL WITH DEFAULT
  , installEnd date NOT NULL WITH DEFAULT '31.12.9999'
  , rowBegin not null generated always as row begin
  , rowEnd   not null generated always as row end
  , rowtrans not null generated always as transaction start id
  , period business_time (installBegin, installEnd)
  , period system_time (rowBegin, rowEnd)
  , primary key (typ, key, seq, business_time without overlaps)
  )
 in QZ01A1P.a042a
;
CREATE UNIQUE INDEX oa1p.iQZ042A1
  ON oa1p.tQZ042BindCnfg
   (typ, key, seq, business_time without overlaps)
   include (va1, va2, va3, va4)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE TABLE oa1p.tQZ042BindCnfgHist
        like oa1p.tQZ042BindCnfg
  in QZ01A1P.a042H
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      unicode
    NOT VOLATILE
;
alter table oa1p.tQZ042BindCnfg add versioning
      use history table oa1p.tQZ042BindCnfgHist
;
CREATE TABLESPACE a043a
  IN QZ01A1P
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
set current sqlid = 'S100447';
alter  TABLE oa1p.tQZ043BindGen
   add  cmRes     char(4)       not null with default
;
alter  TABLE oa1p.tQZ043BindGen
   add errMsg    varchar(2000) not null with default;
commit;
x;
CREATE TABLE oa1p.tQZ043BindGen
  ( genId      integer NOT NULL
                     generated by default as identity
   , genTst    timestamp not null with default
   , appl      CHAR(4) NOT NULL
   , install   date    NOT NULL
   , rz        char(3) not null
   , dbSys     char(4) not null
   , pgm       char(8) not null
   , conTok char(8) for bit data
           not null with default x'0000000000000000'
   , cmPkg     char(10) not null
   , cmFun     char(1) not null with default '?'
   , com       char(20)  not null
   , cmJob     char(20)  not null with default
   , result    char(4)
   , resTst    timestamp
   , cmRes     char(4)       not null with default
   , errMsg    varchar(2000) not null with default
   , primary key (genId)
   , unique (genTst, pgm)
   )
 in QZ01A1P.a043a
;
CREATE UNIQUE INDEX oa1p.iQZ043A1
  ON oa1p.tQZ043BindGen
   (genId)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE UNIQUE INDEX oa1p.iQZ043A2
  ON oa1p.tQZ043BindGen
   (genTst, pgm)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE unique INDEX oa1p.iQZ043A3
  ON oa1p.tQZ043BindGen
   (cmPkg, pgm, gentst)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE TABLESPACE a044a
  IN QZ01A1P
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE oa1p.tQZ044BindLine
  ( genId      integer NOT NULL
   , seq       smallint not null
   , line     char(80)  not null
   , primary key (genId, seq)
   )
 in QZ01A1P.a044a
;
CREATE UNIQUE INDEX oa1p.iQZ044A1
  ON oa1p.tQZ044BindLine
   (genId, seq)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
commit;
}¢--- A540769.WK.SQL(BINDDDTS) cre=2014-04-04 mod=2014-07-31-12.43.45 A540769 ---
   -- copy von bindDDl für A540769
set current sqlid = 'S100447';
   drop  table A540769.tQZ040BindPgm;
   drop  tablespace dA540769.a041a ;
   drop  tablespace dA540769.a041h ;
   drop  tablespace dA540769.a042a ;
   drop  tablespace dA540769.a042h ;
   drop  tablespace dA540769.a043a ;
   drop  tablespace dA540769.a044a ;
commit;
set current sqlid = 'S100447';
drop  table A540769.tQZ040BindPgm;
create global temporary table A540769.tQZ040BindPgm
  ( appl char(4) not null
  , pgm  char(8) not null
  , install date
  , id integer
  , info char(70)
  )   ccsid unicode;

CREATE TABLESPACE a041a
  IN dA540769
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE a041h
  IN dA540769
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE a042a
  IN dA540769
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE a042h
  IN dA540769
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE A540769.tQZ041BindParm
  ( appl       CHAR(4) NOT NULL default '%'
  , pgm        CHAR(8) NOT NULL default '%'
  , PRIO       smallint NOT NULL
  , rdl        char(10) NOT NULL default 'default'
  , cq         char(10) NOT NULL default 'default'
  , ov         char(10) NOT NULL default 'default'
  , installBegin date NOT NULL WITH DEFAULT
  , installEnd date NOT NULL WITH DEFAULT '31.12.9999'
  , rowBegin not null generated always as row begin
  , rowEnd   not null generated always as row end
  , rowtrans not null generated always as transaction start id
  , period business_time (installBegin, installEnd)
  , period system_time (rowBegin, rowEnd)
  , primary key (appl, pgm, business_time without overlaps)
  )
 in dA540769.a041a
;
CREATE UNIQUE INDEX A540769.iQZ041A1
  ON A540769.tQZ041BindParm
   (appl, pgm, business_time without overlaps)
   include (prio, rdl, cq, ov)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE TABLE A540769.tQZ041BindParmHist
        like A540769.tQZ041BindParm
  in dA540769.a041H
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      unicode
    NOT VOLATILE
;
alter table A540769.tQZ041BindParm add versioning
      use history table A540769.tQZ041BindParmHist
;
CREATE TABLE A540769.tQZ042BindCnfg
  ( typ        char(3) not null
  , key        char(10) not null
  , seq        smallint not null
  , va1        char(16) not null
  , va2        char(16) not null
  , va3        char(16) not null with default
  , va4        char(16) not null with default
  , installBegin date NOT NULL WITH DEFAULT
  , installEnd date NOT NULL WITH DEFAULT '31.12.9999'
  , rowBegin not null generated always as row begin
  , rowEnd   not null generated always as row end
  , rowtrans not null generated always as transaction start id
  , period business_time (installBegin, installEnd)
  , period system_time (rowBegin, rowEnd)
  , primary key (typ, key, seq, business_time without overlaps)
  )
 in dA540769.a042a
;
CREATE UNIQUE INDEX A540769.iQZ042A1
  ON A540769.tQZ042BindCnfg
   (typ, key, seq, business_time without overlaps)
   include (va1, va2, va3, va4)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE TABLE A540769.tQZ042BindCnfgHist
        like A540769.tQZ042BindCnfg
  in dA540769.a042H
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      unicode
    NOT VOLATILE
;
alter table A540769.tQZ042BindCnfg add versioning
      use history table A540769.tQZ042BindCnfgHist
;
CREATE TABLESPACE a043a
  IN dA540769
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE A540769.tQZ043BindGen
  ( genId      integer NOT NULL
                     generated by default as identity
   , genTst    timestamp not null with default
   , appl      CHAR(4) NOT NULL
   , install   date    NOT NULL
   , rz        char(3) not null
   , dbSys     char(4) not null
   , pgm       char(8) not null
   , conTok char(8) for bit data
           not null with default x'0000000000000000'
   , cmPkg     char(10) not null
   , cmFun     char(1) not null with default '?'
   , com       char(20)  not null
   , cmJob     char(20)  not null with default
   , result    char(4)
   , resTst    timestamp
   , primary key (genId)
   , unique (genTst, pgm)
   )
 in dA540769.a043a
;
CREATE UNIQUE INDEX A540769.iQZ043A1
  ON A540769.tQZ043BindGen
   (genId)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE UNIQUE INDEX A540769.iQZ043A2
  ON A540769.tQZ043BindGen
   (genTst, pgm)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE unique INDEX A540769.iQZ043A3
  ON A540769.tQZ043BindGen
   (cmPkg, pgm, gentst)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE TABLESPACE a044a
  IN dA540769
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE A540769.tQZ044BindLine
  ( genId      integer NOT NULL
   , seq       smallint not null
   , line     char(80)  not null
   , primary key (genId, seq)
   )
 in dA540769.a044a
;
CREATE UNIQUE INDEX A540769.iQZ044A1
  ON A540769.tQZ044BindLine
   (genId, seq)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
commit;
}¢--- A540769.WK.SQL(BINDDDVI) cre=2013-10-24 mod=2014-09-25-08.26.16 A540769 ---
                 -- 25. 9.14 location gehoert in package( ....
set current sqlid = 'S100447';
drop   view  oa1p.vQZ040BindPGM ;

-----------------------------------------------------------------------
create view oa1p.vQZ040BindPGM as --- parameters for each program ------
with a as -- add compareLengths ---------------------------------------
(
  select p.*
      , case when posstr(appl, '%') = 0 then 4 else posstr(appl, '%')-1
        end apLe
      , case when posstr(pgm , '%') = 0 then 8 else posstr(pgm , '%')-1
        end pgLe
    from oa1p.tQZ041BindParm p
)
, j as -- join pgm and parameters -------------------------------------
(
  select g.appl, g.pgm, g.install
       , a.rdl, a.cq, a.ov
       , case when g.pgm like 'YY%' then 'YY'
              when g.pgm like 'YX%' then 'YX'
              when g.pgm like 'Y%' then substr(g.pgm, 2, 2)
                                  else substr(g.pgm, 1, 2)
         end colDef
       ,  row_number() over (partition by g.appl, g.pgm
                             order by prio desc, pgLe desc, apLe desc
                            ) rn
     from oa1p.tQZ040BindPgm g left join a
       on left(g.appl, a.apLe) = left(a.appl, a.apLe)
         and left(g.pgm, a.pgLe) = left(a.pgm, a.pgLe)
         and g.install >= a.installBegin
         and g.install <  a.installEnd
)
select appl, pgm, install, rdl, cq
       , case when ov is null then raise_error(77201
               , appl || '.' || strip(pgm) || ' no tQZ041BindParm')
              else ov end ov
       , colDef
    from j
    where rn = 1
;

-----------------------------------------------------------------------
create view oa1p.vQZ040BindRDL as --- explode RDL=Rz/dbSys/Location
select p.*
      , case when c.seq is null then raise_error(77202
               , appl || '.' || strip(pgm) || ' rdl=' || strip(rdl)
                                    || ' no tQZ042BindCnfg')
             else c.seq end rdlSeq
      , cast(va1 as char(3)) rz
      , cast(va2 as char(4)) dbSys
      , cast(va3 as char(12)) location
      , cast(va4 as char(4)) quaDef
    from oa1p.vQZ040BindPgm p left join oa1p.tQZ042BindCnfg c
      on c.typ = 'rdl' and c.key = p.rdl
         and p.install >= c.installBegin
         and p.install <  c.installEnd
;

-----------------------------------------------------------------------
create view oa1p.vQZ040BindCQ as --- explode CQ = Collection/Qualifier
select p.*
      , case when c.seq is null then raise_error(77203
               , appl || '.' || strip(pgm) || ' cq=' || strip(cq)
                                    || ' no tQZ042BindCnfg')
             else c.seq end cqSeq
      , cast(replace(c.va1, '$', strip(p.colDef)) as char(8)) col
      , cast(replace(c.va2, '$', strip(p.quaDef)) as char(8)) qua
    from oa1p.vQZ040BindRDL p left join oa1p.tQZ042BindCnfg c
      on c.typ = 'cq' and c.key = p.cq
         and p.install >= c.installBegin
         and p.install <  c.installEnd
;

-----------------------------------------------------------------------
create view oa1p.vQZ040BindOV as --- explode OV = Option/Value --------
with i (inst) as --- installDates -------------------------------------
(
  select install from oa1p.tQZ040BindPgm
  group by install
)
, r --- recursive join all options together ---------------------------
(inst, key, seq, opt, val, lev) as
( select i.inst, key, seq, VA1, VA2, 1
    from i join oa1p.tQZ042BindCnfg c
      on i.inst >= c.installBegin and i.inst < c.installEnd
         and c.typ = 'ov'
  union all select r.inst, r.key, c.seq, c.va1, c.va2, lev+1
    from r join oa1p.tQZ042BindCnfg c
      on r.inst >= c.installBegin and r.inst < c.installEnd
         and c.typ = 'ov' and c.key = r.val
    where r.lev < 99 and r.opt = '-->parent'
)
, c as --- select most relevant value per option ----------------------
(
  select r.*, row_number() over(partition by inst, key, opt
                                order by lev asc) rn
    from r
    where seq <> -9999 -- eliminate --> parent
)
select p.*
      , case when c.seq is null then raise_error(77204
               , appl || '.' || strip(pgm) || ' ov=' || strip(ov)
                                    || ' no tQZ042BindCnfg')
             else c.seq end ovSeq
      , opt, val
    from oa1p.vQZ040BindCQ p left join c
      on c.rn = 1 and c.key = p.ov
         and p.install = c.inst
;

CREATE view oa1p.vQZ040Bind as --- each bindLine ----------------------
with g as
(
  select * from oa1p.vQZ040BindCQ
)
, b --- add special options with bracket syntax  ------
    (appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeq, rz, dbSys, location, quaDef
       , cqSeq,  col, qua
       , ovSeq, opt, val) as
(
  select * from oa1p.vQZ040BindOV
  union all select g.*, -7, 'member', pgm  from g
  union all select g.*, -6, 'qualifier', qua  from g
  union all select g.*, 9901, 'sqlError', 'noPackage' from g
  union all select g.*, 9902, 'action', 'replace' from g
)
, u --- add first and last line and non bracket syntax ------
    (appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeq, rz, dbSys, location, quaDef
       , cqSeq,  col, qua
       , ovSeq, opt, val, s1) as
(
  select g.*, -9, 'b', col
      , 'bind package('
        || case when location = '' then ''
                else strip(location) || '.' end
        || strip(col) || ') -' from g
  union all select b.*
      , '    ' || strip(opt) || '(' || strip(val) || ') -'
    from b
  union all select g.*, 9909, 'end', ''
       , '    /* end ' || rz || '/' || dbSys
         || ' ' || appl || '@' || char(install)
         || ' ' || strip(location) || '.' || strip(col)
         || '.' || strip(pgm)
     from g
)
select cast(s1 as char(72)) stmt
       , appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeq, rz, dbSys, location, quaDef
       , cqSeq,  col, qua
       , ovSeq, opt, val
    from u
;
-----------------------------------------------------------------------
CREATE view oa1p.vQZ040ReBind as --- each RebindLine ------------------
with g as
(
  select * from oa1p.vQZ040BindCQ
)
, b --- add special options with bracket syntax  ------
    (appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeq, rz, dbSys, location, quaDef
       , cqSeq,  col, qua
       , ovSeq, opt, val) as
(
  select * from oa1p.vQZ040BindOV
  union all select g.*, -6, 'qualifier', qua  from g
)
, u --- add first and last line and non bracket syntax ------
    (appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeq, rz, dbSys, location, quaDef
       , cqSeq,  col, qua
       , ovSeq, opt, val, s1) as
(
  select g.*, -9, 'r', col
       , 'rebind package ('
         || case when location = '' then ''
                 else strip(location) || '.' end
         || strip(col) || '.' || strip(pgm) || '+'
    from g
  union all select g.*, -8, 'v', '*', '    .(*)) -' from g
  union all select b.*
      , '    ' || strip(opt) || '(' || strip(val) || ') -'
    from b
  union all select g.*, 9909, 'end', ''
       , '    /* end ' || rz || '/' || dbSys
         || ' ' || appl || '@' || char(install)
         || ' ' || strip(location) || '.' || strip(col)
         || '.' || strip(pgm)
     from g
)
select cast(s1 as char(72)) stmt
       , appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeq, rz, dbSys, location, quaDef
       , cqSeq,  col, qua
       , ovSeq, opt, val
    from u
;

CREATE view oa1p.vQZ040BindRz as --- bind pgm in rz ----------------
with f as
(
  select case when min(appl) <> max(appl) then raise_error(77211
                 , 'appl changes for ' || rz || ' pgm=' || pgm)
              when min(install) <> max(install) then raise_error(77212
                 , 'install changes for ' || rz || ' pgm=' || pgm)
              when min(rdl    ) <> max(rdl    ) then raise_error(77213
                 , 'rdl changes for ' || rz || ' pgm=' || pgm)
              when min(ov     ) <> max(ov     ) then raise_error(77214
                 , 'ov changes for ' || rz || ' pgm=' || pgm)
              when min(colDef ) <> max(colDef ) then raise_error(77215
                 , 'coldef changes for ' || rz || ' pgm=' || pgm)
              when min(dbSys  ) <> max(dbSys  ) then raise_error(77216
                 , 'dbSys changes for ' || rz || ' pgm=' || pgm)
              when min(quaDef ) <> max(quaDef ) then raise_error(77216
                 , 'quaDef changes for ' || rz || ' pgm=' || pgm)
         else min(appl) end appl
      , pgm
      , min(install) install
      , min(rdl) rdl
      , min(cq)  cq
      , min(ov)  ov
      , min(colDef)  colDef
      , min(rdlSeq) rdlSeqMin
      , max(rdlSeq) rdlSeqMax
      , rz
      , min(dbSys) dbSys
      , min(quaDef) quaDef
      , min(cqSeq) cqSeqMin
      , max(cqSeq) cqSeqMax
      , min(ovSeq) ovSeqMin
      , max(ovSeq) ovSeqMax
      , count(distinct location) cLoc
      , count(distinct location || '.' || col) cBi
    from oa1p.vQZ040Bind
    group by rz, pgm
)
, g as
(
   select f.*, p.id, p.info
       from f left join oa1p.tQZ040BindPgm p
                     on f.pgm = p.pgm
)
, u --- add dsn statements and comments ----------------------------
    ( stmt, appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeq, rz, dbSys, location, quaDef
       , cqSeq,  col, qua
       , ovSeq, opt, val) as
(
  select '  /* beginRzPgm ' || rz || '/' || dbSys || ' '
           || strip(appl) ||'@'|| char(install) || ' ' ||strip(pgm)
       , appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeqMin, rz, dbSys, cast(null as char(1)), quaDef
       , cqSeqMin-9,  cast(null as char(1)),  cast(null as char(1))
       , 0, 'begin', 'pgm'
      from g
  union all select '  /*   '
           || cBi || ' binds in ' || cLoc || ' locations'
       , appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeqMin, rz, dbSys, cast(null as char(1)), quaDef
       , cqSeqMin-8, cast(null as char(1)), cast(null as char(1))
       , 0, 'count', 'binds'
      from g
  union all select '  /* ' || info
       , appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeqMin, rz, dbSys, cast(null as char(1)), quaDef
       , cqSeqMin-7, 'dsn', dbSys
       , 0, 'count', 'binds'
      from g where info is not null
  union all select 'dsn system(' || dbSys || ')'
       , appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeqMin, rz, dbSys, cast(null as char(1)), quaDef
       , cqSeqMin-6, 'dsn', dbSys
       , 0, 'count', 'binds'
      from g
  union all select * from oa1p.vQz040Bind
  union all select 'end'
       , appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeqMax, rz, dbSys, cast(null as char(1)), quaDef
       , cqSeqMax+1, cast(null as char(1)), cast(null as char(1))
       , 0, 'dsn', 'end'
      from g
)
select * from u
;
-----------------------------------------------------------------------
CREATE view oa1p.vQZ040BindDBP as --- generate dbp member -------------
with p as --- group by pgm --------------------------------------------
(
  select pgm
    , case when min(appl) <> max(appl) then raise_error(77241
               , 'appl changes for pgm=' || strip(pgm))
           when min(install) <> max(install) then raise_error(77242
               , 'install changes for pgm=' || strip(pgm))
      else min(appl) end appl
    , min(install) install
    , min(rdlSeq) rdlSeqMin
    , max(rdlSeq) rdlSeqMax
    , count(distinct rz) cRz
    , count(distinct rz || '.' || dbSys) cDbSys
    , count(distinct rz || '.' || dbSys || '.' || location) cLoc
    , count(distinct rz || '.' || dbSys || '.' || location
         || '.' || col ) cBin
    , count(*) cLi
    from oa1p.vQZ040BindRz
    group by pgm
)
, u --- add dbp comments -------------------------------------------
    ( stmt, appl, pgm, install, rdl, cq, ov, colDef
       , rdlSeq, rz, dbSys, location, quaDef
       , cqSeq,  col, qua
       , ovSeq, opt, val) as
(
  select '  /* beginPgm ' || strip(appl) ||'@'|| char(install) || ' '
           || strip(pgm)
       , appl, pgm, install, '*', '*', '*', '*'
       , rdlSeqMin-9, cast(null as char(1)), cast(null as char(1))
           , '*', '*'
       , 0, cast(null as char(1)), '*'
       , 0, 'pgm', 'begin'
      from p
  union all select '  /*   ' || (cLi+2) || ' lines, '
             || cBin || ' binds, '
             || cLoc || ' locations, ' || cDbSys || ' dbSys, '
             || cRz  || ' rz'
       , appl, pgm, install, '*', '*', '*', '*'
       , rdlSeqMin-8, cast(null as char(1)), cast(null as char(1))
           , '*', '*'
       , 0, cast(null as char(1)), '*'
       , 0, 'pgm', 'cnt'
      from p
  union all select * from oa1p.vQZ040BindRz
)
select * from u
;
commit
}¢--- A540769.WK.SQL(BINDHISG) cre=2014-04-04 mod=2014-04-22-14.24.15 A540769 ---
select genTst, result, rz, dbSys, pgm, line
       , g.genId, CMPKG, cOM, cmJob, appl, instALL, result, resTst
    from oa1p.tQZ043BindGen g
      left join oa1p.tQZ044BindLine l
        on g.genId = l.genId and seq = 1
      where pgm <> ''
    order by genTst desc
}¢--- A540769.WK.SQL(BINDHISL) cre=2014-04-04 mod=2014-04-22-14.00.24 A540769 ---
select pgm, g.genId, seq, line, g.*
    from oa1p.tQZ043BindGen g
      left join oa1p.tQZ044BindLine l
        on g.genId = l.genId
      where pgm = 'MF5000'
    order by genTst desc, genId, seq
}¢--- A540769.WK.SQL(BINDMIGC) cre=2013-11-03 mod=2014-09-25-10.03.01 A540769 ---
    --- create bind config OA1P.tQZ042BindCnfg
    ---     dies is die config für die Migration
    ---     von bind_paramters (v21) auf tQz041BindParm (v32)
    --- NACH der Migration wird tQZ042BindCnfg direkt editiert
    ---     und dieses Script dar NICHT mehr gebraucht werden
    ---
    ---  history
    ---  23. 9.14 AV0102 zugefügt
select count(*) from OA1P.tQZ042bindCnfg;
delete from OA1P.tQZ042BindCnfg;
Insert into OA1P.TQZ042BINDCNFG
    ( typ, key, seq, installBegin, installEnd, va1, va2, va3 )
with u as
(
select 'wCo' typ, COL key
      , 10 * row_number() over (order by col) seq
      , INSTALLFR installBegin, INSTALLTO  installEnd
    from oa1p.TBIPLANCOL
    order by col
)
select u.*, '', '', '' from u
;
----- val rdl = rz db2system location ----------------------------------
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2008', 22, 'RZ8', 'DC0G') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2008', 30, 'RZ8', 'DD0G') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2
                                         , installEnd)
    values('rdl', 'DBOF', '01.01.2000', 42, 'RZ1','DBTF','31.08.2014');
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2008', 44, 'RZZ', 'DE0G') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2014', 60, 'RQ2', 'DBOF') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2000', 64, 'RR2', 'DBOF') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2000', 80, 'RZ2', 'DBOF') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2012', 22, 'RZ8', 'DCVG') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2008', 30, 'RZ8', 'DDVG') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2
                                         , installEnd)
    values('rdl', 'DVBP', '01.01.2000', 42, 'RZ1','DVTB','31.08.2014');
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2008', 44, 'RZZ', 'DEVG') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2014', 60, 'RQ2', 'DVBP') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2000', 64, 'RR2', 'DVBP') ;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2000', 80, 'RZ2', 'DVBP') ;
insert into OA1P.tQZ042bindCnfg
       (typ, key, installBegin, seq, va1, va2)
    select typ, 'DBOF>DVBP', installBegin, seq, va1, va2
      from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DBOF';
insert into OA1P.tQZ042bindCnfg
       (typ, key, installBegin, seq, va1, va2)
    select typ, 'DBOF>DVBP', installBegin, seq+1, va1, va2
      from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DBOF';
update OA1P.tQZ042bindCnfg set va3 = 'CHROI000DCVG'
    where typ = 'rdl' and key = 'DBOF>DVBP' and seq = 23;
update OA1P.tQZ042bindCnfg set va3 = 'CHROI000DDVG'
    where typ = 'rdl' and key = 'DBOF>DVBP' and seq = 31;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DVTB'
    where typ = 'rdl' and key = 'DBOF>DVBP' and seq = 43;
update OA1P.tQZ042bindCnfg set va3 = 'CHROI00ZDEVG'
    where typ = 'rdl' and key = 'DBOF>DVBP' and seq = 45;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DVBP'
    where typ = 'rdl' and key = 'DBOF>DVBP' and seq in (61, 65, 81);
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select typ, 'DBOF>DBOL', seq, va1, va2, installBegin
      from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DBOF';
insert into OA1P.tQZ042bindCnfg
          (typ, key, seq, va1, va2, va3, installBegin)
    values('rdl', 'DBOF>DBOL', 81, 'RZ2', 'DBOF','CHSKA000DBOL'
                , '01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    select typ, 'DVBP>DBOF', installBegin, seq, va1, va2
      from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DVBP';
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2)
    select typ, 'DVBP>DBOF', installBegin, seq+1, va1, va2
      from OA1P.tQZ042bindCnfg where typ = 'rdl' and key = 'DVBP';
update OA1P.tQZ042bindCnfg set va3 = 'CHROI000DC0G'
    where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 23;
update OA1P.tQZ042bindCnfg set va3 = 'CHROI000DD0G'
    where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 31;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DBTF'
    where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 43;
update OA1P.tQZ042bindCnfg set va3 = 'CHROI00ZDE0G'
    where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 45;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DBOF'
    where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 61;
update OA1P.tQZ042bindCnfg set va3 = 'CHSKA000DBOF'
    where typ = 'rdl' and key = 'DVBP>DBOF' and seq = 81;
update OA1P.tQZ042bindCnfg set va4 = 'OA1T'
    where typ = 'rdl' and key not like 'DVBP%'
                      and va2 in ('DBTF', 'DVTB');
update OA1P.tQZ042bindCnfg set va4 = 'OA1P'
    where typ = 'rdl' and key not like 'DVBP%'
                      and va4 = ''
;
update OA1P.tQZ042bindCnfg set va4 = 'BUA'
    where typ = 'rdl' and key like 'DVBP%'
                      and va4 = ''
;
                 --- move rz8 to rzX und rzY
update OA1P.tQZ042bindCnfg set installEnd = '20.10.2013'
    where typ = 'rdl' and va1 = 'RZ8'
;
insert into OA1P.tQZ042bindCnfg (typ, key, installBegin, seq, va1, va2
                                                           , va3, va4)
  select typ, key, '20.10.2013', seq
    , case when va2 in ('DC0G', 'DCVG') then 'RZX'
           when va2 in ('DD0G', 'DDVG') then 'RZY'
           else raise_error(77501, 'bad va2 ' || va2) end
    , 'DE' || substr(va2, 3, 2)
    , case when va3 = '' then ''
           else case right(strip(va3), 4)
               WHEN 'DC0G' then 'CHROI00XDE0G'
               WHEN 'DCVG' then 'CHROI00XDEVG'
               WHEN 'DD0G' then 'CHROI00YDE0G'
               WHEN 'DDVG' then 'CHROI00YDEVG'
               else raise_error(77502, 'bad va3 ' || va3) end end
    , va4
  from OA1P.tQZ042bindCnfg
    where typ = 'rdl' and va1 = 'RZ8'
;
update OA1P.tQZ042bindCnfg set installEnd = '01.01.2014'
    where typ = 'rdl' and va1 = 'RZX' and seq = 23
;
----- val cq: collection qualifier ------------------------------------
declare global temporary table session.i
 (i int not null, c2 char(2) not null) ccsid unicode;
insert into session.i
    select i, right('0000' || strip(char(i)), 2) c2
            from (select row_number() over() -1 i
                   from sysibm.sysColumns fetch first 100 rows only)s
 ;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'default',   1,   '$',  '$', '01.01.2000')
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'AV0102', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 2
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'AV-03', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 3
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'AV-03-22', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i in (1, 2, 3, 21, 22)
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'AV-10-32', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i in(1,2,3,5,6,7,8,9,10,28,29,30,31,32)
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'AVALL', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 32 and i <> 4
; /*?????????
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'AV0101',   1,   'AV01',  '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'AV0101',   2,   'AV02',  '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'AV12',   1,   'AV',  '$12', '01.01.2000');
 ??????? */
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'BE-04', i, 'BE' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 4
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'BE+04', 0,   'BE',  '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'BE+04', i, 'BE' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 4
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'AU', 1,   'AU',  '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'CTCZ', 1,   'CT',  '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'CTCZ', 2,   'CZ',  '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'KE', 1,   'KE',  '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'NI-02', 2,   'NI01',  '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'NI-02', 3,   'NI02',  '$02', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'NI+02', 0,   'NI',  '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'NI+02', 1,   'NI01',  '$01', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'NI+02', 2,   'NI02',  '$02', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'PC-02', i, 'PC' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 2
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'PCALL', i, 'PC' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 16
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
            values('cq', 'XB', 1,   'XB',  '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
    select 'cq', 'XCALL', i, 'XC' || c2, '$' || c2, '01.01.2000'
         from session.i where i >= 0 and i <= 9
;
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
         values('cq', 'YY+',   1,   '$',  '$', '01.01.2000');
insert into oa1p.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
         values('cq', 'YY+',  10,  'YY',  '$', '01.01.2000');
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'default',  110,  'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'default',   210,  'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'default',   220,  'DEGREE', '1','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'default',   310,  'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'default',   320,  'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'default',   910,  'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'default',   920,  'FLAG', 'I','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'degAny',    220,  'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'valRun',   320,  'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',    330,  'OPTHINT', '''HBD1''','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',  -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',    330,  'OPTHINT', '''OH''' ,'01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw',    340,  'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun',    310,  'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',   320,  'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tQZ042bindCnfg (typ, key, seq, va1, va2, installBegin)
 values('ov', 'relDea',    230,  'RELEASE', 'DEALLOCATE','01.01.2000');

select count(*) from OA1P.tQZ042bindCnfg;

rollback;
commit;
}¢--- A540769.WK.SQL(BINDMIGP) cre=2014-04-04 mod=2014-09-25-10.07.41 A540769 ---
    --- migrate bind_paramters und bind_exceptions  (v21)
    ---     to tQz041BindParm                       (v32)
    --- Achtung das migriert die Daten
    ---     auf denen ChangeMan live arbeitet
    --- falls Migrationsfehler ==> rollback durch spufi
    --- wenn ok, rollback am Ende durch commit ersetzen
             --- history
             --- 24. 9.14 AV0102 eingefügt
select count(*) from OA1P.tQz041BindParm;
delete from OA1P.tQz041BindParm;
insert into OA1P.tQz041BindParm
         (appl, pgm, prio, rdl, cq, ov, installBegin)
with e1 as --- old exception table -------------------------------------
(
  select appl, pgm, installdate inst
    , replace(replace
     (strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
     , 'CHSKA000', '?'), 'CHROI00', '%') dlq
    , row_number() over (partition by appl, pgm
                  order by ssid, location, qualifier) rn
      from oa1p.bind_exceptions e
    where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
        and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
                        'DBWK411', 'YCDPUT2'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
  select appl, pgm, inst, cast(dlq as varchar(2000)), 1
    from e1 where rn = 1
  union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
           , r+1
    from eR join e1
      on e1.appl = eR.appl and e1.pgm = eR.pgm
           and e1.rn = eR.r+1
      where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
   ( appl, pgm, inst,  dlq) as
(
  select appl, pgm, max(inst), max(dlq)
    from eR
    group by appl, pgm
)
, rdl as --- find rdl --------------------------------------------------
(
  select appl, pgm, inst
    , case dlq
           when 'DAEG>?DC0G-OA1P DBBA>-OA1A DBBA>?DBAF-OA1A '
             || 'DCVG>- DCVG>%0DC0G- DDVG>- DDVG>%0DD0G- DEVG>- '
             || 'DEVG>%ZDE0G- DVBP>-OA1P DVBP>?DBOF-OA1P DVTB>-OA1T '
             || 'DVTB>?DBTF-OA1T'            then 'DBOF>DVBP'
           when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
             || 'DBTF>-OA1T DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
           when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
             || 'DBTF>-OA1T DBTF>?DVTB-OA1T DE0G>-OA1P DE0G>%ZDEVG-OA1P'
                                             then 'DBOF>DVBP'
    --     when 'DBAF>-OA1A DBAF>?DBTF-OA1A' then '???oa1a 1'
           when 'DBAF>-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P DBTF>-OA1T '
             || 'DBTF>?DVTB-OA1T'            then 'DBOF>DVBP'
    --     when 'DBAF>?DBBA-OA1A DBBA>?DBAF-OA1A' then '???oa1a 2'
           when 'DBBA>-OA1A'                 then 'DBOF>DVBP'
           when 'DBBA>-OA1A DBBA>?DBAF-OA1A DCVG>- DCVG>%0DC0G- '
             || 'DDVG>- DDVG>%0DD0G- DEVG>- DEVG>%ZDE0G- DVBP>-OA1P '
             || 'DVBP>?DBOF-OA1P DVTB>-OA1T DVTB>?DBTF-OA1T'
                                             then 'DBOF>DVBP'
           else raise_error(77301, pgm || ' dlq ' || dlq)
      end rdl
    from e2
)
,  p as --- mark outdated entries in bind_parameters ----------------
(
  select p.*
         , row_number() over (partition by appl, pgm, collid
                              order by installdate desc) iNr
    from oa1p.bind_parameters p
    where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
        and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
                        'DBWK411', 'YCDPUT2'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, o1 as --- translate space to null -----------------------------------
( select appl, pgm, collid, installdate
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from p
    where iNr = 1
)
, o2 as -- left join appl and gen defaults ----------------------------
( select
--alue(s.$           ,a.$           ,d.$           ) $
 value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from o1 s
      left join o1 a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join p d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, o3 as  --- add combination of options/values -----------------------
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     o2.*
     from o2
)
, ov as
(
  select appl, pgm, installDate, collid
      , case when comb is null    then raise_error(77311
               , pgm || ' comb is null')
             else qualifier end qualifier
      , case comb
            when '    ANY BIND        BIND' then 'degAny   '
            when '    1   BIND        BIND' then 'default  '
            when '    1   BIND        RUN ' then 'valRun   '
            when '    1   BIND    HBD1BIND' then 'optHBD1  '
            when '    1   BIND    OH  BIND' then 'optOH    '
            when '    1   BINDALWA    BIND' then 'reoAlw   '
            when '    1   RUN         BIND' then 'dynRun   '
            when '    1   RUN         RUN ' then 'dynValRun'
            when 'DEAL1   BIND        BIND' then 'relDea   '
            else raise_error(77312, pgm || ' bad comb ' || comb)
           end ov
     from o3
)
, a as --- left join rdl -----------------------------------------------
(
   select ov.appl, ov.pgm
       , max(ov.installDate, value(rdl.inst, ov.installDate)) inst
       , case when rdl.rdl is not null then rdl.rdl
              when ov.appl like 'ELA%' then 'DVBP'
              else 'DBOF'
         end rdl
       , ov.ov
       , case when rdl.rdl is not null then 'OA1$'
              when ov.appl like 'ELA%' then 'BUA'
              else 'OA1$'
         end quaVar
       ,  ov.collid col, ov.qualifier qua
     from ov left join rdl
         on ov.appl = rdl.appl
           and ov.pgm = rdl.pgm
)
, d as --- add default Qualifier and Collection
(
  select a.*
    , case when pgm = 'DEFAULT'     then '$'
           when left(pgm, 2) = 'YX' then 'YX'
           when left(pgm, 2) = 'YY' then 'YY'
           when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
           else left(pgm, 2) end colDef
    ,  row_number() over(partition by appl, pgm order by col) r
    from a
)
, e --- recursive build lists of colls/quals --------------------------
         ( appl, pgm, col, inst, rdl, ov
         , quaVar, colDef, r, qua, quals, colls) as
(
  select appl, pgm, col, inst, rdl, ov
      , quaVar, colDef, 1, qua
      , cast(strip(qua) as varchar(1000))
      , cast(strip(col) as varchar(1000))
    from d where r = 1
  union all select d.appl, d.pgm, d.col, d.inst, d.rdl, d.ov
     , d.quaVar, d.colDef, e.r+1, d.qua
     , e.quals || ' ' || strip(d.qua)
     , e.colls || ' ' || strip(d.col)
  from e join d
    on e.appl = d.appl and e.pgm = d.pgm
      and e.r + 1 = d.r  and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
  select appl, pgm, max(inst) inst
     , min(rdl) rdl, max(rdl) rdlMax
     , min(ov)   ov, max(ov)  ovMax
     , min(colDef) colDef, max(colDef) colDefMax
     , min(quaVar) quaVar, max(quaVar) quaVarMax
     , max(quals) quals
     , max(colls) colls
    from e
    group by  appl, pgm
)
, g as --- special quals ---------------------------------------------
(
  select appl, pgm, inst, rdl, ov, colDef, quaVar, quals
    , case when rdl <> rdlMax
               then raise_error(77321, pgm
                   || ' rdl ' || rdl || ' ==> ' || rdlMax)
           when ov is null then raise_error(77312, pgm || ' ov null')
           when ov <> ovMax
               then raise_error(77323, pgm
                   || ' ov ' || ov || ' ==> ' || ovMax)
           when colDef <> colDefMax
               then raise_error(77324, pgm
                   || ' colDef ' || colDef || ' ==> ' || colDefMax)
           when quaVar <> quaVarMax
               then raise_error(77325, pgm
                   || ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
           when colls = 'DEFAULT' then colDef
           else colls
      end colls
    from f
)
, h as --- colls und quals komprimieren --------------------------------
(
  select g.*
     , replace(colls, ' ' || left(colls, 2), '=') collR
     , replace(quals, ' ' || left(quals, 4), '=') qualR
    from g
)
--  select * from h where 'DEFAULT' in (pgm, appl) ;x;
, i as --- den neuen cq key bestimmen ----------------------------------
(
  select h.*
  , cast(case                                               --- default
      when colls = colDef and quals = quaVar then 'default'
                                                            --- single
      when quals=quaVar and colls in ('AU', 'BE', 'CD', 'KE', 'XB')
           then colls
                    --- spezial: colls und quals nicht in sync --------
                                                            --- av
 /*???when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
           || '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
        then 'AV/Y/X012'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/0129'
      when collR = 'AV01=02' and qualR = 'OA1$01=01'
          then 'AV0101'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/CPID'
 ???? when collR = 'AV' and quals = 'OA1P12' then 'AV12'  ????? */
      when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
          then 'BE+04'
      when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ'  --- ctcz
      when colls = coldef ||' YY' and qualR = 'OA1$='       --- + yy
              then 'YY+'
      when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02'  --- oa1p
          then 'OA1P-02'
                    --- error if colls und quals nicht in sync--------
      when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
          then raise_error(77331, appl||'.'||pgm || ' colls ' || collR
                 || ' mismatches quals ' || qualR)
                                                        --- av
      when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
            ||  '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
             and left(collR, 14) in ('AV01=02=03=05='
                    , 'AV01=02=05=06=', 'AV05=06=07=08=' )
          then 'AVALL'
      when collR in (              'AV01=02'       ) then 'AV0102'
      when collR in ('AV01=02=03',           'AV03') then 'AV-03'
      when collR in ('AV01=02=03=05=06=07=08=09=10'
                    ,'AV01=02=03=28=29=30=31=32'
                    ,'AV01=02=09=10=28=29=30=31=32'
                    ,'AV28=29=30=31=32') then 'AV-10-32'
      when collR =   'AV01=02=03=21=22' then 'AV-03-22'
      when collR = 'BE01=02=03=04' then 'BE-04'         --- be
      when collR = 'NI01=02'            then 'NI-02'    --- ni
      when collR = 'NI=01=02'           then 'NI+02'
      when collR in ('PC01=02', 'PC01') then 'PC-02'    --- pc
      when collR in
           ('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
           ,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
                                       then 'PCALL'
                                                        --- xc
      when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
      else raise_error(77332, appl||'.'||pgm || ' collR ' || collR
                    || ' quaVar ' || quaVar)
    end as char(10)) cq
    from h
)
, j as
(
select case when appl = 'DEFAULT' or pgm <> 'DEFAULT' then '%'
            else appl end appl
    , case when pgm  = 'DEFAULT' then '%' else pgm  end pgm
    , case when pgm <> 'DEFAULT' then 20
           when appl <> 'DEFAULT' then 2
                                  else 0 end prio
    , case when rdl = 'DBOF' then 'DBOF'
           when rdl = 'DVBP' then 'DVBP'
           else rdl end rdl
    , cq, ov, inst
    from i
)
select * from j
    where not (rdl = 'DBOF' and cq = 'default' and ov = 'default')
          or  (pgm = '%' and appl = '%')
;

select count(*) from OA1P.tQz041BindParm;

rollback;

commit;
}¢--- A540769.WK.SQL(BINDMIGQ) cre=2014-09-23 mod=2014-09-23-16.51.07 A540769 ---
    --- migrate bind_paramters und bind_exceptions  (v21)
    ---     to tQz041BindParm                       (v32)
    --- Achtung das migriert die Daten
    ---     auf denen ChangeMan live arbeitet
    --- falls Migrationsfehler ==> rollback durch spufi
    --- wenn ok, rollback am Ende durch commit ersetzen
    ---
with e1 as --- old exception table -------------------------------------
(
  select appl, pgm, installdate inst
    , replace(replace
     (strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
     , 'CHSKA000', '?'), 'CHROI00', '%') dlq
    , row_number() over (partition by appl, pgm
                  order by ssid, location, qualifier) rn
      from oa1p.bind_exceptions e
    where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
        and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
                        'DBWK411', 'YCDPUT2'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
  select appl, pgm, inst, cast(dlq as varchar(2000)), 1
    from e1 where rn = 1
  union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
           , r+1
    from eR join e1
      on e1.appl = eR.appl and e1.pgm = eR.pgm
           and e1.rn = eR.r+1
      where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
   ( appl, pgm, inst,  dlq) as
(
  select appl, pgm, max(inst), max(dlq)
    from eR
    group by appl, pgm
)
, rdl as --- find rdl --------------------------------------------------
(
  select appl, pgm, inst
    , case dlq
           when 'DAEG>?DC0G-OA1P DBBA>-OA1A DBBA>?DBAF-OA1A '
             || 'DCVG>- DCVG>%0DC0G- DDVG>- DDVG>%0DD0G- DEVG>- '
             || 'DEVG>%ZDE0G- DVBP>-OA1P DVBP>?DBOF-OA1P DVTB>-OA1T '
             || 'DVTB>?DBTF-OA1T'            then 'DBOF>DVBP'
           when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
             || 'DBTF>-OA1T DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
           when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
             || 'DBTF>-OA1T DBTF>?DVTB-OA1T DE0G>-OA1P DE0G>%ZDEVG-OA1P'
                                             then 'DBOF>DVBP'
    --     when 'DBAF>-OA1A DBAF>?DBTF-OA1A' then '???oa1a 1'
           when 'DBAF>-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P DBTF>-OA1T '
             || 'DBTF>?DVTB-OA1T'            then 'DBOF>DVBP'
    --     when 'DBAF>?DBBA-OA1A DBBA>?DBAF-OA1A' then '???oa1a 2'
           when 'DBBA>-OA1A'                 then 'DBOF>DVBP'
           when 'DBBA>-OA1A DBBA>?DBAF-OA1A DCVG>- DCVG>%0DC0G- '
             || 'DDVG>- DDVG>%0DD0G- DEVG>- DEVG>%ZDE0G- DVBP>-OA1P '
             || 'DVBP>?DBOF-OA1P DVTB>-OA1T DVTB>?DBTF-OA1T'
                                             then 'DBOF>DVBP'
           else raise_error(77301, pgm || ' dlq ' || dlq)
      end rdl
    from e2
)
,  p as --- mark outdated entries in bind_parameters ----------------
(
  select p.*
         , row_number() over (partition by appl, pgm, collid
                              order by installdate desc) iNr
    from oa1p.bind_parameters p
    where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
        and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
                        'DBWK411', 'YCDPUT2'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, o1 as --- translate space to null -----------------------------------
( select appl, pgm, collid, installdate
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from p
    where iNr = 1
)
, o2 as -- left join appl and gen defaults ----------------------------
( select
--alue(s.$           ,a.$           ,d.$           ) $
 value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from o1 s
      left join o1 a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join p d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, o3 as  --- add combination of options/values -----------------------
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     o2.*
     from o2
)
, ov as
(
  select appl, pgm, installDate, collid
      , case when comb is null    then raise_error(77311
               , pgm || ' comb is null')
             else qualifier end qualifier
      , case comb
            when '    ANY BIND        BIND' then 'degAny   '
            when '    1   BIND        BIND' then 'default  '
            when '    1   BIND        RUN ' then 'valRun   '
            when '    1   BIND    HBD1BIND' then 'optHBD1  '
            when '    1   BIND    OH  BIND' then 'optOH    '
            when '    1   BINDALWA    BIND' then 'reoAlw   '
            when '    1   RUN         BIND' then 'dynRun   '
            when '    1   RUN         RUN ' then 'dynValRun'
            when 'DEAL1   BIND        BIND' then 'relDea   '
            else raise_error(77312, pgm || ' bad comb ' || comb)
           end ov
     from o3
)
, a as --- left join rdl -----------------------------------------------
(
   select ov.appl, ov.pgm
       , max(ov.installDate, value(rdl.inst, ov.installDate)) inst
       , case when rdl.rdl is not null then rdl.rdl
              when ov.appl like 'ELA%' then 'DVBP'
              else 'DBOF'
         end rdl
       , ov.ov
       , case when rdl.rdl is not null then 'OA1$'
              when ov.appl like 'ELA%' then 'BUA'
              else 'OA1$'
         end quaVar
       ,  ov.collid col, ov.qualifier qua
     from ov left join rdl
         on ov.appl = rdl.appl
           and ov.pgm = rdl.pgm
)
, d as --- add default Qualifier and Collection
(
  select a.*
    , case when pgm = 'DEFAULT'     then '$'
           when left(pgm, 2) = 'YX' then 'YX'
           when left(pgm, 2) = 'YY' then 'YY'
           when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
           else left(pgm, 2) end colDef
    ,  row_number() over(partition by appl, pgm order by col) r
    from a
)
, e --- recursive build lists of colls/quals --------------------------
         ( appl, pgm, col, inst, rdl, ov
         , quaVar, colDef, r, qua, quals, colls) as
(
  select appl, pgm, col, inst, rdl, ov
      , quaVar, colDef, 1, qua
      , cast(strip(qua) as varchar(1000))
      , cast(strip(col) as varchar(1000))
    from d where r = 1
  union all select d.appl, d.pgm, d.col, d.inst, d.rdl, d.ov
     , d.quaVar, d.colDef, e.r+1, d.qua
     , e.quals || ' ' || strip(d.qua)
     , e.colls || ' ' || strip(d.col)
  from e join d
    on e.appl = d.appl and e.pgm = d.pgm
      and e.r + 1 = d.r  and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
  select appl, pgm, max(inst) inst
     , min(rdl) rdl, max(rdl) rdlMax
     , min(ov)   ov, max(ov)  ovMax
     , min(colDef) colDef, max(colDef) colDefMax
     , min(quaVar) quaVar, max(quaVar) quaVarMax
     , max(quals) quals
     , max(colls) colls
    from e
    group by  appl, pgm
)
, g as --- special quals ---------------------------------------------
(
  select appl, pgm, inst, rdl, ov, colDef, quaVar, quals
    , case when rdl <> rdlMax
               then raise_error(77321, pgm
                   || ' rdl ' || rdl || ' ==> ' || rdlMax)
           when ov is null then raise_error(77312, pgm || ' ov null')
           when ov <> ovMax
               then raise_error(77323, pgm
                   || ' ov ' || ov || ' ==> ' || ovMax)
           when colDef <> colDefMax
               then raise_error(77324, pgm
                   || ' colDef ' || colDef || ' ==> ' || colDefMax)
           when quaVar <> quaVarMax
               then raise_error(77325, pgm
                   || ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
           when colls = 'DEFAULT' then colDef
           else colls
      end colls
    from f
)
, h as --- colls und quals komprimieren --------------------------------
(
  select g.*
     , replace(colls, ' ' || left(colls, 2), '=') collR
     , replace(quals, ' ' || left(quals, 4), '=') qualR
    from g
)
--  select * from h where 'DEFAULT' in (pgm, appl) ;x;
, i as --- den neuen cq key bestimmen ----------------------------------
(
  select h.*
  , cast(case                                               --- default
      when colls = colDef and quals = quaVar then 'default'
                                                            --- single
      when quals=quaVar and colls in ('AU', 'BE', 'CD', 'KE', 'XB')
           then colls
                    --- spezial: colls und quals nicht in sync --------
                                                            --- av
 /*???when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
           || '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
        then 'AV/Y/X012'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/0129'
      when collR = 'AV01=02' and qualR = 'OA1$01=01'
          then 'AV0101'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/CPID'
 ???? when collR = 'AV' and quals = 'OA1P12' then 'AV12'  ????? */
      when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
          then 'BE+04'
      when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ'  --- ctcz
      when colls = coldef ||' YY' and qualR = 'OA1$='       --- + yy
              then 'YY+'
      when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02'  --- oa1p
          then 'OA1P-02'
                    --- error if colls und quals nicht in sync--------
      when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
          then raise_error(77331, appl||'.'||pgm || ' colls ' || collR
                 || ' mismatches quals ' || qualR)
                                                        --- av
      when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
            ||  '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
             and left(collR, 14) in ('AV01=02=03=05='
                    , 'AV01=02=05=06=', 'AV05=06=07=08=' )
          then 'AVALL'
      when collR in (              'AV01=02'       ) then 'AV0102'
      when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
      when collR in ('AV01=02=03=05=06=07=08=09=10'
                    ,'AV01=02=03=28=29=30=31=32'
                    ,'AV01=02=09=10=28=29=30=31=32'
                    ,'AV28=29=30=31=32') then 'AV-10-32'
      when collR =   'AV01=02=03=21=22' then 'AV-03-22'
      when collR = 'BE01=02=03=04' then 'BE-04'         --- be
      when collR = 'NI01=02'            then 'NI-02'    --- ni
      when collR = 'NI=01=02'           then 'NI+02'
      when collR in ('PC01=02', 'PC01') then 'PC-02'    --- pc
      when collR in
           ('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
           ,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
                                       then 'PCALL'
                                                        --- xc
      when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
      else raise_error(77332, appl||'.'||pgm || ' collR ' || collR
                    || ' quaVar ' || quaVar)
    end as char(10)) cq
    from h
)
select appl, pgm, cq, colls, quals
    from i
    where colls like '%AV%'
    and not
      (   cq = 'AV0102' and colls = 'AV01 AV02'
      or  cq = 'AV-03'  and colls = 'AV01 AV02 AV03'
      or  cq = 'AV-03-22' and colls = 'AV01 AV02 AV03 AV21 AV22'
      or  cq = 'AV-10-32' and colls
              =  'AV01 AV02 AV03 AV05 AV06 AV07 AV08 AV09 AV10'
              || ' AV28 AV29  AV30 AV31'
      or  cq = 'AVALL' and colls
              =  'AV01 AV02 AV03 AV05 AV06 AV07 AV08 AV09'
              || ' AV10 AV11 AV12 AV13 AV14 AV15 AV16 AV17 AV18 AV19'
              || ' AV20 AV21 AV22 AV23 AV24 AV25 AV26 AV27 AV28 AV29'
              || ' AV30 AV31 AV32'
      )
    order by colls, pgm
;xy;
, j as
(
select case when appl = 'DEFAULT' or pgm <> 'DEFAULT' then '%'
            else appl end appl
    , case when pgm  = 'DEFAULT' then '%' else pgm  end pgm
    , case when pgm <> 'DEFAULT' then 20
           when appl <> 'DEFAULT' then 2
                                  else 0 end prio
    , case when rdl = 'DBOF' then 'DBOF'
           when rdl = 'DVBP' then 'DVBP'
           else rdl end rdl
    , cq, ov, inst
    from i
)
select * from j
    where not (rdl = 'DBOF' and cq = 'default' and ov = 'default')
          or  (pgm = '%' and appl = '%')
;
commit
;
;x;
rollback
;
select count(*), appl, pgm
    from j
    group by appl, pgm
    order by 1 desc ;x;
--  where 'DEFAULT' in (appl, pgm)
    order by 2, 1, 3   ;x;
;
??????????????
    --- migrate bind_paramters und bind_exceptions  (v21)
    ---     to tQz041BindParm                       (v32)
    --- Achtung das migriert die Daten
    ---     auf denen ChangeMan live arbeitet
    --- falls Migrationsfehler ==> rollback durch spufi
    --- wenn ok, rollback am Ende durch commit ersetzen
    ---
with e1 as --- old exception table -------------------------------------
(
  select appl, pgm, installdate inst
    , replace(replace
     (strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
     , 'CHSKA000', '?'), 'CHROI00', '%') dlq
    , row_number() over (partition by appl, pgm
                  order by ssid, location, qualifier) rn
      from oa1p.bind_exceptions e
    where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
        and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
                        'DBWK411', 'YCDPUT2'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
  select appl, pgm, inst, cast(dlq as varchar(2000)), 1
    from e1 where rn = 1
  union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
           , r+1
    from eR join e1
      on e1.appl = eR.appl and e1.pgm = eR.pgm
           and e1.rn = eR.r+1
      where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
   ( appl, pgm, inst,  dlq) as
(
  select appl, pgm, max(inst), max(dlq)
    from eR
    group by appl, pgm
)
, rdl as --- find rdl --------------------------------------------------
(
  select appl, pgm, inst
    , case dlq
           when 'DAEG>?DC0G-OA1P DBBA>-OA1A DBBA>?DBAF-OA1A '
             || 'DCVG>- DCVG>%0DC0G- DDVG>- DDVG>%0DD0G- DEVG>- '
             || 'DEVG>%ZDE0G- DVBP>-OA1P DVBP>?DBOF-OA1P DVTB>-OA1T '
             || 'DVTB>?DBTF-OA1T'            then 'DBOF>DVBP'
           when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
             || 'DBTF>-OA1T DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
           when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
             || 'DBTF>-OA1T DBTF>?DVTB-OA1T DE0G>-OA1P DE0G>%ZDEVG-OA1P'
                                             then 'DBOF>DVBP'
    --     when 'DBAF>-OA1A DBAF>?DBTF-OA1A' then '???oa1a 1'
           when 'DBAF>-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P DBTF>-OA1T '
             || 'DBTF>?DVTB-OA1T'            then 'DBOF>DVBP'
    --     when 'DBAF>?DBBA-OA1A DBBA>?DBAF-OA1A' then '???oa1a 2'
           when 'DBBA>-OA1A'                 then 'DBOF>DVBP'
           when 'DBBA>-OA1A DBBA>?DBAF-OA1A DCVG>- DCVG>%0DC0G- '
             || 'DDVG>- DDVG>%0DD0G- DEVG>- DEVG>%ZDE0G- DVBP>-OA1P '
             || 'DVBP>?DBOF-OA1P DVTB>-OA1T DVTB>?DBTF-OA1T'
                                             then 'DBOF>DVBP'
           else raise_error(77301, pgm || ' dlq ' || dlq)
      end rdl
    from e2
)
,  p as --- mark outdated entries in bind_parameters ----------------
(
  select p.*
         , row_number() over (partition by appl, pgm, collid
                              order by installdate desc) iNr
    from oa1p.bind_parameters p
    where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
        and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
                        'DBWK411', 'YCDPUT2'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, o1 as --- translate space to null -----------------------------------
( select appl, pgm, collid, installdate
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from p
    where iNr = 1
)
, o2 as -- left join appl and gen defaults ----------------------------
( select
--alue(s.$           ,a.$           ,d.$           ) $
 value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from o1 s
      left join o1 a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join p d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, o3 as  --- add combination of options/values -----------------------
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     o2.*
     from o2
)
, ov as
(
  select appl, pgm, installDate, collid
      , case when comb is null    then raise_error(77311
               , pgm || ' comb is null')
             else qualifier end qualifier
      , case comb
            when '    ANY BIND        BIND' then 'degAny   '
            when '    1   BIND        BIND' then 'default  '
            when '    1   BIND        RUN ' then 'valRun   '
            when '    1   BIND    HBD1BIND' then 'optHBD1  '
            when '    1   BIND    OH  BIND' then 'optOH    '
            when '    1   BINDALWA    BIND' then 'reoAlw   '
            when '    1   RUN         BIND' then 'dynRun   '
            when '    1   RUN         RUN ' then 'dynValRun'
            when 'DEAL1   BIND        BIND' then 'relDea   '
            else raise_error(77312, pgm || ' bad comb ' || comb)
           end ov
     from o3
)
, a as --- left join rdl -----------------------------------------------
(
   select ov.appl, ov.pgm
       , max(ov.installDate, value(rdl.inst, ov.installDate)) inst
       , case when rdl.rdl is not null then rdl.rdl
              when ov.appl like 'ELA%' then 'DVBP'
              else 'DBOF'
         end rdl
       , ov.ov
       , case when rdl.rdl is not null then 'OA1$'
              when ov.appl like 'ELA%' then 'BUA'
              else 'OA1$'
         end quaVar
       ,  ov.collid col, ov.qualifier qua
     from ov left join rdl
         on ov.appl = rdl.appl
           and ov.pgm = rdl.pgm
)
, d as --- add default Qualifier and Collection
(
  select a.*
    , case when pgm = 'DEFAULT'     then '$'
           when left(pgm, 2) = 'YX' then 'YX'
           when left(pgm, 2) = 'YY' then 'YY'
           when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
           else left(pgm, 2) end colDef
    ,  row_number() over(partition by appl, pgm order by col) r
    from a
)
, e --- recursive build lists of colls/quals --------------------------
         ( appl, pgm, col, inst, rdl, ov
         , quaVar, colDef, r, qua, quals, colls) as
(
  select appl, pgm, col, inst, rdl, ov
      , quaVar, colDef, 1, qua
      , cast(strip(qua) as varchar(1000))
      , cast(strip(col) as varchar(1000))
    from d where r = 1
  union all select d.appl, d.pgm, d.col, d.inst, d.rdl, d.ov
     , d.quaVar, d.colDef, e.r+1, d.qua
     , e.quals || ' ' || strip(d.qua)
     , e.colls || ' ' || strip(d.col)
  from e join d
    on e.appl = d.appl and e.pgm = d.pgm
      and e.r + 1 = d.r  and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
  select appl, pgm, max(inst) inst
     , min(rdl) rdl, max(rdl) rdlMax
     , min(ov)   ov, max(ov)  ovMax
     , min(colDef) colDef, max(colDef) colDefMax
     , min(quaVar) quaVar, max(quaVar) quaVarMax
     , max(quals) quals
     , max(colls) colls
    from e
    group by  appl, pgm
)
select appl, pgm, colls, quals
    from f
    where colls like 'AV%'
    order by colls, pgm
;x;
, g as --- special quals ---------------------------------------------
(
  select appl, pgm, inst, rdl, ov, colDef, quaVar, quals
    , case when rdl <> rdlMax
               then raise_error(77321, pgm
                   || ' rdl ' || rdl || ' ==> ' || rdlMax)
           when ov is null then raise_error(77312, pgm || ' ov null')
           when ov <> ovMax
               then raise_error(77323, pgm
                   || ' ov ' || ov || ' ==> ' || ovMax)
           when colDef <> colDefMax
               then raise_error(77324, pgm
                   || ' colDef ' || colDef || ' ==> ' || colDefMax)
           when quaVar <> quaVarMax
               then raise_error(77325, pgm
                   || ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
           when colls = 'DEFAULT' then colDef
           else colls
      end colls
    from f
)
, h as --- colls und quals komprimieren --------------------------------
(
  select g.*
     , replace(colls, ' ' || left(colls, 2), '=') collR
     , replace(quals, ' ' || left(quals, 4), '=') qualR
    from g
)
--  select * from h where 'DEFAULT' in (pgm, appl) ;x;
, i as --- den neuen cq key bestimmen ----------------------------------
(
  select h.*
  , cast(case                                               --- default
      when colls = colDef and quals = quaVar then 'default'
                                                            --- single
      when quals=quaVar and colls in ('AU', 'BE', 'CD', 'KE', 'XB')
           then colls
                    --- spezial: colls und quals nicht in sync --------
                                                            --- av
 /*???when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
           || '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
        then 'AV/Y/X012'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/0129'
      when collR = 'AV01=02' and qualR = 'OA1$01=01'
          then 'AV0101'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/CPID'
 ???? when collR = 'AV' and quals = 'OA1P12' then 'AV12'  ????? */
      when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
          then 'BE+04'
      when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ'  --- ctcz
      when colls = coldef ||' YY' and qualR = 'OA1$='       --- + yy
              then 'YY+'
      when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02'  --- oa1p
          then 'OA1P-02'
                    --- error if colls und quals nicht in sync--------
      when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
          then raise_error(77331, appl||'.'||pgm || ' colls ' || collR
                 || ' mismatches quals ' || qualR)
                                                        --- av
      when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
            ||  '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
             and left(collR, 14) in ('AV01=02=03=05='
                    , 'AV01=02=05=06=', 'AV05=06=07=08=' )
          then 'AVALL'
      when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
      when collR in ('AV01=02=03=05=06=07=08=09=10'
                    ,'AV01=02=03=28=29=30=31=32'
                    ,'AV01=02=09=10=28=29=30=31=32'
                    ,'AV28=29=30=31=32') then 'AV-10-32'
      when collR =   'AV01=02=03=21=22' then 'AV-03-22'
      when collR = 'BE01=02=03=04' then 'BE-04'         --- be
      when collR = 'NI01=02'            then 'NI-02'    --- ni
      when collR = 'NI=01=02'           then 'NI+02'
      when collR in ('PC01=02', 'PC01') then 'PC-02'    --- pc
      when collR in
           ('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
           ,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
                                       then 'PCALL'
                                                        --- xc
      when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
      else raise_error(77332, appl||'.'||pgm || ' collR ' || collR
                    || ' quaVar ' || quaVar)
    end as char(10)) cq
    from h
)
, j as
(
select case when appl = 'DEFAULT' or pgm <> 'DEFAULT' then '%'
            else appl end appl
    , case when pgm  = 'DEFAULT' then '%' else pgm  end pgm
    , case when pgm <> 'DEFAULT' then 20
           when appl <> 'DEFAULT' then 2
                                  else 0 end prio
    , case when rdl = 'DBOF' then 'DBOF'
           when rdl = 'DVBP' then 'DVBP'
           else rdl end rdl
    , cq, ov, inst
    from i
)
select * from j
    where not (rdl = 'DBOF' and cq = 'default' and ov = 'default')
          or  (pgm = '%' and appl = '%')
;
rollback
;
commit
;x;
select count(*), appl, pgm
    from j
    group by appl, pgm
    order by 1 desc ;x;
--  where 'DEFAULT' in (appl, pgm)
    order by 2, 1, 3   ;x;
;
??????
with e1 as --- old exception table -------------------------------------
(
  select appl, pgm, installdate inst
    , replace(replace
     (strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
     , 'CHSKA000', '?'), 'CHROI00', '%') dlq
    , row_number() over (partition by appl, pgm
                  order by ssid, location, qualifier) rn
      from oa1p.bind_exceptions e
    where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
        and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
                        'DBWK411', 'YCDPUT2'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
  select appl, pgm, inst, cast(dlq as varchar(2000)), 1
    from e1 where rn = 1
  union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
           , r+1
    from eR join e1
      on e1.appl = eR.appl and e1.pgm = eR.pgm
           and e1.rn = eR.r+1
      where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
   ( appl, pgm, inst,  dlq) as
(
  select appl, pgm, max(inst), max(dlq)
    from eR
    group by appl, pgm
)
select appl, pgm, dlq
    from e2
    where dlq like '%AV%'
    order by dlq
}¢--- A540769.WK.SQL(BINDMIGT) cre=2014-07-31 mod=2014-07-31-11.15.33 A540769 ---
-- mig test: vergleich A540769 versus oa1p
with j as
(
select case when a.pgm is null then 'oa1p'
            when o.pgm is null then 'a540'
            else 'both' end  oa
      , value(a.APPL        , o.APPL        ) APPL
      , value(a.PGM         , o.PGM         ) PGM
      , value(a.PRIO        , o.PRIO        ) PRIO
      , value(a.RDL         , o.RDL         ) RDL
      , value(a.CQ          , o.CQ          ) CQ
      , value(a.OV          , o.OV          ) OV
      , value(a.INSTALLBEGIN, o.INSTALLBEGIN) INSTALLBEGIN
      , value(a.INSTALLEND  , o.INSTALLEND  ) INSTALLEND
    from A540769.TQZ041BINDPARM a
      full outer join oa1p.TQZ041BINDPARM o
        on     a.APPL          = o.APPL
           and a.PGM           = o.PGM
           and a.PRIO          = o.PRIO
           and a.RDL           = o.RDL
           and a.CQ            = o.CQ
           and a.OV            = o.OV
           and a.INSTALLBEGIN  = o.INSTALLBEGIN
           and a.INSTALLEND    = o.INSTALLEND
)
select * from j where oa <> 'both'
;x;
        APPL
        PGM
        PRIO
        RDL
        CQ
        OV
        INSTALLBEGIN
        INSTALLEND
}¢--- A540769.WK.SQL(BINDMIGX) cre=2014-04-04 mod=2014-04-04-07.59.31 A540769 ---
delete from A540769.txx041BindParm;
insert into A540769.txx041BindParm
         (appl, pgm, prio, rdl, cq, ov, installBegin)
with e1 as --- old exception table -------------------------------------
(
  select appl, pgm, installdate inst
    , replace(replace
     (strip(ssid) || '>' || strip(location) || '-'||strip(qualifier)
     , 'CHSKA000', '?'), 'CHROI00', '%') dlq
    , row_number() over (partition by appl, pgm
                  order by ssid, location, qualifier) rn
      from oa1p.bind_exceptions e
    where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
        and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
                        'DBWK411', 'YCDPUT2'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, eR --- recusively cat dbSys Locaction qual ---------------------------
( appl, pgm, inst, dlq, r) as
(
  select appl, pgm, inst, cast(dlq as varchar(2000)), 1
    from e1 where rn = 1
  union all select eR.appl, eR.pgm, e1.inst, eR.dlq || ' ' || e1.dlq
           , r+1
    from eR join e1
      on e1.appl = eR.appl and e1.pgm = eR.pgm
           and e1.rn = eR.r+1
      where eR.r < 100
)
, e2 -- select last one -----------------------------------------------
   ( appl, pgm, inst,  dlq) as
(
  select appl, pgm, max(inst), max(dlq)
    from eR
    group by appl, pgm
)
, rdl as --- find rdl --------------------------------------------------
(
  select appl, pgm, inst
    , case dlq
           when 'DAEG>?DC0G-OA1P DBBA>-OA1A DBBA>?DBAF-OA1A '
             || 'DCVG>- DCVG>%0DC0G- DDVG>- DDVG>%0DD0G- DEVG>- '
             || 'DEVG>%ZDE0G- DVBP>-OA1P DVBP>?DBOF-OA1P DVTB>-OA1T '
             || 'DVTB>?DBTF-OA1T'            then 'DBOF>DVBP'
           when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
             || 'DBTF>-OA1T DBTF>?DVTB-OA1T' then 'DBOF>DVBP'
           when 'DBAF>-OA1A DBAF>?DBBA-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P '
             || 'DBTF>-OA1T DBTF>?DVTB-OA1T DE0G>-OA1P DE0G>%ZDEVG-OA1P'
                                             then 'DBOF>DVBP'
    --     when 'DBAF>-OA1A DBAF>?DBTF-OA1A' then '???oa1a 1'
           when 'DBAF>-OA1A DBOF>-OA1P DBOF>?DVBP-OA1P DBTF>-OA1T '
             || 'DBTF>?DVTB-OA1T'            then 'DBOF>DVBP'
    --     when 'DBAF>?DBBA-OA1A DBBA>?DBAF-OA1A' then '???oa1a 2'
           when 'DBBA>-OA1A'                 then 'DBOF>DVBP'
           when 'DBBA>-OA1A DBBA>?DBAF-OA1A DCVG>- DCVG>%0DC0G- '
             || 'DDVG>- DDVG>%0DD0G- DEVG>- DEVG>%ZDE0G- DVBP>-OA1P '
             || 'DVBP>?DBOF-OA1P DVTB>-OA1T DVTB>?DBTF-OA1T'
                                             then 'DBOF>DVBP'
           else raise_error(77301, pgm || ' dlq ' || dlq)
      end rdl
    from e2
)
,  p as --- mark outdated entries in bind_parameters ----------------
(
  select p.*
         , row_number() over (partition by appl, pgm, collid
                              order by installdate desc) iNr
    from oa1p.bind_parameters p
    where appl not in ('A18Q', 'B18Q', 'A11O', 'A22N', 'RETI')
        and pgm not in ('DEFA???', 'DBWK1', 'DB2WK1', 'DB2JAA',
                        'DBWK411', 'YCDPUT2'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, o1 as --- translate space to null -----------------------------------
( select appl, pgm, collid, installdate
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from p
    where iNr = 1
)
, o2 as -- left join appl and gen defaults ----------------------------
( select
--alue(s.$           ,a.$           ,d.$           ) $
 value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from o1 s
      left join o1 a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join p d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, o3 as  --- add combination of options/values -----------------------
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     o2.*
     from o2
)
, ov as
(
  select appl, pgm, installDate, collid
      , case when comb is null    then raise_error(77311
               , pgm || ' comb is null')
             else qualifier end qualifier
      , case comb
            when '    ANY BIND        BIND' then 'degAny   '
            when '    1   BIND        BIND' then 'default  '
            when '    1   BIND        RUN ' then 'valRun   '
            when '    1   BIND    HBD1BIND' then 'optHBD1  '
            when '    1   BIND    OH  BIND' then 'optOH    '
            when '    1   BINDALWA    BIND' then 'reoAlw   '
            when '    1   RUN         BIND' then 'dynRun   '
            when '    1   RUN         RUN ' then 'dynValRun'
            when 'DEAL1   BIND        BIND' then 'relDea   '
            else raise_error(77312, pgm || ' bad comb ' || comb)
           end ov
     from o3
)
, a as --- left join rdl -----------------------------------------------
(
   select ov.appl, ov.pgm
       , max(ov.installDate, value(rdl.inst, ov.installDate)) inst
       , case when rdl.rdl is not null then rdl.rdl
              when ov.appl like 'ELA%' then 'DVBP'
              else 'DBOF'
         end rdl
       , ov.ov
       , case when rdl.rdl is not null then 'OA1$'
              when ov.appl like 'ELA%' then 'BUA'
              else 'OA1$'
         end quaVar
       ,  ov.collid col, ov.qualifier qua
     from ov left join rdl
         on ov.appl = rdl.appl
           and ov.pgm = rdl.pgm
)
, d as --- add default Qualifier and Collection
(
  select a.*
    , case when pgm = 'DEFAULT'     then '$'
           when left(pgm, 2) = 'YX' then 'YX'
           when left(pgm, 2) = 'YY' then 'YY'
           when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
           else left(pgm, 2) end colDef
    ,  row_number() over(partition by appl, pgm order by col) r
    from a
)
, e --- recursive build lists of colls/quals --------------------------
         ( appl, pgm, col, inst, rdl, ov
         , quaVar, colDef, r, qua, quals, colls) as
(
  select appl, pgm, col, inst, rdl, ov
      , quaVar, colDef, 1, qua
      , cast(strip(qua) as varchar(1000))
      , cast(strip(col) as varchar(1000))
    from d where r = 1
  union all select d.appl, d.pgm, d.col, d.inst, d.rdl, d.ov
     , d.quaVar, d.colDef, e.r+1, d.qua
     , e.quals || ' ' || strip(d.qua)
     , e.colls || ' ' || strip(d.col)
  from e join d
    on e.appl = d.appl and e.pgm = d.pgm
      and e.r + 1 = d.r  and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
  select appl, pgm, max(inst) inst
     , min(rdl) rdl, max(rdl) rdlMax
     , min(ov)   ov, max(ov)  ovMax
     , min(colDef) colDef, max(colDef) colDefMax
     , min(quaVar) quaVar, max(quaVar) quaVarMax
     , max(quals) quals
     , max(colls) colls
    from e
    group by  appl, pgm
)
, g as --- special quals ---------------------------------------------
(
  select appl, pgm, inst, rdl, ov, colDef, quaVar, quals
    , case when rdl <> rdlMax
               then raise_error(77321, pgm
                   || ' rdl ' || rdl || ' ==> ' || rdlMax)
           when ov is null then raise_error(77312, pgm || ' ov null')
           when ov <> ovMax
               then raise_error(77323, pgm
                   || ' ov ' || ov || ' ==> ' || ovMax)
           when colDef <> colDefMax
               then raise_error(77324, pgm
                   || ' colDef ' || colDef || ' ==> ' || colDefMax)
           when quaVar <> quaVarMax
               then raise_error(77325, pgm
                   || ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
           when colls = 'DEFAULT' then colDef
           else colls
      end colls
    from f
)
, h as --- colls und quals komprimieren --------------------------------
(
  select g.*
     , replace(colls, ' ' || left(colls, 2), '=') collR
     , replace(quals, ' ' || left(quals, 4), '=') qualR
    from g
)
--  select * from h where 'DEFAULT' in (pgm, appl) ;x;
, i as --- den neuen cq key bestimmen ----------------------------------
(
  select h.*
  , cast(case                                               --- default
      when colls = colDef and quals = quaVar then 'default'
                                                            --- single
      when quals=quaVar and colls in ('AU', 'BE', 'CD', 'KE', 'XB')
           then colls
                    --- spezial: colls und quals nicht in sync --------
                                                            --- av
 /*???when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
           || '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
        then 'AV/Y/X012'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/0129'
      when collR = 'AV01=02' and qualR = 'OA1$01=01'
          then 'AV0101'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/CPID'
 ???? when collR = 'AV' and quals = 'OA1P12' then 'AV12'  ????? */
      when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
          then 'BE+04'
      when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ'  --- ctcz
      when colls = coldef ||' YY' and qualR = 'OA1$='       --- + yy
              then 'YY+'
      when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02'  --- oa1p
          then 'OA1P-02'
                    --- error if colls und quals nicht in sync--------
      when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
          then raise_error(77331, appl||'.'||pgm || ' colls ' || collR
                 || ' mismatches quals ' || qualR)
                                                        --- av
      when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
            ||  '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
             and left(collR, 14) in ('AV01=02=03=05='
                    , 'AV01=02=05=06=', 'AV05=06=07=08=' )
          then 'AVALL'
      when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
      when collR in ('AV01=02=03=05=06=07=08=09=10'
                    ,'AV01=02=03=28=29=30=31=32'
                    ,'AV01=02=09=10=28=29=30=31=32'
                    ,'AV28=29=30=31=32') then 'AV-10-32'
      when collR =   'AV01=02=03=21=22' then 'AV-03-22'
      when collR = 'BE01=02=03=04' then 'BE-04'         --- be
      when collR = 'NI01=02'            then 'NI-02'    --- ni
      when collR = 'NI=01=02'           then 'NI+02'
      when collR in ('PC01=02', 'PC01') then 'PC-02'    --- pc
      when collR in
           ('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
           ,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
                                       then 'PCALL'
                                                        --- xc
      when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
      else raise_error(77332, appl||'.'||pgm || ' collR ' || collR
                    || ' quaVar ' || quaVar)
    end as char(10)) cq
    from h
)
, j as
(
select case when appl = 'DEFAULT' or pgm <> 'DEFAULT' then '%'
            else appl end appl
    , case when pgm  = 'DEFAULT' then '%' else pgm  end pgm
    , case when pgm <> 'DEFAULT' then 20
           when appl <> 'DEFAULT' then 2
                                  else 0 end prio
    , case when rdl = 'DBOF' then 'DBOF'
           when rdl = 'DVBP' then 'DVBP'
           else rdl end rdl
    , cq, ov, inst
    from i
)
select * from j
    where not (rdl = 'DBOF' and cq = 'default' and ov = 'default')
          or  (pgm = '%' and appl = '%') ;
commit
;x;
select count(*), appl, pgm
    from j
    group by appl, pgm
    order by 1 desc ;x;
--  where 'DEFAULT' in (appl, pgm)
    order by 2, 1, 3   ;x;
;
}¢--- A540769.WK.SQL(BINDMIGY) cre=2014-04-04 mod=2014-04-04-08.54.06 A540769 ---
with e as
(
  select p.*
    from oa1p.tqz042BindCnfg p
      join A540769.txx042bindCnfg  t
        on p.typ  = t.typ  and p.key = t.key
             and p.installBegin = t.installBegin
             and p.seq  = t.seq  and p.va1 = t.va1
             and p.va2 = t.va2   and p.va3 = t.va3
             and p.va4 = t.va4
--  TYP, key, seq, va1, va2, va3, va4, installBegin
)
, u as
(
  select '=' m, e.* from e
  union all select 'p' m, p.*
      from oa1p.tqz042Bindcnfg p
      where (typ, key, seq, installBegin)
          not in (select typ, key, seq, installBegin from e)
  union all select 't' m, t.*
      from A540769.txx042bindcnfg t
      where (typ, key, seq, installBegin)
          not in (select typ, key, seq, installBegin from e)
)
select * from u
    order by typ, key, seq, installBegin, m
;x;
select rdl, count(*)
    from oa1p.tqz041BindParm p
    group by rdl
;x;
with e as
(
  select p.*
    from oa1p.tqz041BindParm p
      join A540769.txx041bindParm t
        on p.appl = t.appl and p.pgm = t.pgm
             and p.installBegin = t.installBegin
             and p.prio = t.prio and p.rdl = t.rdl
             and p.cq = t.cq     and p.ov = t.ov
)
, u as
(
  select '=' m, e.* from e
  union all select 'p' m, p.*
      from oa1p.tqz041BindParm p
      where (appl, pgm, installBegin)
          not in (select appl, pgm, installBegin from e)
  union all select 't' m, t.*
      from A540769.txx041bindParm t
      where (appl, pgm, installBegin)
          not in (select appl, pgm, installBegin from e)
)
select * from u
    order by appl, pgm, installBegin, m
}¢--- A540769.WK.SQL(BINDPAHI) cre=2015-01-15 mod=2015-01-15-15.15.17 A540769 ---
select *
    from oa1p.TQZ041BINDPARMHIST
    where pgm like 'YCD%' --YCDCIPR
}¢--- A540769.WK.SQL(BINDRES) cre=2014-09-25 mod=2015-05-20-07.14.59 A540769 ---
            -- neueste bind results
            -- in spufi Default maxChar=2000 fuer errMsg
            -- das not exists zuunterst putzt die alten fehler weg
            --        mit oder ohne cmPkg?
            --
select rz, dbSys
     , char(left(
         case when cmRes = '' then '  ' else strip(cmRes) || ' ' end
      || case when result is null then '- ' else strip(result)||' ' end
      || case
           when errMsg is null then '--- errMsg null ---'
           when errMsg =  ''   then ''
           when posStr(errMsg, 'SQLCODE=') > 0
               then substr(errMsg, posStr(errMsg, 'SQLCODE='), 40)
           when posStr(errMsg, 'RESOURCE UNAVAILABLE') > 0
                then 'unAvail: '
              || case
              when posStr(substr(errMsg
                  , posStr(errMsg, 'RESOURCE UNAVAILABLE') + 20)
                  , ' NAME ') < 1
                then substr(errMsg
                    , posStr(errMsg, 'RESOURCE UNAVAILABLE') + 22)
                else substr(errMsg
                    , posStr(errMsg, 'RESOURCE UNAVAILABLE')
                    + posStr(substr(errMsg
                      , posStr(errMsg, 'RESOURCE UNAVAILABLE') + 20)
                      , ' NAME ')+ 25)
              end
           else '? ' || errMsg
       end, 40), 40) "c b error"
     , hex(contok)
     , g.*
    from oa1p.TQZ043BINDGEN g
       where rz = 'RZY'
  --   where pgm = 'YAU001D'
   --  and   appl = 'AURA'
    -- where (result is null or result <> '0' or cmRes <> '0' )
    --  where pgm = 'XBLE81'
    -- where result not in('0') --
    -- where cmJob like 'CSBI%'
    -- where gentst < '2014-09-19-00.17.48.142237'
                      -- History nicht anzeigen
    -- and not exists (select 1 from oa1p.TQZ043BINDGEN n
    --     where g.rz = n.rz and g.pgm = n.pgm
    --         and g.cmPkg = n.cmPkg
    --         and g.genTst < n.genTst
    --     )
    order by gentst desc
    fetch first 500  rows only
;x;
select rz, dbSys, result
                , sum(case when genTst >= timestamp(current date)
                      then 1 else 0 end) heute
                , count(*)
    from oa1p.TQZ043BINDGEN g
    where genTst >= '2015-01-01-00.00.00'
    group by rz, dbSys, result
;x;
}¢--- A540769.WK.SQL(BINDSEL1) cre=2007-03-19 mod=2014-09-25-09.44.48 A540769 ---
select rz, dbSys
     , char(left(strip(cmRes) || ' ' || strip(result) || ' ' || case
           when errMsg is null or errMsg = '' then errMsg
           when posStr(errMsg, 'SQLCODE=') > 0
               then substr(errMsg, posStr(errMsg, 'SQLCODE='), 40)
           when posStr(errMsg, 'RESOURCE UNAVAILABLE') > 0
                then 'unAvail: '
              || case
              when posStr(substr(errMsg
                  , posStr(errMsg, 'RESOURCE UNAVAILABLE') + 20)
                  , ' NAME ') < 1
                then substr(errMsg
                    , posStr(errMsg, 'RESOURCE UNAVAILABLE') + 22)
                else substr(errMsg
                    , posStr(errMsg, 'RESOURCE UNAVAILABLE')
                    + posStr(substr(errMsg
                      , posStr(errMsg, 'RESOURCE UNAVAILABLE') + 20)
                      , ' NAME ')+ 25)
              end
           else '? ' || errMsg
       end, 40), 40) "c b error"
     , g.* --rz, dbSys, errMsg, g.*
    from oa1p.TQZ043BINDGEN g
 -- where pgm = 'TR011@I'
 -- where (result is null or result <> '0' )
    where result not in ('0') -- , '8')    -- or cmRes > '0'
 -- where                    cmRes <> '0'
 -- where rz = 'RZX'
 -- where cmJob like 'CSBI%'
--  where gentst < '2014-09-19-00.17.48.142237'
    order by gentst desc
    fetch first 500 rows only
;;
select (select count(*)
      from oa1p.TQZ044BINDLine l where l.genId = g.genid) lines
      , g.*
    from oa1p.TQZ043BINDGen g
    order by gentst desc
;
select *
    from oa1p.TQZ044BINDLine
    where genid = 1498
    order by seq
;x;
select count(*), ssid, location
    from oa1p.bind_exceptions
    group by ssid, location
;;;;;;;;;;;;
select * from final table
(
insert into oa1p.bind_exceptions (APPL, PGM, COLLID, INSTALLDATE
                                 ,ssid, location)
select APPL, PGM, COLLID, INSTALLDATE
       , 'DEVG' ssid
       , case when location = '' then ''
              when location = 'CHSKA000DBOF' then 'CHROI00ZDE0G'
              else '??????????' end location
    from  oa1p.bind_exceptions
    where ssid = 'DVBP'
)
;
select count(*), ssid, location
    from oa1p.bind_exceptions
    group by ssid, location
;
commit
;;;;;;;;;
delete from  oa1p.bind_exceptions
    where installdate  > '31.12.2149'
;
delete from oa1p.bind_parameters
    where installdate  > '31.12.2149'
;
select *
    from oa1p.bind_exceptions
    where pgm = 'XBIM03'
;
commit
;;;
select appl, pgm, count(*), count(distinct collid),
    min(collid), max(collid)
    from  OA1P.BIND_PARAMETERS
    group by appl, pgm
    order by 4 desc
;
x
 select * from oa1p.BIND_exceptions
 where pgm     = 'TP0900'
}¢--- A540769.WK.SQL(BINDSEL2) cre=2014-06-10 mod=2014-06-10-15.03.07 A540769 ---
select *
    from oa1p.TQZ043BINDGEN
    order by genTst desc
    fetch first 100 rows only
}¢--- A540769.WK.SQL(BINDSIM) cre=2015-02-10 mod=2015-02-10-16.41.51 A540769 ---
SELECT *
FROM OA1P.TQZ043BINDGEN G
WHERE G.GENTST > '2015-02-09-11.14.09.613272'
  AND G.RZ = 'RZ2'
  AND G.COM = 'BASELINE_SIMULATION'
AND NOT EXISTS
(SELECT 1
FROM SSXX28Q0.DB2_CATALOGDATA
WHERE DB2TYPE   = 'R'
  AND DB2RZ     = G.RZ
  AND DB2NAME   = G.PGM
  AND LEFT(DB2VERS,10) = LEFT(G.CMPKG,10)
  AND DB2SUBSYS = G.DBSYS
)
;
}¢--- A540769.WK.SQL(BINDSWCO) cre=2014-07-31 mod=2014-09-09-09.16.27 A540769 ---
        -- select collection  for workbench
select key
    from OA1P.TQZ042BINDCNFG for business_time as of '08.08.2014'
    where typ = 'wCo'
    order by seq
}¢--- A540769.WK.SQL(BINDXMAT) cre=2013-11-15 mod=2013-11-18-09.30.25 A540769 ---
$#@
call sqlConnect dp4g
call sqlExec "delete from oa1p.tAdm40BindPgm"
$;
$<~wk.texv(bindxSel)
if ${>hdr} then
    $@%¢hdrIni $hdr$!
kx = 0
pgmX = 1
colX = 2
verX = 4
$for a $@/readLoop/
    a=$a
    kx=kx+1
    do hx=1 to m.hdr.0
        hy=hx+1
        m.d.kx.hx = strip(substr(a, m.hdr.hx, m.hdr.hy-m.hdr.hx))
        if m.d.kx.hx == '-' then
            m.d.kx.hx = ''
        $** t = t m.hdr.hx.nm'='m.d.kx.hx
        end
    $** say kx':' t
    p1 = m.d.kx.pgmX
    if pgm.p1 = 1 then
        iterate
    pgm.p1 = 1
    call sqlExec "insert into oa1p.tAdm40BindPgm values (" ,
           "'"left(m.d.kx.verX, 4)"', '"m.d.kx.pgmX"', '11.11.2013')"
$/readLoop/
m.d.0 = kx
$;
$<=/sql/
with a2 as
(
  select p.*, strip(stmt) st from
    oa1p.vAdm40binddbP p
    where rz = 'RZ2' and
        case when location = '' then dbSy
             else right(location, 4) end = 'DBOF'
        and stmt not like '*%'
)
, a3 as
(
  select a2.*, posStr(st, '(') lx, posStr(st, ')') rx
    from a2
)
, a  as
(
  select a3.*
   , case when lx < 1 or rx <= lx then
          raise_error(77701, 'bad stmt ' || st)
          else upper(left(st, lx-1)) end o1
   ,  upper(substr(st, lx+1, rx-lx-1)) v1
    from a3
)
, b as
( select pgm, col, rz, dbSy, location
    from a
    where stmt like 'bind%'
)
, d as
(
  select b.*
       , value(c.v1, '-') co1
       , value(l.v1, '') lo1
       , value(o.v1, '-') owner
       , value(q.v1, '-') qualifier
       ,  case  when i.v1 is null   then ''
                when i.v1 = 'CS' then 'S'
                when i.v1 = 'UR' then 'U'
           else raise_error(77702, 'isolation ' || i.st) end isolation
       ,  case  when r.v1 is null   then ''
                when r.v1 = 'COMMIT' then 'C'
                when r.v1 = 'DEALLOCATE' then 'D'
           else raise_error(77703, 'release ' || r.st) end release
       ,  case  when e.v1 is null or e.v1 = 'NO'  then 'N'
                when e.v1 = 'YES' then 'Y'
           else raise_error(77704, 'explain ' || e.st) end explain
       , value(d.v1, '-') degree
       , case d2.v1 when 'BIND' then 'B'
                    when 'RUN' then 'R'
                    else raise_error(77705, 'dynamicRules ' || d2.st)
         end dynamicrules
       , case when k.v1 is null or k.v1 = 'NO' then 'N'
                when k.v1 = 'YES' then 'Y'
           else raise_error(77706, 'keepDyn ' || k.st) end keepDynamic
       , case when ro.v1 is null or ro.v1='' or ro.v1 = 'NONE' then 'N'
                when ro.v1 = 'ALWAYS' then 'Y'
           else raise_error(77707, 'reopt ' || ro.st) end reoptVar
       , value(op.v1, '') optHint
       , case when iw.v1 is null or iw.v1 = 'INHERITFROMPLAN' then 'I'
              when iw.v1 = 'NO' then 'Y'
                when iw.v1 = 'YES' then 'Y'
           else raise_error(77708, 'immedWr ' || iw.st) end immedWrite
       , value(ps.v1, '') pathSchemas
       , case when v.v1 is null or v.v1 = 'BIND' then 'B'
              when v.v1 = 'RUN' then 'R'
              else raise_error(77709, 'dynamicRules ' || v.st)
              end validate
       , case when se.v1 is null or se.v1 = 'NOPACKAGE' then 'N'
              when se.v1 = 'CONTINUE' then 'C'
              else raise_error(77710, 'dynamicRules ' || se.st)
              end sqlError
       , case when cd.v1 is null or cd.v1 = 'NO' then 'B'
              when cd.v1 = 'YES' then 'C'
              else raise_error(77711, 'currentData ' || cd.st)
              end deferPrep
       , case when dp.v1 is null then ''
              when dp.v1 = 'NO' then 'N'
              when dp.v1 in ('YES', 'ALWAYS') then 'Y'
              else raise_error(77712, 'deferPrepare ' || dp.st)
              end deferPrepare
    from b
    left join a c
      on b.pgm=c.pgm and b.col=c.col and  b.rz=c.rz and b.dbSy=c.dbSy
           and c.location = b.location and c.o1 = 'BIND PACKAGE'
    left join a l
      on b.pgm=l.pgm and b.col=l.col and  b.rz=l.rz and b.dbSy=l.dbSy
           and l.location = b.location and l.o1 = 'LOCATION'
    left join a o
      on b.pgm=o.pgm and b.col=o.col and  b.rz=o.rz and b.dbSy=o.dbSy
           and o.location = b.location and o.o1 = 'OWNER'
    left join a q
      on b.pgm=q.pgm and b.col=q.col and  b.rz=q.rz and b.dbSy=q.dbSy
           and q.location = b.location and q.o1 = 'QUALIFIER'
    left join a i
      on b.pgm=i.pgm and b.col=i.col and  b.rz=i.rz and b.dbSy=i.dbSy
           and i.location = b.location and i.o1 = 'ISOLATION'
    left join a r
      on b.pgm=r.pgm and b.col=r.col and  b.rz=r.rz and b.dbSy=r.dbSy
           and r.location = b.location and r.o1 = 'RELEASE'
    left join a e
      on b.pgm=e.pgm and b.col=e.col and  b.rz=e.rz and b.dbSy=e.dbSy
           and e.location = b.location and e.o1 = 'EXPLAIN'
    left join a d
      on b.pgm=d.pgm and b.col=d.col and  b.rz=d.rz and b.dbSy=d.dbSy
           and d.location = b.location and d.o1 = 'DEGREE'
    left join a d2
    on b.pgm=d2.pgm and b.col=d2.col and  b.rz=d2.rz and b.dbSy=d2.dbSy
           and d2.location = b.location and d2.o1 = 'DYNAMICRULES'
    left join a k
    on b.pgm=k.pgm and b.col=k.col and    b.rz=k.rz and b.dbSy=k.dbSy
           and k.location = b.location and k.o1 = 'KEEPDYNAMIC'
    left join a ro
    on b.pgm=ro.pgm and b.col=ro.col and  b.rz=ro.rz and b.dbSy=ro.dbSy
           and ro.location = b.location and ro.o1 = 'REOPT'
    left join a op
    on b.pgm=op.pgm and b.col=op.col and  b.rz=op.rz and b.dbSy=op.dbSy
           and op.location = b.location and op.o1 = 'OPTHINT'
    left join a iw
    on b.pgm=iw.pgm and b.col=iw.col and  b.rz=iw.rz and b.dbSy=iw.dbSy
           and iw.location = b.location and iw.o1 = 'IMMEDWRITE'
    left join a ps
    on b.pgm=ps.pgm and b.col=ps.col and  b.rz=ps.rz and b.dbSy=ps.dbSy
           and ps.location = b.location and ps.o1 = 'PATH'
    left join a v
    on b.pgm=v.pgm and b.col=v.col and    b.rz=v.rz and b.dbSy=v.dbSy
           and v.location = b.location and v.o1 = 'VALIDATE'
    left join a se
    on b.pgm=se.pgm and b.col=se.col and  b.rz=se.rz and b.dbSy=se.dbSy
           and se.location = b.location and se.o1 = 'SQLERROR'
    left join a cd
    on b.pgm=cd.pgm and b.col=cd.col and  b.rz=cd.rz and b.dbSy=cd.dbSy
           and cd.location = b.location and cd.o1 = 'CURRENTDATA'
    left join a dp
    on b.pgm=dp.pgm and b.col=dp.col and  b.rz=dp.rz and b.dbSy=dp.dbSy
           and dp.location = b.location and dp.o1 = 'REOPT'
)
select * from d
    order by pgm, col, location
$/sql/
call sqlSel
$** $| call fmtFTab
$| kx=1
   $forWith s $@/mat/
    colS = strip($COL)
    pgmS = strip($PGM)
    do while m.d.kx.pgmx << pgmS & kx <= m.d.0
        say 'new not bound but old'  m.d.kx.colx'.'m.d.kx.pgmx
        kx = kx+1
        end
    do while m.d.kx.pgmx = pgmS & m.d.kx.colx << colS & kx <= m.d.0
        say 'new not bound but old'  m.d.kx.colx'.'m.d.kx.pgmx
        kx = kx+1
        end
    if m.d.kx.pgmx <> pgmS | m.d.kx.colx <> colS then do
        say 'old not bound but new'  colS'.'pgmS '/'$LOCATION
        iterate
        end
    if $PGM <> m.d.kx.pgmX then
        call err 'pgm' $COL'.'$PGM '<>' kx m.d.kx.colX'.'m.d.kx.pgmx
    if $COL <> m.d.kx.colX then
        call err 'col' $COL'.'$PGM '<>' kx m.d.kx.colX'.'m.d.kx.pgmx
    if $COL <> $CO1 then
        call err 'co1' err 'col' $COL'.'$PGM '<>' $CO1
    if $LOCATION <> $LO1 then
        call err 'loc' $LOCATION '<> lo1' $LO1
    do hx=verX+1 to m.hdr.0
        s1 = vGet(m.hdr.hx.nm)
        if m.d.kx.hx <> s1 then
            say m.d.kx.colX'.'m.d.kx.pgmX':'m.hdr.hx.nm ,
                '|||' m.d.kx.hx '==>' s1
        end
    say m.d.kx.colX'.'m.d.kx.pgmX
    kx = kx + 1
$/mat/
$@proc @/hdrIni/
    parse arg , h
    say 'hdr' h
    ns =   pgm col pcTimestamp  version ,
            OWNER           ,
            QUALIFIER       ,
            ISOLATION       ,
            RELEASE         ,
            EXPLAIN         ,
            DEGREE          ,
            DYNAMICRULES    ,
            KEEPDYNAMIC     ,
            REOPTVAR        ,
            OPTHINT         ,
            IMMEDWRITE      ,
            PATHSCHEMAS     ,
            VALIDATE        ,
            SQLERROR        ,
            DEFERPREP       ,
            DEFERPREPARE
    ns = translate(space(ns, 1))
    say 'ns' ns
    do hx=1 to words(ns)
        n1 = word(ns, hx)
        h1 = word(h , hx)
        if \ abbrev(n1, h1, 1) then
            if right(n1, length(h1)) \== h1 then
                call err 'hx='hx 'n1='n1 'h1='h1
        m.hdr.hx = wordIndex(h, hx)
        m.hdr.hx.nm = n1
        say hx '=>' m.hdr.hx m.hdr.hx.nm
        end
    m.hdr.hx=length(strip(h, 't'))+10
    m.hdr.0 =hx-1
$/hdrIni/
$#out                                              20131118 09:23:38
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out                                              20131118 08:16:35
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out                                              20131118 08:04:48
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out                                              20131118 07:41:57
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out                                              20131118 07:38:24
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out                                              20131118 07:31:02
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out                                              20131118 07:25:07
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from oa1p.tAdm40BindPgm
$#out                                              20131118 07:24:44
}¢--- A540769.WK.SQL(BINDXRI) cre=2013-11-03 mod=2013-11-03-12.33.22 A540769 ---
with j as
(
  select p.rdl pRdl, c.key cKey
    from OA1P.tAdm41bindParm p
    full join (select * from OA1P.tAdm42bindCnfg where typ = 'rdl') c
       on c.key = p.rdl
)
select * from j
    where pRdl is null or cKey is null
;
with j as
(
  select p.cq  pcq , c.key cKey
    from OA1P.tAdm41bindParm p
    full join (select * from OA1P.tAdm42bindCnfg where typ = 'cq') c
       on c.key = p.cq
)
select * from j
    where pcq  is null or cKey is null
;
with j as
(
  select p.ov  pOv , c.key cKey
    from OA1P.tAdm41bindParm p
    full join ( select * from OA1P.tAdm42bindCnfg where typ = 'ov') c
       on c.key = p.ov
)
select * from j
    where pov  is null or cKey is null
}¢--- A540769.WK.SQL(BINDXSEL) cre=2013-11-11 mod=2013-11-18-08.15.53 A540769 ---
$#@
$** programme aus bindParms table
call sqlConnect dbof
$;
$>~wk.texv(bindXsel)
$<=¢
with n as
(
  select p.*
      , row_number() over (partition by collid, name
                           order by pcTimestamp desc) rv
    from sysibm.sysPackage p
    where
        name in
      ( 'AN5000'
      , 'AU5070'
      , 'AV373@I'
      , 'AV391@I'
      , 'AV403@I'
      , 'AV425@I'
      , 'AV5300'
      , 'AV5560'
      , 'AV7210'
      , 'AV7220'
      , 'AV8460'
      , 'AV8476'
      , 'AV8550'
      , 'BE5010'
      , 'BE5020'
      , 'BE5040'
      , 'BE5050'
      , 'BE5070'
      , 'BE5090'
      , 'BE5900'
      , 'BE5910'
      , 'BE5930'
      , 'BE5931'
      , 'BE5940'
      , 'BE5950'
      , 'BE7110'
      , 'BE7160'
      , 'BE7210'
      , 'BF0010'
      , 'BU012@I'
      , 'BU013@I'
      , 'BU021@I'
      , 'BU062@I'
      , 'CD9997'
      , 'FI5200'
      , 'FI7430'
      , 'FI8190'
      , 'ID6060'
      , 'ID6061'
      , 'KE5480'
      , 'NI5788'
      , 'NI8330'
      , 'NI8340'
      , 'NI8660'
      , 'NZ5820'
      , 'NZ6500'
      , 'OS7110'
      , 'OS7111'
      , 'PCA64@I'
      , 'PCA73@I'
      , 'PCB01@I'
      , 'PCB12@I'
      , 'PCB22@I'
      , 'PCB32@I'
      , 'PCB41@I'
      , 'PCB51@I'
      , 'PCB91@I'
      , 'PCC03@I'
      , 'PCC12@I'
      , 'PCC22@I'
      , 'PCC31@I'
      , 'PCC41@I'
      , 'PCC51@I'
      , 'PCC62@I'
      , 'PCC71@I'
      , 'PCC81@I'
      , 'PCE45@I'
      , 'PCE51@I'
      , 'PCG81@I'
      , 'PCG91@I'
      , 'PC5000'
      , 'PC5020'
      , 'PC5030'
      , 'PC5040'
      , 'PC5050'
      , 'PC5060'
      , 'PC5070'
      , 'PC5080'
      , 'PC5090'
      , 'PC5100'
      , 'PC5110'
      , 'PC5120'
      , 'PC5130'
      , 'PC5140'
      , 'PC5150'
      , 'PC5160'
      , 'PC5170'
      , 'PC5180'
      , 'PC5200'
      , 'PC5210'
      , 'PC5220'
      , 'PC5230'
      , 'PC5240'
      , 'PC5250'
      , 'PC5260'
      , 'PC5270'
      , 'PC5280'
      , 'PC5290'
      , 'PC5300'
      , 'PC5310'
      , 'PC5330'
      , 'PC5340'
      , 'PC5345'
      , 'PC5350'
      , 'PC5400'
      , 'PC7000'
      , 'PC7005'
      , 'PC7010'
      , 'PC7020'
      , 'PC7030'
      , 'PC7040'
      , 'PC7050'
      , 'PC7070'
      , 'PC7900'
      , 'PC8000'
      , 'PC8640'
      , 'PW6230'
      , 'PW6231'
      , 'PW6239'
      , 'PW9998'
      , 'PW9999'
      , 'RI0810'
      , 'WI8710'
      , 'WP0110'
      , 'WP0510'
      , 'WP0550'
      , 'XBIMN30'
      , 'XBIMN4'
      , 'XBIM02'
      , 'XBIM04'
      , 'XBIM041'
      , 'XBIM042'
      , 'XBMIGT1'
      , 'XBMIG04'
      , 'XBMQ400'
      , 'XB9020'
      , 'XB9040'
      , 'XCT002'
      , 'XC413@I'
      , 'XC5008'
      , 'XC6006'
      , 'YAUADCC'
      , 'YAUADCE'
      , 'YAUCORC'
      , 'YAUCRCE'
      , 'YAU016D'
      , 'YAU016F'
      , 'YAU016I'
      , 'YAU016S'
      , 'YAU016U'
      , 'YAU018D'
      , 'YAU018F'
      , 'YAU018I'
      , 'YAU018S'
      , 'YAU018U'
      , 'YAU019D'
      , 'YAU019F'
      , 'YAU019I'
      , 'YAU019S'
      , 'YAU019U'
      , 'YAU030D'
      , 'YAU030F'
      , 'YAU030I'
      , 'YAU030S'
      , 'YAU030U'
      , 'YAU180D'
      , 'YAU180F'
      , 'YAU180I'
      , 'YAU180S'
      , 'YAU180U'
      , 'YAU181D'
      , 'YAU181F'
      , 'YAU181I'
      , 'YAU181S'
      , 'YAU181U'
      , 'YAU190D'
      , 'YAU190F'
      , 'YAU190I'
      , 'YAU190S'
      , 'YAU190U'
      , 'YAU191D'
      , 'YAU191F'
      , 'YAU191I'
      , 'YAU191S'
      , 'YAU191U'
      , 'YAVAAAN'
      , 'YAVAAVL'
      , 'YAVANAN'
      , 'YAVA00'
      , 'YAVA01'
      , 'YAVA02'
      , 'YAVA03'
      , 'YAVA04'
      , 'YAVA05'
      , 'YAVA06'
      , 'YAVA07'
      , 'YAVA08'
      , 'YAVBDAN'
      , 'YAVBDVL'
      , 'YAVBELE'
      , 'YAVBVG'
      , 'YAVBWST'
      , 'YAVCBET'
      , 'YAVCBST'
      , 'YAVCOAN'
      , 'YAVCOBO'
      , 'YAVCPID'
      , 'YAVCUAN'
      , 'YAVDEFA'
      , 'YAVDUAN'
      , 'YAVERAN'
      , 'YAVERBA'
      , 'YAVERTR'
      , 'YAVERVL'
      , 'YAVFNAN'
      , 'YAVFSL'
      , 'YAVGAT'
      , 'YAVGDW'
      , 'YAVGMP'
      , 'YAVGPD'
      , 'YAVGPDD'
      , 'YAVGPDE'
      , 'YAVGPD2'
      , 'YAVGPD3'
      , 'YAVGPER'
      , 'YAVGPFD'
      , 'YAVGVW'
      , 'YAVMAT'
      , 'YAVMAVL'
      , 'YAVMUR'
      , 'YAVOVVW'
      , 'YAVPFX'
      , 'YAVREC1'
      , 'YAVREC2'
      , 'YAVSTA'
      , 'YAVVDPS'
      , 'YAVVDP2'
      , 'YAVVSRV'
      , 'YAVVTXT'
      , 'YAVWHGR'
      , 'YAVX001'
      , 'YAVX012'
      , 'YAVX035'
      , 'YAVX040'
      , 'YAV0065'
      , 'YAV0067'
      , 'YAV0083'
      , 'YAV0101'
      , 'YAV0112'
      , 'YAV0116'
      , 'YAV0123'
      , 'YAV0127'
      , 'YAV0128'
      , 'YAV0129'
      , 'YAV0131'
      , 'YAV0132'
      , 'YAV0133'
      , 'YAV0134'
      , 'YAV0135'
      , 'YAV0136'
      , 'YBEMB'
      , 'YBEM01'
      , 'YBEM02'
      , 'YBEM1DR'
      , 'YBEM2DR'
      , 'YBERR'
      , 'YBER02'
      , 'YBER02E'
      , 'YBER02F'
      , 'YBER03'
      , 'YBER03E'
      , 'YBER03F'
      , 'YBE00MB'
      , 'YBE00MC'
      , 'YBE00RR'
      , 'YBE24'
      , 'YBE25'
      , 'YBE26'
      , 'YBE27'
      , 'YCDOGEE'
      , 'YCDOGEX'
      , 'YCDSGET'
      , 'YCDUVGE'
      , 'YCKSCCA'
      , 'YCTM150'
      , 'YCTM151'
      , 'YCTM152'
      , 'YCTM200'
      , 'YCTM201'
      , 'YCTM202'
      , 'YCTM203'
      , 'YCTM204'
      , 'YCTM205'
      , 'YCTM206'
      , 'YCTM214'
      , 'YCTM215'
      , 'YCTM233'
      , 'YCTM400'
      , 'YCTSVPT'
      , 'YCTS100'
      , 'YCTS150'
      , 'YCTS200'
      , 'YCTS400'
      , 'YCTTRA'
      , 'YITMETA'
      , 'YITRFTG'
      , 'YITRFTS'
      , 'YNILCTG'
      , 'YNILOG'
      , 'YNI0161'
      , 'YNI107G'
      , 'YNI107U'
      , 'YPCCAHI'
      , 'YPCCORI'
      , 'YPCDURA'
      , 'YPCEVPO'
      , 'YPCLOCA'
      , 'YPCRUPD'
      , 'YPCSWCH'
      , 'YPC0500'
      , 'YPC0520'
      , 'YPC0530'
      , 'YPC0540'
      , 'YPC0550'
      , 'YPC0580'
      , 'YPC0590'
      , 'YPC0600'
      , 'YPC0610'
      , 'YPC0620'
      , 'YPC0640'
      , 'YPC0650'
      , 'YPC0660'
      , 'YPC0680'
      , 'YPC0690'
      , 'YPC0700'
      , 'YPC0720'
      , 'YPC0730'
      , 'YPC0740'
      , 'YPC0750'
      , 'YPC0760'
      , 'YPC0770'
      , 'YPC0790'
      , 'YPC0800'
      , 'YPC0820'
      , 'YPC0830'
      , 'YPC0840'
      , 'YPC0850'
      , 'YPC0860'
      , 'YPC0880'
      , 'YPC0890'
      , 'YPC1010'
      , 'YPC1020'
      , 'YPC1030'
      , 'YUU1016'
      , 'YUU1020'
      , 'YUU1021'
      , 'YUU1022'
      , 'YUU1023'
      , 'YWQBERI'
      , 'YXAUECE'
      , 'YXAUENC'
      , 'YXAUEN2'
      , 'YXAUGED'
      , 'YXAUGOD'
      , 'YXB9021'
      , 'YXB9022'
      , 'YXB9023'
      , 'YXB9024'
      , 'YXB9025'
      , 'YXCE03L'
      , 'YXCE08L'
      , 'YYAUATR'
      , 'YYAUAT0'
      , 'YYWM05E'
      , 'YYWM51E'
)
 -- fetch first 300 rows only
)
select name pgm, collid col, pcTimestamp, version
     , OWNER
     , QUALIFIER
     , ISOLATION
     , RELEASE
     , EXPLAIN
     , DEGREE
     , DYNAMICRULES
     , KEEPDYNAMIC
     , REOPTVAR
     , case when OPTHINT='' then '-' else optHint end optHint
     , IMMEDWRITE
     , case when PATHSCHEMAS='' then '-' else pathSchemas end
                                                  pathSchemas
     , VALIDATE
     , SQLERROR
     , DEFERPREP
     , DEFERPREPARE
    from n
    where rv = 1
    order by pgm, col
    with ur
$!
call sqlSel
$| call fmtFTab
$#out                                              20131118 08:14:10
}¢--- A540769.WK.SQL(BINDXSEM) cre=2013-11-11 mod=2013-11-18-08.13.44 A540769 ---
$#@
$**                 neueste Packages
call sqlConnect dbof
$;
$>~wk.texv(bindXsel)
$<=¢
with n as
(
  select p.*
      , row_number() over (partition by collid, name
                           order by pcTimestamp desc) rv
    from sysibm.sysPackage p
    where length(strip(collid)) <= 4
    order by pcTimestamp desc
    fetch first 1000 rows only
)
select name pgm, collid col, pcTimestamp, version
     , OWNER
     , QUALIFIER
     , ISOLATION
     , RELEASE
     , EXPLAIN
     , DEGREE
     , DYNAMICRULES
     , KEEPDYNAMIC
     , REOPTVAR
     , case when OPTHINT='' then '-' else optHint end optHint
     , IMMEDWRITE
     , case when PATHSCHEMAS='' then '-' else pathSchemas end
                                                  pathSchemas
     , VALIDATE
     , SQLERROR
     , DEFERPREP
     , DEFERPREPARE
    from n
    where rv = 1
    order by pgm, col
    with ur
$!
call sqlSel
$| call fmtFTab
$#out                                              20131115 13:37:37
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
    0000000C, 00F30006
sql = connect DBOF
$#out                                              20131111 21:07:08
}¢--- A540769.WK.SQL(BINDXSE2) cre=2013-11-15 mod=2013-11-15-14.50.55 A540769 ---
$#@
call sqlConnect dp4g
$;
$@#¢
select '      , ''' || strip(pgm) || ''''
    from oa1p.tadm41bindParm
    group by pgm
    order by cast(pgm as varchar(8) ccsid ebcdic)

$!
$| call sqlSel $| call fmtFTab
$#out                                              20131115 14:50:40
COL1
      , '%'
      , 'AN5000'
      , 'AU5070'
      , 'AV373@I'
      , 'AV391@I'
      , 'AV403@I'
      , 'AV425@I'
      , 'AV5300'
      , 'AV5560'
      , 'AV7210'
      , 'AV7220'
      , 'AV8460'
      , 'AV8476'
      , 'AV8550'
      , 'BE5010'
      , 'BE5020'
      , 'BE5040'
      , 'BE5050'
      , 'BE5070'
      , 'BE5090'
      , 'BE5900'
      , 'BE5910'
      , 'BE5930'
      , 'BE5931'
      , 'BE5940'
      , 'BE5950'
      , 'BE7110'
      , 'BE7160'
      , 'BE7210'
      , 'BF0010'
      , 'BU012@I'
      , 'BU013@I'
      , 'BU021@I'
      , 'BU062@I'
      , 'CD9997'
      , 'FI5200'
      , 'FI7430'
      , 'FI8190'
      , 'ID6060'
      , 'ID6061'
      , 'KE5480'
      , 'NI5788'
      , 'NI8330'
      , 'NI8340'
      , 'NI8660'
      , 'NZ5820'
      , 'NZ6500'
      , 'OS7110'
      , 'OS7111'
      , 'PCA64@I'
      , 'PCA73@I'
      , 'PCB01@I'
      , 'PCB12@I'
      , 'PCB22@I'
      , 'PCB32@I'
      , 'PCB41@I'
      , 'PCB51@I'
      , 'PCB91@I'
      , 'PCC03@I'
      , 'PCC12@I'
      , 'PCC22@I'
      , 'PCC31@I'
      , 'PCC41@I'
      , 'PCC51@I'
      , 'PCC62@I'
      , 'PCC71@I'
      , 'PCC81@I'
      , 'PCE45@I'
      , 'PCE51@I'
      , 'PCG81@I'
      , 'PCG91@I'
      , 'PC5000'
      , 'PC5020'
      , 'PC5030'
      , 'PC5040'
      , 'PC5050'
      , 'PC5060'
      , 'PC5070'
      , 'PC5080'
      , 'PC5090'
      , 'PC5100'
      , 'PC5110'
      , 'PC5120'
      , 'PC5130'
      , 'PC5140'
      , 'PC5150'
      , 'PC5160'
      , 'PC5170'
      , 'PC5180'
      , 'PC5200'
      , 'PC5210'
      , 'PC5220'
      , 'PC5230'
      , 'PC5240'
      , 'PC5250'
      , 'PC5260'
      , 'PC5270'
      , 'PC5280'
      , 'PC5290'
      , 'PC5300'
      , 'PC5310'
      , 'PC5330'
      , 'PC5340'
      , 'PC5345'
      , 'PC5350'
      , 'PC5400'
      , 'PC7000'
      , 'PC7005'
      , 'PC7010'
      , 'PC7020'
      , 'PC7030'
      , 'PC7040'
      , 'PC7050'
      , 'PC7070'
      , 'PC7900'
      , 'PC8000'
      , 'PC8640'
      , 'PW6230'
      , 'PW6231'
      , 'PW6239'
      , 'PW9998'
      , 'PW9999'
      , 'RI0810'
      , 'WI8710'
      , 'WP0110'
      , 'WP0510'
      , 'WP0550'
      , 'XBIMN30'
      , 'XBIMN4'
      , 'XBIM02'
      , 'XBIM04'
      , 'XBIM041'
      , 'XBIM042'
      , 'XBMIGT1'
      , 'XBMIG04'
      , 'XBMQ400'
      , 'XB9020'
      , 'XB9040'
      , 'XCT002'
      , 'XC413@I'
      , 'XC5008'
      , 'XC6006'
      , 'YAUADCC'
      , 'YAUADCE'
      , 'YAUCORC'
      , 'YAUCRCE'
      , 'YAU016D'
      , 'YAU016F'
      , 'YAU016I'
      , 'YAU016S'
      , 'YAU016U'
      , 'YAU018D'
      , 'YAU018F'
      , 'YAU018I'
      , 'YAU018S'
      , 'YAU018U'
      , 'YAU019D'
      , 'YAU019F'
      , 'YAU019I'
      , 'YAU019S'
      , 'YAU019U'
      , 'YAU030D'
      , 'YAU030F'
      , 'YAU030I'
      , 'YAU030S'
      , 'YAU030U'
      , 'YAU180D'
      , 'YAU180F'
      , 'YAU180I'
      , 'YAU180S'
      , 'YAU180U'
      , 'YAU181D'
      , 'YAU181F'
      , 'YAU181I'
      , 'YAU181S'
      , 'YAU181U'
      , 'YAU190D'
      , 'YAU190F'
      , 'YAU190I'
      , 'YAU190S'
      , 'YAU190U'
      , 'YAU191D'
      , 'YAU191F'
      , 'YAU191I'
      , 'YAU191S'
      , 'YAU191U'
      , 'YAVAAAN'
      , 'YAVAAVL'
      , 'YAVANAN'
      , 'YAVA00'
      , 'YAVA01'
      , 'YAVA02'
      , 'YAVA03'
      , 'YAVA04'
      , 'YAVA05'
      , 'YAVA06'
      , 'YAVA07'
      , 'YAVA08'
      , 'YAVBDAN'
      , 'YAVBDVL'
      , 'YAVBELE'
      , 'YAVBVG'
      , 'YAVBWST'
      , 'YAVCBET'
      , 'YAVCBST'
      , 'YAVCOAN'
      , 'YAVCOBO'
      , 'YAVCPID'
      , 'YAVCUAN'
      , 'YAVDEFA'
      , 'YAVDUAN'
      , 'YAVERAN'
      , 'YAVERBA'
      , 'YAVERTR'
      , 'YAVERVL'
      , 'YAVFNAN'
      , 'YAVFSL'
      , 'YAVGAT'
      , 'YAVGDW'
      , 'YAVGMP'
      , 'YAVGPD'
      , 'YAVGPDD'
      , 'YAVGPDE'
      , 'YAVGPD2'
      , 'YAVGPD3'
      , 'YAVGPER'
      , 'YAVGPFD'
      , 'YAVGVW'
      , 'YAVMAT'
      , 'YAVMAVL'
      , 'YAVMUR'
      , 'YAVOVVW'
      , 'YAVPFX'
      , 'YAVREC1'
      , 'YAVREC2'
      , 'YAVSTA'
      , 'YAVVDPS'
      , 'YAVVDP2'
      , 'YAVVSRV'
      , 'YAVVTXT'
      , 'YAVWHGR'
      , 'YAVX001'
      , 'YAVX012'
      , 'YAVX035'
      , 'YAVX040'
      , 'YAV0065'
      , 'YAV0067'
      , 'YAV0083'
      , 'YAV0101'
      , 'YAV0112'
      , 'YAV0116'
      , 'YAV0123'
      , 'YAV0127'
      , 'YAV0128'
      , 'YAV0129'
      , 'YAV0131'
      , 'YAV0132'
      , 'YAV0133'
      , 'YAV0134'
      , 'YAV0135'
      , 'YAV0136'
      , 'YBEMB'
      , 'YBEM01'
      , 'YBEM02'
      , 'YBEM1DR'
      , 'YBEM2DR'
      , 'YBERR'
      , 'YBER02'
      , 'YBER02E'
      , 'YBER02F'
      , 'YBER03'
      , 'YBER03E'
      , 'YBER03F'
      , 'YBE00MB'
      , 'YBE00MC'
      , 'YBE00RR'
      , 'YBE24'
      , 'YBE25'
      , 'YBE26'
      , 'YBE27'
      , 'YCDOGEE'
      , 'YCDOGEX'
      , 'YCDSGET'
      , 'YCDUVGE'
      , 'YCKSCCA'
      , 'YCTM150'
      , 'YCTM151'
      , 'YCTM152'
      , 'YCTM200'
      , 'YCTM201'
      , 'YCTM202'
      , 'YCTM203'
      , 'YCTM204'
      , 'YCTM205'
      , 'YCTM206'
      , 'YCTM214'
      , 'YCTM215'
      , 'YCTM233'
      , 'YCTM400'
      , 'YCTSVPT'
      , 'YCTS100'
      , 'YCTS150'
      , 'YCTS200'
      , 'YCTS400'
      , 'YCTTRA'
      , 'YITMETA'
      , 'YITRFTG'
      , 'YITRFTS'
      , 'YNILCTG'
      , 'YNILOG'
      , 'YNI0161'
      , 'YNI107G'
      , 'YNI107U'
      , 'YPCCAHI'
      , 'YPCCORI'
      , 'YPCDURA'
      , 'YPCEVPO'
      , 'YPCLOCA'
      , 'YPCRUPD'
      , 'YPCSWCH'
      , 'YPC0500'
      , 'YPC0520'
      , 'YPC0530'
      , 'YPC0540'
      , 'YPC0550'
      , 'YPC0580'
      , 'YPC0590'
      , 'YPC0600'
      , 'YPC0610'
      , 'YPC0620'
      , 'YPC0640'
      , 'YPC0650'
      , 'YPC0660'
      , 'YPC0680'
      , 'YPC0690'
      , 'YPC0700'
      , 'YPC0720'
      , 'YPC0730'
      , 'YPC0740'
      , 'YPC0750'
      , 'YPC0760'
      , 'YPC0770'
      , 'YPC0790'
      , 'YPC0800'
      , 'YPC0820'
      , 'YPC0830'
      , 'YPC0840'
      , 'YPC0850'
      , 'YPC0860'
      , 'YPC0880'
      , 'YPC0890'
      , 'YPC1010'
      , 'YPC1020'
      , 'YPC1030'
      , 'YUU1016'
      , 'YUU1020'
      , 'YUU1021'
      , 'YUU1022'
      , 'YUU1023'
      , 'YWQBERI'
      , 'YXAUECE'
      , 'YXAUENC'
      , 'YXAUEN2'
      , 'YXAUGED'
      , 'YXAUGOD'
      , 'YXB9021'
      , 'YXB9022'
      , 'YXB9023'
      , 'YXB9024'
      , 'YXB9025'
      , 'YXCE03L'
      , 'YXCE08L'
      , 'YYAUATR'
      , 'YYAUAT0'
      , 'YYWM05E'
      , 'YYWM51E'
$#out                                              20131115 14:50:10
}¢--- A540769.WK.SQL(BIPA1DDL) cre=2013-11-03 mod=2013-11-03-08.00.12 A540769 ---
set current sqlid = 'S100447';
   drop  table oa1p.tBiPaPgm;
   drop  tablespace db2admin.aBiParm ;
   drop  tablespace db2admin.aBiPath ;
   drop  tablespace db2admin.aBiPaCol;
   drop  tablespace db2admin.aBiPaOpt;
commit;
create global temporary table oa1p.tBiPaPgm
( appl char(4),
  pgm  char(8),
  install date)   ccsid unicode;

CREATE TABLESPACE ABiParm
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE ABiPath
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE ABiPaCol
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE ABiPaOpt
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE oa1p.tBiParm
  (   type       char(5) not null,
      PRIO       char(2) NOT NULL,
          CONSTRAINT PRIONumeric CHECK
              (PRIO between '00' and '99') ,
      appl       CHAR(4) NOT NULL default '*',
      pgm        CHAR(8) NOT NULL default '*',
      rz         char(3) NOT NULL default '*',
      dbSy       char(4) NOT NULL default '*',
      location   char(16) NOT NULL  default '*',
      value      char(20) not null,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  )
 in db2admin.aBiParm
;
CREATE view  oa1p.vBiParm as
    select p.*,
       case when posstr(appl, '*') = 0 then 4 else posstr(appl, '*')-1
       end apLe ,
       case when posstr(pgm , '*') = 0 then 8 else posstr(pgm , '*')-1
       end pgLe
       from oa1p.tBiParm p
;
create view oa1p.vBiPaPgm as
  select g.*,
        (select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'path'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
        ) path,
        case when pgm like 'YY%' then 'YY'
            when pgm like 'Y%' then substr(pgm, 2, 2)
            else substr(pgm, 1, 2)
        end colBa
    from oa1p.tBiPaPgm g
;
CREATE TABLE oa1p.tBiPath
  (
      path       char(12) not null,
      seq        smallint not null,
      rz         char(3) NOT NULL,
      dbSy       char(4) NOT NULL,
      location   char(16) NOT NULL default '',
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999' ,
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.aBiPath
;
CREATE view  oa1p.vBiPath as
  select g.*, a.seq pathSeq, a.rz, a.dbSy, a.location,
        ( select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'colls'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
              and p.rz       in ('*', a.rz       )
              and p.dbSy     in ('*', a.dbSy     )
              and p.location in ('*', a.location )
        ) colls,
        ( select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'qua'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
              and p.rz       in ('*', a.rz       )
              and p.dbSy     in ('*', a.dbSy     )
              and p.location in ('*', a.location )
        ) quaBa
     from oa1p.vBiPaPgm g
       join oa1p.tBiPath a
          on g.path = a.path
          and g.install >= a.installFr and g.install < a.installTo
;
CREATE TABLE oa1p.tBiPaCol
  (
      colls      char(12) not null,
      seq        smallint not null,
      col        char(8) NOT NULL,
      qua        char(8) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.aBiPaCol
;
CREATE view  oa1p.vBiPaCol as
  select  h.*, c.seq colSeq,
        replace(c.col, '$', strip(h.colBa)) col,
        replace(c.qua, '$', strip(h.quaBa)) qua,
        ( select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'opt'
              and h.install >= p.installFr and h.install < p.installTo
              and left(p.appl, p.apLe) = left(h.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(h.pgm, p.pgLe)
              and p.rz       in ('*', h.rz       )
              and p.dbSy     in ('*', h.dbSy     )
              and p.location in ('*', h.location )
        ) opts
    from oa1p.vBiPath h
      join oa1p.tBiPaCol c
        on h.colls = c.colls
          and h.install >= c.installFr and h.install < c.installTo
;
CREATE TABLE oa1p.tBiPaOpt
  (
      opts       char(12) not null,
      seq        smallint not null,
      key        char(30) not null,
      value      char(40) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.aBiPaOpt
;
CREATE view oa1p.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
      from ( select opts, install from oa1p.vBiPaCol
                 group by opts, install) oo
  union all select r.opts, p.value,
          right('00' || strip(char(99-lev)), 2), lev+1, install
      from r join oa1p.tBiPaOpt p
        on r.parent = p.opts and p.key = '-->parent'
            and r.install >= p.installFr and r.install < p.installTo
            and r.lev < 90
)
select * from r
;
CREATE view  oa1p.vBiPaOpt as
    with o as (
        select r.opts, key, substr(max(prio || value), 3) value,
                min(seq) seq, r.install
          from oa1p.vBiPaOptRel r
            join oa1p.tBiPaOpt o
              on r.parent = o.opts
                and r.install >= o.installFr and r.install < o.installTo
          group by r.opts, r.install, o.key
        )
    select c.*,
        '  ' || strip(key) || '(' || strip(value) || ')'
            || case when seq = 9999 then '' else ' -' end opt,
        o.seq optSeq
      from oa1p.vBiPaCol c join o
          on o.opts = c.opts and o.install = c.install
            and o.key not like '--%' and o.value <> ''
;
CREATE view  oa1p.vBiPaBind (opt, appl, pgm, install, path, colba,
               pathSeq, rz, dbSy, location, colls, quaBa,
               colSeq, col, qua, opts, optSeq) as
select 'bind package('
          || case when location = '' then ''
                  else strip(c.location) || '.' end
          || strip(col) || ') -' ,
       c.*, -90
    from oa1p.vBiPaCol c
union all select '  member(' || strip(pgm) || ') -',
       c.*, -80
    from oa1p.vBiPaCol c
union all select '  qualifier(' || strip(qua) || ') -',
       c.*, -70
    from oa1p.vBiPaCol c
union all select opt, appl, pgm, install, path, colba,
       pathSeq, rz, dbSy, location, colls, quaBa,
       colSeq, col, qua, opts, optSeq
    from oa1p.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
                    || ', appl=' || appl
                    || ', installDate=' || char(install) ,
       appl, pgm, install, '', '',
       -32761, '' , '', '', '', '',
       0, '', '', 'bindBegin1', 0
    from oa1p.tBiPaPgm
union all select '***: oa1p.vBiPaBind at '
                 || char(current timestamp)
                 || ' on ' || current server,
       appl, pgm, install, '', '',
       -32760, '', '', '', '', '',
       0, '', '', 'bindBegin2', 0
    from oa1p.tBiPaPgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(dbSy),
       appl, pgm, install, path, '',
       min(pathSeq), rz, dbSy, '', '', '',
       -32760, '', '', 'dbSyBegin', 0
    from oa1p.vBiPaCol c
    group by appl, pgm, install, path, rz, dbSy
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(dbSy),
       appl, pgm, install, path, '',
       max(pathSeq), rz, dbSy, '', '', '',
       32760, '', '', 'dbSyEnd', 0
    from oa1p.vBiPaCol c
    group by appl, pgm, install, path, rz, dbSy
;
commit;
}¢--- A540769.WK.SQL(BIPA1MIG) cre=2013-11-03 mod=2013-11-03-08.01.49 A540769 ---
delete from OA1P.tAdm41BindVal;
insert into OA1P.tAdm41BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF',   '01.01.2000', 20, 'RZ1', 'DBAF') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DBOF',   '01.01.2008', 22, 'RZ8', 'DC0G') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DBOF',   '01.01.2000', 40, 'RZ1', 'DBTF') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DBOF',   '01.01.2008', 42, 'RZ8', 'DD0G') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DBOF',   '01.01.2008', 44, 'RZZ', 'DE0G') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DBOF',   '01.01.2000', 60, 'RR2', 'DBOF') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DBOF',   '01.01.2000', 80, 'RZ2', 'DBOF') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DVBP',   '01.01.2000', 20, 'RZ1', 'DBBA') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DVBP',   '01.01.2012', 22, 'RZ8', 'DCVG') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DVBP',   '01.01.2000', 40, 'RZ1', 'DVTB') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DVBP',   '01.01.2008', 42, 'RZ8', 'DDVG') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DVBP',   '01.01.2008', 44, 'RZZ', 'DEVG') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DVBP',   '01.01.2000', 60, 'RR2', 'DVBP') ;
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy)
    values('DVBP',   '01.01.2000', 80, 'RZ2', 'DVBP') ;
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
    select 'DBOF>DVBP', seq, rz, dbSy, '', installFr
      from OA1P.tAdm41BindVal where path = 'DBOF';
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
    select 'DBOF>DVBP', seq+1, rz, dbSy, '', installFr
      from OA1P.tAdm41BindVal where path = 'DBOF';
update OA1P.tAdm41BindVal set location = 'CHSKA000DBBA'
    where path = 'DBOF>DVBP' and seq = 21;
update OA1P.tAdm41BindVal set location = 'CHROI000DCVG'
    where path = 'DBOF>DVBP' and seq = 23;
update OA1P.tAdm41BindVal set location = 'CHSKA000DVTB'
    where path = 'DBOF>DVBP' and seq = 41;
update OA1P.tAdm41BindVal set location = 'CHROI000DDVG'
    where path = 'DBOF>DVBP' and seq = 43;
update OA1P.tAdm41BindVal set location = 'CHROI00ZDEVG'
    where path = 'DBOF>DVBP' and seq = 45;
update OA1P.tAdm41BindVal set location = 'CHSKA000DVBP'
    where path = 'DBOF>DVBP' and seq = 61;
update OA1P.tAdm41BindVal set location = 'CHSKA000DVBP'
    where path = 'DBOF>DVBP' and seq = 81;
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
    select 'DBOF>DBOL', seq, rz, dbSy, '', installFr
      from OA1P.tAdm41BindVal where path = 'DBOF';
insert into OA1P.tAdm41BindVal (path, installFr, seq, rz, dbSy, location)
    values('DBOF>DBOL', '01.01.2000', 81, 'RZ2', 'DBOF','CHSKA000DBOL');
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
    select 'DVBP>DBOF', seq, rz, dbSy, '', installFr
      from OA1P.tAdm41BindVal where path = 'DVBP';
insert into OA1P.tAdm41BindVal (path, seq, rz, dbSy, location, installFr)
    select 'DVBP>DBOF', seq+1, rz, dbSy, '', installFr
      from OA1P.tAdm41BindVal where path = 'DVBP';
update OA1P.tAdm41BindVal set location = 'CHSKA000DBAF'
    where path = 'DVBP>DBOF' and seq = 21;
update OA1P.tAdm41BindVal set location = 'CHROI000DC0G'
    where path = 'DVBP>DBOF' and seq = 23;
update OA1P.tAdm41BindVal set location = 'CHSKA000DBTF'
    where path = 'DVBP>DBOF' and seq = 41;
update OA1P.tAdm41BindVal set location = 'CHROI000DD0G'
    where path = 'DVBP>DBOF' and seq = 43;
update OA1P.tAdm41BindVal set location = 'CHROI00ZDE0G'
    where path = 'DVBP>DBOF' and seq = 45;
update OA1P.tAdm41BindVal set location = 'CHSKA000DBOF'
    where path = 'DVBP>DBOF' and seq = 61;
update OA1P.tAdm41BindVal set location = 'CHSKA000DBOF'
    where path = 'DVBP>DBOF' and seq = 81;
delete from OA1P.tBiPaCol;
declare global temporary table session.i
 (i int not null, c2 char(2) not null) ccsid unicode;
insert into session.i
    select i, right('0000' || strip(char(i)), 2) c2
            from (select row_number() over() -1 i
                   from sysibm.sysColumns fetch first 100 rows only)s
 ;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   (  '$',   1,   '$',  '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
                 values   ('$+02', 0, '$','$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
                 values   ('$+02', 1, '$01','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
                 values   ('$+02', 2,'$02', '$02', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
                 values   ('$01', 1, '$01','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
                 values   ('$-02', 1, '$01','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
                 values   ('$-02', 2,'$02', '$02', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
    select '$-03', i, '$' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 3
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
    select '$-04', i, '$' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 4
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
    select '$-05', i, '$' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 5
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   ('AU',    1,   'AU',  '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
    select 'AVALL', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 30 and i <> 4
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
                 values   ('AV-02', 1, 'AV01','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
                 values   ('AV-02', 1, 'AV02','$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
    select 'AV-10', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 10 and i <> 4
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
    select 'AV/30', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i in (1,2,3,9,10,21,22,28,29,30)
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   ('BE',    1,   'BE',  '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   ('CZ+',   1,   '$',  '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   ('CZ+',  10,  'CZ',  '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   ('KE',    1,   'KE',  '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   ('OA1P-02', 10, 'OA1P01', '$01', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   ('OA1P-02', 20, 'OA1P02', '$02', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
    select 'PCALL', i, 'PC' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 16
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
    select 'XCALL', i, 'XC' || c2, '$' || c2, '01.01.2000'
         from session.i where i <= 9
;
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   ('YY+',   1,   '$',  '$', '01.01.2000');
insert into OA1P.tBiPaCol (colls, seq, col, qua, installFr)
            values   ('YY+',  10,  'YY',  '$', '01.01.2000');
delete from OA1P.tBiPaOpt;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
      values   ('default',  110,  'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('default',     210,  'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('default',     220,  'DEGREE', '1','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('default',     310,  'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('default',     320,  'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('default',     910,  'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('default',     920,  'FLAG', 'I','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('default',     930,  'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('default', 9999,    'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
       values  ('degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('degAny',    220,  'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
       values  ('valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('valRun',    320,  'VALIDATE', 'RUN' ,'01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
       values  ('optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('optHBD1',    330,  'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
       values  ('optOH',  -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('optOH',    330,  'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
       values  ('reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('reoAlw',    340,  'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
       values  ('dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('dynRun',    310,  'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
       values  ('dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
       values  ('dynValRun',-9999,'-->parent','valRun', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
       values  ('relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tBiPaOpt (opts, seq, key, value, installFr)
  values   ('relDea',    230,  'RELEASE', 'DEALLOCATE','01.01.2000');
delete from OA1P.tBiParm;
insert into OA1P.tbiParm (type, prio, appl, pgm, rz, dbSy, location,
           value, installfr)
    values('opt', '00', '*', '*', '*', '*', '*', 'default',
                           '01.01.2000')
;
insert into OA1P.tbiParm (type, prio, appl, pgm, rz, dbSy, location,
           value, installfr)
with n as
( select APPL
       , PGM
       , COLLID
       , INSTALLDATE
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from oa1p.bind_parameters
)
, d as
( select
       case when s.pgm <> 'DEFAULT' then 's' else ' ' end
    || case when a.appl <> 'DEFAULT' then 'a' else ' ' end
    || case when d.appl is null then ' ' else 'd' end sad
--alue(s.$           ,a.$           ,d.$           ) $
,value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from n s
      left join n a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join oa1p.bind_parameters d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, e as
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     d.*
     from d
)
, f as
( select   case
           when comb = '    ANY BIND        BIND' then 'degAny   '
           when comb = '    1   BIND        BIND' then 'default  '
           when comb = '    1   BIND        RUN ' then 'valRun   '
           when comb = '    1   BIND    HBD1BIND' then 'optHBD1  '
           when comb = '    1   BIND    OH  BIND' then 'optOH    '
           when comb = '    1   BINDALWA    BIND' then 'reoAlw   '
           when comb = '    1   RUN         BIND' then 'dynRun   '
           when comb = '    1   RUN         RUN ' then 'dynValRun'
           when comb = 'DEAL1   BIND        BIND' then 'relDea   '
           else '$$$' end neu,
           e.*
     from e
)
select 'opt' type
     , case when pgm <> 'DEFAULT' then '20'
            else '10' end prio
     , left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
           then '*' else appl end, 4) appl
     , case when pgm  = 'DEFAULT' then '*' else pgm  end pgm
     , '*' rz
     , '*' dbSy
     , '*' location
     , neu value
     , installDate installFr
 --  , f.*
     from f
     where appl not like 'A18Q%'
       and neu <> 'default'
;
insert into OA1P.tBiParm (type, prio, value, installFr)
                values    ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tBiParm (type, prio, appl, value, installFr)
                values    ('path', '00', 'ELA*', 'DVBP', '01.01.2000');
insert into OA1P.tbiParm (type, prio, pgm, value, installfr)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
     strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
    from oa1p.bind_exceptions
    where ssid <> 'DAEG'
)
, b as
(    select a, p, c, r,
         row_number() over(partition by a, p, c
                       order by t) l,
         t
     from a
)
, c (a, p, c, r, l, t, u) as
(    select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
     union all select c.a, c.p, c.c, min(c.r, b.r),
               c.l+1, b.t, c.u || ' ' || b.t
          from b, c
          where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
                and c.l < 100
)
, d as
(
    select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
      from c
      group by a, p, c
)
, e as
( select
   case when a in ('A18Q', 'DBTST', 'DB2J')  then '-'
        when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
        when p = 'YCDPUT2' then '-'
        when l = 12 and tFr = 'DBBA>-OA1A'
             and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
        when l > 4  and tFr = 'DBAF>-OA1A'
             and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
        when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
        else '???'
   end n,
   d.* from d
)
select 'path', '20', p, n, r
     from e where n <> '-'
;
insert into OA1P.tBiParm (type, prio, value, installFr)
                values    ('qua', '00', 'OA1P', '01.01.2000');
insert into OA1P.tBiParm (type, prio, appl, value, installFr)
                values    ('qua', '10', 'ELA*', 'BUA', '01.01.2000');
insert into OA1P.tBiParm (type, prio, dbSy, value, installFr)
                values    ('qua', '10', 'DBAF', 'OA1A', '01.01.2000');
insert into OA1P.tBiParm (type, prio, dbSy, value, installFr)
                values    ('qua', '10', 'DBTF', 'OA1T', '01.01.2000');

insert into OA1P.tBiParm (type, prio, value, installFr)
                values    ('colls', '00', '$', '01.01.2000');
insert into OA1P.tBiParm (type, pgm, prio, value, installFr)
with a as
(
select case when left(pgm, 2) = 'YX' then 'YX'
            when left(pgm, 2) = 'YY' then 'YY'
            when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
            else left(pgm, 2) end q1,
        p.*
  from (
     select           appl, pgm, collid from oa1p.bind_parameters
     union all select appl, pgm, collid from oa1p.bind_exceptions
     ) p
  where appl <> 'A18Q' and appl <> 'B18Q' and pgm <> 'DEFAULT'
), b as
(
select appl, pgm, count(*) cnt,
    sum(case when q1 <> left(collid, 2) then 1 else 0 end) diff,
    count(distinct left(collid, 2)) dCol,
    q1, min(collid) colFr, max(collid) colTo
    from a
    group by q1, appl, pgm
    having  0 <> sum(case when q1 <> left(collid, 2) then 1 else 0 end)
)
, n as
(
select case
            when cnt = 2 and colFr = 'OA1P01'
                   and  colTo ='OA1P02' then 'OA1P-02'
            when dCol = 1 and colFr = 'AV01' and cnt = 2 then 'AV-02'
            when dCol = 1 and colFr = 'AV01' and cnt > 27 then 'AVALL'
            when dCol = 1 and colFr = 'XC00' and cnt = 10 then 'XCALL'
            when dCol = 1 then left(colFr, 2)
            when dCol = 2 and (('YY' = colFr and  left(colTo, 2) = q1)
                           or  ('YY' = colTo and  left(colFr, 2) = q1))
                           then 'YY+'
            when dCol = 2 and 'CT' = colFr and  left(colTo, 2) = 'CZ'
                          and q1 = 'CT' then 'CZ+'
            else '---'
       end new,
       b.*
    from b
)
select 'colls', pgm, '20', new, '01.01.2000'
     from n
;
insert into OA1P.tBiParm (type, prio, pgm, value, installFr)
with b as (
select appl a, pgm p, qualifier q, cF, cT,
       row_number() over(partition by appl, pgm
                         order by appl, pgm, qualifier) r
  from (select    appl, pgm, qualifier, min(collid) cF, max(collid) cT
         from oa1p.bind_parameters
         group by appl, pgm, qualifier ) q
)
, r (a, p, q1,  q, r, cF, cT) as
(
select a, p, q, varchar(strip(q), 500), 1, cF, cT
  from b where r = 1
union all select r.a, r.p, b.q,
            r.q || ' ' || strip(b.q), r.r+1,
            min(r.cF, b.cF), max(r.cT, b.cT)
     from r, b
     where r.a  = b.a and r.p = b.p and r.r+1 = b.r and r.r < 10000
)
, s as
(
select a, p, max(r) r, min(q1) qF, max(q1) qT,
           min(cF) cF, max(cT) cT, max(q) q
    from r
    group by a, p
 -- order by max(r) desc
)
, n as
( select
    case when q = 'BUA' then '---'
         when p in ('CH0007', 'DB2WK1', 'DBWK1', 'DSNTEP2'
                   ,'YAVFSLN') then '---'
         when q = 'OA1$' then '$'
         when q = 'OA1$ OA1$01 OA1$02' then '$+02'
         when q = 'OA1$01' then '$01'
         when cf = 'AV01' and ct = 'AV02' then 'AV-02'
         when q = 'OA1$01 OA1$02' then '$-02'
         when q = 'OA1$01 OA1$02 OA1$03' then '$-03'
         when q = 'OA1$01 OA1$02 OA1$03 OA1$04' then '$-04'
         when q = 'OA1$01 OA1$02 OA1$03 OA1$04 OA1$05' then '$-05'
         when cF >= 'AV01' and cT <= 'AV10'            then 'AV-10'
         when cF >= 'AV01' and cT <= 'AV30' and q in
          ('OA1$01 OA1$02 OA1$03 OA1$21 OA1$22'
          ,'OA1$01 OA1$02 OA1$03 OA1$28 OA1$29 OA1$30'
          ,'OA1$01 OA1$02 OA1$09 OA1$10 OA1$28 OA1$29 OA1$30'
          ,'OA1$28 OA1$29 OA1$30') then                     'AV/30'
         when cF >= 'AV01' and cT <= 'AV30' and r > 24 then 'AVALL'
         when cF >= 'PC01' and cT <= 'PC16' and r > 12 then 'PCALL'
         when cF >= 'XC00' and cT <= 'XC09' and r = 10 then 'XCALL'
         else '???'
    end neu,
    s.*
    from s
)
    select 'colls', '20', p, neu, '01.01.2000'
        from n where neu not in ('---', '$')
;
delete from OA1P.tBiPaPgm;
commit;
}¢--- A540769.WK.SQL(BIPA2DDL) cre=2012-06-06 mod=2013-10-24-10.30.11 A540769 ---
set current sqlid = 'S100447';
   drop  table oa1p.tadm40Pgm;
   drop  tablespace db2admin.a041a ;
   drop  tablespace db2admin.a042a ;
   drop  tablespace db2admin.aBiPaCol;
   drop  tablespace db2admin.aBiPaOpt;
commit;
create global temporary table oa1p.tadm40Pgm
( appl char(4),
  pgm  char(8),
  install date)   ccsid unicode;

CREATE TABLESPACE a041a
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE a042a
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE oa1p.tAdm41BindKey
  ( type       char(3) not null
  , PRIO       char(2) NOT NULL
  ,     CONSTRAINT PRIONumeric CHECK
           (PRIO between '00' and '99')
  , appl       CHAR(4) NOT NULL default '%'
  , pgm        CHAR(8) NOT NULL default '%'
  , rz         char(3) NOT NULL default '%'
  , dbSy       char(4) NOT NULL default '%'
  , location   char(16) NOT NULL  default '%'
  , key        char(10) not null
  , installBegin date NOT NULL WITH DEFAULT
  , installEnd date NOT NULL WITH DEFAULT '31.12.9999'
  , rowBegin not null generated always as row begin implicitly hidden
  , rowEnd   not null generated always as row end   implicitly hidden
  , rowtrans not null generated always as transaction start id
                                                    implicitly hidden
  , period business_time (installBegin, installEnd)
  , period system_time (rowBegin, rowEnd)
  )
 in db2admin.a041a
;
CREATE TABLE oa1p.tadm42BindVal
  ( type       char(3) not null
  , key        char(10) not null
  , seq        smallint not null
  , va1        char(16) not null
  , va2        char(16) not null
  , va3        char(16) not null with default
  , installBegin date NOT NULL WITH DEFAULT
  , installEnd date NOT NULL WITH DEFAULT '31.12.9999'
  , rowBegin not null generated always as row begin implicitly hidden
  , rowEnd   not null generated always as row end   implicitly hidden
  , rowtrans not null generated always as transaction start id
                                                    implicitly hidden
  , period business_time (installBegin, installEnd)
  , period system_time (rowBegin, rowEnd)
  )
 in db2admin.a042a
;
CREATE view  oa1p.vAdmBindKey as
    select k.*,
       case when posstr(appl, '%') = 0 then 4 else posstr(appl, '%')-1
       end apLe ,
       case when posstr(pgm , '%') = 0 then 8 else posstr(pgm , '%')-1
       end pgLe
       from oa1p.tAdm41BindKey k
;
create view oa1p.vAdmBindKrdl as
  select g.*
      , case when pgm like 'YY%' then 'YY'
            when pgm like 'Y%' then substr(pgm, 2, 2)
            else substr(pgm, 1, 2)
        end colBa
      , (select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'path'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
        ) rdl,
    from oa1p.tadm40Pgm p
;
commit
;x;
CREATE TABLE oa1p.tBiPath
  (
      path       char(12) not null,
      seq        smallint not null,
      rz         char(3) NOT NULL,
      dbSy       char(4) NOT NULL,
      location   char(16) NOT NULL default '',
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999' ,
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.a042a
;
CREATE view  oa1p.vBiPath as
  select g.*, a.seq pathSeq, a.rz, a.dbSy, a.location,
        ( select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'colls'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
              and p.rz       in ('*', a.rz       )
              and p.dbSy     in ('*', a.dbSy     )
              and p.location in ('*', a.location )
        ) colls,
        ( select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'qua'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
              and p.rz       in ('*', a.rz       )
              and p.dbSy     in ('*', a.dbSy     )
              and p.location in ('*', a.location )
        ) quaBa
     from oa1p.vBiPaPgm g
       join oa1p.tBiPath a
          on g.path = a.path
          and g.install >= a.installFr and g.install < a.installTo
;
CREATE TABLE oa1p.tBiPaCol
  (
      colls      char(12) not null,
      seq        smallint not null,
      col        char(8) NOT NULL,
      qua        char(8) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.aBiPaCol
;
CREATE view  oa1p.vBiPaCol as
  select  h.*, c.seq colSeq,
        replace(c.col, $"'$'", strip(h.colBa)) col,
        replace(c.qua, $"'$'", strip(h.quaBa)) qua,
        ( select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'opt'
              and h.install >= p.installFr and h.install < p.installTo
              and left(p.appl, p.apLe) = left(h.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(h.pgm, p.pgLe)
              and p.rz       in ('*', h.rz       )
              and p.dbSy     in ('*', h.dbSy     )
              and p.location in ('*', h.location )
        ) opts
    from oa1p.vBiPath h
      join oa1p.tBiPaCol c
        on h.colls = c.colls
          and h.install >= c.installFr and h.install < c.installTo
;
CREATE view oa1p.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
      from ( select opts, install from oa1p.vBiPaCol
                 group by opts, install) oo
  union all select r.opts, p.value,
          right('00' || strip(char(99-lev)), 2), lev+1, install
      from r join oa1p.tBiPaOpt p
        on r.parent = p.opts and p.key = '-->parent'
            and r.install >= p.installFr and r.install < p.installTo
            and r.lev < 90
)
select * from r
;
CREATE view  oa1p.vBiPaOpt as
    with o as (
        select r.opts, key, substr(max(prio || value), 3) value,
                min(seq) seq, r.install
          from oa1p.vBiPaOptRel r
            join oa1p.tBiPaOpt o
              on r.parent = o.opts
                and r.install >= o.installFr and r.install < o.installTo
          group by r.opts, r.install, o.key
        )
    select c.*,
        '  ' || strip(key) || '(' || strip(value) || ')'
            || case when seq = 9999 then '' else ' -' end opt,
        o.seq optSeq
      from oa1p.vBiPaCol c join o
          on o.opts = c.opts and o.install = c.install
            and o.key not like '--%' and o.value <> ''
;
CREATE view  oa1p.vBiPaBind (opt, appl, pgm, install, path, colba,
               pathSeq, rz, dbSy, location, colls, quaBa,
               colSeq, col, qua, opts, optSeq) as
select 'bind package('
          || case when location = '' then ''
                  else strip(c.location) || '.' end
          || strip(col) || ') -' ,
       c.*, -90
    from oa1p.vBiPaCol c
union all select '  member(' || strip(pgm) || ') -',
       c.*, -80
    from oa1p.vBiPaCol c
union all select '  qualifier(' || strip(qua) || ') -',
       c.*, -70
    from oa1p.vBiPaCol c
union all select opt, appl, pgm, install, path, colba,
       pathSeq, rz, dbSy, location, colls, quaBa,
       colSeq, col, qua, opts, optSeq
    from oa1p.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
                    || ', appl=' || appl
                    || ', installDate=' || char(install) ,
       appl, pgm, install, '', '',
       -32761, '' , '', '', '', '',
       0, '', '', 'bindBegin1', 0
    from oa1p.tadm40Pgm
union all select '***: oa1p.vBiPaBind at '
                 || char(current timestamp)
                 || ' on ' || current server,
       appl, pgm, install, '', '',
       -32760, '', '', '', '', '',
       0, '', '', 'bindBegin2', 0
    from oa1p.tadm40Pgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(dbSy),
       appl, pgm, install, path, '',
       min(pathSeq), rz, dbSy, '', '', '',
       -32760, '', '', 'dbSyBegin', 0
    from oa1p.vBiPaCol c
    group by appl, pgm, install, path, rz, dbSy
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(dbSy),
       appl, pgm, install, path, '',
       max(pathSeq), rz, dbSy, '', '', '',
       32760, '', '', 'dbSyEnd', 0
    from oa1p.vBiPaCol c
    group by appl, pgm, install, path, rz, dbSy
;
commit;
}¢--- A540769.WK.SQL(BIPA2DDV) cre=2013-11-03 mod=2014-07-31-10.29.14 A540769 ---
set current sqlid = 'S100447';
drop   view  A540769.vAdmBindKey ;
CREATE view  A540769.vAdmBindKey as
    select k.*,
       case when posstr(appl, '%') = 0 then 4 else posstr(appl, '%')-1
       end apLe ,
       case when posstr(pgm , '%') = 0 then 8 else posstr(pgm , '%')-1
       end pgLe
       from A540769.tAdm41BindKey k
;
create view A540769.vAdmBindRDL as --- rz dbSys location
with k as
(
  select p.*
      , case when pgm like 'YY%' then 'YY'
             when pgm like 'YX%' then 'YX'
             when pgm like 'Y%'  then substr(pgm, 2, 2)
                                 else substr(pgm, 1, 2)
        end colBa
      , ( select substr(max(prio || key), 3)
            from A540769.vAdmBindKey k
            where k.type = 'rdl'
                and p.install >= k.installBegin
                and p.install < k.installEnd
                and left(p.appl, k.apLe) = left(k.appl, k.apLe)
                and left(p.pgm , k.pgLe) = left(k.pgm,  k.pgLe)
        ) rdl
    from A540769.tadm40Pgm p
)
select k.*
    , case when v.seq is not null then v.seq
           else raise_error(77071, 'no bindVal type=rdl key=' || k.rdl
              || ' install=' || char(k.install) || ' pgm=' || k.pgm)
      end rdlSeq
    , cast(v.va1 as char(3)) rz
    , cast(v.va2 as char(4)) dbSy
    , v.va3 location
    from k left join A540769.tAdm42BindVal v
       on v.type = 'rdl' and v.key = k.rdl
           and k.install >= v.installBegin and k.install < v.installEnd
;
CREATE view A540769.vAdmBindCQ as --- collection qualifier
with k as
(
  select p.*
    , ( select substr(max(prio || key), 3, 8)
            from A540769.vAdmBindKey q
            where q.type = 'q'
                and q.installBegin <= p.install
                and q.installEnd   > p.install
                and left(q.appl, q.apLe) = left(p.appl, q.apLe)
                and left(q.pgm,  q.pgLe) = left(p.pgm , q.pgLe)
                and q.rz                 in ('%', p.rz       )
                and q.dbSy               in ('%', p.dbSy     )
                and q.location           in ('%', p.location )
        ) quaBa
    , ( select substr(max(c.prio || c.key), 3)
            from A540769.vAdmBindKey c
            where c.type = 'cq'
                and c.installBegin <= p.install
                and c.installEnd   > p.install
                and left(c.appl, c.apLe) = left(p.appl, c.apLe)
                and left(c.pgm,  c.pgLe) = left(p.pgm , c.pgLe)
                and c.rz                 in ('%', p.rz       )
                and c.dbSy               in ('%', p.dbSy     )
                and c.location           in ('%', p.location )
        ) cq
     from A540769.vAdmBindRdl p
)
select k.*
    , case when v.seq is not null then v.seq
           else raise_error(77071, 'no bindVal type=cq key=' || k.cq
              || ' install=' || char(k.install) || ' pgm=' || k.pgm)
      end cqSeq
    , cast(replace(v.va1, '$', strip(k.colBa)) as char(8)) col
    , cast(replace(v.va2, '$', strip(k.quaBa)) as char(8)) qua
    from k left join A540769.tAdm42BindVal v
       on v.type = 'cq' and v.key = k.cq
           and k.install >= v.installBegin and k.install < v.installEnd
;
CREATE view A540769.vAdmBindOV as --- option and value
with i (inst) as
(
  select install from A540769.tAdm40Pgm
  group by install
)
, r (inst, key, seq, opt, val, lev) as
( select i.inst, key, seq, VA1, VA2, 1
    from i join A540769.tAdm42BindVal v
      on i.inst >= v.installBegin and i.inst < v.installEnd
         and v.type = 'ov'
  union all select r.inst, r.key, v.seq, v.va1, v.va2, lev+1
    from r join A540769.tAdm42BindVal v
      on r.inst >= v.installBegin and r.inst < v.installEnd
         and v.type = 'ov' and v.key = r.val
    where r.lev < 99 and r.opt = '-->parent'
)
, v as
(
  select r.*, row_number() over(partition by inst, key, opt
                                order by lev desc) rn
    from r
)
, k as
(
  select p.*
    , ( select substr(max(prio || key), 3, 8)
            from A540769.vAdmBindKey q
            where q.type = 'ov'
                and q.installBegin <= p.install
                and q.installEnd   > p.install
                and left(q.appl, q.apLe) = left(p.appl, q.apLe)
                and left(q.pgm,  q.pgLe) = left(p.pgm , q.pgLe)
                and q.rz                 in ('%', p.rz       )
                and q.dbSy               in ('%', p.dbSy     )
                and q.location           in ('%', p.location )
        ) ov
     from A540769.vAdmBindCQ p
)
select k.*
    , case when v.seq is not null then v.seq
           else raise_error(77071, 'no bindVal type=ov key=' || k.cq
              || ' install=' || char(k.install) || ' pgm=' || k.pgm)
      end ovSeq
    , v.opt, v.val
    from k left join v
       on k.install = v.inst and k.ov = v.key and v.rn = 1
           and v.opt <> '-->parent'
;
CREATE view A540769.vAdmBind as --- bind stmts
with g  (appl, pgm, install, colBa
        , rdl, rdlSeq, rz, dbSy, location, quaBa
        , cq,  cqSeq, col, qua) as
(
  select appl, pgm, install, min(colBa)
         , min(rdl), min(rdlSeq), rz, dbSy, location, min(quaBa)
         , min(cq),  min(cqSeq), col, min(qua)
    from A540769.vAdmBindOV
    group by appl, pgm, install, rz, dbSy, location, col
)
, u (appl, pgm, install, colBa
       , rdl, rdlSeq, rz, dbSy, location, quaBa
       , cq,  cqSeq, col, qua
       , ov,  ovSeq, opt, val) as
(
  select * from A540769.vAdmBindOV
  union all select g.*, 'b1', -9, 'bind package'
      , case when location = '' then col
             else strip(col) || ') location(' || location end    from g
  union all select g.*, 'b1', -6, 'member', pgm          from g
  union all select g.*, 'b1', -6, 'qualifier', qua       from g
)
select cast(case when ovSeq = -9 then '' else '  ' end
           || strip(opt) || '(' || strip(val) || ') '
           || case when ovSeq = 9999 then '' else '-' end
         as char(72)) stmt
       , u.*
    from u
;
CREATE view A540769.vAdmBindDBP as --- bind stmts
with d  (appl, pgm, install, colBa
        , rdl, rdlSeq, rdlMax, rz, dbSy) as
(
  select appl, pgm, install, min(colBa)
         , min(rdl), min(rdlSeq),  max(rdlSeq), rz, dbSy
    from A540769.vAdmBind
    group by appl, pgm, install, rz, dbSy
)
, p (appl, pgm, install) as
(
  select appl, pgm, install
    from d
    group by appl, pgm, install
)
, u (stmt, appl, pgm, install, colBa
       , rdl, rdlSeq, rz, dbSy, location, quaBa
       , cq,  cqSeq, col, qua
       , ov,  ovSeq, opt, val) as
(
  select * from A540769.vAdmBind
  union all select char('**** appl=' || appl || ' pgm=' || pgm
                   || ' install=' || char(install), 80)
       , p.*, '', '', -9, '', '', '', '', '', 0, '', ''
                                        , '', 0, '', '' from p
  union all select char('**** generated '||char(current timestamp),80)
       , p.*, '', '', -8, '', '', '', '', '', 0, '', ''
                                        , '', 0, '', '' from p
  union all select char('**** Start of Bind Stmts for '
                        || rz || '/' || dbSy, 80)
       ,appl, pgm, install, colBa, rdl, rdlSeq, rz, dbSy, '', ''
       , '', -9, '', '', '', 0, '', ''              from d
  union all select char('**** End of Bind Stmts for '
                        || rz || '/' || dbSy, 80)
       , appl, pgm, install, colBa, rdl, rdlMax, rz, dbSy, '', ''
       , '', 999999, '', '', '', 0, '', ''              from d
)
select * from u
;x;
with i (inst) as
       join A540769.tBiPath a
          on g.path = a.path
          and g.install >= a.installFr and g.install < a.installTo
;
        ( select substr(max(prio || value), 3, 12)
            from A540769.vBiParm p
            where p.type = 'colls'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
              and p.rz       in ('*', a.rz       )
              and p.dbSy     in ('*', a.dbSy     )
              and p.location in ('*', a.location )
        ) colls,
        ( select substr(max(prio || value), 3, 12)
            from A540769.vBiParm p
            where p.type = 'qua'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
              and p.rz       in ('*', a.rz       )
              and p.dbSy     in ('*', a.dbSy     )
              and p.location in ('*', a.location )
        ) quaBa
CREATE TABLE A540769.tBiPaCol
  (
      colls      char(12) not null,
      seq        smallint not null,
      col        char(8) NOT NULL,
      qua        char(8) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.aBiPaCol
;
CREATE view  A540769.vBiPaCol as
  select  h.*, c.seq colSeq,
        replace(c.col, $"'$'", strip(h.colBa)) col,
        replace(c.qua, $"'$'", strip(h.quaBa)) qua,
        ( select substr(max(prio || value), 3, 12)
            from A540769.vBiParm p
            where p.type = 'opt'
              and h.install >= p.installFr and h.install < p.installTo
              and left(p.appl, p.apLe) = left(h.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(h.pgm, p.pgLe)
              and p.rz       in ('*', h.rz       )
              and p.dbSy     in ('*', h.dbSy     )
              and p.location in ('*', h.location )
        ) opts
    from A540769.vBiPath h
      join A540769.tBiPaCol c
        on h.colls = c.colls
          and h.install >= c.installFr and h.install < c.installTo
;
CREATE view A540769.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
      from ( select opts, install from A540769.vBiPaCol
                 group by opts, install) oo
  union all select r.opts, p.value,
          right('00' || strip(char(99-lev)), 2), lev+1, install
      from r join A540769.tBiPaOpt p
        on r.parent = p.opts and p.key = '-->parent'
            and r.install >= p.installFr and r.install < p.installTo
            and r.lev < 90
)
select * from r
;
CREATE view  A540769.vBiPaOpt as
    with o as (
        select r.opts, key, substr(max(prio || value), 3) value,
                min(seq) seq, r.install
          from A540769.vBiPaOptRel r
            join A540769.tBiPaOpt o
              on r.parent = o.opts
                and r.install >= o.installFr and r.install < o.installTo
          group by r.opts, r.install, o.key
        )
    select c.*,
        '  ' || strip(key) || '(' || strip(value) || ')'
            || case when seq = 9999 then '' else ' -' end opt,
        o.seq optSeq
      from A540769.vBiPaCol c join o
          on o.opts = c.opts and o.install = c.install
            and o.key not like '--%' and o.value <> ''
;
CREATE view  A540769.vBiPaBind (opt, appl, pgm, install, path, colba,
               pathSeq, rz, dbSy, location, colls, quaBa,
               colSeq, col, qua, opts, optSeq) as
select 'bind package('
          || case when location = '' then ''
                  else strip(c.location) || '.' end
          || strip(col) || ') -' ,
       c.*, -90
    from A540769.vBiPaCol c
union all select '  member(' || strip(pgm) || ') -',
       c.*, -80
    from A540769.vBiPaCol c
union all select '  qualifier(' || strip(qua) || ') -',
       c.*, -70
    from A540769.vBiPaCol c
union all select opt, appl, pgm, install, path, colba,
       pathSeq, rz, dbSy, location, colls, quaBa,
       colSeq, col, qua, opts, optSeq
    from A540769.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
                    || ', appl=' || appl
                    || ', installDate=' || char(install) ,
       appl, pgm, install, '', '',
       -32761, '' , '', '', '', '',
       0, '', '', 'bindBegin1', 0
    from A540769.tadm40Pgm
union all select '***: A540769.vBiPaBind at '
                 || char(current timestamp)
                 || ' on ' || current server,
       appl, pgm, install, '', '',
       -32760, '', '', '', '', '',
       0, '', '', 'bindBegin2', 0
    from A540769.tadm40Pgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(dbSy),
       appl, pgm, install, path, '',
       min(pathSeq), rz, dbSy, '', '', '',
       -32760, '', '', 'dbSyBegin', 0
    from A540769.vBiPaCol c
    group by appl, pgm, install, path, rz, dbSy
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(dbSy),
       appl, pgm, install, path, '',
       max(pathSeq), rz, dbSy, '', '', '',
       32760, '', '', 'dbSyEnd', 0
    from A540769.vBiPaCol c
    group by appl, pgm, install, path, rz, dbSy
;
commit;
}¢--- A540769.WK.SQL(BIPA2MIG) cre=2013-11-03 mod=2013-11-03-08.11.49 A540769 ---
-- insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
with p as --- mark outdated entries in bind_parameters ----------------
(
  select p.*
         , row_number() over (partition by appl, pgm, collid
                              order by installdate desc) iNr
    from oa1p.bind_parameters p
    where appl <> 'A18Q' and appl <> 'B18Q'
        and pgm not in ('DEFAULT', 'DBWK1', 'DB2WK1', 'DB2JAA'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, a as --- left join old tables ----------------------------------------
(
   select value(p.appl  , e.appl)   appl
       ,  value(p.pgm   , e.pgm )   pgm
       ,  value(p.collid, e.collid) col
       ,  value(p.installdate, e.installdate) installDate
       ,  value(p.qualifier, '') pQua
       ,  value(e.qualifier, '') eQua
       ,  value(e.ssid, '')      eDbSy
       ,  value(e.location, '')  eLoc
     from p left join oa1p.bind_exceptions e
         on p.appl = e.appl
           and p.pgm = e.pgm
           and p.collid = e.collid
           and p.installdate = e.installdate
     where p.iNr = 1
)
, b as --- add default Qualifier and Collection
(
  select a.*
    , case when appl like 'ELA%'    then 'BUA' else 'OA1$' end quaVar
    , case when appl like 'ELA%'    then 'BUA'
           when eDbSy = 'DBAF' then 'OA1A'
           when eDbSy = 'DBTF' then 'OA1T'
                               else 'OA1P' end quaDef
    , case when left(pgm, 2) = 'YX' then 'YX'
           when left(pgm, 2) = 'YY' then 'YY'
           when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
           else left(pgm, 2) end colDef
    ,  row_number() over(partition by appl, pgm, eDbSy, eLoc
                         order by col) r
    from a
)
, d as --- add qualifier ----------------------------------------------
(
  select b.*
    , case when eQua is not null and eQua <> '' then eQua
           when pQua is not null and pQua <> '' then pQua
           else raise_error(77001, pgm || ': no qua')
      end qua
    from b
)
, e --- recursive build lists of colls/quals --------------------------
         ( appl, pgm, col, installdate, eDbSy, eLoc
         , quaVar, quaDef, colDef, r, qua, quals, colls) as
(
  select appl, pgm, col, installdate, eDbSy, eLoc
      , quaVar, quaDef, colDef, r, qua
      , cast(strip(qua) as varchar(1000))
      , cast(strip(col) as varchar(1000))
    from d where r = 1
  union all select e.appl, e.pgm, d.col, e.installdate
     , e.eDbSy, e.eLoc, d.quaVar, d.quaDef, d.colDef, e.r+1, d.qua
     , e.quals || ' ' || strip(d.qua)
     , e.colls || ' ' || strip(d.col)
  from e join d
    on e.appl = d.appl and e.pgm = d.pgm
      and e.eDbSy = d.edbSy
      and e.eLoc = d.eLoc and e.r + 1 = d.r  and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
  select appl, pgm, max(installdate) installDate, eDbSy, eLoc
     , min(col) colFr, max(col) colTo
     , min(colDef) colDef
     , min(qua) quaFr, max(qua) quaTo
     , min(quaVar) quaVar, max(quaVar) quaVarMax
     , min(quaDef) quaDef, max(quaDef) quaDefMax
     , max(r) r
     , max(quals) quals
     , max(colls) colls
    from e
    group by  appl, pgm, eDbSy, eLoc
)
, g1 as --- special quals ---------------------------------------------
(
  select f.*
    , case when quaDef <> quaDefMax
               then raise_error(77031, pgm || '@' || eDbSy
                   || ' quaDef ' || quaDef || ' ==> ' || quaDefMax)
           when quaDef in ('OA1A', 'OA1T', 'OA1P')
               then replace(quals, quaDef, 'OA1$') else quals end qualD
    , case when eDbSy = 'DBBA'
              then replace(quals, 'OA1A',  'OA1&')
           when eDbSy = 'DVTB'
               then replace(quals, 'OA1T',  'OA1&')
               else replace(replace(quals, quaDef,  'OA1&')
                                         , 'OA1$',  'OA1&') end qualV
    from f
)
, g  as --- group over all dbSys/Location -----------------------------
(
  select appl, pgm, max(installdate) installDate
      , min(colFr) colFr
      , max(colTo) colTo
      , min(colDef) colDef, max(colDef) colDefMax
      , min(colls) colls, max(colls) collMax
      , min(quaFr) quaFr
      , max(quaTo) quaTo
      , min(quaVar) quaVar, max(quaVarMax) quaVarMax
      , min(quals) quals, max(quals) qualMax
      , min(qualD) qualD, max(qualD) quaDMax
      , min(qualV) qualV, max(qualV) quaVMax
      , count(*) gR
    from g1
    group by appl, pgm
)
, h2  as --- check wether no bad change within dbSys/Location ----------
(
  select appl, pgm, installDate, colFr, colTo, colDef
      , quaVar, quaFr, quaTo, colls
      , case when colDef <> colDefMax
                then raise_error(77011, pgm || ' colDef '
                      || colDef || ' ==> ' || colDefMax)
             when colls <> collMax
                then raise_error(77013, pgm || ' colls '
                      || colls || ' ==> ' || collMax)
             when quaVar <> quaVarMax
                 then raise_error(77032, pgm
                   || ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
             when quals = qualMax then quals
             when qualD = quaDMax then qualD
             when qualV = quaVMax then qualV
             else   raise_error(77022, pgm
                  || ' quals ' || quals || '  ==> ' || qualMax
                  || ' qualD ' || qualD || '  ==> ' || quaDMax
                  || ' qualV ' || qualV || '  ==> ' || quavMax)
        end quals
    from g
)
, h as --- colls und quals komprimieren --------------------------------
(
  select h2.*
     , replace(colls, ' ' || left(colls, 2), '=') collR
     , replace(quals, ' ' || left(quals, 4), '=') qualR
    from h2
)
, i as --- den neuen cq key bestimmen ----------------------------------
(
  select h.*
  , cast(case                                               --- default
      when colls = colDef and quals = quaVar then '-'
                    --- spezial: colls und quals nicht in sync --------
                                                            --- au
      when quals = 'OA1&' and colls = 'AU' then 'AU&'
                                                            --- av
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
           || '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
        then 'AV/Y/X012'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/0129'
      when collR = 'AV01=02' and qualR = 'OA1$01=01'
          then 'AV0101'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/CPID'
      when collR = 'AV' and quals = 'OA1P12' then 'AV12'
                                                            --- be
      when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
          then 'BE+04'
      when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ'  --- ctcz
      when colls = coldef ||' YY' and qualR = 'OA1$='       --- + yy
              then 'YY+'
      when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02'  --- oa1p
          then 'OA1P-02'
                                                            --- allgemei
      when quals = 'OA1&' and colls = colDef then 'DVTB&'
      when quals = 'OA1A' and colls = colDef then 'OA1A'
                    --- error if colls und quals nicht in sync--------
      when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
          then raise_error(77021, pgm || ' colls ' || collR
                 || ' mismatches quals ' || qualR)
                                                        --- av
      when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
            ||  '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
             and left(collR, 14) in ('AV01=02=03=05='
                    , 'AV01=02=05=06=', 'AV05=06=07=08=' )
          then 'AVALL'
      when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
      when collR in ('AV01=02=03=05=06=07=08=09=10'
                    ,'AV01=02=03=28=29=30=31=32'
                    ,'AV01=02=09=10=28=29=30=31=32'
                    ,'AV28=29=30=31=32') then 'AV-10-32'
      when collR =   'AV01=02=03=21=22' then 'AV-03-22'
      when collR = 'BE01=02=03=04' then 'BE-04'         --- be
      when collR = 'NI01=02'            then 'NI-02'    --- ni
      when collR = 'NI=01=02'           then 'NI+02'
      when collR in ('PC01=02', 'PC01') then 'PC-02'    --- pc
      when collR in
           ('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
           ,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
                                       then 'PCALL'
                                                        --- xc
      when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
                                                        --- allgemei
      when colls in ('BE', 'CD', 'KE') then colls
      else '???'
    end as char(10)) cq
    from h
)
select count(*), cq, collr, qualr
    from i --  where cq like 'OA1P-0%' ;
    group by cq, collr, qualr
    order by cq, collr, qualr
;x;
select 'cq', pgm, '20', cq, installDate
    from i
    where cq <> '-'
    order by cq
;x;
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',  110,  'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   210,  'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   220,  'DEGREE', '1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   310,  'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   320,  'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   910,  'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   920,  'FLAG', 'I','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   930,  'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',  9999,    'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'degAny',    220,  'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'valRun',    320,  'VALIDATE', 'RUN' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',    330,  'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',  -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',    330,  'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw',    340,  'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun',    310,  'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',-9999,'-->parent','valRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'relDea',    230,  'RELEASE', 'DEALLOCATE','01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
           key, installBegin)
    values('ov', '00', '%', '%', '%', '%', '%', 'default',
                           '01.01.2000')
;
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
           key, installBegin)
with n as
( select APPL
       , PGM
       , COLLID
       , INSTALLDATE
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from oa1p.bind_parameters
)
, d as
( select
       case when s.pgm <> 'DEFAULT' then 's' else ' ' end
    || case when a.appl <> 'DEFAULT' then 'a' else ' ' end
    || case when d.appl is null then ' ' else 'd' end sad
--alue(s.$           ,a.$           ,d.$           ) $
,value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from n s
      left join n a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join oa1p.bind_parameters d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, e as
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     d.*
     from d
)
, f as
( select   case
           when comb = '    ANY BIND        BIND' then 'degAny   '
           when comb = '    1   BIND        BIND' then 'default  '
           when comb = '    1   BIND        RUN ' then 'valRun   '
           when comb = '    1   BIND    HBD1BIND' then 'optHBD1  '
           when comb = '    1   BIND    OH  BIND' then 'optOH    '
           when comb = '    1   BINDALWA    BIND' then 'reoAlw   '
           when comb = '    1   RUN         BIND' then 'dynRun   '
           when comb = '    1   RUN         RUN ' then 'dynValRun'
           when comb = 'DEAL1   BIND        BIND' then 'relDea   '
           else '$$$' end neu,
           e.*
     from e
)
select 'opt' type
     , case when pgm <> 'DEFAULT' then '20'
            else '10' end prio
     , left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
           then '%' else appl end, 4) appl
     , case when pgm  = 'DEFAULT' then '%' else pgm  end pgm
     , '%' rz
     , '%' dbSy
     , '%' location
     , neu key
     , installDate installBegin
 --  , f.*
     from f
     where appl not like 'A18Q%'
       and neu <> 'default'
;
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
                values    ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
                values    ('path', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
     strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
    from oa1p.bind_exceptions
    where ssid <> 'DAEG'
)
, b as
(    select a, p, c, r,
         row_number() over(partition by a, p, c
                       order by t) l,
         t
     from a
)
, c (a, p, c, r, l, t, u) as
(    select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
     union all select c.a, c.p, c.c, min(c.r, b.r),
               c.l+1, b.t, c.u || ' ' || b.t
          from b, c
          where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
                and c.l < 100
)
, d as
(
    select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
      from c
      group by a, p, c
)
, e as
( select
   case when a in ('A18Q', 'DBTST', 'DB2J')  then '-'
        when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
        when p = 'YCDPUT2' then '-'
        when l = 12 and tFr = 'DBBA>-OA1A'
             and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
        when l > 4  and tFr = 'DBAF>-OA1A'
             and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
        when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
        else '???'
   end n,
   d.* from d
)
select 'path', '20', p, n, r
     from e where n <> '-'
;
delete from OA1P.tBiPaPgm;
commit;
select appl, pgm, collid, ssid, min(qualifier), max(qualifier)
       , count(*), sum(case when location = '' then 1 else 0 end) loc
    from oa1p.bind_exceptions e
    group by appl, pgm, collid, ssid
    having min(qualifier) <> max(qualifier)
;x;
}¢--- A540769.WK.SQL(BIPA2MI2) cre=2013-11-03 mod=2013-11-03-11.29.38 A540769 ---
delete from OA1P.tAdm42BindVal;
delete from OA1P.tAdm41BindKey ;
----- val rdl = rz db2system location ----------------------------------
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF',   '01.01.2000', 20, 'RZ1', 'DBAF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2008', 22, 'RZ8', 'DC0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2000', 40, 'RZ1', 'DBTF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2008', 42, 'RZ8', 'DD0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2008', 44, 'RZZ', 'DE0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2000', 60, 'RR2', 'DBOF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2000', 80, 'RZ2', 'DBOF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2012', 22, 'RZ8', 'DCVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2000', 40, 'RZ1', 'DVTB') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2008', 42, 'RZ8', 'DDVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2008', 44, 'RZZ', 'DEVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2000', 60, 'RR2', 'DVBP') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2000', 80, 'RZ2', 'DVBP') ;
insert into OA1P.tAdm42BindVal
       (type, key, installBegin, seq, va1, va2)
    select type, 'DBOF>DVBP', installBegin, seq, va1, va2
      from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
insert into OA1P.tAdm42BindVal
       (type, key, installBegin, seq, va1, va2)
    select type, 'DBOF>DVBP', installBegin, seq+1, va1, va2
      from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
update OA1P.tAdm42BindVal set va3 = 'CHROI000DCVG'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 23;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVTB'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 41;
update OA1P.tAdm42BindVal set va3 = 'CHROI000DDVG'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 43;
update OA1P.tAdm42BindVal set va3 = 'CHROI00ZDEVG'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 45;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVBP'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 61;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVBP'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 81;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select type, 'DBOF>DBOL', seq, va1, va2, installBegin
      from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
insert into OA1P.tAdm42BindVal
          (type, key, seq, va1, va2, va3, installBegin)
    values('rdl', 'DBOF>DBOL', 81, 'RZ2', 'DBOF','CHSKA000DBOL'
                , '01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    select type, 'DVBP>DBOF', installBegin, seq, va1, va2
      from OA1P.tAdm42BindVal where type = 'rdl' and key  = 'DVBP';
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    select type, 'DVBP>DBOF', installBegin, seq+1, va1, va2
      from OA1P.tAdm42BindVal where type = 'rdl' and key  = 'DVBP';
update OA1P.tAdm42BindVal set va3 = 'CHROI000DC0G'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 23;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBTF'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 41;
update OA1P.tAdm42BindVal set va3 = 'CHROI000DD0G'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 43;
update OA1P.tAdm42BindVal set va3 = 'CHROI00ZDE0G'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 45;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBOF'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 61;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBOF'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 81;
----- key rdl = rz db2system location ----------------------------------
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
                values    ('rdl', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
                values    ('rdl', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
     strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
    from oa1p.bind_exceptions
    where ssid <> 'DAEG'
)
, b as
(    select a, p, c, r,
         row_number() over(partition by a, p, c
                       order by t) l,
         t
     from a
)
, c (a, p, c, r, l, t, u) as
(    select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
     union all select c.a, c.p, c.c, min(c.r, b.r),
               c.l+1, b.t, c.u || ' ' || b.t
          from b, c
          where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
                and c.l < 100
)
, d as
(
    select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
      from c
      group by a, p, c
)
, e as
( select
   case when a in ('A18Q', 'DBTST', 'DB2J')  then '-'
        when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
        when p = 'YCDPUT2' then '-'
        when l = 12 and tFr = 'DBBA>-OA1A'
             and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
        when l > 4  and tFr = 'DBAF>-OA1A'
             and (tTo = 'DBTF>CHSKA000DVTB-OA1T'
                or tTo like 'DE0G>CH%DEVG-OA1P') then 'DBOF>DVBP'
        when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
        else '???'
   end n,
   d.* from d
)
select 'rdl', '20', p, n, r   ---   , l, tFr, tTo, t
     from e where n <> '-'
;
----- key q: base qualifier ----(no val|) ------------------------------
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
                values    ('q', '00', 'OA1P', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
                values    ('q', '02', 'ELA%', 'BUA', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, dbSy, key, installBegin)
                values    ('q', '05', 'DBAF', 'OA1A', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, dbSy, key, installBegin)
                values    ('q', '05', 'DBTF', 'OA1T', '01.01.2000');

----- val cq: collection qualifier ------------------------------------
declare global temporary table session.i
 (i int not null, c2 char(2) not null) ccsid unicode;
insert into session.i
    select i, right('0000' || strip(char(i)), 2) c2
            from (select row_number() over() -1 i
                   from sysibm.sysColumns fetch first 100 rows only)s
 ;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', '$',   1,   '$',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'AV-03', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 3
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'AV-03-22', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i in (1, 2, 3, 21, 22)
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'AV-10-32', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i in(1,2,3,5,6,7,8,9,10,28,29,30,31,32)
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'AVALL', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 32 and i <> 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'AV0101',   1,   'AV01',  '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'AV0101',   1,   'AV02',  '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'AV12',   1,   'AV',  '$12', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'BE-04', i, 'BE' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'BE+04', 0,   'BE',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'BE+04', i, 'BE' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'CD', 1,   'CD',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'CTCZ', 1,   'CT',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'CTCZ', 2,   'CZ',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'KE', 1,   'KE',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI-02', 2,   'NI01',  '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI-02', 3,   'NI02',  '$02', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI+02', 0,   'NI',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI+02', 1,   'NI01',  '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI+02', 2,   'NI02',  '$02', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'PC-02', i, 'PC' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 2
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'PCALL', i, 'PC' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 16
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'XCALL', i, 'XC' || c2, '$' || c2, '01.01.2000'
         from session.i where i >= 0 and i <= 9
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
         values('cq', 'YY+',   1,   '$',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
         values('cq', 'YY+',  10,  'YY',  '$', '01.01.2000');
----- key cq: collection qualifier ------------------------------------
insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
    values('cq', '%', '00', '$', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
with a as --- left join old tables -------------------------------------
(
   select value(p.appl  , e.appl)   appl
       ,  value(p.pgm   , e.pgm )   pgm
       ,  value(p.collid, e.collid) col
       ,  value(p.installdate, e.installdate) installDate
       ,  value(p.qualifier, '') pQua
       ,  value(e.qualifier, '') eQua
       ,  value(e.ssid, '')      eDbSy
       ,  value(e.location, '')  eLoc
     from oa1p.bind_parameters p left join oa1p.bind_exceptions e
         on p.appl = e.appl
           and p.pgm = e.pgm
           and p.collid = e.collid
           and p.installdate = e.installdate
)
, b as --- add default Qualifier and Collection
(
  select a.*
    , case when appl like 'ELA%'    then 'BUA' else 'OA1$' end quaVar
    , case when appl like 'ELA%'    then 'BUA'
           when eDbSy = 'DBAF' then 'OA1A'
           when eDbSy = 'DBTF' then 'OA1T'
                               else 'OA1P' end quaDef
    , case when left(pgm, 2) = 'YX' then 'YX'
           when left(pgm, 2) = 'YY' then 'YY'
           when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
           else left(pgm, 2) end colDef
    ,  row_number() over(partition by appl, pgm, eDbSy, eLoc
                         order by col) r
    from a
    where appl <> 'A18Q' and appl <> 'B18Q'
        and pgm not in ('DEFAULT', 'DBWK1', 'DB2WK1'
--                     ,'YAVCPID', 'YAVX012', 'YAV0129', 'NI8340'
--                     ,'NI8660', 'NI6880')
                       )
        and col not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, d as --- add qualifier ----------------------------------------------
(
  select b.*
    , case when eQua is not null and eQua <> '' then eQua
           when pQua is not null and pQua <> '' then pQua
           else raise_error(77001, pgm || ': no qua')
      end qua
    from b
)
, e --- recursive build lists of colls/quals --------------------------
         ( appl, pgm, col, installdate, eDbSy, eLoc
         , quaVar, quaDef, colDef, r, qua, quals, colls) as
(
  select appl, pgm, col, installdate, eDbSy, eLoc
      , quaVar, quaDef, colDef, r, qua
      , cast(strip(qua) as varchar(1000))
      , cast(strip(col) as varchar(1000))
    from d where r = 1
  union all select e.appl, e.pgm, d.col, e.installdate
     , e.eDbSy, e.eLoc, d.quaVar, d.quaDef, d.colDef, e.r+1, d.qua
     , e.quals || ' ' || strip(d.qua)
     , e.colls || ' ' || strip(d.col)
  from e join d
    on e.appl = d.appl and e.pgm = d.pgm
      and e.eDbSy = d.edbSy
      and e.eLoc = d.eLoc and e.r + 1 = d.r  and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
  select appl, pgm, max(installdate) installDate, eDbSy, eLoc
     , min(col) colFr, max(col) colTo
     , min(colDef) colDef
     , min(qua) quaFr, max(qua) quaTo
     , min(quaVar) quaVar, max(quaVar) quaVarMax
     , min(quaDef) quaDef, max(quaDef) quaDefMax
     , max(r) r
     , max(quals) quals
     , max(colls) colls
    from e
    group by  appl, pgm, eDbSy, eLoc
)
, g1 as --- special quals ---------------------------------------------
(
  select f.*
    , case when quaDef <> quaDefMax
               then raise_error(77031, pgm || '@' || eDbSy
                   || ' quaDef ' || quaDef || ' ==> ' || quaDefMax)
           when quaDef in ('OA1A', 'OA1T', 'OA1P')
               then replace(quals, quaDef, 'OA1$') else quals end qualD
    , case when eDbSy = 'DBBA'
              then replace(quals, 'OA1A',  'OA1&')
           when eDbSy = 'DVTB'
               then replace(quals, 'OA1T',  'OA1&')
               else replace(replace(quals, quaDef,  'OA1&')
                                         , 'OA1$',  'OA1&') end qualV
    from f
)
, g  as --- group over all dbSys/Location -----------------------------
(
  select appl, pgm, max(installdate) installDate
      , min(colFr) colFr
      , max(colTo) colTo
      , min(colDef) colDef, max(colDef) colDefMax
      , min(colls) colls, max(colls) collMax
      , min(quaFr) quaFr
      , max(quaTo) quaTo
      , min(quaVar) quaVar, max(quaVarMax) quaVarMax
      , min(quals) quals, max(quals) qualMax
      , min(qualD) qualD, max(qualD) quaDMax
      , min(qualV) qualV, max(qualV) quaVMax
      , count(*) gR
    from g1
    group by appl, pgm
)
, h2  as --- check wether no bad change within dbSys/Location ----------
(
  select appl, pgm, installDate, colFr, colTo, colDef
      , quaVar, quaFr, quaTo, colls
      , case when colDef <> colDefMax
                then raise_error(77011, pgm || ' colDef '
                      || colDef || ' ==> ' || colDefMax)
             when colls <> collMax
                then raise_error(77013, pgm || ' colls '
                      || colls || ' ==> ' || collMax)
             when quaVar <> quaVarMax
                 then raise_error(77032, pgm
                   || ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
             when quals = qualMax then quals
             when qualD = quaDMax then qualD
             when qualV = quaVMax then qualV
             else   raise_error(77022, pgm
                  || ' quals ' || quals || '  ==> ' || qualMax
                  || ' qualD ' || qualD || '  ==> ' || quaDMax
                  || ' qualV ' || qualV || '  ==> ' || quavMax)
        end quals
    from g
)
, h as --- colls und quals komprimieren --------------------------------
(
  select h2.*
     , replace(colls, ' ' || left(colls, 2), '=') collR
     , replace(quals, ' ' || left(quals, 4), '=') qualR
    from h2
)
, i as --- den neuen cq key bestimmen ----------------------------------
(
  select h.*
  , cast(case                                               --- default
      when colls = colDef and quals = quaVar then '-'
                    --- spezial: colls und quals nicht in sync --------
                                                            --- au
      when quals = 'OA1&' and colls = 'AU' then 'AU&'
                                                            --- av
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
           || '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
        then 'AV/Y/X012'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/0129'
      when collR = 'AV01=02' and qualR = 'OA1$01=01'
          then 'AV0101'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/CPID'
      when collR = 'AV' and quals = 'OA1P12' then 'AV12'
                                                            --- be
      when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
          then 'BE+04'
      when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ'  --- ctcz
      when colls = coldef ||' YY' and qualR = 'OA1$='       --- + yy
              then 'YY+'
      when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02'  --- oa1p
          then 'OA1P-02'
                                                            --- allgemei
      when quals = 'OA1&' and colls = colDef then 'DVTB&'
      when quals = 'OA1A' and colls = colDef then 'OA1A'
                    --- error if colls und quals nicht in sync--------
      when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
          then raise_error(77021, pgm || ' colls ' || collR
                 || ' mismatches quals ' || qualR)
                                                        --- av
      when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
            ||  '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
             and left(collR, 14) in ('AV01=02=03=05='
                    , 'AV01=02=05=06=', 'AV05=06=07=08=' )
          then 'AVALL'
      when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
      when collR in ('AV01=02=03=05=06=07=08=09=10'
                    ,'AV01=02=03=28=29=30=31=32'
                    ,'AV01=02=09=10=28=29=30=31=32'
                    ,'AV28=29=30=31=32') then 'AV-10-32'
      when collR =   'AV01=02=03=21=22' then 'AV-03-22'
      when collR = 'BE01=02=03=04' then 'BE-04'         --- be
      when collR = 'NI01=02'            then 'NI-02'    --- ni
      when collR = 'NI=01=02'           then 'NI+02'
      when collR in ('PC01=02', 'PC01') then 'PC-02'    --- pc
      when collR in
           ('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
           ,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
                                       then 'PCALL'
                                                        --- xc
      when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
                                                        --- allgemei
      when colls in ('BE', 'CD', 'KE') then colls
      else '???'
    end as char(10)) cq
    from h
)
select 'cq', pgm, '20', cq, installDate
    from i
    where cq <> '-'
;
update OA1P.tAdm41BindKey set type = 'q'
                            , dbSy = 'DVTB'
                            , key = 'OA1T'
    where type = 'cq' and key = 'AU&'
;
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',  110,  'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   210,  'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   220,  'DEGREE', '1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   310,  'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   320,  'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   910,  'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   920,  'FLAG', 'I','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   930,  'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',  9999,    'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'degAny',    220,  'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'valRun',   320,  'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',    330,  'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',  -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',    330,  'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw',    340,  'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun',    310,  'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',   320,  'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'relDea',    230,  'RELEASE', 'DEALLOCATE','01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
           key, installBegin)
    values('ov', '00', '%', '%', '%', '%', 'default',
                           '01.01.2000')
;
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
           key, installBegin)
with n as
( select APPL
       , PGM
       , COLLID
       , INSTALLDATE
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from oa1p.bind_parameters
)
, d as
( select
       case when s.pgm <> 'DEFAULT' then 's' else ' ' end
    || case when a.appl <> 'DEFAULT' then 'a' else ' ' end
    || case when d.appl is null then ' ' else 'd' end sad
--alue(s.$           ,a.$           ,d.$           ) $
,value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from n s
      left join n a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join oa1p.bind_parameters d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, e as
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     d.*
     from d
)
, f as
( select   case
           when comb = '    ANY BIND        BIND' then 'degAny   '
           when comb = '    1   BIND        BIND' then 'default  '
           when comb = '    1   BIND        RUN ' then 'valRun   '
           when comb = '    1   BIND    HBD1BIND' then 'optHBD1  '
           when comb = '    1   BIND    OH  BIND' then 'optOH    '
           when comb = '    1   BINDALWA    BIND' then 'reoAlw   '
           when comb = '    1   RUN         BIND' then 'dynRun   '
           when comb = '    1   RUN         RUN ' then 'dynValRun'
           when comb = 'DEAL1   BIND        BIND' then 'relDea   '
           else '$$$' end neu,
           e.*
     from e
)
select 'ov' type
     , case when pgm <> 'DEFAULT' then '20'
            else '10' end prio
     , left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
           then '%' else appl end, 4) appl
     , case when pgm  = 'DEFAULT' then '%' else pgm  end pgm
     , '%' rz
     , '%' dbSy
--   , '%' location
     , neu key
     , installDate installBegin
 --  , f.*
     from f
     where appl not like 'A18Q%'
       and neu <> 'default'
;x;
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
                values    ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
                values    ('path', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
     strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
    from oa1p.bind_exceptions
    where ssid <> 'DAEG'
)
, b as
(    select a, p, c, r,
         row_number() over(partition by a, p, c
                       order by t) l,
         t
     from a
)
, c (a, p, c, r, l, t, u) as
(    select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
     union all select c.a, c.p, c.c, min(c.r, b.r),
               c.l+1, b.t, c.u || ' ' || b.t
          from b, c
          where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
                and c.l < 100
)
, d as
(
    select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
      from c
      group by a, p, c
)
, e as
( select
   case when a in ('A18Q', 'DBTST', 'DB2J')  then '-'
        when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
        when p = 'YCDPUT2' then '-'
        when l = 12 and tFr = 'DBBA>-OA1A'
             and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
        when l > 4  and tFr = 'DBAF>-OA1A'
             and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
        when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
        else '???'
   end n,
   d.* from d
)
select 'path', '20', p, n, r
     from e where n <> '-'
;
delete from OA1P.tBiPaPgm;
commit;
}¢--- A540769.WK.SQL(BIPA9DD1) cre=2012-07-20 mod=2012-07-20-10.02.11 A540769 ---
set current sqlid = 'S100447';
   drop  table OA1P.tBiPaPgm;
   drop  tablespace db2Admin.aBiPa   ;
commit;
create global temporary table OA1P.tBiPaPgm
( appl char(4),
  pgm  char(8),
  install date)   ccsid unicode;

CREATE TABLESPACE ABiPa
  IN Db2Admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE OA1P.tBiParm
  (   type       char(5) not null,
      PRIO       char(2) NOT NULL,
          CONSTRAINT PRIONumeric CHECK
              (PRIO between '00' and '99') ,
      appl       CHAR(4) NOT NULL default '*',
      pgm        CHAR(8) NOT NULL default '*',
      rz         char(3) NOT NULL default '*',
      ssid       char(4) NOT NULL default '*',
      location   char(16) NOT NULL  default '*',
      value      char(20) not null,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999'
  )
 in db2Admin.aBiPa
;
CREATE view  OA1P.vBiParm as
    select p.*,
       case when posstr(appl, '*') = 0 then 4 else posstr(appl, '*')-1
       end apLe ,
       case when posstr(pgm , '*') = 0 then 8 else posstr(pgm , '*')-1
       end pkLe
       from oa1p.tBiParm p
;
CREATE TABLE OA1P.tBiPaEnv
  (
      env        char(12) not null,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999' ,
      seq        smallint not null,
      rz         char(3) NOT NULL,
      ssid       char(4) NOT NULL,
      location   char(16) NOT NULL default ''
  ) in db2Admin.aBiPa
;
CREATE view  OA1P.vBiPaEnv as
with k as
(
    select k.*, (select substr(max(prio || value), 3, 12)
                    from oa1p.vBiParm p
                    where p.type = 'env'
                      and k.install between p.installFr and p.installTo
                      and left(p.appl, p.apLe) = left(k.appl, p.apLe)
                      and left(p.pgm , p.pkLe) = left(k.pgm, p.pkLe)
                ) env
        from oa1p.tBiPaPgm k
)
select k.*, e.seq envSeq, e.rz, e.ssid, e.location,
     (select substr(max(prio || value), 3, 12)
                    from oa1p.vBiParm p
                    where p.type = 'col'
                      and k.install between p.installFr and p.installTo
                      and left(p.appl, p.apLe) = left(k.appl, p.apLe)
                      and left(p.pgm , p.pkLe) = left(k.pgm, p.pkLe)
                      and p.rz        in ('*', e.rz       )
                      and p.ssid in ('*', e.ssid     )
                      and p.location in ('*', e.location )
                ) colls,
     case when pgm like 'YY%' then 'YY'
         when pgm like 'Y%' then substr(pgm, 2, 2)
         else substr(pgm, 1, 2)
     end colBa,
     (select substr(max(prio || value), 3, 12)
                    from oa1p.vBiParm p
                    where p.type = 'qua'
                      and k.install between p.installFr and p.installTo
                      and left(p.appl, p.apLe) = left(k.appl, p.apLe)
                      and left(p.pgm , p.pkLe) = left(k.pgm, p.pkLe)
                      and p.rz        in ('*', e.rz       )
                      and p.ssid in ('*', e.ssid     )
                      and p.location in ('*', e.location )
                ) quaBa
     from k left join oa1p.tBiPaEnv e
          on k.env = e.env
  and k.install between e.installFr and e.installTo
;
CREATE TABLE OA1P.tBiPaCol
  (
      colls      char(12) not null,
      seq        smallint not null,
      col        char(8) NOT NULL,
      qua        char(8) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999'
  ) in db2Admin.aBiPa
;
CREATE view  OA1P.vBiPaCol as
    select e.*,
        replace(c.col, '$', strip(e.colBa)) col,
        replace(c.qua, '$', strip(e.quaBa)) qua,
     (select substr(max(prio || value), 3, 12)
                    from oa1p.vBiParm p
                    where p.type = 'opt'
                      and e.install between p.installFr and p.installTo
                      and left(p.appl, p.apLe) = left(e.appl, p.apLe)
                      and left(p.pgm , p.pkLe) = left(e.pgm, p.pkLe)
                      and p.rz        in ('*', e.rz       )
                      and p.ssid in ('*', e.ssid     )
                      and p.location in ('*', e.location )
                ) opts,
        c.seq colSeq
    from oa1p.vBiPaEnv e
      join oa1p.tBiPaCol c
        on e.colls = c.colls
          and e.install between c.installFr and c.installTo
;
CREATE TABLE OA1P.tBiPaOpt
  (
      opts       char(12) not null,
      seq        smallint not null,
      key        char(30) not null,
      val        char(40) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999'
  ) in db2Admin.aBiPa
;
CREATE TABLE OA1P.tBiPaOptRel
  (
      opts       char(12) not null,
      parent     char(12) not null,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999'
  ) in db2Admin.aBiPa
;
CREATE view OA1P.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
      from ( select opts, install from oa1p.vBiPaCol
                 group by opts, install) oo
  union all select r.opts, p.parent,
          right('00' || strip(char(99-lev)), 2), lev+1, install
      from r join oa1p.tBiPaOptRel p
        on r.parent = p.opts
            and r.install between p.installFr and p.installTo
            and r.lev < 90
)
select * from r
;
CREATE view  OA1P.vBiPaOpt as
    with o as (
        select r.opts, key, substr(max(prio || val), 3) val,
            min(seq) seq, r.install
            from oa1p.vBiPaOptRel r
              join oa1p.tBiPaOpt o
                on r.parent = o.opts
                  and r.install between o.installFr and o.installTo
            group by r.opts, r.install, o.key
        )
    select c.*,
        '  ' || strip(key) || '(' || strip(val) || ')'
            || case when seq = 9999 then '' else ' -' end opt,
        o.seq optSeq
      from oa1p.vBiPaCol c join o
          on o.opts = c.opts and o.install = c.install
;
CREATE view  OA1P.vBiPaBind (opt, appl, pgm, install,
               env, envseq, rz, ssid, location, colls, colba, quaba,
               col, qua, opts, colSeq, optSeq) as
select 'bind package('
          || case when location = '' then ''
                  else strip(c.location) || '.' end
          || strip(col) || ') -' ,
       c.*, -90
    from oa1p.vBiPaCol c
union all select '  member(' || strip(pgm) || ') -',
       c.*, -80
    from oa1p.vBiPaCol c
union all select '  qualifier(' || strip(qua) || ') -',
       c.*, -70
    from oa1p.vBiPaCol c
union all select opt, appl, pgm, install,
                 env, envseq, rz, ssid, location, colls, colba, quaba,
                 col, qua, opts, colSeq, optSeq
    from oa1p.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
                    || ', appl=' || appl
                    || ', installDate=' || char(install) ,
    appl, pgm, install, '', -9999, '', '', '', '', '', '',
               '', '', 'bindBegin1', 0, 0
    from oa1p.tBiPaPgm
union all select '***: OA1P.vBiPaBind at '
                 || char(current timestamp)
                 || ' on ' || current server,
    appl, pgm, install, '', -9998, '', '', '', '', '', '',
               '', '', 'bindBegin2', 0, 0
    from oa1p.tBiPaPgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(ssid),
    appl, pgm, install, env, min(envseq), rz, ssid, '', '', '', '',
               '', '', 'ssidBegin', -32760, 0
    from oa1p.vBiPaCol c
    group by appl, pgm, install, env, rz, ssid
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(ssid),
    appl, pgm, install, env, max(envseq), rz, ssid, '', '', '', '',
               '', '', 'ssidEnd', 32760, 0
    from oa1p.vBiPaCol c
    group by appl, pgm, install, env, rz, ssid
;
commit;
}¢--- A540769.WK.SQL(BIPA9DD2) cre=2013-10-23 mod=2013-10-23-13.38.55 A540769 ---
set current sqlid = 'S100447';
   drop  table oa1p.tBiPaPgm;
   drop  tablespace db2admin.aBiParm ;
   drop  tablespace db2admin.aBiPath ;
   drop  tablespace db2admin.aBiPaCol;
   drop  tablespace db2admin.aBiPaOpt;
commit;
create global temporary table oa1p.tBiPaPgm
( appl char(4),
  pgm  char(8),
  install date)   ccsid unicode;

CREATE TABLESPACE ABiParm
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE ABiPath
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE ABiPaCol
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE ABiPaOpt
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLE oa1p.tBiParm
  (   type       char(5) not null,
      PRIO       char(2) NOT NULL,
          CONSTRAINT PRIONumeric CHECK
              (PRIO between '00' and '99') ,
      appl       CHAR(4) NOT NULL default '*',
      pgm        CHAR(8) NOT NULL default '*',
      rz         char(3) NOT NULL default '*',
      dbSy       char(4) NOT NULL default '*',
      location   char(16) NOT NULL  default '*',
      value      char(20) not null,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  )
 in db2admin.aBiParm
;
CREATE view  oa1p.vBiParm as
    select p.*,
       case when posstr(appl, '*') = 0 then 4 else posstr(appl, '*')-1
       end apLe ,
       case when posstr(pgm , '*') = 0 then 8 else posstr(pgm , '*')-1
       end pgLe
       from oa1p.tBiParm p
;
create view oa1p.vBiPaPgm as
  select g.*,
        (select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'path'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
        ) path,
        case when pgm like 'YY%' then 'YY'
            when pgm like 'Y%' then substr(pgm, 2, 2)
            else substr(pgm, 1, 2)
        end colBa
    from oa1p.tBiPaPgm g
;
CREATE TABLE oa1p.tBiPath
  (
      path       char(12) not null,
      seq        smallint not null,
      rz         char(3) NOT NULL,
      dbSy       char(4) NOT NULL,
      location   char(16) NOT NULL default '',
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999' ,
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.aBiPath
;
CREATE view  oa1p.vBiPath as
  select g.*, a.seq pathSeq, a.rz, a.dbSy, a.location,
        ( select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'colls'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
              and p.rz       in ('*', a.rz       )
              and p.dbSy     in ('*', a.dbSy     )
              and p.location in ('*', a.location )
        ) colls,
        ( select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'qua'
              and g.install >= p.installFr and g.install < p.installTo
              and left(p.appl, p.apLe) = left(g.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(g.pgm, p.pgLe)
              and p.rz       in ('*', a.rz       )
              and p.dbSy     in ('*', a.dbSy     )
              and p.location in ('*', a.location )
        ) quaBa
     from oa1p.vBiPaPgm g
       join oa1p.tBiPath a
          on g.path = a.path
          and g.install >= a.installFr and g.install < a.installTo
;
CREATE TABLE oa1p.tBiPaCol
  (
      colls      char(12) not null,
      seq        smallint not null,
      col        char(8) NOT NULL,
      qua        char(8) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.aBiPaCol
;
CREATE view  oa1p.vBiPaCol as
  select  h.*, c.seq colSeq,
        replace(c.col, '$', strip(h.colBa)) col,
        replace(c.qua, '$', strip(h.quaBa)) qua,
        ( select substr(max(prio || value), 3, 12)
            from oa1p.vBiParm p
            where p.type = 'opt'
              and h.install >= p.installFr and h.install < p.installTo
              and left(p.appl, p.apLe) = left(h.appl, p.apLe)
              and left(p.pgm , p.pgLe) = left(h.pgm, p.pgLe)
              and p.rz       in ('*', h.rz       )
              and p.dbSy     in ('*', h.dbSy     )
              and p.location in ('*', h.location )
        ) opts
    from oa1p.vBiPath h
      join oa1p.tBiPaCol c
        on h.colls = c.colls
          and h.install >= c.installFr and h.install < c.installTo
;
CREATE TABLE oa1p.tBiPaOpt
  (
      opts       char(12) not null,
      seq        smallint not null,
      key        char(30) not null,
      value      char(40) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.aBiPaOpt
;
CREATE view oa1p.vBiPaOptRel as
with r (opts, parent, prio, lev, install) as
( select opts, opts, '99', 1, install
      from ( select opts, install from oa1p.vBiPaCol
                 group by opts, install) oo
  union all select r.opts, p.value,
          right('00' || strip(char(99-lev)), 2), lev+1, install
      from r join oa1p.tBiPaOpt p
        on r.parent = p.opts and p.key = '-->parent'
            and r.install >= p.installFr and r.install < p.installTo
            and r.lev < 90
)
select * from r
;
CREATE view  oa1p.vBiPaOpt as
    with o as (
        select r.opts, key, substr(max(prio || value), 3) value,
                min(seq) seq, r.install
          from oa1p.vBiPaOptRel r
            join oa1p.tBiPaOpt o
              on r.parent = o.opts
                and r.install >= o.installFr and r.install < o.installTo
          group by r.opts, r.install, o.key
        )
    select c.*,
        '  ' || strip(key) || '(' || strip(value) || ')'
            || case when seq = 9999 then '' else ' -' end opt,
        o.seq optSeq
      from oa1p.vBiPaCol c join o
          on o.opts = c.opts and o.install = c.install
            and o.key not like '--%' and o.value <> ''
;
CREATE view  oa1p.vBiPaBind (opt, appl, pgm, install, path, colba,
               pathSeq, rz, dbSy, location, colls, quaBa,
               colSeq, col, qua, opts, optSeq) as
select 'bind package('
          || case when location = '' then ''
                  else strip(c.location) || '.' end
          || strip(col) || ') -' ,
       c.*, -90
    from oa1p.vBiPaCol c
union all select '  member(' || strip(pgm) || ') -',
       c.*, -80
    from oa1p.vBiPaCol c
union all select '  qualifier(' || strip(qua) || ') -',
       c.*, -70
    from oa1p.vBiPaCol c
union all select opt, appl, pgm, install, path, colba,
       pathSeq, rz, dbSy, location, colls, quaBa,
       colSeq, col, qua, opts, optSeq
    from oa1p.vBiPaOpt
union all select '***: Bind for pgm=' || strip(pgm)
                    || ', appl=' || appl
                    || ', installDate=' || char(install) ,
       appl, pgm, install, '', '',
       -32761, '' , '', '', '', '',
       0, '', '', 'bindBegin1', 0
    from oa1p.tBiPaPgm
union all select '***: oa1p.vBiPaBind at '
                 || char(current timestamp)
                 || ' on ' || current server,
       appl, pgm, install, '', '',
       -32760, '', '', '', '', '',
       0, '', '', 'bindBegin2', 0
    from oa1p.tBiPaPgm
union all select '**** Start of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(dbSy),
       appl, pgm, install, path, '',
       min(pathSeq), rz, dbSy, '', '', '',
       -32760, '', '', 'dbSyBegin', 0
    from oa1p.vBiPaCol c
    group by appl, pgm, install, path, rz, dbSy
union all select '**** End of Bind Stmts for ' || strip(rz) || '/'
                                       || strip(dbSy),
       appl, pgm, install, path, '',
       max(pathSeq), rz, dbSy, '', '', '',
       32760, '', '', 'dbSyEnd', 0
    from oa1p.vBiPaCol c
    group by appl, pgm, install, path, rz, dbSy
;
commit;
}¢--- A540769.WK.SQL(BIPA9DD3) cre=2013-05-30 mod=2013-05-30-16.06.20 A540769 ---
set current sqlid = 'S100447';
$*(
drop   TABLESPACE db2admin.ABiPaCo2;
drop   TABLESPACE db2admin.ABiPaCoH;
commit;
CREATE TABLESPACE ABiPaCo2
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE ABiPaCoH
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
commit;
$*)
drop   TABLE oa1p.tBiPaCo2;
drop   TABLE oa1p.tBiPaCoH;
commit;
CREATE TABLE oa1p.tBiPaCo2
  (
      colls      char(12) not null,
      seq        smallint not null,
      col        char(8) NOT NULL,
      qua        char(8) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      period business_time (installFr, installTo) ,
      rowBegin not null generated always as row begin ,
      rowEnd   not null generated always as row end   ,
      rowtrans not null generated always as transaction start id,
      period system_time (rowBegin, rowEnd) ,
      unique (colls, seq, qua, business_time without overlaps) ,
      rowChg timestamp not null generated always
        for each row on update as row change timestamp
  ) in db2admin.aBiPaCo2
;
CREATE UNIQUE INDEX OA1P.iBiPaCo2A1
  ON oa1p.tBiPaCo2
   (colls, seq, qua, business_time without overlaps)
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 10 PCTFREE 10
  GBPCACHE CHANGED
  NOT CLUSTER
  COMPRESS NO
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFER NO
  DEFINE YES
  PIECESIZE 2 G;
CREATE TABLE oa1p.tBiPaCoH like oa1p.tBiPaCo2 in db2Admin.abiPaCoH;
commit;
alter table oa1p.tBiPaCo2 add versioning
      use history table oa1p.tBiPaCoH;
commit;
insert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
                 values   ('defIns', 1, 'AV','', '01.01.2000');
insert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
                 values   ('defIns', 1, 'AV','', '01.02.2011');
update OA1P.tBiPaCo2 set installTo = '01.02.2011';
insert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
                 values   ('defIns', 1, 'AV','', '01.02.2011');
select * from OA1P.tBiPaCo2;
select * from OA1P.tBiPaCoH;
select * from OA1P.tBiPaCo2
       for business_time as of '30.05.1997' ;
select * from OA1P.tBiPaCo2
       for business_time as of '31.12.1999' ;
select * from OA1P.tBiPaCo2
       for business_time as of '01.01.2000' ;
select * from OA1P.tBiPaCo2
       for business_time as of '31.01.2011' ;
select * from OA1P.tBiPaCo2
       for business_time as of '01.02.2011' ;
select * from OA1P.tBiPaCo2
       for business_time as of '02.02.2011' ;
}¢--- A540769.WK.SQL(BIPA9LT1) cre=2012-07-16 mod=2012-07-19-17.01.25 A540769 ---
select *
  from            oa1p.bind_parameters
  where opthint <> ''
  ;
select *
  from            oa1p.bind_exceptions_log
--where qualifier  <> 'BUA' and qualifier not like 'OA1$%'
--where pgm = 'AU5070' or pgm like 'YAU030%'
  where pgm = 'YCDPUT2'
  order by pgm, mod_ts
  ;x;
select qualifier,  count(*)
  from            oa1p.bind_parameters p
  group by qualifier
  ;x;
select
  e.ssid,e.location,e.collid,e.qualifier,
  p.appl,p.pgm,p.collid,p.installdate
  from            oa1p.bind_parameters p
  left outer join oa1p.bind_exceptions e
  on  e.appl   = p.appl
  and e.pgm    = p.pgm
  and e.collid = p.collid
  and e.installdate  = p.installdate
  where p.pgm = 'YAU019U'
    and (e.ssid= 'DBAF' or e.ssid is NULL)
;
select
  e.ssid,e.location,e.collid,e.qualifier,
  p.appl,p.pgm,p.collid,p.installdate
  from            oa1p.bind_parameters p
  left outer join oa1p.bind_exceptions e
  on  e.appl   = p.appl
  and e.pgm    = p.pgm
  and e.collid = p.collid
  and e.installdate  = p.installdate
    and  e.ssid= 'DBAF'
  where p.pgm = 'YAU019U'
}¢--- A540769.WK.SQL(BIPA9LT2) cre=2012-07-16 mod=2012-07-16-16.48.13 A540769 ---
select *
    from oa1p.bind_parameters
 -- where pgm= 'DEFAULT'
    where path   <> ''
;x;
with n as
( select APPL
       , PGM
       , COLLID
       , INSTALLDATE
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from oa1p.bind_parameters
)
, d as
( select
       case when s.pgm <> 'DEFAULT' then 's' else ' ' end
    || case when a.appl <> 'DEFAULT' then 'a' else ' ' end
    || case when d.appl is null then ' ' else 'd' end sad
--alue(s.?           ,a.?           ,d.?           ) ?
,value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from oa1p.bind_parameters s
      left join oa1p.bind_parameters a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join oa1p.bind_parameters d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
select * from d
--  where pgm = 'DEFAULT'
    where appl not like 'A18Q%'
;
}¢--- A540769.WK.SQL(BIPA9LT3) cre=2012-07-16 mod=2012-07-16-17.29.03 A540769 ---
with n as
( select APPL
       , PGM
       , COLLID
       , INSTALLDATE
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from oa1p.bind_parameters
)
, d as
( select
       case when s.pgm <> 'DEFAULT' then 's' else ' ' end
    || case when a.appl <> 'DEFAULT' then 'a' else ' ' end
    || case when d.appl is null then ' ' else 'd' end sad
--alue(s.?           ,a.?           ,d.?           ) ?
,value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from n s
      left join n a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join oa1p.bind_parameters d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, e as
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     d.*
     from d
)
, f as
( select   case
           when comb = '                        ' then '         '
           when comb = '    ANY BIND        BIND' then 'degAny   '
           when comb = '    1   BIND        BIND' then 'default  '
           when comb = '    1   BIND        RUN ' then 'valRun   '
           when comb = '    1   BIND    HBD1BIND' then 'optHBD1  '
           when comb = '    1   BIND    OH  BIND' then 'optOH    '
           when comb = '    1   BINDALWA    BIND' then 'reoAlw   '
           when comb = '    1   RUN         BIND' then 'dynRun   '
           when comb = '    1   RUN         RUN ' then 'dynValRun'
           when comb = 'DEAL1   BIND        BIND' then 'RelDea   '
           else '???' end neu,
           e.*
     from e
)
select count(*), min(sad), max(sad)
      , comb "RelaDegrDynaReopOpthVali"
      , neu
    from f
    where appl not like 'A18Q%'
    group by comb, neu
    order by comb
;x;
select count(*), min(sad), max(sad)
      , min(comb) "RelaDegrDynaReopOpthVali"
      , max(comb) "RelaDegrDynaReopOpthVali"
               , OWNER
           --  , QUALIFIER
               , ISOLATION
               , EXPLAIN
               , CURRENTDATA
               , RELEASE
               , DBPROTOCOL
               , DEGREE
               , DYNAMICRULES
               , KEEPDYNAMIC
               , REOPT
               , OPTHINT
               , IMMEDWRITE
               , FLAG
               , PATH
               , VALIDATE
               , SQLERROR
               , SQLRULES
               , DEFER
               , ENCODING
               , ROUNDING
    from e
    where appl not like 'A18Q%'
    group by    OWNER
         --   , QUALIFIER
              , ISOLATION
              , EXPLAIN
              , CURRENTDATA
              , RELEASE
              , DBPROTOCOL
              , DEGREE
              , DYNAMICRULES
              , KEEPDYNAMIC
              , REOPT
              , OPTHINT
              , IMMEDWRITE
              , FLAG
              , PATH
              , VALIDATE
              , SQLERROR
              , SQLRULES
              , DEFER
              , ENCODING
              , ROUNDING
    order by    OWNER
        --    , QUALIFIER
              , ISOLATION
              , EXPLAIN
              , CURRENTDATA
              , RELEASE
              , DBPROTOCOL
              , DEGREE
              , DYNAMICRULES
              , KEEPDYNAMIC
              , REOPT
              , OPTHINT
              , IMMEDWRITE
              , FLAG
              , PATH
              , VALIDATE
              , SQLERROR
              , SQLRULES
              , DEFER
              , ENCODING
              , ROUNDING
}¢--- A540769.WK.SQL(BIPA9LT4) cre=2012-07-17 mod=2012-07-17-12.18.17 A540769 ---
insert into oa1p.tbiParm (type, prio, appl, pkg, rz, ssid, location,
           value, installfr)
with n as
( select APPL
       , PGM
       , COLLID
       , INSTALLDATE
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from oa1p.bind_parameters
)
, d as
( select
       case when s.pgm <> 'DEFAULT' then 's' else ' ' end
    || case when a.appl <> 'DEFAULT' then 'a' else ' ' end
    || case when d.appl is null then ' ' else 'd' end sad
--alue(s.?           ,a.?           ,d.?           ) ?
,value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from n s
      left join n a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join oa1p.bind_parameters d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, e as
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     d.*
     from d
)
, f as
( select   case
           when comb = '    ANY BIND        BIND' then 'degAny   '
           when comb = '    1   BIND        BIND' then 'default  '
           when comb = '    1   BIND        RUN ' then 'valRun   '
           when comb = '    1   BIND    HBD1BIND' then 'optHBD1  '
           when comb = '    1   BIND    OH  BIND' then 'optOH    '
           when comb = '    1   BINDALWA    BIND' then 'reoAlw   '
           when comb = '    1   RUN         BIND' then 'dynRun   '
           when comb = '    1   RUN         RUN ' then 'dynValRun'
           when comb = 'DEAL1   BIND        BIND' then 'RelDea   '
           else '???' end neu,
           e.*
     from e
)
select 'opt' type
     , case when pgm <> 'DEFAULT' then '20'
            else '10' end prio
     , left(case when appl = 'DEFAULT' then '*' else appl end, 4) appl
     , case when pgm  = 'DEFAULT' then '*' else pgm  end pkg
     , '*' rz
     , '*' ssid
     , '*' location
     , neu value
     , installDate installFr
 --  , f.*
     from f
     where appl not like 'A18Q%'
       and neu <> 'default'
;
commit;
}¢--- A540769.WK.SQL(BIPA9LT5) cre=2012-07-17 mod=2012-07-18-13.36.20 A540769 ---
with b as (
select appl a, pgm p, qualifier q, cF, cT,
       row_number() over(partition by appl, pgm
                         order by appl, pgm, qualifier) r
  from (select    appl, pgm, qualifier, min(collid) cF, max(collid) cT
         from oa1p.bind_parameters
         group by appl, pgm, qualifier ) q
)
, r (a, p, q1,  q, r, cF, cT) as
(
select a, p, q, varchar(strip(q), 500), 1, cF, cT
  from b where r = 1
union all select r.a, r.p, b.q,
            r.q || ' ' || strip(b.q), r.r+1,
            min(r.cF, b.cF), max(r.cT, b.cT)
     from r, b
     where r.a  = b.a and r.p = b.p and r.r+1 = b.r and r.r < 10000
)
, s as
(
select a, p, max(r) r, min(q1) qF, max(q1) qT,
           min(cF) cF, max(cT) cT, max(q) q
    from r
    group by a, p
 -- order by max(r) desc
)
, n as
( select
    case when q = 'BUA' then '---'
         when p in ('CH0007', 'DB2WK1', 'DBWK1', 'DSNTEP2'
                   ,'YAVFSLN') then '---'
         when q = 'OA1$' then '$'
         when q = 'OA1$ OA1$01 OA1$02' then '$+02'
         when q = 'OA1$01' then '$01'
         when cf = 'AV01' and ct = 'AV02' then 'AV-02'
         when q = 'OA1$01 OA1$02' then '$-02'
         when q = 'OA1$01 OA1$02 OA1$03' then '$-03'
         when q = 'OA1$01 OA1$02 OA1$03 OA1$04' then '$-04'
         when q = 'OA1$01 OA1$02 OA1$03 OA1$04 OA1$05' then '$-05'
         when cF >= 'AV01' and cT <= 'AV10'            then 'AV-10'
         when cF >= 'AV01' and cT <= 'AV30' and q in
          ('OA1$01 OA1$02 OA1$03 OA1$21 OA1$22'
          ,'OA1$01 OA1$02 OA1$03 OA1$28 OA1$29 OA1$30'
          ,'OA1$01 OA1$02 OA1$09 OA1$10 OA1$28 OA1$29 OA1$30'
          ,'OA1$28 OA1$29 OA1$30') then                     'AV%30'
         when cF >= 'AV01' and cT <= 'AV30' and r > 24 then 'AVALL'
         when cF >= 'PC01' and cT <= 'PC16' and r > 12 then 'PCALL'
         when cF >= 'XC00' and cT <= 'XC09' and r = 10 then 'XCALL'
         else '???'
    end neu,
    s.*
    from s
)
select  min(neu), max(neu), count(*),              min(p), max(p),
                               min(cF), max(cT),
                 r, qF, qT, q
    from n
    group by r, q, qF, qT
    order by 6,7,8
  ;x;
}¢--- A540769.WK.SQL(BIPA9LT6) cre=2012-07-17 mod=2012-07-17-16.18.58 A540769 ---
with a as
(
select case when left(pgm, 2) = 'YX' then 'YX'
            when left(pgm, 2) = 'YY' then 'YY'
            when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
            else left(pgm, 2) end q1,
        p.*
  from (
     select           appl, pgm, collid from oa1p.bind_parameters
     union all select appl, pgm, collid from oa1p.bind_exceptions
     ) p
  where appl <> 'A18Q' and appl <> 'B18Q' and pgm <> 'DEFAULT'
), b as
(
select appl, pgm, count(*) cnt,
    sum(case when q1 <> left(collid, 2) then 1 else 0 end) diff,
    count(distinct left(collid, 2)) dCol,
    q1, min(collid) colFr, max(collid) colTo
    from a
    group by q1, appl, pgm
    having  0 <> sum(case when q1 <> left(collid, 2) then 1 else 0 end)
)
, n as
(
select case
            when cnt = 2 and colFr = 'OA1P01'
                   and  colTo ='OA1P02' then 'OA1P-02'
            when dCol = 1 and colFr = 'AV01' and cnt = 2 then 'AV-02'
            when dCol = 1 and colFr = 'AV01' and cnt > 27 then 'AVALL'
            when dCol = 1 and colFr = 'XC00' and cnt = 10 then 'XCALL'
            when dCol = 1 then left(colFr, 2)
            when dCol = 2 and (('YY' = colFr and  left(colTo, 2) = q1)
                           or  ('YY' = colTo and  left(colFr, 2) = q1))
                           then 'YY+'
            when dCol = 2 and 'CT' = colFr and  left(colTo, 2) = 'CZ'
                          and q1 = 'CT' then 'CZ+'
            else '???'
       end new,
       b.*
    from b
)
select * from n order by new, 7, 8
;x;
select new, count(*)
    from n
    group by new
;x;

select *
  from            oa1p.bind_exceptions p
  where pgm = 'YXAUGOD'
;x;
;;;
select q1, left(collid, 2) c2, appl, pgm, count(*)
    from a
    where q1 <> left(collid, 2)
    group by q1, left(collid, 2) , appl, pgm
;;;
select q1, left(collid, 2) c2, appl, pgm, count(*)
    from a
    where q1 <> left(collid, 2)
    group by q1, left(collid, 2) , appl, pgm
;;;
select *
  from            oa1p.bind_exceptions p
  where length(strip(collid)) <> 2
;x;
--where qualifier  <> 'BUA' and qualifier not like 'OA1$%'
  where pgm = 'YPCEVPO'
  ;x;
select qualifier,  count(*)
  from            oa1p.bind_parameters p
  group by qualifier
  ;x;
select *
  from            oa1p.bind_exceptions      e
  where e.pgm = 'YAU019U'
  ;
select
  e.ssid,e.location,e.collid,e.qualifier,
  p.appl,p.pgm,p.collid,p.installdate
  from            oa1p.bind_parameters p
  left outer join oa1p.bind_exceptions e
  on  e.appl   = p.appl
  and e.pgm    = p.pgm
  and e.collid = p.collid
  and e.installdate  = p.installdate
  where p.pgm = 'YAU019U'
    and (e.ssid= 'DBAF' or e.ssid is NULL)
;
select
  e.ssid,e.location,e.collid,e.qualifier,
  p.appl,p.pgm,p.collid,p.installdate
  from            oa1p.bind_parameters p
  left outer join oa1p.bind_exceptions e
  on  e.appl   = p.appl
  and e.pgm    = p.pgm
  and e.collid = p.collid
  and e.installdate  = p.installdate
    and  e.ssid= 'DBAF'
  where p.pgm = 'YAU019U'
}¢--- A540769.WK.SQL(BIPA9LT7) cre=2012-07-19 mod=2012-07-19-13.38.59 A540769 ---
with a as
(
select appl a, pgm p , collid c,
     strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
    from oa1p.bind_exceptions
    where ssid <> 'DAEG'
)
, b as
(    select a, p, c,
         row_number() over(partition by a, p, c
                       order by t) l,
         t
     from a
)
, c (a, p, c, l, t, u) as
(    select a, p, c, 1, t, varchar(t, 2000) from b where l = 1
     union all select c.a, c.p, c.c, c.l+1, b.t, c.u || ' ' || b.t
          from b, c
          where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
                and c.l < 100
)
, d as
(
    select a, p, c, max(l) l, min(t) tFr, max(t) tTo, max(u) t
      from c
      group by a, p, c
)
, e as
( select
   case when a in ('A18Q', 'DBTST', 'DB2J')  then '-'
        when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
        when p = 'YCDPUT2' then '-'
        when l = 12 and tFr = 'DBBA>-OA1A'
             and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
        when l > 4  and tFr = 'DBAF>-OA1A'
             and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
        when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
        else '???'
   end n,
   d.* from d
)
select * from e ;x;
select min(n), max(n), count(*), l, tFr, tTo, t
    from e
    group by l, tFr, tTo, t
    order by tFr, tTo, l
;x;
}¢--- A540769.WK.SQL(BIPA9MIG) cre=2012-07-17 mod=2013-10-29-14.39.04 A540769 ---
delete from OA1P.tAdm42BindVal;
delete from OA1P.tAdm41BindKey ;
----- val rdl = rz db2system location ----------------------------------
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF',   '01.01.2000', 20, 'RZ1', 'DBAF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2008', 22, 'RZ8', 'DC0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2000', 40, 'RZ1', 'DBTF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2008', 42, 'RZ8', 'DD0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2008', 44, 'RZZ', 'DE0G') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2000', 60, 'RR2', 'DBOF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DBOF', '01.01.2000', 80, 'RZ2', 'DBOF') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2012', 22, 'RZ8', 'DCVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2000', 40, 'RZ1', 'DVTB') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2008', 42, 'RZ8', 'DDVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2008', 44, 'RZZ', 'DEVG') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2000', 60, 'RR2', 'DVBP') ;
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    values('rdl', 'DVBP', '01.01.2000', 80, 'RZ2', 'DVBP') ;
insert into OA1P.tAdm42BindVal
       (type, key, installBegin, seq, va1, va2)
    select type, 'DBOF>DVBP', installBegin, seq, va1, va2
      from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
insert into OA1P.tAdm42BindVal
       (type, key, installBegin, seq, va1, va2)
    select type, 'DBOF>DVBP', installBegin, seq+1, va1, va2
      from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
update OA1P.tAdm42BindVal set va3 = 'CHROI000DCVG'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 23;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVTB'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 41;
update OA1P.tAdm42BindVal set va3 = 'CHROI000DDVG'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 43;
update OA1P.tAdm42BindVal set va3 = 'CHROI00ZDEVG'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 45;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVBP'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 61;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DVBP'
    where type = 'rdl' and key = 'DBOF>DVBP' and seq = 81;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select type, 'DBOF>DBOL', seq, va1, va2, installBegin
      from OA1P.tAdm42BindVal where type = 'rdl' and key = 'DBOF';
insert into OA1P.tAdm42BindVal
          (type, key, seq, va1, va2, va3, installBegin)
    values('rdl', 'DBOF>DBOL', 81, 'RZ2', 'DBOF','CHSKA000DBOL'
                , '01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    select type, 'DVBP>DBOF', installBegin, seq, va1, va2
      from OA1P.tAdm42BindVal where type = 'rdl' and key  = 'DVBP';
insert into OA1P.tAdm42BindVal (type, key, installBegin, seq, va1, va2)
    select type, 'DVBP>DBOF', installBegin, seq+1, va1, va2
      from OA1P.tAdm42BindVal where type = 'rdl' and key  = 'DVBP';
update OA1P.tAdm42BindVal set va3 = 'CHROI000DC0G'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 23;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBTF'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 41;
update OA1P.tAdm42BindVal set va3 = 'CHROI000DD0G'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 43;
update OA1P.tAdm42BindVal set va3 = 'CHROI00ZDE0G'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 45;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBOF'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 61;
update OA1P.tAdm42BindVal set va3 = 'CHSKA000DBOF'
    where type = 'rdl' and key = 'DVBP>DBOF' and seq = 81;
----- key rdl = rz db2system location ----------------------------------
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
                values    ('rdl', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
                values    ('rdl', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
     strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
    from oa1p.bind_exceptions
    where ssid <> 'DAEG'
)
, b as
(    select a, p, c, r,
         row_number() over(partition by a, p, c
                       order by t) l,
         t
     from a
)
, c (a, p, c, r, l, t, u) as
(    select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
     union all select c.a, c.p, c.c, min(c.r, b.r),
               c.l+1, b.t, c.u || ' ' || b.t
          from b, c
          where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
                and c.l < 100
)
, d as
(
    select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
      from c
      group by a, p, c
)
, e as
( select
   case when a in ('A18Q', 'DBTST', 'DB2J')  then '-'
        when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
        when p = 'YCDPUT2' then '-'
        when l = 12 and tFr = 'DBBA>-OA1A'
             and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
        when l > 4  and tFr = 'DBAF>-OA1A'
             and (tTo = 'DBTF>CHSKA000DVTB-OA1T'
                or tTo like 'DE0G>CH%DEVG-OA1P') then 'DBOF>DVBP'
        when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
        else '???'
   end n,
   d.* from d
)
select 'rdl', '20', p, n, r   ---   , l, tFr, tTo, t
     from e where n <> '-'
;
----- key q: base qualifier ----(no val|) ------------------------------
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
                values    ('q', '00', 'OA1P', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
                values    ('q', '02', 'ELA%', 'BUA', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, dbSy, key, installBegin)
                values    ('q', '05', 'DBAF', 'OA1A', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, dbSy, key, installBegin)
                values    ('q', '05', 'DBTF', 'OA1T', '01.01.2000');

----- val cq: collection qualifier ------------------------------------
declare global temporary table session.i
 (i int not null, c2 char(2) not null) ccsid unicode;
insert into session.i
    select i, right('0000' || strip(char(i)), 2) c2
            from (select row_number() over() -1 i
                   from sysibm.sysColumns fetch first 100 rows only)s
 ;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', '$',   1,   '$',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'AV-03', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 3
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'AV-03-22', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i in (1, 2, 3, 21, 22)
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'AV-10-32', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i in(1,2,3,5,6,7,8,9,10,28,29,30,31,32)
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'AVALL', i, 'AV' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 32 and i <> 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'AV0101',   1,   'AV01',  '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'AV0101',   1,   'AV02',  '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'AV12',   1,   'AV',  '$12', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'BE-04', i, 'BE' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'BE+04', 0,   'BE',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'BE+04', i, 'BE' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 4
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'CD', 1,   'CD',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'CTCZ', 1,   'CT',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'CTCZ', 2,   'CZ',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'KE', 1,   'KE',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI-02', 2,   'NI01',  '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI-02', 3,   'NI02',  '$02', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI+02', 0,   'NI',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI+02', 1,   'NI01',  '$01', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
            values('cq', 'NI+02', 2,   'NI02',  '$02', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'PC-02', i, 'PC' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 2
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'PCALL', i, 'PC' || c2, '$' || c2, '01.01.2000'
         from session.i where i > 0 and i <= 16
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
    select 'cq', 'XCALL', i, 'XC' || c2, '$' || c2, '01.01.2000'
         from session.i where i >= 0 and i <= 9
;
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
         values('cq', 'YY+',   1,   '$',  '$', '01.01.2000');
insert into oa1p.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
         values('cq', 'YY+',  10,  'YY',  '$', '01.01.2000');
----- key cq: collection qualifier ------------------------------------
insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
    values('cq', '%', '00', '$', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
with a as --- left join old tables -------------------------------------
(
   select value(p.appl  , e.appl)   appl
       ,  value(p.pgm   , e.pgm )   pgm
       ,  value(p.collid, e.collid) col
       ,  value(p.installdate, e.installdate) installDate
       ,  value(p.qualifier, '') pQua
       ,  value(e.qualifier, '') eQua
       ,  value(e.ssid, '')      eDbSy
       ,  value(e.location, '')  eLoc
     from oa1p.bind_parameters p left join oa1p.bind_exceptions e
         on p.appl = e.appl
           and p.pgm = e.pgm
           and p.collid = e.collid
           and p.installdate = e.installdate
)
, b as --- add default Qualifier and Collection
(
  select a.*
    , case when appl like 'ELA%'    then 'BUA' else 'OA1$' end quaVar
    , case when appl like 'ELA%'    then 'BUA'
           when eDbSy = 'DBAF' then 'OA1A'
           when eDbSy = 'DBTF' then 'OA1T'
                               else 'OA1P' end quaDef
    , case when left(pgm, 2) = 'YX' then 'YX'
           when left(pgm, 2) = 'YY' then 'YY'
           when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
           else left(pgm, 2) end colDef
    ,  row_number() over(partition by appl, pgm, eDbSy, eLoc
                         order by col) r
    from a
    where appl <> 'A18Q' and appl <> 'B18Q'
        and pgm not in ('DEFAULT', 'DBWK1', 'DB2WK1'
--                     ,'YAVCPID', 'YAVX012', 'YAV0129', 'NI8340'
--                     ,'NI8660', 'NI6880')
                       )
        and col not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, d as --- add qualifier ----------------------------------------------
(
  select b.*
    , case when eQua is not null and eQua <> '' then eQua
           when pQua is not null and pQua <> '' then pQua
           else raise_error(77001, pgm || ': no qua')
      end qua
    from b
)
, e --- recursive build lists of colls/quals --------------------------
         ( appl, pgm, col, installdate, eDbSy, eLoc
         , quaVar, quaDef, colDef, r, qua, quals, colls) as
(
  select appl, pgm, col, installdate, eDbSy, eLoc
      , quaVar, quaDef, colDef, r, qua
      , cast(strip(qua) as varchar(1000))
      , cast(strip(col) as varchar(1000))
    from d where r = 1
  union all select e.appl, e.pgm, d.col, e.installdate
     , e.eDbSy, e.eLoc, d.quaVar, d.quaDef, d.colDef, e.r+1, d.qua
     , e.quals || ' ' || strip(d.qua)
     , e.colls || ' ' || strip(d.col)
  from e join d
    on e.appl = d.appl and e.pgm = d.pgm
      and e.eDbSy = d.edbSy
      and e.eLoc = d.eLoc and e.r + 1 = d.r  and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
  select appl, pgm, max(installdate) installDate, eDbSy, eLoc
     , min(col) colFr, max(col) colTo
     , min(colDef) colDef
     , min(qua) quaFr, max(qua) quaTo
     , min(quaVar) quaVar, max(quaVar) quaVarMax
     , min(quaDef) quaDef, max(quaDef) quaDefMax
     , max(r) r
     , max(quals) quals
     , max(colls) colls
    from e
    group by  appl, pgm, eDbSy, eLoc
)
, g1 as --- special quals ---------------------------------------------
(
  select f.*
    , case when quaDef <> quaDefMax
               then raise_error(77031, pgm || '@' || eDbSy
                   || ' quaDef ' || quaDef || ' ==> ' || quaDefMax)
           when quaDef in ('OA1A', 'OA1T', 'OA1P')
               then replace(quals, quaDef, 'OA1$') else quals end qualD
    , case when eDbSy = 'DBBA'
              then replace(quals, 'OA1A',  'OA1&')
           when eDbSy = 'DVTB'
               then replace(quals, 'OA1T',  'OA1&')
               else replace(replace(quals, quaDef,  'OA1&')
                                         , 'OA1$',  'OA1&') end qualV
    from f
)
, g  as --- group over all dbSys/Location -----------------------------
(
  select appl, pgm, max(installdate) installDate
      , min(colFr) colFr
      , max(colTo) colTo
      , min(colDef) colDef, max(colDef) colDefMax
      , min(colls) colls, max(colls) collMax
      , min(quaFr) quaFr
      , max(quaTo) quaTo
      , min(quaVar) quaVar, max(quaVarMax) quaVarMax
      , min(quals) quals, max(quals) qualMax
      , min(qualD) qualD, max(qualD) quaDMax
      , min(qualV) qualV, max(qualV) quaVMax
      , count(*) gR
    from g1
    group by appl, pgm
)
, h2  as --- check wether no bad change within dbSys/Location ----------
(
  select appl, pgm, installDate, colFr, colTo, colDef
      , quaVar, quaFr, quaTo, colls
      , case when colDef <> colDefMax
                then raise_error(77011, pgm || ' colDef '
                      || colDef || ' ==> ' || colDefMax)
             when colls <> collMax
                then raise_error(77013, pgm || ' colls '
                      || colls || ' ==> ' || collMax)
             when quaVar <> quaVarMax
                 then raise_error(77032, pgm
                   || ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
             when quals = qualMax then quals
             when qualD = quaDMax then qualD
             when qualV = quaVMax then qualV
             else   raise_error(77022, pgm
                  || ' quals ' || quals || '  ==> ' || qualMax
                  || ' qualD ' || qualD || '  ==> ' || quaDMax
                  || ' qualV ' || qualV || '  ==> ' || quavMax)
        end quals
    from g
)
, h as --- colls und quals komprimieren --------------------------------
(
  select h2.*
     , replace(colls, ' ' || left(colls, 2), '=') collR
     , replace(quals, ' ' || left(quals, 4), '=') qualR
    from h2
)
, i as --- den neuen cq key bestimmen ----------------------------------
(
  select h.*
  , cast(case                                               --- default
      when colls = colDef and quals = quaVar then '-'
                    --- spezial: colls und quals nicht in sync --------
                                                            --- au
      when quals = 'OA1&' and colls = 'AU' then 'AU&'
                                                            --- av
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
           || '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
        then 'AV/Y/X012'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/0129'
      when collR = 'AV01=02' and qualR = 'OA1$01=01'
          then 'AV0101'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/CPID'
      when collR = 'AV' and quals = 'OA1P12' then 'AV12'
                                                            --- be
      when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
          then 'BE+04'
      when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ'  --- ctcz
      when colls = coldef ||' YY' and qualR = 'OA1$='       --- + yy
              then 'YY+'
      when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02'  --- oa1p
          then 'OA1P-02'
                                                            --- allgemei
      when quals = 'OA1&' and colls = colDef then 'DVTB&'
      when quals = 'OA1A' and colls = colDef then 'OA1A'
                    --- error if colls und quals nicht in sync--------
      when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
          then raise_error(77021, pgm || ' colls ' || collR
                 || ' mismatches quals ' || qualR)
                                                        --- av
      when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
            ||  '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
             and left(collR, 14) in ('AV01=02=03=05='
                    , 'AV01=02=05=06=', 'AV05=06=07=08=' )
          then 'AVALL'
      when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
      when collR in ('AV01=02=03=05=06=07=08=09=10'
                    ,'AV01=02=03=28=29=30=31=32'
                    ,'AV01=02=09=10=28=29=30=31=32'
                    ,'AV28=29=30=31=32') then 'AV-10-32'
      when collR =   'AV01=02=03=21=22' then 'AV-03-22'
      when collR = 'BE01=02=03=04' then 'BE-04'         --- be
      when collR = 'NI01=02'            then 'NI-02'    --- ni
      when collR = 'NI=01=02'           then 'NI+02'
      when collR in ('PC01=02', 'PC01') then 'PC-02'    --- pc
      when collR in
           ('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
           ,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
                                       then 'PCALL'
                                                        --- xc
      when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
                                                        --- allgemei
      when colls in ('BE', 'CD', 'KE') then colls
      else '???'
    end as char(10)) cq
    from h
)
select 'cq', pgm, '20', cq, installDate
    from i
    where cq <> '-'
;
update OA1P.tAdm41BindKey set type = 'q'
                            , dbSy = 'DVTB'
                            , key = 'OA1T'
    where type = 'cq' and key = 'AU&'
;
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',  110,  'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   210,  'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   220,  'DEGREE', '1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   310,  'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   320,  'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   910,  'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   920,  'FLAG', 'I','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   930,  'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',  9999,    'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'degAny',    220,  'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'valRun',   320,  'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',    330,  'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',  -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',    330,  'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw',    340,  'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun',    310,  'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',   320,  'VALIDATE', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'relDea',    230,  'RELEASE', 'DEALLOCATE','01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
           key, installBegin)
    values('ov', '00', '%', '%', '%', '%', 'default',
                           '01.01.2000')
;
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
           key, installBegin)
with n as
( select APPL
       , PGM
       , COLLID
       , INSTALLDATE
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from oa1p.bind_parameters
)
, d as
( select
       case when s.pgm <> 'DEFAULT' then 's' else ' ' end
    || case when a.appl <> 'DEFAULT' then 'a' else ' ' end
    || case when d.appl is null then ' ' else 'd' end sad
--alue(s.$           ,a.$           ,d.$           ) $
,value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from n s
      left join n a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join oa1p.bind_parameters d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, e as
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     d.*
     from d
)
, f as
( select   case
           when comb = '    ANY BIND        BIND' then 'degAny   '
           when comb = '    1   BIND        BIND' then 'default  '
           when comb = '    1   BIND        RUN ' then 'valRun   '
           when comb = '    1   BIND    HBD1BIND' then 'optHBD1  '
           when comb = '    1   BIND    OH  BIND' then 'optOH    '
           when comb = '    1   BINDALWA    BIND' then 'reoAlw   '
           when comb = '    1   RUN         BIND' then 'dynRun   '
           when comb = '    1   RUN         RUN ' then 'dynValRun'
           when comb = 'DEAL1   BIND        BIND' then 'relDea   '
           else '$$$' end neu,
           e.*
     from e
)
select 'ov' type
     , case when pgm <> 'DEFAULT' then '20'
            else '10' end prio
     , left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
           then '%' else appl end, 4) appl
     , case when pgm  = 'DEFAULT' then '%' else pgm  end pgm
     , '%' rz
     , '%' dbSy
--   , '%' location
     , neu key
     , installDate installBegin
 --  , f.*
     from f
     where appl not like 'A18Q%'
       and neu <> 'default'
;x;
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
                values    ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
                values    ('path', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
     strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
    from oa1p.bind_exceptions
    where ssid <> 'DAEG'
)
, b as
(    select a, p, c, r,
         row_number() over(partition by a, p, c
                       order by t) l,
         t
     from a
)
, c (a, p, c, r, l, t, u) as
(    select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
     union all select c.a, c.p, c.c, min(c.r, b.r),
               c.l+1, b.t, c.u || ' ' || b.t
          from b, c
          where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
                and c.l < 100
)
, d as
(
    select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
      from c
      group by a, p, c
)
, e as
( select
   case when a in ('A18Q', 'DBTST', 'DB2J')  then '-'
        when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
        when p = 'YCDPUT2' then '-'
        when l = 12 and tFr = 'DBBA>-OA1A'
             and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
        when l > 4  and tFr = 'DBAF>-OA1A'
             and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
        when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
        else '???'
   end n,
   d.* from d
)
select 'path', '20', p, n, r
     from e where n <> '-'
;
delete from OA1P.tBiPaPgm;
commit;
}¢--- A540769.WK.SQL(BIPA9MI2) cre=2013-10-24 mod=2013-10-30-17.15.46 A540769 ---
-- insert into OA1P.tAdm41BindKey (type, pgm, prio, key, installBegin)
with p as --- mark outdated entries in bind_parameters ----------------
(
  select p.*
         , row_number() over (partition by appl, pgm, collid
                              order by installdate desc) iNr
    from oa1p.bind_parameters p
    where appl <> 'A18Q' and appl <> 'B18Q'
        and pgm not in ('DEFAULT', 'DBWK1', 'DB2WK1', 'DB2JAA'
                       )
        and collid not in ('DI_DRDA', 'EK_DRDA', 'RM_DRDA', 'TR_DRDA')
)
, a as --- left join old tables ----------------------------------------
(
   select value(p.appl  , e.appl)   appl
       ,  value(p.pgm   , e.pgm )   pgm
       ,  value(p.collid, e.collid) col
       ,  value(p.installdate, e.installdate) installDate
       ,  value(p.qualifier, '') pQua
       ,  value(e.qualifier, '') eQua
       ,  value(e.ssid, '')      eDbSy
       ,  value(e.location, '')  eLoc
     from p left join oa1p.bind_exceptions e
         on p.appl = e.appl
           and p.pgm = e.pgm
           and p.collid = e.collid
           and p.installdate = e.installdate
     where p.iNr = 1
)
, b as --- add default Qualifier and Collection
(
  select a.*
    , case when appl like 'ELA%'    then 'BUA' else 'OA1$' end quaVar
    , case when appl like 'ELA%'    then 'BUA'
           when eDbSy = 'DBAF' then 'OA1A'
           when eDbSy = 'DBTF' then 'OA1T'
                               else 'OA1P' end quaDef
    , case when left(pgm, 2) = 'YX' then 'YX'
           when left(pgm, 2) = 'YY' then 'YY'
           when left(pgm, 1) = 'Y'  then substr(pgm, 2, 2)
           else left(pgm, 2) end colDef
    ,  row_number() over(partition by appl, pgm, eDbSy, eLoc
                         order by col) r
    from a
)
, d as --- add qualifier ----------------------------------------------
(
  select b.*
    , case when eQua is not null and eQua <> '' then eQua
           when pQua is not null and pQua <> '' then pQua
           else raise_error(77001, pgm || ': no qua')
      end qua
    from b
)
, e --- recursive build lists of colls/quals --------------------------
         ( appl, pgm, col, installdate, eDbSy, eLoc
         , quaVar, quaDef, colDef, r, qua, quals, colls) as
(
  select appl, pgm, col, installdate, eDbSy, eLoc
      , quaVar, quaDef, colDef, r, qua
      , cast(strip(qua) as varchar(1000))
      , cast(strip(col) as varchar(1000))
    from d where r = 1
  union all select e.appl, e.pgm, d.col, e.installdate
     , e.eDbSy, e.eLoc, d.quaVar, d.quaDef, d.colDef, e.r+1, d.qua
     , e.quals || ' ' || strip(d.qua)
     , e.colls || ' ' || strip(d.col)
  from e join d
    on e.appl = d.appl and e.pgm = d.pgm
      and e.eDbSy = d.edbSy
      and e.eLoc = d.eLoc and e.r + 1 = d.r  and e.r < 999
)
, f as --- select maximal lists ----------------------------------------
(
  select appl, pgm, max(installdate) installDate, eDbSy, eLoc
     , min(col) colFr, max(col) colTo
     , min(colDef) colDef
     , min(qua) quaFr, max(qua) quaTo
     , min(quaVar) quaVar, max(quaVar) quaVarMax
     , min(quaDef) quaDef, max(quaDef) quaDefMax
     , max(r) r
     , max(quals) quals
     , max(colls) colls
    from e
    group by  appl, pgm, eDbSy, eLoc
)
, g1 as --- special quals ---------------------------------------------
(
  select f.*
    , case when quaDef <> quaDefMax
               then raise_error(77031, pgm || '@' || eDbSy
                   || ' quaDef ' || quaDef || ' ==> ' || quaDefMax)
           when quaDef in ('OA1A', 'OA1T', 'OA1P')
               then replace(quals, quaDef, 'OA1$') else quals end qualD
    , case when eDbSy = 'DBBA'
              then replace(quals, 'OA1A',  'OA1&')
           when eDbSy = 'DVTB'
               then replace(quals, 'OA1T',  'OA1&')
               else replace(replace(quals, quaDef,  'OA1&')
                                         , 'OA1$',  'OA1&') end qualV
    from f
)
, g  as --- group over all dbSys/Location -----------------------------
(
  select appl, pgm, max(installdate) installDate
      , min(colFr) colFr
      , max(colTo) colTo
      , min(colDef) colDef, max(colDef) colDefMax
      , min(colls) colls, max(colls) collMax
      , min(quaFr) quaFr
      , max(quaTo) quaTo
      , min(quaVar) quaVar, max(quaVarMax) quaVarMax
      , min(quals) quals, max(quals) qualMax
      , min(qualD) qualD, max(qualD) quaDMax
      , min(qualV) qualV, max(qualV) quaVMax
      , count(*) gR
    from g1
    group by appl, pgm
)
, h2  as --- check wether no bad change within dbSys/Location ----------
(
  select appl, pgm, installDate, colFr, colTo, colDef
      , quaVar, quaFr, quaTo, colls
      , case when colDef <> colDefMax
                then raise_error(77011, pgm || ' colDef '
                      || colDef || ' ==> ' || colDefMax)
             when colls <> collMax
                then raise_error(77013, pgm || ' colls '
                      || colls || ' ==> ' || collMax)
             when quaVar <> quaVarMax
                 then raise_error(77032, pgm
                   || ' quaVar ' || quaVar || ' ==> ' || quaVarMax)
             when quals = qualMax then quals
             when qualD = quaDMax then qualD
             when qualV = quaVMax then qualV
             else   raise_error(77022, pgm
                  || ' quals ' || quals || '  ==> ' || qualMax
                  || ' qualD ' || qualD || '  ==> ' || quaDMax
                  || ' qualV ' || qualV || '  ==> ' || quavMax)
        end quals
    from g
)
, h as --- colls und quals komprimieren --------------------------------
(
  select h2.*
     , replace(colls, ' ' || left(colls, 2), '=') collR
     , replace(quals, ' ' || left(quals, 4), '=') qualR
    from h2
)
, i as --- den neuen cq key bestimmen ----------------------------------
(
  select h.*
  , cast(case                                               --- default
      when colls = colDef and quals = quaVar then '-'
                    --- spezial: colls und quals nicht in sync --------
                                                            --- au
      when quals = 'OA1&' and colls = 'AU' then 'AU&'
                                                            --- av
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=09=09=09=09=09=10=09=09=09=09=09'
           || '=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09=09'
        then 'AV/Y/X012'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$01=02=03=05=06=07=08=09=10=11=12=12=12=12'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/0129'
      when collR = 'AV01=02' and qualR = 'OA1$01=01'
          then 'AV0101'
      when collR = 'AV01=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
          and qualR='OA1$02=02=03=05=06=07=08=09=10=11=12=13=14=15'
           || '=16=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
        then 'AV/Y/CPID'
      when collR = 'AV' and quals = 'OA1P12' then 'AV12'
                                                            --- be
      when collR = 'BE=01=02=03=04' and qualR = 'OA1$01=01=02=03=04'
          then 'BE+04'
      when colls = 'CT CZ' and qualR = 'OA1$=' then 'CTCZ'  --- ctcz
      when colls = coldef ||' YY' and qualR = 'OA1$='       --- + yy
              then 'YY+'
      when colls = 'OA1P01 OA1P02' and qualR = 'OA1$01=02'  --- oa1p
          then 'OA1P-02'
                                                            --- allgemei
      when quals = 'OA1&' and colls = colDef then 'DVTB&'
      when quals = 'OA1A' and colls = colDef then 'OA1A'
                    --- error if colls und quals nicht in sync--------
      when 'OA1$' || substr(collR, 3) <> qualR --en '???quals/coll'
          then raise_error(77021, pgm || ' colls ' || collR
                 || ' mismatches quals ' || qualR)
                                                        --- av
      when right(collR, 83) = '05=06=07=08=09=10=11=12=13=14=15=16'
            ||  '=17=18=19=20=21=22=23=24=25=26=27=28=29=30=31=32'
             and left(collR, 14) in ('AV01=02=03=05='
                    , 'AV01=02=05=06=', 'AV05=06=07=08=' )
          then 'AVALL'
      when collR in ('AV01=02=03', 'AV01=02','AV03') then 'AV-03'
      when collR in ('AV01=02=03=05=06=07=08=09=10'
                    ,'AV01=02=03=28=29=30=31=32'
                    ,'AV01=02=09=10=28=29=30=31=32'
                    ,'AV28=29=30=31=32') then 'AV-10-32'
      when collR =   'AV01=02=03=21=22' then 'AV-03-22'
      when collR = 'BE01=02=03=04' then 'BE-04'         --- be
      when collR = 'NI01=02'            then 'NI-02'    --- ni
      when collR = 'NI=01=02'           then 'NI+02'
      when collR in ('PC01=02', 'PC01') then 'PC-02'    --- pc
      when collR in
           ('PC01=02=03=04=05=06=07=08=09=10=11=12=13=14=15=16'
           ,'PC01=02=03=04=05=06=07=08=09=10=11=13=14=15=16')
                                       then 'PCALL'
                                                        --- xc
      when collR = 'XC00=01=02=03=04=05=06=07=08=09' then 'XCALL'
                                                        --- allgemei
      when colls in ('BE', 'CD', 'KE') then colls
      else '???'
    end as char(10)) cq
    from h
)
select count(*), cq, collr, qualr
    from i --  where cq like 'OA1P-0%' ;
    group by cq, collr, qualr
    order by cq, collr, qualr
;x;
select 'cq', pgm, '20', cq, installDate
    from i
    where cq <> '-'
    order by cq
;x;
----- val ov: bindOptions values --------------------------------------
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',  110,  'OWNER', 'CMNBATCH','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   210,  'ISOLATION', 'CS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   220,  'DEGREE', '1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   310,  'DYNAMICRULES', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   320,  'VALIDATE', 'BIND','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   910,  'EXPLAIN', 'YES','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   920,  'FLAG', 'I','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',   930,  'SQLERROR', 'NOPACKAGE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'default',  9999,    'ACTION', 'REPLACE','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'degAny', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'degAny',    220,  'DEGREE', 'ANY','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'valRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'valRun',    320,  'VALIDATE', 'RUN' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',-9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optHBD1',    330,  'OPTHINT', 'HBD1','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',  -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'optOH',    330,  'OPTHINT', 'OH' ,'01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'reoAlw',    340,  'REOPT', 'ALWAYS','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynRun',    310,  'DYNAMICRULES', 'RUN','01.01.2000');
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',-9999,'-->parent','dynRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'dynValRun',-9999,'-->parent','valRun', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'relDea', -9999, '-->parent', 'default', '01.01.2000') ;
insert into OA1P.tAdm42BindVal (type, key, seq, va1, va2, installBegin)
 values('ov', 'relDea',    230,  'RELEASE', 'DEALLOCATE','01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
           key, installBegin)
    values('ov', '00', '%', '%', '%', '%', '%', 'default',
                           '01.01.2000')
;
insert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
           key, installBegin)
with n as
( select APPL
       , PGM
       , COLLID
       , INSTALLDATE
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from oa1p.bind_parameters
)
, d as
( select
       case when s.pgm <> 'DEFAULT' then 's' else ' ' end
    || case when a.appl <> 'DEFAULT' then 'a' else ' ' end
    || case when d.appl is null then ' ' else 'd' end sad
--alue(s.$           ,a.$           ,d.$           ) $
,value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from n s
      left join n a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join oa1p.bind_parameters d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, e as
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     d.*
     from d
)
, f as
( select   case
           when comb = '    ANY BIND        BIND' then 'degAny   '
           when comb = '    1   BIND        BIND' then 'default  '
           when comb = '    1   BIND        RUN ' then 'valRun   '
           when comb = '    1   BIND    HBD1BIND' then 'optHBD1  '
           when comb = '    1   BIND    OH  BIND' then 'optOH    '
           when comb = '    1   BINDALWA    BIND' then 'reoAlw   '
           when comb = '    1   RUN         BIND' then 'dynRun   '
           when comb = '    1   RUN         RUN ' then 'dynValRun'
           when comb = 'DEAL1   BIND        BIND' then 'relDea   '
           else '$$$' end neu,
           e.*
     from e
)
select 'opt' type
     , case when pgm <> 'DEFAULT' then '20'
            else '10' end prio
     , left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
           then '%' else appl end, 4) appl
     , case when pgm  = 'DEFAULT' then '%' else pgm  end pgm
     , '%' rz
     , '%' dbSy
     , '%' location
     , neu key
     , installDate installBegin
 --  , f.*
     from f
     where appl not like 'A18Q%'
       and neu <> 'default'
;
insert into OA1P.tAdm41BindKey (type, prio, key, installBegin)
                values    ('path', '00', 'DBOF', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, appl, key, installBegin)
                values    ('path', '00', 'ELA%', 'DVBP', '01.01.2000');
insert into OA1P.tAdm41BindKey (type, prio, pgm, key, installBegin)
with a as
(
select appl a, pgm p , collid c, date(createdTS) r,
     strip(ssid) || '>' || strip(location) || '-' || strip(qualifier) t
    from oa1p.bind_exceptions
    where ssid <> 'DAEG'
)
, b as
(    select a, p, c, r,
         row_number() over(partition by a, p, c
                       order by t) l,
         t
     from a
)
, c (a, p, c, r, l, t, u) as
(    select a, p, c, r, 1, t, varchar(t, 2000) from b where l = 1
     union all select c.a, c.p, c.c, min(c.r, b.r),
               c.l+1, b.t, c.u || ' ' || b.t
          from b, c
          where b.a = c.a and b.p = c.p and b.c = c.c and b.l = c.l+1
                and c.l < 100
)
, d as
(
    select a, p, c, min(r) r, max(l) l, min(t) tFr, max(t) tTo, max(u) t
      from c
      group by a, p, c
)
, e as
( select
   case when a in ('A18Q', 'DBTST', 'DB2J')  then '-'
        when p = 'AU5070' or p like 'YAU03%' then 'DBOF>DVBP'
        when p = 'YCDPUT2' then '-'
        when l = 12 and tFr = 'DBBA>-OA1A'
             and left(tTo, 17) = 'DVTB>CHSKA000DBTF' then 'DVBP>DBOF'
        when l > 4  and tFr = 'DBAF>-OA1A'
             and tTo = 'DBTF>CHSKA000DVTB-OA1T' then 'DBOF>DVBP'
        when t = 'DBOF>-OA1P DBOF>CHSKA000DBOL-OA1P' then 'DBOF>DBOL'
        else '???'
   end n,
   d.* from d
)
select 'path', '20', p, n, r
     from e where n <> '-'
;
delete from OA1P.tBiPaPgm;
commit;
select appl, pgm, collid, ssid, min(qualifier), max(qualifier)
       , count(*), sum(case when location = '' then 1 else 0 end) loc
    from oa1p.bind_exceptions e
    group by appl, pgm, collid, ssid
    having min(qualifier) <> max(qualifier)
;x;
}¢--- A540769.WK.SQL(BIPA9MI4) cre=2013-11-01 mod=2013-11-01-15.09.24 A540769 ---
--sert into OA1P.tAdm41BindKey (type, prio, appl, pgm, rz, dbSy,
--         key, installBegin)
with n as
( select APPL
       , PGM
       , COLLID
       , INSTALLDATE
,case when OWNER        <> '' then owner        else null end owner
,case when QUALIFIER    <> '' then QUALIFIER    else null end QUALIFIER
,case when ISOLATION    <> '' then ISOLATION    else null end ISOLATION
,case when EXPLAIN      <> '' then EXPLAIN      else null end EXPLAIN
,case when CURRENTDATA <> '' then CURRENTDATA else null end CURRENTDATA
,case when RELEASE      <> '' then RELEASE      else null end RELEASE
,case when DBPROTOCOL  <> '' then DBPROTOCOL  else null end DBPROTOCOL
,case when DEGREE       <> '' then DEGREE       else null end DEGREE
,case when DYNAMICRULES <> '' then DYNAMICRULES else null end
              DYNAMICRULES
,case when KEEPDYNAMIC <> '' then KEEPDYNAMIC else null end KEEPDYNAMIC
,case when REOPT        <> '' then REOPT        else null end REOPT
,case when OPTHINT      <> '' then OPTHINT      else null end OPTHINT
,case when IMMEDWRITE   <> '' then IMMEDWRITE   else null end IMMEDWRITE
,case when FLAG         <> '' then FLAG         else null end FLAG
,case when PATH         <> '' then PATH         else null end PATH
,case when VALIDATE     <> '' then VALIDATE     else null end VALIDATE
,case when SQLERROR     <> '' then SQLERROR     else null end SQLERROR
,case when SQLRULES     <> '' then SQLRULES     else null end SQLRULES
,case when DEFER        <> '' then DEFER        else null end DEFER
,case when ENCODING     <> '' then ENCODING     else null end ENCODING
,case when ROUNDING     <> '' then ROUNDING     else null end ROUNDING
    from oa1p.bind_parameters
)
, d as
( select
       case when s.pgm <> 'DEFAULT' then 's' else ' ' end
    || case when a.appl <> 'DEFAULT' then 'a' else ' ' end
    || case when d.appl is null then ' ' else 'd' end sad
--alue(s.$           ,a.$           ,d.$           ) $
,value(s.APPL        ,a.APPL        ,d.APPL        ) APPL
,value(s.PGM         ,a.PGM         ,d.PGM         ) PGM
,value(s.COLLID      ,a.COLLID      ,d.COLLID      ) COLLID
,value(s.INSTALLDATE ,a.INSTALLDATE ,d.INSTALLDATE ) INSTALLDATE
,value(s.OWNER       ,a.OWNER       ,d.OWNER       ) OWNER
,value(s.QUALIFIER   ,a.QUALIFIER   ,d.QUALIFIER   ) QUALIFIER
,value(s.ISOLATION   ,a.ISOLATION   ,d.ISOLATION   ) ISOLATION
,value(s.EXPLAIN     ,a.EXPLAIN     ,d.EXPLAIN     ) EXPLAIN
,value(s.CURRENTDATA ,a.CURRENTDATA ,d.CURRENTDATA ) CURRENTDATA
,value(s.RELEASE     ,a.RELEASE     ,d.RELEASE     ) RELEASE
,value(s.DBPROTOCOL  ,a.DBPROTOCOL  ,d.DBPROTOCOL  ) DBPROTOCOL
,value(s.DEGREE      ,a.DEGREE      ,d.DEGREE      ) DEGREE
,value(s.DYNAMICRULES,a.DYNAMICRULES,d.DYNAMICRULES) DYNAMICRULES
,value(s.KEEPDYNAMIC ,a.KEEPDYNAMIC ,d.KEEPDYNAMIC ) KEEPDYNAMIC
,value(s.REOPT       ,a.REOPT       ,d.REOPT       ) REOPT
,value(s.OPTHINT     ,a.OPTHINT     ,d.OPTHINT     ) OPTHINT
,value(s.IMMEDWRITE  ,a.IMMEDWRITE  ,d.IMMEDWRITE  ) IMMEDWRITE
,value(s.FLAG        ,a.FLAG        ,d.FLAG        ) FLAG
,value(s.PATH        ,a.PATH        ,d.PATH        ) PATH
,value(s.VALIDATE    ,a.VALIDATE    ,d.VALIDATE    ) VALIDATE
,value(s.SQLERROR    ,a.SQLERROR    ,d.SQLERROR    ) SQLERROR
,value(s.SQLRULES    ,a.SQLRULES    ,d.SQLRULES    ) SQLRULES
,value(s.DEFER       ,a.DEFER       ,d.DEFER       ) DEFER
,value(s.ENCODING    ,a.ENCODING    ,d.ENCODING    ) ENCODING
,value(s.ROUNDING    ,a.ROUNDING    ,d.ROUNDING    ) ROUNDING
    from n s
      left join n a
        on a.appl = s.appl and a.pgm = 'DEFAULT'
        and a.collid = 'DEFAULT'
      left join oa1p.bind_parameters d
        on d.appl = 'DEFAULT' and d.pgm = 'DEFAULT'
        and d.collid = 'DEFAULT'
)
, e as
(
  select
     left(release, 4) || left(degree, 4) || left(dynamicRules, 4)
       || left(reopt, 4) || left(opthint, 4) || left(validate, 4) comb,
     d.*
     from d
)
, f as
( select   case
           when comb = '    ANY BIND        BIND' then 'degAny   '
           when comb = '    1   BIND        BIND' then 'default  '
           when comb = '    1   BIND        RUN ' then 'valRun   '
           when comb = '    1   BIND    HBD1BIND' then 'optHBD1  '
           when comb = '    1   BIND    OH  BIND' then 'optOH    '
           when comb = '    1   BINDALWA    BIND' then 'reoAlw   '
           when comb = '    1   RUN         BIND' then 'dynRun   '
           when comb = '    1   RUN         RUN ' then 'dynValRun'
           when comb = 'DEAL1   BIND        BIND' then 'relDea   '
           else '$$$' end neu,
           e.*
     from e
)
select 'ov' type
     , case when pgm <> 'DEFAULT' then '20'
            else '10' end prio
     , left(case when appl = 'DEFAULT' or pgm <> 'DEFAULT'
           then '%' else appl end, 4) appl
     , case when pgm  = 'DEFAULT' then '%' else pgm  end pgm
     , neu key
     , installDate installBegin
 --  , f.*
     from f
     where pgm like 'DEF%' or appl like 'DEF%'
 --    and neu <> 'default'
}¢--- A540769.WK.SQL(BIPLADDL) cre=2013-05-30 mod=2013-05-30-16.15.01 A540769 ---
set current sqlid = 'S100447';
drop   TABLESPACE db2admin.ABiPlCo;
drop   TABLESPACE db2admin.ABiPlCoH;
commit;
CREATE TABLESPACE ABiPlCo
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
CREATE TABLESPACE ABiPlCoH
  IN db2admin
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      UNICODE
  DEFINE YES
  MAXROWS 255
;
commit;
drop   TABLE oa1p.tBiPlanCol;
drop   TABLE oa1p.tBiPlanColHist;
commit;
CREATE TABLE oa1p.tBiPlanCol
  (
      col        char(8) NOT NULL,
      installFr  date NOT NULL WITH DEFAULT,
      installTo  date NOT NULL WITH DEFAULT '31.12.9999',
      rowBegin not null generated always as row begin ,
      rowEnd   not null generated always as row end   ,
      rowtrans not null generated always as transaction start id,
      period business_time (installFr, installTo) ,
      period system_time (rowBegin, rowEnd) ,
      unique (col, business_time without overlaps)
  ) in db2admin.aBiPlCo
;
CREATE UNIQUE INDEX OA1P.iBiPlanCol1
  ON oa1p.tBiPlanCol
   (col, business_time without overlaps)
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  NOT CLUSTER
  COMPRESS NO
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFER NO
  DEFINE YES;
CREATE TABLE oa1p.tbiPlanColHist like oa1p.tbiPlanCol
     in db2Admin.abiPlCoH;
commit;
alter table oa1p.tBiPlanCol add versioning
      use history table oa1p.tbiPlanColHist;
commit;
xnsert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
                 values   ('defIns', 1, 'AV','', '01.01.2000');
xnsert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
                 values   ('defIns', 1, 'AV','', '01.02.2011');
update OA1P.tBiPaCo2 set installTo = '01.02.2011';
insert into OA1P.tBiPaCo2 (colls, seq, col, qua, installFr)
                 values   ('defIns', 1, 'AV','', '01.02.2011');
select * from OA1P.tBiPaCo2;
select * from OA1P.tBiPaCoH;
select * from OA1P.tBiPaCo2
       for business_time as of '30.05.1997' ;
select * from OA1P.tBiPaCo2
       for business_time as of '31.12.1999' ;
select * from OA1P.tBiPaCo2
       for business_time as of '01.01.2000' ;
select * from OA1P.tBiPaCo2
       for business_time as of '31.01.2011' ;
select * from OA1P.tBiPaCo2
       for business_time as of '01.02.2011' ;
select * from OA1P.tBiPaCo2
       for business_time as of '02.02.2011' ;
}¢--- A540769.WK.SQL(BIPLALST) cre=2013-05-31 mod=2013-05-31-07.52.14 A540769 ---
---------+---------+---------+---------+---------+---------+---------+---------+
with j as
(
select strip(value(p.collid, l.collid, db.db)) collid,
    p.cnt pkgCnt, l.cnt lstCnt, dbCnt, dbMin, dbMax
    from (select collid, count(*) cnt, left(collid, 2) c2
              from sysibm.sysPackage group by collid) p
         full join (select collid, count(*) cnt
              from sysibm.sysPackList group by collid) l
        on p.collid = l.collid
         full join (select left(name, 2) db, count(*) dbCnt,
                           min(name) dbMin, max(name) dbMax
                        from sysibm.sysDatabase
                        group by left(name, 2) ) db
        on p.c2 = db.db
)
select substr(collid, 1, 30) collid, pkgCnt, lstCnt
                  , dbCnt, dbMin, dbMax from j
    where     pkgCnt is not null
         and lstCnt is not null
         and -- not
        (   (dbCnt is not null or collid in ('YX', 'YY'))
        and collid not like 'A1%'
        and collid not like 'A2%'
        and collid not like 'AUSAM%'
        and collid not like '%?_%'  escape '?'
        and collid not like 'CBR%'
        and collid not like 'COLXX%'
        and collid not like 'CSQ%'
        and collid not like '%DB2%'
        and collid not like 'DSN%'
        and collid not like 'FRN%'
        and collid not like 'FAR%'
        and collid not like 'HP%'
        and collid not like 'M2%'
        and collid not like 'PHP%'
        and collid not like 'SAM%'
        and collid not like 'STR%'
        and collid not in('#D', 'ANLCHECK', 'BMIINSTL', 'BPO110'
            , 'CFDB2COL', 'HBDTEST', 'JOSKA', 'LSNR', 'NTA1P'
            , 'PTTAPLAN', 'PUPG53', 'Q', 'XP','XQ', 'YB' ,'YC', 'YD'
            , 'YNK', 'YP', 'YW', 'ZK', 'ZP', 'ZS'
            )
        )
     -- and collid > 'Q'
    order by 1
    with ur
---------+---------+---------+---------+---------+---------+---------+---------+
COLLID                               PKGCNT       LSTCNT        DBCNT  DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
AC                                        2            4            1  AC01A1P
AM                                       33            4            1  AM01A1P
AN                                       11           33            1  AN01A1P
AT                                       92           92            1  AT01A1P
AU                                      519         7809            4  AU01A1P
AV                                     1771         1555           20  AV01A1P
AV01                                    493          558           20  AV01A1P
AV02                                    493          555           20  AV01A1P
AV03                                    455          108           20  AV01A1P
AV05                                    308          108           20  AV01A1P
COLLID                               PKGCNT       LSTCNT        DBCNT  DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
AV06                                    308          108           20  AV01A1P
AV07                                    311          108           20  AV01A1P
AV08                                    311          108           20  AV01A1P
AV09                                    325          108           20  AV01A1P
AV10                                    325          107           20  AV01A1P
AV11                                    307          107           20  AV01A1P
AV12                                    307          107           20  AV01A1P
AV13                                    306           96           20  AV01A1P
AV14                                    306           96           20  AV01A1P
AV15                                    306           96           20  AV01A1P
AV16                                    306           96           20  AV01A1P
AV17                                    306           93           20  AV01A1P
AV18                                    306           93           20  AV01A1P
AV19                                    306           93           20  AV01A1P
AV20                                    306           93           20  AV01A1P
AV21                                    308           93           20  AV01A1P
AV22                                    308           93           20  AV01A1P
AV23                                    298           79           20  AV01A1P
AV24                                    298           79           20  AV01A1P
AV25                                    295           83           20  AV01A1P
AV26                                    295           83           20  AV01A1P
AV27                                    292           88           20  AV01A1P
AV28                                    318           88           20  AV01A1P
AV29                                    115           81           20  AV01A1P
AV30                                    115           81           20  AV01A1P
AV31                                     52           70           20  AV01A1P
AV32                                     52           70           20  AV01A1P
AX                                       39          236            1  AX01A1P
BE                                      384         2025            2  BE01A1P
BE01                                    240         1724            2  BE01A1P
BE02                                    240         1731            2  BE01A1P
BE03                                    240         1698            2  BE01A1P
BE04                                    240         1713            2  BE01A1P
BF                                       88          661            1  BF03A1P
BG                                      514          141            1  BG01A1P
BJ                                        7            2           10  BJ01A1P
BP                                      357         4948            2  BP01A1P
BQ                                       38           12            1  BQ01A1P
BS                                       35          118            1  BS01A1P
BU                                       35         3265            1  BU01A1P
BV                                       66          361            1  BV01A1P
BX                                      814          488            1  BX01A1P
CD                                     3099         8816            3  CD01A1P
CE                                     3424          721            4  CE01A1P
CJ                                       22          258            1  CJ01A1P
CK                                     1094         1442            1  CK01A1P
CT                                      379          645            2  CT01G1P
CW                                      475          404            4  CW01A1P
CY                                      231           23            1  CY02A1P
CZ                                     4249         1828           23  CZ01A1P
DA                                       14          840            8  DA351153
DB                                       49           18           19  DB01A1P
DE                                     1555         1289            6  DE01A1P
DG                                     2243         1431            2  DG01A1P
DI                                      528         4216            6  DI01A1P
DM                                      402         1259            1  DM40A1P
DO                                       26            5            2  DOTGDB2
DP                                      988          469            7  DP02A1P
COLLID                               PKGCNT       LSTCNT        DBCNT  DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
DT                                      260           20            5  DT01A1P
DU                                        1            5            2  DUMMY
DW                                      477          114            2  DW10A1P
ED                                      924          267            3  ED02A1P
EF                                      214          560            5  EF01A1P
EG                                       75          113            2  EG01A1P
EK                                      881          142            2  EK01A1P
EQ                                      410          399            3  EQ01A1P
ER                                      839           87            1  ER01A1P
EU                                      176          343            7  EU01A1P
EX                                      790         2656            1  EX01A1P
FC                                       52           27            1  FC01A1P
FF                                      496           21            1  FF01A1P
FI                                     1369         1831            2  FI02A1P
FK                                      132          410            1  FK01A1P
FZ                                      291           19            2  FZ01A1P
GA                                      255           33            1  GA01A1P
GE                                      425           87            5  GE01A1P
GM                                      699          441            1  GM01A1P
GT                                       80          194            1  GT01A1P
HB                                      514          109            1  HB01A1P
HY                                     1381          487            2  HY01A1P
ID                                      248          423            6  ID01A1P
IT                                      161         1433            4  IT01A1P
JM                                      217           53            1  JM01A1P
JR                                       44          108            1  JR01A1P
KB                                      145          472            1  KB01A1P
KC                                      661         1968            1  KC01A1P
KD                                      218          435            3  KD01A1P
KE                                     2159         1054            1  KE01A1P
KS                                      772          534            8  KS01A1P
KT                                       24          279            1  KT01A1P
KX                                       32          797            1  KX01A1P
LC                                      392           78            1  LC02A1P
LG                                       20           48            1  LG01A1P
LO                                        6           30            1  LO01A1P
LW                                      143          245            2  LW01A1P
LX                                      105          332            1  LX01A1P
MB                                      121           53            1  MB01A1P
MC                                      773           45            3  MC01A1P
MF                                     1910          209            5  MF01A1P
MI                                      510          272            1  MI01A1P
NF                                     1015          758            4  NF01A1P
NG                                     1391         1320            6  NG01A1P
NH                                        3           12            1  NH01A1P
NI                                     6808         1374            6  NI02A1P
NI01                                     50           69            6  NI02A1P
NI02                                     50           69            6  NI02A1P
NJ                                      118           13            1  NJ01A1P
NK                                      131          186            1  NK01A1P
NL                                      671          946            1  NL01A1P
NO                                      233           51            1  NO01A1P
NP                                      334          318            1  NP01A1P
NR                                       15          392            2  NR01A1P
NT                                        8          269            1  NT21A1P
NZ                                     1969          572            8  NZ01A1P
OE                                      559         6072            1  OE02A1P
OO                                      649         4896            1  OO01A1P
COLLID                               PKGCNT       LSTCNT        DBCNT  DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
OZ                                      103          305            1  OZ01A1P
PC                                      378          146           18  PC01A1P
PC01                                   1104          105           18  PC01A1P
PC02                                   1096          104           18  PC01A1P
PC03                                   1027           93           18  PC01A1P
PC04                                   1027           93           18  PC01A1P
PC05                                   1027           93           18  PC01A1P
PC06                                   1027           93           18  PC01A1P
PC07                                    965           93           18  PC01A1P
PC08                                    837           93           18  PC01A1P
PC09                                    837           93           18  PC01A1P
PC10                                    837           93           18  PC01A1P
PC11                                    689           90           18  PC01A1P
PC12                                    597           91           18  PC01A1P
PC13                                    410           91           18  PC01A1P
PC14                                    191           88           18  PC01A1P
PC15                                    191           88           18  PC01A1P
PC16                                    191           88           18  PC01A1P
PI                                       19           23            1  PI01A1P
PO                                        8          132            1  PO01A1P
PR                                     1078          104            2  PR01A1P
PT                                      107           41            1  PTDB
PV                                      117            3            3  PV01A1P
PW                                      488          329            1  PW01A1P
PX                                      335           72            3  PX01A1P
RA                                      134          285            1  RA01A1P
RB                                      135           14            1  RB01A1P
RE                                      205          379            1  RE01A1P
RF                                      353           49            1  RF01A1P
RG                                        5          299            1  RG01A1P
RI                                      187           75            1  RI01A1P
RM                                     1479         2170            1  RM01A1P
RP                                     1017          679            4  RP01A1P
RV                                      859          314            1  RV01A1P
SA                                     1178          500            8  SA02A1P
SB                                      133           74            1  SB01A1P
SE                                       47          120            1  SE02A1P
SF                                      212           34            1  SF01A1P
SM                                       20           25            2  SM01A1P
SN                                     1783          382            1  SN01A1P
SU                                       41          357            3  SU01A1C
SV                                     4638         1099           18  SV01A1P
SW                                      265           41            1  SW01A1P
SX                                      660          496            1  SX01A1P
SY                                        2           24            3  SY20A1P
TG                                      584          338            1  TG01A1P
TN                                     2033          186            1  TN01A1P
TP                                      286           48            1  TP01A1P
TR                                      409          854            3  TR01A1P
TT                                      235           66            1  TT01A1P
TV                                       14           25            1  TV01A1P
UI                                      195           16            1  UI01A1P
UU                                     1374          330            3  UU02A1P
VD                                      227          362            1  VD01A1P
VK                                      355          583            2  VK01A1P
VP                                      403          430            4  VP01A1P
VR                                        5          344            1  VR01A1P
VT                                      385           96            3  VT01A1P
COLLID                               PKGCNT       LSTCNT        DBCNT  DBMIN
---------+---------+---------+---------+---------+---------+---------+---------+
VV                                     1116         2048           12  VV01A1P
WA                                      963          521            1  WA01A1P
WB                                     6765         1230            3  WB11A1P
WD                                        9          327            1  WD01A1P
WF                                     1411          411            1  WF01A1P
WG                                      141           38            1  WG01A1P
WI                                     5140         1579            3  WI01A1P
WK                                      143          287           10  WKDBDOF0
WL                                      615          145            9  WL01A1P
WM                                      157          687            1  WM01A1P
WN                                     1837          228            2  WN01A1P
WP                                     1458         2121            6  WP01A1P
WQ                                     1266           87            1  WQ01A1P
WR                                       40           18            1  WR01A1P
WU                                     1583          931           10  WU10A1P
WV                                      175          367            3  WV01A1P
WW                                      226           78            1  WW20A1P
WY                                      808          286            4  WY10A1P
XC                                       54           87            2  XC01A1P
XC00                                     44            9            2  XC01A1P
XC01                                     44            9            2  XC01A1P
XC02                                     44            9            2  XC01A1P
XC03                                     44            9            2  XC01A1P
XC04                                     44            9            2  XC01A1P
XC05                                     44            9            2  XC01A1P
XC06                                     44            9            2  XC01A1P
XC07                                     44            9            2  XC01A1P
XC08                                     44            9            2  XC01A1P
XC09                                     44            9            2  XC01A1P
XR                                      320           60            1  XR01A1P
YX                                      614        15893  -----------  ---------
YY                                     2505        16090  -----------  ---------
ZV                                      248          221            2  ZV01A1P
DSNE610I NUMBER OF ROWS DISPLAYED IS 217
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 100
---------+---------+---------+---------+---------+---------+---------+---------+
DSNE617I COMMIT PERFORMED, SQLCODE IS 0
DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0
---------+---------+---------+---------+---------+---------+---------+---------+
DSNE601I SQL STATEMENTS ASSUMED TO BE BETWEEN COLUMNS 1 AND 72
DSNE620I NUMBER OF SQL STATEMENTS PROCESSED IS 1
DSNE621I NUMBER OF INPUT RECORDS READ IS 46
DSNE622I NUMBER OF OUTPUT RECORDS WRITTEN IS 285
}¢--- A540769.WK.SQL(BIPLALS2) cre=2013-05-31 mod=2013-05-31-07.53.32 A540769 ---
AC                                        2            4            1  AC01A1P
AM                                       33            4            1  AM01A1P
AN                                       11           33            1  AN01A1P
AT                                       92           92            1  AT01A1P
AU                                      519         7809            4  AU01A1P
AV                                     1771         1555           20  AV01A1P
AV01                                    493          558           20  AV01A1P
AV02                                    493          555           20  AV01A1P
AV03                                    455          108           20  AV01A1P
AV05                                    308          108           20  AV01A1P
AV06                                    308          108           20  AV01A1P
AV07                                    311          108           20  AV01A1P
AV08                                    311          108           20  AV01A1P
AV09                                    325          108           20  AV01A1P
AV10                                    325          107           20  AV01A1P
AV11                                    307          107           20  AV01A1P
AV12                                    307          107           20  AV01A1P
AV13                                    306           96           20  AV01A1P
AV14                                    306           96           20  AV01A1P
AV15                                    306           96           20  AV01A1P
AV16                                    306           96           20  AV01A1P
AV17                                    306           93           20  AV01A1P
AV18                                    306           93           20  AV01A1P
AV19                                    306           93           20  AV01A1P
AV20                                    306           93           20  AV01A1P
AV21                                    308           93           20  AV01A1P
AV22                                    308           93           20  AV01A1P
AV23                                    298           79           20  AV01A1P
AV24                                    298           79           20  AV01A1P
AV25                                    295           83           20  AV01A1P
AV26                                    295           83           20  AV01A1P
AV27                                    292           88           20  AV01A1P
AV28                                    318           88           20  AV01A1P
AV29                                    115           81           20  AV01A1P
AV30                                    115           81           20  AV01A1P
AV31                                     52           70           20  AV01A1P
AV32                                     52           70           20  AV01A1P
AX                                       39          236            1  AX01A1P
BE                                      384         2025            2  BE01A1P
BE01                                    240         1724            2  BE01A1P
BE02                                    240         1731            2  BE01A1P
BE03                                    240         1698            2  BE01A1P
BE04                                    240         1713            2  BE01A1P
BF                                       88          661            1  BF03A1P
BG                                      514          141            1  BG01A1P
BJ                                        7            2           10  BJ01A1P
BP                                      357         4948            2  BP01A1P
BQ                                       38           12            1  BQ01A1P
BS                                       35          118            1  BS01A1P
BU                                       35         3265            1  BU01A1P
BV                                       66          361            1  BV01A1P
BX                                      814          488            1  BX01A1P
CD                                     3099         8816            3  CD01A1P
CE                                     3424          721            4  CE01A1P
CJ                                       22          258            1  CJ01A1P
CK                                     1094         1442            1  CK01A1P
CT                                      379          645            2  CT01G1P
CW                                      475          404            4  CW01A1P
CY                                      231           23            1  CY02A1P
CZ                                     4249         1828           23  CZ01A1P
DA                                       14          840            8  DA351153
DB                                       49           18           19  DB01A1P
DE                                     1555         1289            6  DE01A1P
DG                                     2243         1431            2  DG01A1P
DI                                      528         4216            6  DI01A1P
DM                                      402         1259            1  DM40A1P
DO                                       26            5            2  DOTGDB2
DP                                      988          469            7  DP02A1P
DT                                      260           20            5  DT01A1P
DU                                        1            5            2  DUMMY
DW                                      477          114            2  DW10A1P
ED                                      924          267            3  ED02A1P
EF                                      214          560            5  EF01A1P
EG                                       75          113            2  EG01A1P
EK                                      881          142            2  EK01A1P
EQ                                      410          399            3  EQ01A1P
ER                                      839           87            1  ER01A1P
EU                                      176          343            7  EU01A1P
EX                                      790         2656            1  EX01A1P
FC                                       52           27            1  FC01A1P
FF                                      496           21            1  FF01A1P
FI                                     1369         1831            2  FI02A1P
FK                                      132          410            1  FK01A1P
FZ                                      291           19            2  FZ01A1P
GA                                      255           33            1  GA01A1P
GE                                      425           87            5  GE01A1P
GM                                      699          441            1  GM01A1P
GT                                       80          194            1  GT01A1P
HB                                      514          109            1  HB01A1P
HY                                     1381          487            2  HY01A1P
ID                                      248          423            6  ID01A1P
IT                                      161         1433            4  IT01A1P
JM                                      217           53            1  JM01A1P
JR                                       44          108            1  JR01A1P
KB                                      145          472            1  KB01A1P
KC                                      661         1968            1  KC01A1P
KD                                      218          435            3  KD01A1P
KE                                     2159         1054            1  KE01A1P
KS                                      772          534            8  KS01A1P
KT                                       24          279            1  KT01A1P
KX                                       32          797            1  KX01A1P
LC                                      392           78            1  LC02A1P
LG                                       20           48            1  LG01A1P
LO                                        6           30            1  LO01A1P
LW                                      143          245            2  LW01A1P
LX                                      105          332            1  LX01A1P
MB                                      121           53            1  MB01A1P
MC                                      773           45            3  MC01A1P
MF                                     1910          209            5  MF01A1P
MI                                      510          272            1  MI01A1P
NF                                     1015          758            4  NF01A1P
NG                                     1391         1320            6  NG01A1P
NH                                        3           12            1  NH01A1P
NI                                     6808         1374            6  NI02A1P
NI01                                     50           69            6  NI02A1P
NI02                                     50           69            6  NI02A1P
NJ                                      118           13            1  NJ01A1P
NK                                      131          186            1  NK01A1P
NL                                      671          946            1  NL01A1P
NO                                      233           51            1  NO01A1P
NP                                      334          318            1  NP01A1P
NR                                       15          392            2  NR01A1P
NT                                        8          269            1  NT21A1P
NZ                                     1969          572            8  NZ01A1P
OE                                      559         6072            1  OE02A1P
OO                                      649         4896            1  OO01A1P
OZ                                      103          305            1  OZ01A1P
PC                                      378          146           18  PC01A1P
PC01                                   1104          105           18  PC01A1P
PC02                                   1096          104           18  PC01A1P
PC03                                   1027           93           18  PC01A1P
PC04                                   1027           93           18  PC01A1P
PC05                                   1027           93           18  PC01A1P
PC06                                   1027           93           18  PC01A1P
PC07                                    965           93           18  PC01A1P
PC08                                    837           93           18  PC01A1P
PC09                                    837           93           18  PC01A1P
PC10                                    837           93           18  PC01A1P
PC11                                    689           90           18  PC01A1P
PC12                                    597           91           18  PC01A1P
PC13                                    410           91           18  PC01A1P
PC14                                    191           88           18  PC01A1P
PC15                                    191           88           18  PC01A1P
PC16                                    191           88           18  PC01A1P
PI                                       19           23            1  PI01A1P
PO                                        8          132            1  PO01A1P
PR                                     1078          104            2  PR01A1P
PT                                      107           41            1  PTDB
PV                                      117            3            3  PV01A1P
PW                                      488          329            1  PW01A1P
PX                                      335           72            3  PX01A1P
RA                                      134          285            1  RA01A1P
RB                                      135           14            1  RB01A1P
RE                                      205          379            1  RE01A1P
RF                                      353           49            1  RF01A1P
RG                                        5          299            1  RG01A1P
RI                                      187           75            1  RI01A1P
RM                                     1479         2170            1  RM01A1P
RP                                     1017          679            4  RP01A1P
RV                                      859          314            1  RV01A1P
SA                                     1178          500            8  SA02A1P
SB                                      133           74            1  SB01A1P
SE                                       47          120            1  SE02A1P
SF                                      212           34            1  SF01A1P
SM                                       20           25            2  SM01A1P
SN                                     1783          382            1  SN01A1P
SU                                       41          357            3  SU01A1C
SV                                     4638         1099           18  SV01A1P
SW                                      265           41            1  SW01A1P
SX                                      660          496            1  SX01A1P
SY                                        2           24            3  SY20A1P
TG                                      584          338            1  TG01A1P
TN                                     2033          186            1  TN01A1P
TP                                      286           48            1  TP01A1P
TR                                      409          854            3  TR01A1P
TT                                      235           66            1  TT01A1P
TV                                       14           25            1  TV01A1P
UI                                      195           16            1  UI01A1P
UU                                     1374          330            3  UU02A1P
VD                                      227          362            1  VD01A1P
VK                                      355          583            2  VK01A1P
VP                                      403          430            4  VP01A1P
VR                                        5          344            1  VR01A1P
VT                                      385           96            3  VT01A1P
VV                                     1116         2048           12  VV01A1P
WA                                      963          521            1  WA01A1P
WB                                     6765         1230            3  WB11A1P
WD                                        9          327            1  WD01A1P
WF                                     1411          411            1  WF01A1P
WG                                      141           38            1  WG01A1P
WI                                     5140         1579            3  WI01A1P
WK                                      143          287           10  WKDBDOF0
WL                                      615          145            9  WL01A1P
WM                                      157          687            1  WM01A1P
WN                                     1837          228            2  WN01A1P
WP                                     1458         2121            6  WP01A1P
WQ                                     1266           87            1  WQ01A1P
WR                                       40           18            1  WR01A1P
WU                                     1583          931           10  WU10A1P
WV                                      175          367            3  WV01A1P
WW                                      226           78            1  WW20A1P
WY                                      808          286            4  WY10A1P
XC                                       54           87            2  XC01A1P
XC00                                     44            9            2  XC01A1P
XC01                                     44            9            2  XC01A1P
XC02                                     44            9            2  XC01A1P
XC03                                     44            9            2  XC01A1P
XC04                                     44            9            2  XC01A1P
XC05                                     44            9            2  XC01A1P
XC06                                     44            9            2  XC01A1P
XC07                                     44            9            2  XC01A1P
XC08                                     44            9            2  XC01A1P
XC09                                     44            9            2  XC01A1P
XR                                      320           60            1  XR01A1P
YX                                      614        15893  -----------  ---------
YY                                     2505        16090  -----------  ---------
ZV                                      248          221            2  ZV01A1P
}¢--- A540769.WK.SQL(BIPLALS3) cre=2013-05-31 mod=2013-05-31-08.39.37 A540769 ---
$#@
$=dbSys=dbaf
call sqlConnect $dbSys
$;
$<A540769.WK.SQL(BIPLALS2)
    $@for li $@¢
        col = word($li, 1)
        call sqlExecute 1, 'insert into oa1p.tBiPlanCol' ,
        "(col, installFr) values ('"col"', '01.01.2000')"
        $!
call sqlCommit
call sqlDisconnect
$#out                                              20130531 08:11:27
$#out                                              20130531 08:10:35
*** run error ***
SQLCODE = -803: AN INSERTED OR UPDATED VALUE IS INVALID
    BECAUSE INDEX IN INDEX SPACE IBIPLANC CONSTRAINS COLUMNS OF THE
    TABLE SO NO TWO ROWS CAN CONTAIN DUPLICATE VALUES IN THOSE COLUMNS.
    RID OF EXISTING ROW IS X'0000000201'.
stmt = insert into oa1p.tBiPlanCol (col, installFr) values ('COL', '01.01.2000')
$#out                                              20130531 08:09:34
*** run error ***
SQLCODE = -517: CURSOR C1 CANNOT BE USED BECAUSE ITS
    STATEMENT NAME DOES NOT IDENTIFY A PREPARED SELECT STATEMENT
stmt = open c1
$#out                                              20130531 08:08:42
*** run error ***
SQLCODE = -204: OA1P.TBIPLACOL IS AN UNDEFINED NAME
stmt = prepare s1 into :M.SQL.1.D from :src
with into :M.SQL.1.D = M.SQL.1.D
     from :src = insert into oa1p.tBiPlaCol (col, installFr) values ('COL', '01.
$#out                                              20130531 08:08:26
*** run error ***
SQLCODE = -204: OA1P.TBIPLACOL IS AN UNDEFINED NAME
stmt = prepare s1 into :M.SQL.1.D from :src
with into :M.SQL.1.D = M.SQL.1.D
     from :src = insert into oa1p.tBiPlaCol (col, installFr) values ('COL', '01.
$#out                                              20130531 08:08:05
*** run error ***
SQLCODE = -104: ILLEGAL SYMBOL "'COL'". SOME SYMBOLS THAT
    MIGHT BE LEGAL ARE: SELECT (
src insert into oa1p.tBiPlaCol (col, installFr) ('COL', '01.01.2000')
  >                             >>>pos 46 of 65>>>
stmt = prepare s1 into :M.SQL.1.D from :src
with into :M.SQL.1.D = M.SQL.1.D
     from :src = insert into oa1p.tBiPlaCol (col, installFr) ('COL', '01.01.2000
$#out                                              20130531 08:06:59
*** run error ***
no class found for object insert into oa1p.tBiPlaCol (col, installFr) ('COL', '0
$#out                                              20130531 07:55:59
}¢--- A540769.WK.SQL(BIT) cre=2012-07-18 mod=2012-07-18-12.08.23 A540769 -------
select bitand(129,255)
    from sysibm.sysdummy1
}¢--- A540769.WK.SQL(BMCBLIPR) cre=2011-12-14 mod=2011-12-14-16.45.18 A540769 ---
select *
    from bmcacma1.CM_SCOPE
    where scName = 'DB2REO'
;
delete from bmcacma1.CM_SCOPE where scOwner = 'TST01'
;
insert into bmcacma1.CM_SCOPE
          (SCOWNER, SCName, Type, ACTION,OBJECT,NAME_PART1,NAME_PART2
          ,MIGDT, MIGTS, MIGTB, MIGCK, MIGFK, MIGIX, MIGVW, MIGAU
          ,MIGSY, MIGAL, MIGRO, MIGTR, MIGUC, MIGAX
          )
    values('TST01', 'DB2REO', 'B', 'I' , 'DB', 'DB2REO', ''
          ,'N'  , 'Y',   'Y',  'Y',    'Y',   'Y',   'Y',  'N'
          ,'Y'  , 'Y',   '',   'Y',    'Y',   'Y'
          )
;
insert into bmcacma1.CM_SCOPE
          (SCOWNER, SCName, Type, ACTION,OBJECT,NAME_PART1,NAME_PART2
          ,MIGDT, MIGTS, MIGTB, MIGCK, MIGFK, MIGIX, MIGVW, MIGAU
          ,MIGSY, MIGAL, MIGRO, MIGTR, MIGUC, MIGAX
          )
    values('TST01', 'DB2REO', 'B', 'E' , 'IX', 'S100447', '*'
          ,'N'  , 'Y',   'Y',  'Y',    'Y',   'Y',   'Y',  'N'
          ,'Y'  , 'Y',   '',   'Y',    'Y',   'Y'
          )
;
select *
    from bmcacma1.CM_SCOPE
    where scName = 'DB2REO'
;
delete from bmcacma1.CM_BLPROFILE where blpOwner = 'TST01'
;
select *
    from bmcacma1.CM_BLPROFILE
    where blpName = 'DB2REO'
;
insert into bmcacma1.CM_BLPROFILE
          (BLPOWNER, blpName, type, template)
    values('TST01', 'DB2REO', 'C', 'DB2REO_####')
;
select *
    from bmcacma1.CM_BLPROFILE
    where blpName = 'DB2REO'
;
commit
}¢--- A540769.WK.SQL(BQ01) cre=2016-08-03 mod=2016-08-03-14.25.08 A540769 ------
 SET CURRENT SQLID = 'S100447';


    CREATE DATABASE BQ01A1P
           BUFFERPOOL BP2
           INDEXBP    BP1
           STOGROUP "GSMS    "
           CCSID EBCDIC;




    CREATE TABLESPACE A100A
           IN BQ01A1P
           USING STOGROUP "GSMS    "
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP2
           CLOSE YES
           LOCKMAX SYSTEM
           SEGSIZE 64
           MAXPARTITIONS 10
           DSSIZE 4 G
           FREEPAGE 0
           PCTFREE 5
           GBPCACHE CHANGED
           DEFINE YES
           LOGGED
           TRACKMOD YES
           COMPRESS YES
           LOCKSIZE ANY
           MAXROWS 255
           CCSID EBCDIC;




    CREATE TABLE OA1P.TBQ100A1
        (BQ100001 CHARACTER(3) FOR SBCS DATA
                                                        NOT NULL
        ,BQ100002 CHARACTER(2) FOR SBCS DATA
                                                        NOT NULL
        ,BQ100003 CHARACTER(2) FOR SBCS DATA
                                                        NOT NULL
        ,BQ100004 CHARACTER(2) FOR SBCS DATA
                                                        NOT NULL
        ,BQ100005 DATE
                                                        NOT NULL
        ,BQ100006 DATE
                                                        NOT NULL
        ,CONSTRAINT BQ100002 PRIMARY KEY
        (BQ100002
        )
        )
        IN BQ01A1P.A100A
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   WITH RESTRICT ON DROP
   AUDIT NONE
   CCSID EBCDIC;




    LABEL ON TABLE OA1P.TBQ100A1
         IS 'DATASOURCE ABLAGE';




    LABEL ON COLUMN OA1P.TBQ100A1.BQ100001
         IS 'TYP';




    LABEL ON COLUMN OA1P.TBQ100A1.BQ100002
         IS 'KÜRZEL';




    LABEL ON COLUMN OA1P.TBQ100A1.BQ100003
         IS 'DATASOURCE';




    LABEL ON COLUMN OA1P.TBQ100A1.BQ100004
         IS 'ACCOUNT QUALI';




    LABEL ON COLUMN OA1P.TBQ100A1.BQ100005
         IS 'GÜLTIG AB';




    LABEL ON COLUMN OA1P.TBQ100A1.BQ100006
         IS 'GÜLTIG BIS';




    CREATE        UNIQUE INDEX OA1P.IBQ100A1
           ON OA1P.TBQ100A1
          (BQ100002 ASC
          )
           INCLUDE NULL KEYS
           CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE YES
           DEFER NO
           COPY NO
           USING STOGROUP "GSMS    "
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;



 SET CURRENT SQLID = 'S100447';

    DROP   TABLESPACE BQ01A1P.A700A; COMMIT;
    CREATE TABLESPACE A700A
           IN BQ01A1P
           USING STOGROUP "GSMS    "
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP2
           CLOSE YES
           LOCKMAX SYSTEM
           SEGSIZE 64
           MAXPARTITIONS 10
           DSSIZE 4G
           FREEPAGE 0
           PCTFREE 5
           GBPCACHE CHANGED
           DEFINE YES
           LOGGED
           TRACKMOD YES
           COMPRESS YES
           LOCKSIZE ANY
           MAXROWS 255
           CCSID EBCDIC;




    CREATE TABLE OA1P.TBQ700A1
        (BQ700001 CHARACTER(6) FOR SBCS DATA
                                                        NOT NULL
        ,BQ700002 CHARACTER(2) FOR SBCS DATA
                                                        NOT NULL
        ,BQ700003 CHARACTER(2) FOR SBCS DATA
                                                        NOT NULL
        ,BQ700004 CHARACTER(2) FOR SBCS DATA
                                                        NOT NULL
        ,BQ700005 DATE
                                                        NOT NULL
        ,BQ700006 DATE
                                                        NOT NULL
        ,CONSTRAINT BQ700001 PRIMARY KEY
        (BQ700001
        ,BQ700002
        )
        )
        IN BQ01A1P.A700A
   WITH RESTRICT ON DROP
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    LABEL ON TABLE OA1P.TBQ700A1
         IS 'DATASOURCE ABLAGE';




    LABEL ON COLUMN OA1P.TBQ700A1.BQ700001
         IS 'PGM';




    LABEL ON COLUMN OA1P.TBQ700A1.BQ700002
         IS 'KÜRZEL';




    LABEL ON COLUMN OA1P.TBQ700A1.BQ700003
         IS 'DATASOURCE';




    LABEL ON COLUMN OA1P.TBQ700A1.BQ700004
         IS 'ACCOUNT QUALI';




    LABEL ON COLUMN OA1P.TBQ700A1.BQ700005
         IS 'GÜLTIG AB';




    LABEL ON COLUMN OA1P.TBQ700A1.BQ700006
         IS 'GÜLTIG BIS';




    CREATE        UNIQUE INDEX OA1P.IBQ700A1
           ON OA1P.TBQ700A1
          (BQ700001 ASC
          ,BQ700002 ASC
          )
           INCLUDE NULL KEYS
           CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE YES
           DEFER NO
           COPY NO
           USING STOGROUP "GSMS    "
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED;

}¢--- A540769.WK.SQL(CALL) cre=2008-01-07 mod=2008-01-07-10.37.36 F540769 ------
call sysproc.command('abcdef', 'qr')
}¢--- A540769.WK.SQL(CANTDOM) cre=2010-12-09 mod=2010-12-09-09.41.33 A540769 ---
--   leere / nichtLeere Tables pro domain
--
WITH D (DOM, GB) AS
(
          SELECT 'AOC', 'BQ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'DF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'EV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'HB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'NF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'NL' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'AOC', 'UB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'AT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'AU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'BP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'BU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'BW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'DB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'EL' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'EW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'IT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'KD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'KE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'KS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'LO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'ME' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'MT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'NG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'NJ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'OE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'OR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'OX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'PL' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'SC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'SE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'TA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'YP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'BAS', 'YY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'BF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'BG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'DA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'DG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'DM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'ER' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'KO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'LS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'RB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'RF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'WM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CDY', 'WP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'BT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'CO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'SA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'SX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CHA', 'VT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'CE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'CW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'DW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'COA', 'WY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRE', 'LC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRM', 'VP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRM', 'WR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'AP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CJ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'CZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EQ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'EX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'GA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'HY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'JA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'JM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'KB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'KR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'KX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'MI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'RA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'RV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'TM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'UI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'UU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CRS', 'XP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'AF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'AN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'CA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'CD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'CI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'CU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'HI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'OO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'CUS', 'RM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'DO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'ID' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'OM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'OS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'PO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'SY' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'TS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'VI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'XB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'XC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'XI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'XR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'ECM', 'YS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FAC', 'FD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FAC', 'RP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FAC', 'RQ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'AV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'DI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'FI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'RE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'VK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'FIN', 'VV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'IMA', 'NI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'A1' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'CH' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'NP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PH' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'LOG', 'PX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'TN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'TZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'WB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'WC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'OTM', 'WN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'AS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'AZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'CK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'CV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'FF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'GE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'MC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'NZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'SF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'VD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'ZD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'ZE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PAY', 'ZV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PRC', 'EF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PRC', 'EI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'PRC', 'SN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'EK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'EU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'HK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'HR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'JR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'LG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'MF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'RX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'TG' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'RRL', 'US' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'BE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'BK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'BS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'BX' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'CM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'KA' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'KC' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'KK' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'KM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'SB' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SAC', 'VR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'AM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'DE' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'DN' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'DP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'DT' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'ED' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'FO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'FZ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'GM' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'LW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'NO' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'RI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'ST' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'SU' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'SV' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'TP' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'TR' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WD' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WF' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WI' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WL' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WQ' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SCL', 'WS' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SEC', 'PW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SSI', 'SW' FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT 'SSI', 'TL' FROM SYSIBM.SYSDUMMY1
)
, T (GB, TBSLe, szLe, tbsVo, szVo, rowVo) AS
(
SELECT LEFT(T.DBNAME,2),
    sum(case when cardf <= 0 then 1 else 0 end),
    SUM(case when cardf <= 0 then max(t.SPACEF, 0) else 0 end),
    sum(case when cardf >  0 then 1 else 0 end),
    SUM(case when cardf >  0 then t.SPACEF else 0 end),
    SUM(case when cardf >  0 then cardf else 0 end)
  FROM SYSIBM.SYSTABLES T
    JOIN SYSIBM.SYSTABLESPACE S
    ON T.DBNAME = S.DBNAME AND T.TSNAME = S.NAME
  GROUP BY LEFT(T.DBNAME,2)
)
SELECT D.DOM, SUM(TBSLe) "le #TB",
         dec(SUM(szLe) / 1024/1024, 8,3)   "le GB",
         SUM(TBSVo) "vo #Tb",
         dec(SUM(szVo) / 1024/1024, 8,3) "vo GB",
         bigInt(SUM(rowVo)) "vo #rows"
  from t
  left join d
  on t.gb = d.gb
  group by dom
  order by dom
  WITH UR
}¢--- A540769.WK.SQL(CASE) cre=2011-07-18 mod=2011-07-18-15.06.27 A540769 ------
with w (f) as
(           select 'a' from sysibm.sysDummy1
  union all select 'b' from sysibm.sysDummy1
)
select f,
       case when f = 'a' then 'aaah' end case
from w
}¢--- A540769.WK.SQL(CASQLID) cre=2013-02-13 mod=2013-02-13-16.53.21 A540769 ---
set current sqlid = 'S100447';
create view oa1p.VDGTTT1
    as select * from sysibm.sysdummy1;
create view oa1p.VDGTTT2
    as select * FROM oa1p.VDGTTT1;
set current sqlid = 'oa1p';
create view oa1p.VDGTTT3            -- ok   in DBOF, -551 in rz8
    as select * FROM oa1p.VDGTTT1;
create view oa1p.VDGTTT4            -- -551 in DBOF and RZ8
    as select * FROM sysibm.sysDummy1;
rollback;
}¢--- A540769.WK.SQL(CASTUNI) cre=2010-09-30 mod=2010-11-04-17.36.06 A540769 ---
with v1(v) as
(           select 'abc123' from sysibm.sysDummyE
  union all select 'abc@123' from sysibm.sysDummyE
  union all select '@abc@123' from sysibm.sysDummyE
)
, v as
(
    select cast(v as varchar(12) ccsid ebcdic) v from v1
)
select v "ebcdic",
       cast(v as varchar(12) ccsid unicode)   unicode,
       hex(cast(v as varchar(12) ccsid unicode))  "unicodeHex"
    from v
;;
select
            cast('@abc@123' as varchar(10) ccsid ebcdic) ebcdic,
        hex(cast('@abc@123' as varchar(10) ccsid ebcdic))ebcHex,
       cast(
            cast('@abc@123' as varchar(10) ccsid ebcdic)
                          as varchar(10) ccsid unicode)   unicode,
  hex( cast(
            cast('@abc@123' as varchar(10) ccsid ebcdic)
                          as varchar(10) ccsid unicode) ) unicoHex,

       cast(
            cast('@abc@123' as varchar(10) ccsid ebcdic)
                          as varchar(10) ccsid unicode for bit data)
           uniBit
    from sysibm.sysDummy1
;
     cast(
       cast(
            cast('@abc@123' as varchar(10) ccsid ebcdic)
                          as varchar(10) ccsid unicode)
                          as varBinary(10) )
           uniBinary,
   cast(
     cast(
       cast(
            cast('@abc@123' as varchar(10) ccsid ebcdic)
                          as varchar(10) ccsid unicode)
                          as varBinary(10) )
                          as varchar(10) ccsid ebcdic )
           uniBinary
}¢--- A540769.WK.SQL(CAT) cre=2006-05-23 mod=2007-04-02-17.17.54 F540769 -------
select distinct        min(char(dbname, 9) || char(creator, 8)),
                       max(char(dbname, 9) || char(creator, 8))
    from sysibm.systables
    where name like 'TWL%' and type = 'T'
          and left(creator, 1) in ('O', 'G')
    group by name
 -- order by name
   ;
select char(creator, 8), char(name, 16), char(dbname, 8)
    from sysibm.systables
    where name like 'TWL%' and type = 'T'
    order by 2, 1
   ;
   x
select * from sysibm.sysviews where name like 'VPV0%';
xelect     c.name, c.creator ,
           c.dbname , c.tsname ,
           c.p_part, c.p_limit,
           count(all tid150tst) tst_all,
           count(distinct tid150tst) tst_dist,
           min(tid150md)  md_min,
           max(tid150md)  md_max,
           min(tid150tst) tst_min,  max(tid150tst) tst_max
  from
    ( select
         t.name, t.creator, t.dbname, t.tsname,
         p.partition p_part, int(p.limitKey) p_limit,
         q.partition q_part, int(q.limitKey) q_limNu,
         case when q.limitKey is null then -9999 else int(q.limitKey)
              end q_limit
      from sysibm.systables t
        join sysibm.systablePart p
          on t.tsname = p.tsname and t.dbname = p.dbname
        left join sysibm.systablePart q
          on p.tsname = q.tsname and p.dbname = q.dbname
             and p.partition - 1 = q.partition
      where t.name = 'TID150A1' and t.creator = 'OA1A' ) c
    left join oa1a.tid150a1 d
      on d.tid150md > c.q_limit and d.tid150md <= c.p_limit
  group by c.name, c.creator, c.dbname, c.tsname, p_part, p_limit
           ;
}¢--- A540769.WK.SQL(CATALIAS) cre=2007-08-03 mod=2007-09-20-17.34.11 F540769 ---
with alias as
(
  select a.*,
       case when a.location <> '' then 'remote'
            when t.name is null then  'missing' else 'existing' end sta
    from sysibm.systables a
         left join sysibm.systables t
         on a.tbCreator = t.creator and a.tbName = t.name
    where a.type = 'A'
           and   a.name like '_PT%'
)
select 'create alias '
       || strip(a.creator) || '.' || strip(a.name)
       || ' for ' || case when a.location = '' then ''
                     else  strip(a.location) || '.' end
       || strip(a.tbCreator) || '.' ||strip(a.tbname) || ';'
       || ' -- ' || sta
    from alias a
union select 'drop alias '
       || strip(a.creator) || '.' || strip(a.name) || ';'
       || ' -- ' || sta
    from alias a
;
}¢--- A540769.WK.SQL(CATALISE) cre=2008-07-08 mod=2008-07-08-14.08.56 F540769 ---
WITH N (N) AS
(            SELect 'XPS_VPTOD000'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'IDS_VINDE134'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VISCO001'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'IDS_VINSP135'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'IDS_VINIR136'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'IDS_VISCO137'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'IDS_VINBS138'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'IDS_VINOP140'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'IDS_VUNFX139'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VINFS000'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'IDS_VINOP141'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VTRAM000_V03' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VRUNRETA_V03' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VCAFO001_V03' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VCAFO002_V03' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VCFAM001_V03' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VCFAM002_V05' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VOPPA002_V03' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VOPPA003_V03' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VCFAM006'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VTRAM001'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VTXAM504'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VCFAM503'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'IDS_VTRAM142'     FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VUNFI006_V03' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VUNFI007_V02' FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'XPS_VNTP0014'            FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'VTEVENTCONDITION'        FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'VTEVENTCOMPONENTPROP'    FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'VTCASHFLOW'              FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'VTINSTREVENTEXDATE'      FROM SYSIBM.SYSDUMMY1
  UNION  ALL SELect 'VTINSTREVNTEXDTLIQAMT'   FROM SYSIBM.SYSDUMMY1
)
select n.n, t.type, t.creator
    from n
      left join sysibm.systables t
        on    n.n = t.name
    order by n.n asc, t.type asc
}¢--- A540769.WK.SQL(CATALL) cre=2010-07-30 mod=2010-07-30-17.26.36 A540769 ----
select 'rz1.dbaf', 'd', name, '', '', ''
    from sysibm.sysDatabase where name like 'NI%'
union all select 'rz1.dbaf', 't', dbname, tsName, creator, name
    from sysibm.sysTables where dbName like 'NI%' and type = 'T'
union all select 'rz1.dbaf', 'x', tbCreator, tbName, creator, name
    from sysibm.sysIndexes where dbName like 'NI%'
union all select 'rz1.dbaf', 'v', dbname, tsName, creator, name
    from sysibm.sysTables
        where type = 'V' and (dbName like 'NI%' and name like 'VNI%')
union all select 'rz1.dbaf', 'a', tbCreator, tbName, creator, name
    from sysibm.sysTables
        where type = 'A' and (dbName like 'NI%' and name like '_NI%')

}¢--- A540769.WK.SQL(CATALOG) cre= mod= ----------------------------------------
select
    name, creator
    from sysibm.systables
    where name like 'TID%';
}¢--- A540769.WK.SQL(CATALT) cre=2013-06-13 mod=2013-06-13-11.35.28 A540769 ----
with g as
(
select ts.dbName, ts.name
    , min(ts.createdTs) tCre, min(ts.alteredts) tAlt
    , min(partitions) tsparts
    , count(*) parts, min(p.createdTs) pCre, min(p.alteredts) pAlt
    from sysibm.sysTablespace  ts
      join sysibm.sysTablePart p
        on p.dbName = ts.dbName and p.tsname = ts.Name
 -- where t.name like 'TMF1%'
    group by ts.dbName, ts.name
)
select substr(name, 1, 16), tCre, tAlt, tsParts
, parts, pCre, pAlt, dbName
    from g
    where (tsParts <> parts and not (tsParts=0 and parts = 1))
    or tCre is null or tAlt is null
    or pCre is null or pAlt is null
         or max(tCre, tAlt) < max(pCre, pAlt)
 -- order by 2 desc
    fetch first 100 rows only
;x;
select copyLasttime, r.*
    from sysibm.sysTableSpaceStats r
    where ( copyUpdateTime is null and copyLasttime is not null )
     order by 1 desc
     fetch first 100 rows only
     with ur
;x;
select hex(copyUpdateLrsn), timestamp(copyUpdateLrsn || x'0000'),
           copyUpdateTime, r.*
    from sysibm.sysTableSpaceStats r
    where ( copyUpdateTime is not null )
     fetch first 100 rows only
;x;
with c as
(
select t.creator, t.name
    , min(t.createdTs) tCre, min(t.alteredts) tAlt
    , min(colCount) tCol
    , count(*) cols, min(c.createdTs) cCre, min(c.alteredts) cAlt
    from sysibm.sysTables t
      join sysibm.sysColumns c
        on t.creator = c.tbCreator and t.name = c.tbName
 -- where t.name like 'TMF1%'
    group by t.creator, t.name
)
select substr(name, 1, 16), tCre, tAlt, tCol, cols, cCre, cAlt, creator
    from c
    where tCol <> cols or cCre is null or cAlt is null
         or max(tCre, tAlt) < max(cCre, cAlt)
 -- order by 2 desc
    fetch first 100 rows only
;x;
select *
    from sysibm.sysTables t
    where createdTs is null or t.alteredts is null
            or createdTs > alteredTs
;x;
}¢--- A540769.WK.SQL(CATBIND) cre=2008-09-11 mod=2008-09-11-12.30.14 F540769 ---
select count(*), owner
    from sysibm.syspackage
    where timestamp > current timestamp -   9 month
    group by owner
}¢--- A540769.WK.SQL(CATBP) cre=2011-05-13 mod=2012-10-01-08.53.25 A540769 -----
select s.bPool, t.name
    from sysibm.sysTablespace s
    join sysibm.sysTables t
    on t.dbName = s.dbName and t.tsName = s.name
    where t.creator = 'VDPS2' and
          t.name in ('VTINSTRIDENT'
                    ,'VTINSTRUMENT'
                    ,'VTINSTIROLE'
                    ,'VTINSTIIDENT'
                    )
;x;
select bPool, count(*)
    from sysibm.sysTablespace
    group by bPool
    order by bPool
    with ur
}¢--- A540769.WK.SQL(CATBPOOL) cre=2010-11-18 mod=2010-11-18-10.46.25 A540769 ---
select coalesce(t.bPool, i.bPool), t.cnt "#ts", i.cnt "#ix"             00010000
    from                                                                00020000
      ( select bPool, count(*) cnt                                      00030000
            from sysibm.sysTableSpace                                   00040000
            group by bPool                                              00050000
      ) t                                                               00060000
      full outer join                                                   00070000
      ( select bPool, count(*) cnt                                      00080000
            from sysibm.sysIndexes                                      00090000
            group by bPool                                              00100000
      ) i                                                               00110000
    on t.bPool = i.bPool                                                00120000
    order by 1                                                          00130000
    with ur                                                             00140000
}¢--- A540769.WK.SQL(CATCHA) cre=2009-11-06 mod=2009-11-06-13.38.14 A540769 ----
select d.Name, d.createdTs, d.alteredTs,
        s.ts, s.cre, s.alt,
        t.tb, t.cre, t.alt
    from sysibm.sysDatabase d
    left join (
        select dbName db, count(*) ts,
                max(createdTs) cre, max(alteredTs) alt
            from sysIbm.sysTableSpace
            group by dbName
        ) s
    on d.name = s.db
    left join (
        select dbName db, count(*) tb,
                max(createdTs) cre, max(alteredTs) alt
            from sysIbm.sysTables
            group by dbName
        ) t
    on d.name = t.db
    where d.name like 'MF%'
    order by 1
    fetch first 100 rows only
}¢--- A540769.WK.SQL(CATCLONE) cre=2015-09-11 mod=2015-09-11-10.34.21 A540769 ---
select count(*), instance, ictype
    from sysibm.sysCopy
    group by instance, icType
    with ur       ;x;
select count(*), instance, clone
    from sysibm.sysTableSpace
    group by instance, clone
    with ur
}¢--- A540769.WK.SQL(CATCOL) cre=2009-09-04 mod=2014-02-05-11.19.08 A540769 ----
delete from A540769.plan_table;
delete from A540769.dsn_statement_cache_table;
commit;
set current explain mode yes
;
select strip(tbcreator) || '.' || strip(tbName), c.*
    from sysibm.sysColumns c
    where name like '%CLUST%' and tbCreator = 'SYSIBM'
    order by 1
;
set current explain mode no
;
select * from A540769.plan_view1
;
select * from A540769.dsn_queryInfo_table
;
select * from A540769.dsn_query_table
;
select * from A540769.dsn_statement_cache_table
;
rollback
}¢--- A540769.WK.SQL(CATCOLCO) cre=2015-02-11 mod=2015-02-11-15.15.38 A540769 ---
$#@
call sqlConnect DP4G
$*( generate sql to compare the columns of two tables
--cr1 = CMNBATCH
--cr2 = A540769 $*)
$<>
$<=¢
with t (tb, crL, crR) as
(
   select 'PLAN_TABLE', 'CMNBATCH', 'A540769' from sysibm.sysDummy1
)
, c as
(
   select c.name col, colType ct, tb, crL, crR, c.*
     from t
      join sysibm.sysColumns c
        on c.tbCreator = crL and c.tbName = t.tb
)
select * from c order by tb, colNo
$! call sqlSel
$|
tb = ''
$forWith i $@=¢
     $@ if tb <> $TB & tb \== '' then $@tbEnd
     $@ if tb <> $TB       then $@¢tb = $TB; $@tbBegin $!
     $@ call mAdd col, $COL
     || case when l.$COL is null
              and r.$COL is null then ' '

             when l.$COL is null then 'r'
             when r.$COL is null then 'l'
             when l.$COL <> r.$COL then '|'
             else ' '
        end
$!
$@tbEnd
$proc $@/tbBegin/
    $$ select ''
    m.col.0 = 0
$/tbBegin/
$proc $@/tbEnd/
     $do cx=1 to m.col.0 $@=¢
         $=col =- m.col.cx
         , value(l.$col
                ,r.$col
                )  $col
         $!
$/tbEnd/
$#out                                              20150211 15:10:54
select ''
     || case when l.QUERYNO is null
              and r.QUERYNO is null then ' '

             when l.QUERYNO is null then 'r'
             when r.QUERYNO is null then 'l'
             when l.QUERYNO <> r.QUERYNO then '|'
             else ' '
        end
     || case when l.QBLOCKNO is null
              and r.QBLOCKNO is null then ' '

             when l.QBLOCKNO is null then 'r'
             when r.QBLOCKNO is null then 'l'
             when l.QBLOCKNO <> r.QBLOCKNO then '|'
             else ' '
        end
     || case when l.APPLNAME is null
              and r.APPLNAME is null then ' '

             when l.APPLNAME is null then 'r'
             when r.APPLNAME is null then 'l'
             when l.APPLNAME <> r.APPLNAME then '|'
             else ' '
        end
     || case when l.PROGNAME is null
              and r.PROGNAME is null then ' '

             when l.PROGNAME is null then 'r'
             when r.PROGNAME is null then 'l'
             when l.PROGNAME <> r.PROGNAME then '|'
             else ' '
        end
     || case when l.PLANNO is null
              and r.PLANNO is null then ' '

             when l.PLANNO is null then 'r'
             when r.PLANNO is null then 'l'
             when l.PLANNO <> r.PLANNO then '|'
             else ' '
        end
     || case when l.METHOD is null
              and r.METHOD is null then ' '

             when l.METHOD is null then 'r'
             when r.METHOD is null then 'l'
             when l.METHOD <> r.METHOD then '|'
             else ' '
        end
     || case when l.CREATOR is null
              and r.CREATOR is null then ' '

             when l.CREATOR is null then 'r'
             when r.CREATOR is null then 'l'
             when l.CREATOR <> r.CREATOR then '|'
             else ' '
        end
     || case when l.TNAME is null
              and r.TNAME is null then ' '

             when l.TNAME is null then 'r'
             when r.TNAME is null then 'l'
             when l.TNAME <> r.TNAME then '|'
             else ' '
        end
     || case when l.TABNO is null
              and r.TABNO is null then ' '

             when l.TABNO is null then 'r'
             when r.TABNO is null then 'l'
             when l.TABNO <> r.TABNO then '|'
             else ' '
        end
     || case when l.ACCESSTYPE is null
              and r.ACCESSTYPE is null then ' '

             when l.ACCESSTYPE is null then 'r'
             when r.ACCESSTYPE is null then 'l'
             when l.ACCESSTYPE <> r.ACCESSTYPE then '|'
             else ' '
        end
     || case when l.MATCHCOLS is null
              and r.MATCHCOLS is null then ' '

             when l.MATCHCOLS is null then 'r'
             when r.MATCHCOLS is null then 'l'
             when l.MATCHCOLS <> r.MATCHCOLS then '|'
             else ' '
        end
     || case when l.ACCESSCREATOR is null
              and r.ACCESSCREATOR is null then ' '

             when l.ACCESSCREATOR is null then 'r'
             when r.ACCESSCREATOR is null then 'l'
             when l.ACCESSCREATOR <> r.ACCESSCREATOR then '|'
             else ' '
        end
     || case when l.ACCESSNAME is null
              and r.ACCESSNAME is null then ' '

             when l.ACCESSNAME is null then 'r'
             when r.ACCESSNAME is null then 'l'
             when l.ACCESSNAME <> r.ACCESSNAME then '|'
             else ' '
        end
     || case when l.INDEXONLY is null
              and r.INDEXONLY is null then ' '

             when l.INDEXONLY is null then 'r'
             when r.INDEXONLY is null then 'l'
             when l.INDEXONLY <> r.INDEXONLY then '|'
             else ' '
        end
     || case when l.SORTN_UNIQ is null
              and r.SORTN_UNIQ is null then ' '

             when l.SORTN_UNIQ is null then 'r'
             when r.SORTN_UNIQ is null then 'l'
             when l.SORTN_UNIQ <> r.SORTN_UNIQ then '|'
             else ' '
        end
     || case when l.SORTN_JOIN is null
              and r.SORTN_JOIN is null then ' '

             when l.SORTN_JOIN is null then 'r'
             when r.SORTN_JOIN is null then 'l'
             when l.SORTN_JOIN <> r.SORTN_JOIN then '|'
             else ' '
        end
     || case when l.SORTN_ORDERBY is null
              and r.SORTN_ORDERBY is null then ' '

             when l.SORTN_ORDERBY is null then 'r'
             when r.SORTN_ORDERBY is null then 'l'
             when l.SORTN_ORDERBY <> r.SORTN_ORDERBY then '|'
             else ' '
        end
     || case when l.SORTN_GROUPBY is null
              and r.SORTN_GROUPBY is null then ' '

             when l.SORTN_GROUPBY is null then 'r'
             when r.SORTN_GROUPBY is null then 'l'
             when l.SORTN_GROUPBY <> r.SORTN_GROUPBY then '|'
             else ' '
        end
     || case when l.SORTC_UNIQ is null
              and r.SORTC_UNIQ is null then ' '

             when l.SORTC_UNIQ is null then 'r'
             when r.SORTC_UNIQ is null then 'l'
             when l.SORTC_UNIQ <> r.SORTC_UNIQ then '|'
             else ' '
        end
     || case when l.SORTC_JOIN is null
              and r.SORTC_JOIN is null then ' '

             when l.SORTC_JOIN is null then 'r'
             when r.SORTC_JOIN is null then 'l'
             when l.SORTC_JOIN <> r.SORTC_JOIN then '|'
             else ' '
        end
     || case when l.SORTC_ORDERBY is null
              and r.SORTC_ORDERBY is null then ' '

             when l.SORTC_ORDERBY is null then 'r'
             when r.SORTC_ORDERBY is null then 'l'
             when l.SORTC_ORDERBY <> r.SORTC_ORDERBY then '|'
             else ' '
        end
     || case when l.SORTC_GROUPBY is null
              and r.SORTC_GROUPBY is null then ' '

             when l.SORTC_GROUPBY is null then 'r'
             when r.SORTC_GROUPBY is null then 'l'
             when l.SORTC_GROUPBY <> r.SORTC_GROUPBY then '|'
             else ' '
        end
     || case when l.TSLOCKMODE is null
              and r.TSLOCKMODE is null then ' '

             when l.TSLOCKMODE is null then 'r'
             when r.TSLOCKMODE is null then 'l'
             when l.TSLOCKMODE <> r.TSLOCKMODE then '|'
             else ' '
        end
     || case when l.TIMESTAMP is null
              and r.TIMESTAMP is null then ' '

             when l.TIMESTAMP is null then 'r'
             when r.TIMESTAMP is null then 'l'
             when l.TIMESTAMP <> r.TIMESTAMP then '|'
             else ' '
        end
     || case when l.REMARKS is null
              and r.REMARKS is null then ' '

             when l.REMARKS is null then 'r'
             when r.REMARKS is null then 'l'
             when l.REMARKS <> r.REMARKS then '|'
             else ' '
        end
     || case when l.PREFETCH is null
              and r.PREFETCH is null then ' '

             when l.PREFETCH is null then 'r'
             when r.PREFETCH is null then 'l'
             when l.PREFETCH <> r.PREFETCH then '|'
             else ' '
        end
     || case when l.COLUMN_FN_EVAL is null
              and r.COLUMN_FN_EVAL is null then ' '

             when l.COLUMN_FN_EVAL is null then 'r'
             when r.COLUMN_FN_EVAL is null then 'l'
             when l.COLUMN_FN_EVAL <> r.COLUMN_FN_EVAL then '|'
             else ' '
        end
     || case when l.MIXOPSEQ is null
              and r.MIXOPSEQ is null then ' '

             when l.MIXOPSEQ is null then 'r'
             when r.MIXOPSEQ is null then 'l'
             when l.MIXOPSEQ <> r.MIXOPSEQ then '|'
             else ' '
        end
     || case when l.VERSION is null
              and r.VERSION is null then ' '

             when l.VERSION is null then 'r'
             when r.VERSION is null then 'l'
             when l.VERSION <> r.VERSION then '|'
             else ' '
        end
     || case when l.COLLID is null
              and r.COLLID is null then ' '

             when l.COLLID is null then 'r'
             when r.COLLID is null then 'l'
             when l.COLLID <> r.COLLID then '|'
             else ' '
        end
     || case when l.ACCESS_DEGREE is null
              and r.ACCESS_DEGREE is null then ' '

             when l.ACCESS_DEGREE is null then 'r'
             when r.ACCESS_DEGREE is null then 'l'
             when l.ACCESS_DEGREE <> r.ACCESS_DEGREE then '|'
             else ' '
        end
     || case when l.ACCESS_PGROUP_ID is null
              and r.ACCESS_PGROUP_ID is null then ' '

             when l.ACCESS_PGROUP_ID is null then 'r'
             when r.ACCESS_PGROUP_ID is null then 'l'
             when l.ACCESS_PGROUP_ID <> r.ACCESS_PGROUP_ID then '|'
             else ' '
        end
     || case when l.JOIN_DEGREE is null
              and r.JOIN_DEGREE is null then ' '

             when l.JOIN_DEGREE is null then 'r'
             when r.JOIN_DEGREE is null then 'l'
             when l.JOIN_DEGREE <> r.JOIN_DEGREE then '|'
             else ' '
        end
     || case when l.JOIN_PGROUP_ID is null
              and r.JOIN_PGROUP_ID is null then ' '

             when l.JOIN_PGROUP_ID is null then 'r'
             when r.JOIN_PGROUP_ID is null then 'l'
             when l.JOIN_PGROUP_ID <> r.JOIN_PGROUP_ID then '|'
             else ' '
        end
     || case when l.SORTC_PGROUP_ID is null
              and r.SORTC_PGROUP_ID is null then ' '

             when l.SORTC_PGROUP_ID is null then 'r'
             when r.SORTC_PGROUP_ID is null then 'l'
             when l.SORTC_PGROUP_ID <> r.SORTC_PGROUP_ID then '|'
             else ' '
        end
     || case when l.SORTN_PGROUP_ID is null
              and r.SORTN_PGROUP_ID is null then ' '

             when l.SORTN_PGROUP_ID is null then 'r'
             when r.SORTN_PGROUP_ID is null then 'l'
             when l.SORTN_PGROUP_ID <> r.SORTN_PGROUP_ID then '|'
             else ' '
        end
     || case when l.PARALLELISM_MODE is null
              and r.PARALLELISM_MODE is null then ' '

             when l.PARALLELISM_MODE is null then 'r'
             when r.PARALLELISM_MODE is null then 'l'
             when l.PARALLELISM_MODE <> r.PARALLELISM_MODE then '|'
             else ' '
        end
     || case when l.MERGE_JOIN_COLS is null
              and r.MERGE_JOIN_COLS is null then ' '

             when l.MERGE_JOIN_COLS is null then 'r'
             when r.MERGE_JOIN_COLS is null then 'l'
             when l.MERGE_JOIN_COLS <> r.MERGE_JOIN_COLS then '|'
             else ' '
        end
     || case when l.CORRELATION_NAME is null
              and r.CORRELATION_NAME is null then ' '

             when l.CORRELATION_NAME is null then 'r'
             when r.CORRELATION_NAME is null then 'l'
             when l.CORRELATION_NAME <> r.CORRELATION_NAME then '|'
             else ' '
        end
     || case when l.PAGE_RANGE is null
              and r.PAGE_RANGE is null then ' '

             when l.PAGE_RANGE is null then 'r'
             when r.PAGE_RANGE is null then 'l'
             when l.PAGE_RANGE <> r.PAGE_RANGE then '|'
             else ' '
        end
     || case when l.JOIN_TYPE is null
              and r.JOIN_TYPE is null then ' '

             when l.JOIN_TYPE is null then 'r'
             when r.JOIN_TYPE is null then 'l'
             when l.JOIN_TYPE <> r.JOIN_TYPE then '|'
             else ' '
        end
     || case when l.GROUP_MEMBER is null
              and r.GROUP_MEMBER is null then ' '

             when l.GROUP_MEMBER is null then 'r'
             when r.GROUP_MEMBER is null then 'l'
             when l.GROUP_MEMBER <> r.GROUP_MEMBER then '|'
             else ' '
        end
     || case when l.IBM_SERVICE_DATA is null
              and r.IBM_SERVICE_DATA is null then ' '

             when l.IBM_SERVICE_DATA is null then 'r'
             when r.IBM_SERVICE_DATA is null then 'l'
             when l.IBM_SERVICE_DATA <> r.IBM_SERVICE_DATA then '|'
             else ' '
        end
     || case when l.WHEN_OPTIMIZE is null
              and r.WHEN_OPTIMIZE is null then ' '

             when l.WHEN_OPTIMIZE is null then 'r'
             when r.WHEN_OPTIMIZE is null then 'l'
             when l.WHEN_OPTIMIZE <> r.WHEN_OPTIMIZE then '|'
             else ' '
        end
     || case when l.QBLOCK_TYPE is null
              and r.QBLOCK_TYPE is null then ' '

             when l.QBLOCK_TYPE is null then 'r'
             when r.QBLOCK_TYPE is null then 'l'
             when l.QBLOCK_TYPE <> r.QBLOCK_TYPE then '|'
             else ' '
        end
     || case when l.BIND_TIME is null
              and r.BIND_TIME is null then ' '

             when l.BIND_TIME is null then 'r'
             when r.BIND_TIME is null then 'l'
             when l.BIND_TIME <> r.BIND_TIME then '|'
             else ' '
        end
     || case when l.OPTHINT is null
              and r.OPTHINT is null then ' '

             when l.OPTHINT is null then 'r'
             when r.OPTHINT is null then 'l'
             when l.OPTHINT <> r.OPTHINT then '|'
             else ' '
        end
     || case when l.HINT_USED is null
              and r.HINT_USED is null then ' '

             when l.HINT_USED is null then 'r'
             when r.HINT_USED is null then 'l'
             when l.HINT_USED <> r.HINT_USED then '|'
             else ' '
        end
     || case when l.PRIMARY_ACCESSTYPE is null
              and r.PRIMARY_ACCESSTYPE is null then ' '

             when l.PRIMARY_ACCESSTYPE is null then 'r'
             when r.PRIMARY_ACCESSTYPE is null then 'l'
             when l.PRIMARY_ACCESSTYPE <> r.PRIMARY_ACCESSTYPE then '|'
             else ' '
        end
     || case when l.PARENT_QBLOCKNO is null
              and r.PARENT_QBLOCKNO is null then ' '

             when l.PARENT_QBLOCKNO is null then 'r'
             when r.PARENT_QBLOCKNO is null then 'l'
             when l.PARENT_QBLOCKNO <> r.PARENT_QBLOCKNO then '|'
             else ' '
        end
     || case when l.TABLE_TYPE is null
              and r.TABLE_TYPE is null then ' '

             when l.TABLE_TYPE is null then 'r'
             when r.TABLE_TYPE is null then 'l'
             when l.TABLE_TYPE <> r.TABLE_TYPE then '|'
             else ' '
        end
     || case when l.TABLE_ENCODE is null
              and r.TABLE_ENCODE is null then ' '

             when l.TABLE_ENCODE is null then 'r'
             when r.TABLE_ENCODE is null then 'l'
             when l.TABLE_ENCODE <> r.TABLE_ENCODE then '|'
             else ' '
        end
     || case when l.TABLE_SCCSID is null
              and r.TABLE_SCCSID is null then ' '

             when l.TABLE_SCCSID is null then 'r'
             when r.TABLE_SCCSID is null then 'l'
             when l.TABLE_SCCSID <> r.TABLE_SCCSID then '|'
             else ' '
        end
     || case when l.TABLE_MCCSID is null
              and r.TABLE_MCCSID is null then ' '

             when l.TABLE_MCCSID is null then 'r'
             when r.TABLE_MCCSID is null then 'l'
             when l.TABLE_MCCSID <> r.TABLE_MCCSID then '|'
             else ' '
        end
     || case when l.TABLE_DCCSID is null
              and r.TABLE_DCCSID is null then ' '

             when l.TABLE_DCCSID is null then 'r'
             when r.TABLE_DCCSID is null then 'l'
             when l.TABLE_DCCSID <> r.TABLE_DCCSID then '|'
             else ' '
        end
     || case when l.ROUTINE_ID is null
              and r.ROUTINE_ID is null then ' '

             when l.ROUTINE_ID is null then 'r'
             when r.ROUTINE_ID is null then 'l'
             when l.ROUTINE_ID <> r.ROUTINE_ID then '|'
             else ' '
        end
     || case when l.CTEREF is null
              and r.CTEREF is null then ' '

             when l.CTEREF is null then 'r'
             when r.CTEREF is null then 'l'
             when l.CTEREF <> r.CTEREF then '|'
             else ' '
        end
     || case when l.STMTTOKEN is null
              and r.STMTTOKEN is null then ' '

             when l.STMTTOKEN is null then 'r'
             when r.STMTTOKEN is null then 'l'
             when l.STMTTOKEN <> r.STMTTOKEN then '|'
             else ' '
        end
     || case when l.PARENT_PLANNO is null
              and r.PARENT_PLANNO is null then ' '

             when l.PARENT_PLANNO is null then 'r'
             when r.PARENT_PLANNO is null then 'l'
             when l.PARENT_PLANNO <> r.PARENT_PLANNO then '|'
             else ' '
        end
     || case when l.BIND_EXPLAIN_ONLY is null
              and r.BIND_EXPLAIN_ONLY is null then ' '

             when l.BIND_EXPLAIN_ONLY is null then 'r'
             when r.BIND_EXPLAIN_ONLY is null then 'l'
             when l.BIND_EXPLAIN_ONLY <> r.BIND_EXPLAIN_ONLY then '|'
             else ' '
        end
     || case when l.SECTNOI is null
              and r.SECTNOI is null then ' '

             when l.SECTNOI is null then 'r'
             when r.SECTNOI is null then 'l'
             when l.SECTNOI <> r.SECTNOI then '|'
             else ' '
        end
     || case when l.EXPLAIN_TIME is null
              and r.EXPLAIN_TIME is null then ' '

             when l.EXPLAIN_TIME is null then 'r'
             when r.EXPLAIN_TIME is null then 'l'
             when l.EXPLAIN_TIME <> r.EXPLAIN_TIME then '|'
             else ' '
        end
     || case when l.MERGC is null
              and r.MERGC is null then ' '

             when l.MERGC is null then 'r'
             when r.MERGC is null then 'l'
             when l.MERGC <> r.MERGC then '|'
             else ' '
        end
     || case when l.MERGN is null
              and r.MERGN is null then ' '

             when l.MERGN is null then 'r'
             when r.MERGN is null then 'l'
             when l.MERGN <> r.MERGN then '|'
             else ' '
        end
         , value(l.QUERYNO
                ,r.QUERYNO
                )  QUERYNO
         , value(l.QBLOCKNO
                ,r.QBLOCKNO
                )  QBLOCKNO
         , value(l.APPLNAME
                ,r.APPLNAME
                )  APPLNAME
         , value(l.PROGNAME
                ,r.PROGNAME
                )  PROGNAME
         , value(l.PLANNO
                ,r.PLANNO
                )  PLANNO
         , value(l.METHOD
                ,r.METHOD
                )  METHOD
         , value(l.CREATOR
                ,r.CREATOR
                )  CREATOR
         , value(l.TNAME
                ,r.TNAME
                )  TNAME
         , value(l.TABNO
                ,r.TABNO
                )  TABNO
         , value(l.ACCESSTYPE
                ,r.ACCESSTYPE
                )  ACCESSTYPE
         , value(l.MATCHCOLS
                ,r.MATCHCOLS
                )  MATCHCOLS
         , value(l.ACCESSCREATOR
                ,r.ACCESSCREATOR
                )  ACCESSCREATOR
         , value(l.ACCESSNAME
                ,r.ACCESSNAME
                )  ACCESSNAME
         , value(l.INDEXONLY
                ,r.INDEXONLY
                )  INDEXONLY
         , value(l.SORTN_UNIQ
                ,r.SORTN_UNIQ
                )  SORTN_UNIQ
         , value(l.SORTN_JOIN
                ,r.SORTN_JOIN
                )  SORTN_JOIN
         , value(l.SORTN_ORDERBY
                ,r.SORTN_ORDERBY
                )  SORTN_ORDERBY
         , value(l.SORTN_GROUPBY
                ,r.SORTN_GROUPBY
                )  SORTN_GROUPBY
         , value(l.SORTC_UNIQ
                ,r.SORTC_UNIQ
                )  SORTC_UNIQ
         , value(l.SORTC_JOIN
                ,r.SORTC_JOIN
                )  SORTC_JOIN
         , value(l.SORTC_ORDERBY
                ,r.SORTC_ORDERBY
                )  SORTC_ORDERBY
         , value(l.SORTC_GROUPBY
                ,r.SORTC_GROUPBY
                )  SORTC_GROUPBY
         , value(l.TSLOCKMODE
                ,r.TSLOCKMODE
                )  TSLOCKMODE
         , value(l.TIMESTAMP
                ,r.TIMESTAMP
                )  TIMESTAMP
         , value(l.REMARKS
                ,r.REMARKS
                )  REMARKS
         , value(l.PREFETCH
                ,r.PREFETCH
                )  PREFETCH
         , value(l.COLUMN_FN_EVAL
                ,r.COLUMN_FN_EVAL
                )  COLUMN_FN_EVAL
         , value(l.MIXOPSEQ
                ,r.MIXOPSEQ
                )  MIXOPSEQ
         , value(l.VERSION
                ,r.VERSION
                )  VERSION
         , value(l.COLLID
                ,r.COLLID
                )  COLLID
         , value(l.ACCESS_DEGREE
                ,r.ACCESS_DEGREE
                )  ACCESS_DEGREE
         , value(l.ACCESS_PGROUP_ID
                ,r.ACCESS_PGROUP_ID
                )  ACCESS_PGROUP_ID
         , value(l.JOIN_DEGREE
                ,r.JOIN_DEGREE
                )  JOIN_DEGREE
         , value(l.JOIN_PGROUP_ID
                ,r.JOIN_PGROUP_ID
                )  JOIN_PGROUP_ID
         , value(l.SORTC_PGROUP_ID
                ,r.SORTC_PGROUP_ID
                )  SORTC_PGROUP_ID
         , value(l.SORTN_PGROUP_ID
                ,r.SORTN_PGROUP_ID
                )  SORTN_PGROUP_ID
         , value(l.PARALLELISM_MODE
                ,r.PARALLELISM_MODE
                )  PARALLELISM_MODE
         , value(l.MERGE_JOIN_COLS
                ,r.MERGE_JOIN_COLS
                )  MERGE_JOIN_COLS
         , value(l.CORRELATION_NAME
                ,r.CORRELATION_NAME
                )  CORRELATION_NAME
         , value(l.PAGE_RANGE
                ,r.PAGE_RANGE
                )  PAGE_RANGE
         , value(l.JOIN_TYPE
                ,r.JOIN_TYPE
                )  JOIN_TYPE
         , value(l.GROUP_MEMBER
                ,r.GROUP_MEMBER
                )  GROUP_MEMBER
         , value(l.IBM_SERVICE_DATA
                ,r.IBM_SERVICE_DATA
                )  IBM_SERVICE_DATA
         , value(l.WHEN_OPTIMIZE
                ,r.WHEN_OPTIMIZE
                )  WHEN_OPTIMIZE
         , value(l.QBLOCK_TYPE
                ,r.QBLOCK_TYPE
                )  QBLOCK_TYPE
         , value(l.BIND_TIME
                ,r.BIND_TIME
                )  BIND_TIME
         , value(l.OPTHINT
                ,r.OPTHINT
                )  OPTHINT
         , value(l.HINT_USED
                ,r.HINT_USED
                )  HINT_USED
         , value(l.PRIMARY_ACCESSTYPE
                ,r.PRIMARY_ACCESSTYPE
                )  PRIMARY_ACCESSTYPE
         , value(l.PARENT_QBLOCKNO
                ,r.PARENT_QBLOCKNO
                )  PARENT_QBLOCKNO
         , value(l.TABLE_TYPE
                ,r.TABLE_TYPE
                )  TABLE_TYPE
         , value(l.TABLE_ENCODE
                ,r.TABLE_ENCODE
                )  TABLE_ENCODE
         , value(l.TABLE_SCCSID
                ,r.TABLE_SCCSID
                )  TABLE_SCCSID
         , value(l.TABLE_MCCSID
                ,r.TABLE_MCCSID
                )  TABLE_MCCSID
         , value(l.TABLE_DCCSID
                ,r.TABLE_DCCSID
                )  TABLE_DCCSID
         , value(l.ROUTINE_ID
                ,r.ROUTINE_ID
                )  ROUTINE_ID
         , value(l.CTEREF
                ,r.CTEREF
                )  CTEREF
         , value(l.STMTTOKEN
                ,r.STMTTOKEN
                )  STMTTOKEN
         , value(l.PARENT_PLANNO
                ,r.PARENT_PLANNO
                )  PARENT_PLANNO
         , value(l.BIND_EXPLAIN_ONLY
                ,r.BIND_EXPLAIN_ONLY
                )  BIND_EXPLAIN_ONLY
         , value(l.SECTNOI
                ,r.SECTNOI
                )  SECTNOI
         , value(l.EXPLAIN_TIME
                ,r.EXPLAIN_TIME
                )  EXPLAIN_TIME
         , value(l.MERGC
                ,r.MERGC
                )  MERGC
         , value(l.MERGN
                ,r.MERGN
                )  MERGN
$#out                                              20150211 15:09:47
}¢--- A540769.WK.SQL(CATCOLC2) cre=2015-02-11 mod=2015-02-11-20.28.48 A540769 ---
$#@
call sqlConnect DP4G
$*( generate sql to compare the columns of two tables
--cr1 = CMNBATCH
--cr2 = A540769 $*)
$<>
$>. fEdit('~tmp.sql(catcolco)')
$<=¢
with t (tb, crL, crR) as
(
   select l.name, l.creator, r.creator
      from sysibm.sysTables l
        join sysibm.sysTables r
          on l.name = r.name
      where l.creator = 'CMNBATCH'
         and r.creator = 'A540769'
         and r.dbName = 'DB2PLAN'
         and r.type   = 'T'
)
, c as
(
   select c.name col, colType ct, tb, crL, crR, c.*
     from t
      join sysibm.sysColumns c
        on c.tbCreator = crL and c.tbName = t.tb
)
select * from c order by tb, colNo
$! call sqlSel
$|
tb = ''
$forWith i $@¢
     if tb <> $TB & tb \== '' then
         $@tbEnd
     if tb <> $TB then $@¢
         tb = $TB
         $@tbBegin
         $!
     if pos('LOB', $COLTYPE) > 0 then
         t1 = 'l'
     else if $NULLS = 'Y' then
         t1 = 'n'
     else
         t1 = '='
     call mAdd col, t1 $COL
     if t1 \== '=' then $@=¢
        || case when l.$COL is null
                 and r.$COL is null then ' '
                when l.$COL is null then 'r'
                when r.$COL is null then 'l'
        $@ if t1 \== 'l' then $@=¢
                when l.$COL
                  <> r.$COL then '|'
        $!
        $@ if t1 == 'l' then $@=¢
                when length(l.$COL)
                  <> length(r.$COL) then '|'
        $!
                else ' '
           end
         $!
     $!
$@tbEnd
$proc $@=/tbBegin/
    $@ m.col.0 = 0
    $= crL = $CRL
    $= crR = $CRR
    $= tb  = $TB
with j as
(
  select case when l.$COL is null
             and r.$COL is null then 'null'
            when l.$COL is null then 'righ'
            when r.$COL is null then 'left'
            else 'both' end  lr
      , ''
$/tbBegin/
$proc $@=/tbEnd/
                cmp
     $do cx=1 to m.col.0 $@=¢
         $@ parse var m.col.cx n1    c1
         $=col =- c1
         , value(l.$col
                ,r.$col
                )  $col
         $!
     from $crL.$tb l
       full outer join $crR.$tb r
     $= op = on
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx t1    c1
         $=col =- c1
         if t1 == '=' then $@=¢
      $op l.$col
        = r.$col
      $=op=and
         $!
         $!
)
, lu as
(
  select count(*) cnt
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx n1    c1
         if n1 == '=' then
           $$- '      ,' c1
         $!
    from $crL.$tb
    group by 0
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx n1    c1
         if n1 == '=' then
           $$- '      ,' c1
         $!
)
, ru as
(
  select count(*) cnt
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx n1    c1
         if n1 == '=' then
           $$- '      ,' c1
         $!
    from $crR.$tb
    group by 0
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx n1    c1
         if n1 == '=' then
           $$- '      ,' c1
         $!
)
select 'left', '$crL.$tb'
      , sum(cnt), count(*)
    from lu
union all  select 'right', '$crR.$tb'
      , sum(cnt), count(*)
    from ru
union all select lr, cmp, count(*), cast(null as int)
    from j
    group by lr, cmp
;
-- select *
--  from j
--  where not (lr = 'both' and cmp = '')
--  order by 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ;
$/tbEnd/
$#out                                              20150211 19:00:15
$#out                                              20150211 18:56:22
$#out                                              20150211 18:53:14
$#out                                              20150211 18:49:23
$#out                                              20150211 18:47:02
$#out                                              20150211 17:14:03
$#out                                              20150211 17:12:56
$#out                                              20150211 17:09:18
}¢--- A540769.WK.SQL(CATCOLDI) cre=2008-02-04 mod=2016-06-23-08.35.47 A540769 ---
set current path oa1p;
with t0 as
(
   select *
     from sysibm.sysTables
      where creator = 'QZ91CRS'   and name = 'TQZ91WK911K1'
)
, t (cr, tb, tbCard ) as
(
   select creator, name, cardF
     from t0
)
, ti (cols, col, colGroup, type, cardF, freqF, val, tb, cr, tbCard) as
(
   select 0, '*table runSta', '', 'tRun', tbCard, -1, '', t.* from t
   union select 0, '*table RTS', '', 'tRTS'
       , sum(real(totalRows)), -1, '', t.creator, t.name
       , min(s.partitions)
     from t0 t
      join sysibm.sysTableSpace s
        on t.dbName = s.dbName and t.tsName = s.name
     left join sysibm.sysTableSpaceStats r
       on t.dbName = r.dbName and t.tsName = r.name
         and t.dbid = r.dbid and s.psid =r.psid
     group by t.creator, t.name, t.cardf
)
, c (cols, col, colGroup, type, cardF, freqF, val, tb, cr, tbCard) as
(
 select 1, name, hex(colNo), 'Col'
    , colCardF, -1, '', t.*
    from t join sysibm.sysColumns c
        on c.tbCreator = t.cr and c.tbName = t.tb
)
, d (cols, col, colGroup, type, cardF, freqF, val, tb, cr, tbCard) as
(
  select numColumns, name, hex(colGroupColNo), type, cardF, frequencyF
         , case when type = 'H'
                     then quantileNo || ':'
                       || hex(case when length(strip(lowValue, t))<50
                                  then strip(lowValue, t)
                                  else left(lowValue, 50) end)
                       || ' - '
                       || hex(case when length(strip(highValue, t))<50
                                  then strip(highValue, t)
                                  else left(highValue, 50) end)
                when type = 'F'
                    then hex(case when length(strip(colValue, t))<100
                                  then strip(colValue, t)
                                  else left(colValue, 100) end)
                else ''
           end
         , t.*
    from sysibm.sysColDist d join t
      on d.tbOwner = t.cr and d.tbName = t.tb
)
, e as
(
  select cols
        , case when d.cols = 1 then d.col
               else (select c.col from c
                       where c.cr = d.cr and c.tb = d.tb
                           and c.colGroup = right(d.colGroup, 4))
            end col
       ,  case when d.cols <> 1 then d.colGroup
               else (select c.colGroup from c
                       where c.cr = d.cr and c.tb = d.tb
                           and c.col = d.col)
          end colGroup
       , type, cardf, freqF, val
       , tb, cr, tbCard
      from d
)
, o1 as
(
  select * from c
  union all select e.* from e
  union all select * from ti
)
, o2 (cols, col, colGroup, type, cardF, freqF, val, tb, cr, tbCard) as
(
  select cols, col, colGroup,type
      , case when cardf <= 0 then null else cardf end
      , case when freqf <  0 then null else freqf end
      , val, tb, cr
      , case when tbCard <  0 then null else tbCard end
    from o1
)
, o3 (cols, col, colGroup, type, cardF, freqF, val, tb, cr, avgRows) as
(
  select cols, col, colGroup, type, cardF, freqF, val, tb, cr
      , case when type in ('C', 'COL') then tbCard / cardF
             when type in ('F', 'N')   then tbCard * freqF
             when type in ('tRTS')     then tbCard end
    from o2
)
select smallint(cols) cols
    , substr(col, 1, 12)
    , type
    , substr(fosFmte7(cardf), 1, 7) cardinF
    , substr(fosFmte7(freqf), 1, 7) frequeF
    , substr(fosFmte7(avgRows), 1, 7) avgRows
    , 'x' || colGroup colGroup, val, cr, tb
    from o3
    order by cr, tb, colGroup || x'0000', type, cardf Desc, freqF desc
 ; x;
select smallint(cols) cols
    , substr(col, 1, 12)
    , type
    , substr(fosFmte7(cardf), 1, 7) cardinF
    , substr(fosFmte7(freqf), 1, 7) frequeF
    , substr(fosFmte7(case when tbCard < 0 then null
          when type in ('C', 'Col') and cardF > 0 then tbCard / cardF
          when type in ('F', 'N') and freqF >= 0 then tbCard * freqF
          else null end), 1, 7) avgRows
    , colGroup, val, cr, tb
    from o
    order by cr, tb, colGroup || x'0000', type, cardf Desc, freqF desc
 ; x;
;x;
  union all select 1, name, '', 'Col'
    , colCardF, tbName, tbCreator
    from sysibm.sysColumns
    where (tbCreator, tbName) in (select * from t)
)
select * from d
;
set current path oa1p;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with t (cr, tb) as
(
   select creator, name
     from sysibm.sysTables
      where creator = 'OA1P' and name = 'TBP205A1'
)
, d (cols, nam1, colGroup, type, cardF, tb, cr) as
( select numColumns, name, colGroupColNo, type, cardF
         , tbName, tbOwner
    from sysibm.sysColDist
    where (tbOwner, tbName) in (select * from t)
  union all select 1, name, '', 'Col'
    , colCardF, tbName, tbCreator
    from sysibm.sysColumns
    where (tbCreator, tbName) in (select * from t)
)
select * from d
;
explain plan set queryno = 7   for
with d (cols, nam1, colGroup, type, cardF, tb, cr) as
( select numColumns, name, colGroupColNo, type, cardF
         , tbName, tbOwner
    from sysibm.sysColDist
  union all select 1, name, '', 'Col'
    , colCardF, tbName, tbCreator
    from sysibm.sysColumns
)
select * from d
    where cr = 'OA1P' and tb = 'TBP205A1'
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
with t (cr, tb) as
(
   select 'OA1P', 'TBP205A1' from sysibm.sysDummy1
)
, d (cols, nam1, colGroup, type, cardF, tb, cr) as
( select numColumns, name, colGroupColNo, type, cardF
         , tbName, tbOwner
    from sysibm.sysColDist
    where (tbOwner, tbName) in (select * from t)
  union all select 1, name, '', 'Col'
    , colCardF, tbName, tbCreator
    from sysibm.sysColumns
    where (tbCreator, tbName) in (select * from t)
)
select * from d
;x;
,
    case when numColumns = 1 then name
    else ( select name || '>' || hex(colNo) || ':' || varchar(colNo)
           from sysibm.sysColumns c
           where c.tbCreator = cd.tbOwner
             and c.tbName    = cd.tbName
             and hex(c.colNo) = right('FFFF'||hex(cd.colGroupColNo),4)
          )
    end lastCol
    , type, cardF, hex(colgroupcolno) colGroup
    , tbOwner cr, tbName tb
    from sysibm.sysColDist cd
 -- where type = 'C'
  union all select 1 cols
    , name || '>' || hex(colNo) || ':' || varchar(colNo) lastCol
    , 'col' type
    , colCardF cardF, hex(colNo) colGroup
    , tbCreator cr, tbName tb
    from sysibm.sysColumns
)
,ith c1 as
( select numColumns cols,
    case when numColumns = 1 then name
    else ( select name || '>' || hex(colNo) || ':' || varchar(colNo)
           from sysibm.sysColumns c
           where c.tbCreator = cd.tbOwner
             and c.tbName    = cd.tbName
             and hex(c.colNo) = right('FFFF'||hex(cd.colGroupColNo),4)
          )
    end lastCol
    , type, cardF, hex(colgroupcolno) colGroup
    , tbOwner cr, tbName tb
    from sysibm.sysColDist cd
 -- where type = 'C'
  union all select 1 cols
    , name || '>' || hex(colNo) || ':' || varchar(colNo) lastCol
    , 'col' type
    , colCardF cardF, hex(colNo) colGroup
    , tbCreator cr, tbName tb
    from sysibm.sysColumns
)
select smallint(cols) cols
    , substr(lastCol, 1, 24)
    , type
    , fosFmte7(cardf), colGroup, cr, tb
    from c1
    where cr = 'OA1P' and tb = 'TBP205A1'
    order by cr, tb, type, colGroup || x'0000'
 ; x;
???????
select
    ( select substr(name || '>' || hex(colNo) || ':' || varchar(colNo)
                     , 1, 24)
           from sysibm.sysColumns c
           where c.tbCreator = cd.tbOwner
             and c.tbName    = cd.tbName
             and hex(c.colNo) = right('FFFF'||hex(cd.colGroupColNo),4)
    ) "lastCol"
    , cardF, hex(colgroupcolno)
    , name
    , cd.*
    from sysibm.sysColDist cd
    where tbowner = 'OA1T' and tbName = 'TRP303A2'
          and type = 'C'
    --    and colValue like x'000000' || '%'
    order by tbOwner, tbName,
             colGroupColNo || x'0000'
;x;
select hex(colValue), hex(colgroupcolno), hex(lowvalue), c.*
    from sysibm.sysColDist c
    where tbowner = 'OA1T' and tbName = 'TRP303A2'
          and type = 'C'
    --    and colValue like x'000000' || '%'
;x;
select count(*), tbOwner, tbName, name, type, COLGROUPCOLNO,QUANTILENO
        --    ,colvalue -- , lowvalue, hex(colValue)
    from sysibm.sysColDist c
 -- where tbowner = 'OA1T' and tbName = 'TCK051A1'
    group by tbOwner, tbName, name, type, COLGROUPCOLNO,QUANTILENO
          --  ,colvalue -- , lowvalue
    order by 1 desc
    fetch first 100 rows only
    with ur
;;;
select char(strip(tbOwner)||'.'||strip(tbName)||'.'||strip(name), 40),
    frequency, frequencyf, cardf,
    numColumns, hex(COLGROUPCOLNO), c.*
    where tbOwner = 'A540769' and tbName = 'TTR009A1'
;
select       colNo, name
    from sysibm.sysColumns
    where tbCreator = 'A540769' and tbName = 'TTR009A1'
}¢--- A540769.WK.SQL(CATCOLIN) cre=2013-02-01 mod=2013-02-01-09.51.57 A540769 ---
$#@
call sqlConnect
$;
$@=¢
select tbCreator cr, tbName tb, name col, colNo,colType type, length len
    from sysibm.syscolumns
    where tbCreator = 'SYSIBM' and tbName like 'SYSCOLUM%'
    order by tbCreator, tbName, colNo
$!
$| call sqlSel
$|  curTb = ''
    $@forWith o $@¢
        if curTb \= strip($CR)'.'strip($TB) then do
            curTb = strip($CR)'.'strip($TB)
            call out '***' curTb
            end
        call out f('@COLNO%4i @COL%-30C @TYPE%-8C @LEN%5i', $.$o)
        $!
$#out                                              20130201 09:50:18
*** SYSIBM.SYSCOLUMNS
   1 NAME                           VARCHAR    128
   2 TBNAME                         VARCHAR    128
   3 TBCREATOR                      VARCHAR    128
   4 COLNO                          SMALLINT     2
   5 COLTYPE                        CHAR         8
   6 LENGTH                         SMALLINT     2
   7 SCALE                          SMALLINT     2
   8 NULLS                          CHAR         1
   9 COLCARD                        INTEGER      4
  10 HIGH2KEY                       VARCHAR   2000
  11 LOW2KEY                        VARCHAR   2000
  12 UPDATES                        CHAR         1
  13 IBMREQD                        CHAR         1
  14 REMARKS                        VARCHAR    762
  15 DEFAULT                        CHAR         1
  16 KEYSEQ                         SMALLINT     2
  17 FOREIGNKEY                     CHAR         1
  18 FLDPROC                        CHAR         1
  19 LABEL                          VARCHAR     90
  20 STATSTIME                      TIMESTMP    10
  21 DEFAULTVALUE                   VARCHAR   1536
  22 COLCARDF                       FLOAT        8
  23 COLSTATUS                      CHAR         1
  24 LENGTH2                        INTEGER      4
  25 DATATYPEID                     INTEGER      4
  26 SOURCETYPEID                   INTEGER      4
  27 TYPESCHEMA                     VARCHAR    128
  28 TYPENAME                       VARCHAR    128
  29 CREATEDTS                      TIMESTMP    10
  30 STATS_FORMAT                   CHAR         1
  31 PARTKEY_COLSEQ                 SMALLINT     2
  32 PARTKEY_ORDERING               CHAR         1
  33 ALTEREDTS                      TIMESTMP    10
  34 CCSID                          INTEGER      4
  35 HIDDEN                         CHAR         1
  36 RELCREATED                     CHAR         1
  37 CONTROL_ID                     INTEGER      4
  38 XML_TYPEMOD_ID                 INTEGER      4
  39 PERIOD                         CHAR         1
  40 GENERATED_ATTR                 CHAR         1
  41 HASHKEY_COLSEQ                 SMALLINT     2
*** SYSIBM.SYSCOLUMNS_HIST
   1 NAME                           VARCHAR    128
   2 TBNAME                         VARCHAR    128
   3 TBCREATOR                      VARCHAR    128
   4 COLNO                          SMALLINT     2
   5 COLTYPE                        CHAR         8
   6 LENGTH                         SMALLINT     2
   7 LENGTH2                        INTEGER      4
   8 NULLS                          CHAR         1
   9 HIGH2KEY                       VARCHAR   2000
  10 LOW2KEY                        VARCHAR   2000
  11 STATSTIME                      TIMESTMP    10
  12 COLCARDF                       FLOAT        8
  13 IBMREQD                        CHAR         1
  14 STATS_FORMAT                   CHAR         1
*** SYSIBM.SYSCOLUMNS_SHORT_VIEW
   1 NAME                           CHAR        18
   2 TBNAME                         CHAR        18
   3 TBCREATOR                      CHAR        18
   4 COLNO                          SMALLINT     2
   5 COLTYPE                        CHAR         8
   6 LENGTH                         SMALLINT     2
   7 SCALE                          SMALLINT     2
   8 NULLS                          CHAR         1
   9 COLCARD                        INTEGER      4
  10 HIGH2KEY                       CHAR        18
  11 LOW2KEY                        CHAR        18
  12 UPDATES                        CHAR         1
  13 IBMREQD                        CHAR         1
  14 REMARKS                        CHAR        18
  15 DEFAULT                        CHAR         1
  16 KEYSEQ                         SMALLINT     2
  17 FOREIGNKEY                     CHAR         1
  18 FLDPROC                        CHAR         1
  19 LABEL                          CHAR        18
  20 STATSTIME                      TIMESTMP    10
  21 DEFAULTVALUE                   CHAR        18
  22 COLCARDF                       FLOAT        8
  23 COLSTATUS                      CHAR         1
  24 LENGTH2                        INTEGER      4
  25 DATATYPEID                     INTEGER      4
  26 SOURCETYPEID                   INTEGER      4
  27 TYPESCHEMA                     CHAR        18
  28 TYPENAME                       CHAR        18
  29 CREATEDTS                      TIMESTMP    10
  30 STATS_FORMAT                   CHAR         1
  31 PARTKEY_COLSEQ                 SMALLINT     2
  32 PARTKEY_ORDERING               CHAR         1
  33 ALTEREDTS                      TIMESTMP    10
  34 CCSID                          INTEGER      4
  35 HIDDEN                         CHAR         1
$#out                                              20130201 09:49:34
*** SYSIBM.SYSCOLUMNS
   1 NAME                 VARCHAR    128
   2 TBNAME               VARCHAR    128
   3 TBCREATOR            VARCHAR    128
   4 COLNO                SMALLINT     2
   5 COLTYPE              CHAR         8
   6 LENGTH               SMALLINT     2
   7 SCALE                SMALLINT     2
   8 NULLS                CHAR         1
   9 COLCARD              INTEGER      4
  10 HIGH2KEY             VARCHAR   2000
  11 LOW2KEY              VARCHAR   2000
  12 UPDATES              CHAR         1
  13 IBMREQD              CHAR         1
  14 REMARKS              VARCHAR    762
  15 DEFAULT              CHAR         1
  16 KEYSEQ               SMALLINT     2
  17 FOREIGNKEY           CHAR         1
  18 FLDPROC              CHAR         1
  19 LABEL                VARCHAR     90
  20 STATSTIME            TIMESTMP    10
  21 DEFAULTVALUE         VARCHAR   1536
  22 COLCARDF             FLOAT        8
  23 COLSTATUS            CHAR         1
  24 LENGTH2              INTEGER      4
  25 DATATYPEID           INTEGER      4
  26 SOURCETYPEID         INTEGER      4
  27 TYPESCHEMA           VARCHAR    128
  28 TYPENAME             VARCHAR    128
  29 CREATEDTS            TIMESTMP    10
  30 STATS_FORMAT         CHAR         1
  31 PARTKEY_COLSEQ       SMALLINT     2
  32 PARTKEY_ORDERING     CHAR         1
  33 ALTEREDTS            TIMESTMP    10
  34 CCSID                INTEGER      4
  35 HIDDEN               CHAR         1
  36 RELCREATED           CHAR         1
  37 CONTROL_ID           INTEGER      4
  38 XML_TYPEMOD_ID       INTEGER      4
  39 PERIOD               CHAR         1
  40 GENERATED_ATTR       CHAR         1
  41 HASHKEY_COLSEQ       SMALLINT     2
*** SYSIBM.SYSCOLUMNS_HIST
   1 NAME                 VARCHAR    128
   2 TBNAME               VARCHAR    128
   3 TBCREATOR            VARCHAR    128
   4 COLNO                SMALLINT     2
   5 COLTYPE              CHAR         8
   6 LENGTH               SMALLINT     2
   7 LENGTH2              INTEGER      4
   8 NULLS                CHAR         1
   9 HIGH2KEY             VARCHAR   2000
  10 LOW2KEY              VARCHAR   2000
  11 STATSTIME            TIMESTMP    10
  12 COLCARDF             FLOAT        8
  13 IBMREQD              CHAR         1
  14 STATS_FORMAT         CHAR         1
*** SYSIBM.SYSCOLUMNS_SHORT_VIEW
   1 NAME                 CHAR        18
   2 TBNAME               CHAR        18
   3 TBCREATOR            CHAR        18
   4 COLNO                SMALLINT     2
   5 COLTYPE              CHAR         8
   6 LENGTH               SMALLINT     2
   7 SCALE                SMALLINT     2
   8 NULLS                CHAR         1
   9 COLCARD              INTEGER      4
  10 HIGH2KEY             CHAR        18
  11 LOW2KEY              CHAR        18
  12 UPDATES              CHAR         1
  13 IBMREQD              CHAR         1
  14 REMARKS              CHAR        18
  15 DEFAULT              CHAR         1
  16 KEYSEQ               SMALLINT     2
  17 FOREIGNKEY           CHAR         1
  18 FLDPROC              CHAR         1
  19 LABEL                CHAR        18
  20 STATSTIME            TIMESTMP    10
  21 DEFAULTVALUE         CHAR        18
  22 COLCARDF             FLOAT        8
  23 COLSTATUS            CHAR         1
  24 LENGTH2              INTEGER      4
  25 DATATYPEID           INTEGER      4
  26 SOURCETYPEID         INTEGER      4
  27 TYPESCHEMA           CHAR        18
  28 TYPENAME             CHAR        18
  29 CREATEDTS            TIMESTMP    10
  30 STATS_FORMAT         CHAR         1
  31 PARTKEY_COLSEQ       SMALLINT     2
  32 PARTKEY_ORDERING     CHAR         1
  33 ALTEREDTS            TIMESTMP    10
  34 CCSID                INTEGER      4
  35 HIDDEN               CHAR         1
$#out                                              20130201 09:48:28
*** SYSIBM.SYSCOLUMNS
   1 NAME             VARCHAR  128
   2 TBNAME           VARCHAR  128
   3 TBCREATOR        VARCHAR  128
   4 COLNO            SMALLINT 2
   5 COLTYPE          CHAR     8
   6 LENGTH           SMALLINT 2
   7 SCALE            SMALLINT 2
   8 NULLS            CHAR     1
   9 COLCARD          INTEGER  4
  10 HIGH2KEY         VARCHAR  2000
  11 LOW2KEY          VARCHAR  2000
  12 UPDATES          CHAR     1
  13 IBMREQD          CHAR     1
  14 REMARKS          VARCHAR  762
  15 DEFAULT          CHAR     1
  16 KEYSEQ           SMALLINT 2
  17 FOREIGNKEY       CHAR     1
  18 FLDPROC          CHAR     1
  19 LABEL            VARCHAR  90
  20 STATSTIME        TIMESTMP 10
  21 DEFAULTVALUE     VARCHAR  1536
  22 COLCARDF         FLOAT    8
  23 COLSTATUS        CHAR     1
  24 LENGTH2          INTEGER  4
  25 DATATYPEID       INTEGER  4
  26 SOURCETYPEID     INTEGER  4
  27 TYPESCHEMA       VARCHAR  128
  28 TYPENAME         VARCHAR  128
  29 CREATEDTS        TIMESTMP 10
  30 STATS_FORMAT     CHAR     1
  31 PARTKEY_COLSEQ   SMALLINT 2
  32 PARTKEY_ORDERING CHAR     1
  33 ALTEREDTS        TIMESTMP 10
  34 CCSID            INTEGER  4
  35 HIDDEN           CHAR     1
  36 RELCREATED       CHAR     1
  37 CONTROL_ID       INTEGER  4
  38 XML_TYPEMOD_ID   INTEGER  4
  39 PERIOD           CHAR     1
  40 GENERATED_ATTR   CHAR     1
  41 HASHKEY_COLSEQ   SMALLINT 2
*** SYSIBM.SYSCOLUMNS_HIST
   1 NAME             VARCHAR  128
   2 TBNAME           VARCHAR  128
   3 TBCREATOR        VARCHAR  128
   4 COLNO            SMALLINT 2
   5 COLTYPE          CHAR     8
   6 LENGTH           SMALLINT 2
   7 LENGTH2          INTEGER  4
   8 NULLS            CHAR     1
   9 HIGH2KEY         VARCHAR  2000
  10 LOW2KEY          VARCHAR  2000
  11 STATSTIME        TIMESTMP 10
  12 COLCARDF         FLOAT    8
  13 IBMREQD          CHAR     1
  14 STATS_FORMAT     CHAR     1
*** SYSIBM.SYSCOLUMNS_SHORT_VIEW
   1 NAME             CHAR     18
   2 TBNAME           CHAR     18
   3 TBCREATOR        CHAR     18
   4 COLNO            SMALLINT 2
   5 COLTYPE          CHAR     8
   6 LENGTH           SMALLINT 2
   7 SCALE            SMALLINT 2
   8 NULLS            CHAR     1
   9 COLCARD          INTEGER  4
  10 HIGH2KEY         CHAR     18
  11 LOW2KEY          CHAR     18
  12 UPDATES          CHAR     1
  13 IBMREQD          CHAR     1
  14 REMARKS          CHAR     18
  15 DEFAULT          CHAR     1
  16 KEYSEQ           SMALLINT 2
  17 FOREIGNKEY       CHAR     1
  18 FLDPROC          CHAR     1
  19 LABEL            CHAR     18
  20 STATSTIME        TIMESTMP 10
  21 DEFAULTVALUE     CHAR     18
  22 COLCARDF         FLOAT    8
  23 COLSTATUS        CHAR     1
  24 LENGTH2          INTEGER  4
  25 DATATYPEID       INTEGER  4
  26 SOURCETYPEID     INTEGER  4
  27 TYPESCHEMA       CHAR     18
  28 TYPENAME         CHAR     18
  29 CREATEDTS        TIMESTMP 10
  30 STATS_FORMAT     CHAR     1
  31 PARTKEY_COLSEQ   SMALLINT 2
  32 PARTKEY_ORDERING CHAR     1
  33 ALTEREDTS        TIMESTMP 10
  34 CCSID            INTEGER  4
  35 HIDDEN           CHAR     1
$#out                                              20130201 09:42:35
}¢--- A540769.WK.SQL(CATCOLLE) cre=2013-10-22 mod=2013-10-22-16.29.22 A540769 ---
with c as
(
  select  recLength
      , sum(length) leSum
      , sum(case when nulls = 'Y' and colType not like '%LOB%'
                and colType <> 'XML' then 1 else 0 end) leNul
      , sum(case when colType like '%VAR%' or colType = 'ROWID' then 0
         when colType = 'DECIMAL' then int(floor(real(length)/2)+1)
         when colType like '%LOB%' or colType = 'XML' then 2 + length
                                  else length end) leFix
      , sum(case when colType like '%VAR%' or coltype = 'ROWID'
                          then 2+length         else 0 end) leVa
      , case when edProc = '' then 0 else 10 end edProc
      , t.creator, t.name, t.type
    from sysibm.sysTables t join sysibm.sysColumns c
      on t.creator = c.tbCreator and t.name = c.tbName
    where t.name like '%' and type not in ('V', 'A', 'P', 'X')
    group by t.creator, t.name, t.recLength, t.type, t.edProc
)
select leFix+leVa+leNul+edProc+8, c.*
    from c
    where leFix+leVa+leNul+edProc+8 <> recLength
    with ur
;x;
, s as
(
  select sum(recLength) recLength
       , sum(leSum    ) leSum
       , sum(leNul    ) leNul
       , sum(leFix    ) leFix
       , sum(leVa     ) leVa
       , sum(edProc   ) edProc
      from c
)
select leFix+leVa+leNul+edProc+8, s.*
    from s
}¢--- A540769.WK.SQL(CATCOLS) cre=2010-07-28 mod=2010-07-28-16.14.34 A540769 ---
select name
    from sysibm.syscolumns
    where tbCreator = 'RZ2XX' and tbName = 'TACCT_GENERAL'
    order by name
}¢--- A540769.WK.SQL(CATCOLST) cre=2010-04-29 mod=2013-05-28-10.55.18 A540769 ---
select *
    from sysibm.sysColDist  cs
    WHERE cs.tbOwner = 'OA1A' and cs.tbName like 'TPV407%'
;
DELETE FROM SYSIBM.SYSCOLDIST
WHERE TBOWNER   = 'OA1A'
   AND TBNAME = 'TPV407A1'
   AND NAME   = 'ABRUFID'
;
commit
;x;
set current path = oa1a;
select SUBSTR(d.name, 1, 8), substr(c1.name, 1, 8),
        substr(c2.name, 1, 8), substr(c3.name, 1, 8),
        fosFmte7(cardf) "cardf",
        hex(colValue),
        numColumns, length(colGroupColNo), hex(colGroupColNo), d.*
    from sysibm.syscolDiststats d
    left join sysibm.syscolumns c1
    on hex(substr(d.colGroupColNo, 1, 2))
        = hex(c1.colno)
        and c1.tbCreator = d.tbOwner
        and c1.tbName = d.tbName
    left join sysibm.syscolumns c2
    on hex(substr(d.colGroupColNo, 3, 2))
        = hex(c2.colno)
        and c2.tbCreator = d.tbOwner
        and c2.tbName = d.tbName
    left join sysibm.syscolumns c3
    on hex(substr(d.colGroupColNo, 5, 2))
        = hex(c3.colno)
        and c3.tbCreator = d.tbOwner
        and c3.tbName = d.tbName
    where tbOwner   = 'A540769' and d.tbName = 'TWKEW05A1'
    order by statstime desc
;  x;
x;
set current sqlid = 'S100447';
update sysibm.sysColumns set
       statstime = '0001-01-01-00.00.00.00000'
     , colCardf = -1
    where tbCreator = 'OA1P' and tbName like 'TWM005A1'
;
commit;
--delete
--    from sysibm.syscoldist
--    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
--;
select *
    from sysibm.syscolstats
    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
;
select *
    from sysibm.syscoldist
    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
;
select *
    from sysibm.syscoldiststats
    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
;
select *
    from sysibm.syscolstats
    where tbOwner like 'BUA%' and tbName like 'XBEHL001%'
}¢--- A540769.WK.SQL(CATCOLTS) cre=2012-08-31 mod=2012-08-31-13.00.13 A540769 ---
select *
    from sysibm.syscolumns
    where colType = 'TIMESTMP' and scale <> 6
    order by tbCreator, tbName, name
    with ur
}¢--- A540769.WK.SQL(CATCOLTY) cre=2011-05-11 mod=2011-05-11-14.28.17 A540769 ---
select coltype, substr(typeName,1,12) "typeName", nulls, dataTypeId,
          min(relCreated) "ri", max(relCreated) "ra", count(*)
 --   , c.*
    from sysibm.syscolumns c
    group by coltype, typeName, nulls, dataTypeId
    order by 1, datatypeId, colType, nulls, typeName
    fetch first 1000 rows only
}¢--- A540769.WK.SQL(CATCOLUM) cre=2012-05-09 mod=2012-05-09-15.31.34 A540769 ---
select length(name), count(*), max(name)
    from sysibm.syscolumns
    group by length(name)
    order by length(name) desc
    with ur
}¢--- A540769.WK.SQL(CATCOLUP) cre=2012-07-10 mod=2012-07-10-10.45.21 A540769 ---
select (select partitions from sysibm.sysTableSpace s
            where s.dbName = t.dbName and s.name = t.tsName) parts,
       t.*
    from sysibm.sysTables t
    where t.type = 'T'
        and exists (select 1
             from sysibm.sysColumns c
             where t.creator = c.tbCreator and t.name = c.tbName
                 and c.updates = 'N'
                 and c.colType <> 'ROWID'
                 and c.default <> 'K'
                 and t.creator <> 'SYSIBM'
                 )
;X;
      group by t.creator, t.name
with c as
(
select count(*) cols,
sum(case when c.updates = 'N' then 1 else 0 end) updN
    from sysibm.sysTables t
      join sysibm.sysColumns c
      on t.creator = c.tbCreator and t.name = c.tbName
      where t.type = 'T'
      group by t.creator, t.name
)
select count(*) tbs,
       sum(case when updN = 0 then 0 else 1 end) tbsUpdN,
       sum(cols) cols,
       sum(updN) updN
    from c
}¢--- A540769.WK.SQL(CATCOLX) cre=2012-09-12 mod=2012-09-12-13.33.17 A540769 ---
select count(*)
    from sysibm.sysColumns where upper(name) like 'WK23%'
;
}¢--- A540769.WK.SQL(CATCOMLT) cre=2013-09-30 mod=2013-09-30-09.37.59 A540769 ---
with c as
(
  select s.partitions parts, c.*
      from sysibm.sysCopy c join sysibm.sysTablespace s
      on c.dbName = s.dbName and c.tsName = s.name
      where c.dbName like 'DB%'
          and icType in ('F', 'I')
)
, d as
(
  select icType
       , case when parts > 0 then 'partd'
              else strip(char(parts)) end prt
        , case when dsNum = 0 and parts = 0 then 'p0dsNum0'
               when dsNum > 0 and parts > 0 then 'p>dsNum>'
               when dsNum = 0 and parts > 0 then 'p>dsNum0'
               else 'p' || parts || 'dsNum' || dsNum
               end partDsn
  ,  case when lowDsNum = dsNum and highDsNum = dsnum then 'single'
          when dsNum=0 and lowDsNum = 1 and highDsNum = parts then 'all'
          else 'dsNum' || dsNum || 'low' || lowDsNum
                             || 'high' || highDsNum
          end dsNums
      from c
)
, e as
(
  select icType, copyPagesF
        , case when parts = 0 then 'p0' else 'p>' end p
        , case when dsNum = 0 then 'ds0' else 'ds>' end ds
    from c
)
select count(*), sum(copyPagesF), icType, p, ds
    from e
    group by icType, p, ds
}¢--- A540769.WK.SQL(CATCOOLD) cre=2008-08-05 mod=2008-08-05-11.58.29 F540769 ---
select -- p.dbName, p.tsName, p.partition, max(c.timestamp)
    '  INCLUDE TABLESPACE ' || strip(p.dbName)
    || '.' || strip(p.tsName)
    || ' PARTLEVEL ' || strip(char(p.partition))
    || ' -- ' || strip(coalesce(char(max(c.timestamp)), '<<null>>'))
    from sysibm.systablepart p
    left join sysibm.syscopy c
    on   p.dbName = c.dbName and p.tsName = c.tsName
         and c.dsNum in (0, p.partition) and c.ictype in ('F')
--  where p.dbName like 'NI%'
    group by p.dbName, p.tsName, p.partition
    having max(c.timestamp) is     null
          or max(c.timestamp) < current timestamp - 7 days
--  fetch first 100 rows only
;
x
select left(c.jobName, 2), count(distinct c.jobName),
                           min(c.jobName), max(c.jobName),
       count(*) cnt,
       sum(c.copyPagesF * 1024 * s.pgSize) bytes
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where c.timestamp between '2008-06-27-19.00.00'
                          and '2008-06-30-06.00.00'
          and s.dbName = c.dbName and s.name = c.tsName
          and c.icType in ('F', 'I')
    group by left(c.jobName, 2)
    order by 6 desc
;
x
select date(timestamp),
       count(*) cnt,
       sum(c.copyPagesF * 1024 * s.pgSize) bytes
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where --c.timestamp between '2008-06-27-19.00.00'
          --                and '2008-06-30-06.00.00'
              s.dbName = c.dbName and s.name = c.tsName
          and c.icType in ('F', 'I')
    group by date(timestamp)
    order by 1 asc
;
x
select c.jobName, count(*) cnt,
       sum(c.copyPagesF * 1024 * s.pgSize) bytes
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where s.partitions > 0 and c.timestamp > current timestamp - 20 days
          and s.dbName = c.dbName and s.name = c.tsName
          and c.dsNum = 0
          and c.icType in ('F', 'I')
    group by c.jobName
    order by 3 desc
;
    having sum(case when c.dsNum = 0 then 1 else 0 end) >0
 ) x
select sum(cnt), sum(total) total, sum(totBy) totBy, sum(maxBy) maxBy,
             sum(part), sum(paBy)
from (
 -- where dbName like 'MF%'
;
xelect ictype, timestamp, hex(timestamp), dsName
    from sysibm.sysCopy c
    where dbName = 'XR01A1P' AND TSNAME = 'A200A'
          AND DSNUM = 69
    order by 2 desc
    fetch first 100 rows only
;
select ictype, timestamp, hex(timestamp), dsName
    from sysibm.sysCopy c
    where dbName = 'XR01A1P' AND TSNAME = 'A200A'
          AND DSNUM = 69
    order by 2 desc
    fetch first 100 rows only
;
Xselect dsName , copyPagesF * 1024 * pgSize
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where copyPagesF > 10 * 1024 * 1024
          and s.dbName = c.dbName and s.name = c.tsName
    order by 2 desc
    fetch first 100 rows only
;
x
select current timestamp from sysibm.sysdummy1
;
select count(*) from
(
select dbName, tsName, dsNum, max(timestamp) new,
        max(case when timestamp <= '2008-03-07-11.11.11'
                 then timestamp else null end) last
    from sysibm.sysCopy
    where icType = 'F' -- and dbName = 'MF01A1P'
    group by dbName, tsName, dsNum
) x ,
    sysibm.sysCopy c
    where c.icType in ('F', 'I')
        and c.dbName = x.dbName
        and c.tsName = x.tsName
        and c.dsNum  = x.dsNum
        and c.timestamp <= x.new
        and c.timestamp >= x.last
    with ur
;
select current timestamp from sysibm.sysdummy1
;
select count(*), icType, date(timestamp)
    from sysibm.syscopy
    group by icType, date(timestamp)
    order by 2, 3
;
x
select da, icType,
        sum(copied) copied, sum(coSize) coSize,
        sum(coChgd) coChgd, sum(catSpc) catSpc,
        sum(coCnt) coCntz, sum(paCnt) paCnt
    from
    ( select date(timestamp) da, icType,
              sum(copyPagesF * pgSize * 1024) copied,
              sum(nPagesF * pgSize * 1024) coSize,
              sum(cPagesF * pgSize * 1024) coChgd,
              max(p.spacef * s.pgSize * 1024) catSpc,
              count(*) coCnt,
              1        paCnt
          from sysibm.syscopy c, sysibm.systablespace s,
                                 sysIbm.sysTablePart p
          where icType in ('F', 'I') and c.dbName like 'MF01%'
              and p.dbName = s.dbName and p.tsName = s.name
              and c.dbName = p.dbName and c.tsName = p.tsName
                                      and c.dsNum  = p.partition
          group by date(timestamp), icType,
              s.dbName, s.name, p.partition
    ) pa
    group by da, icType
    order by 1 desc, 2
    with ur
;
x
with tsDet as
(   select s.dbname db, s.name ts,
            sum(real(s.nActive) * s.pgSize* 1024) cAct,
            sum(s.spaceF * 1024) cSpa,
            sum(real(r.space) * 1024) rSpa,
            sum(real(r.nActive) * s.pgSize * 1024) rAct
        from sysibm.sysTablespace s,
            join sysibm.sysTablePart p
              on s.dbName = p.dbName and s.name = p.tsName
            left Join sysibm.tablespacestats r
            on  r.dbid = s.dbid  and r.psid = s.psid
               and r.dbName= s.dbName  and r.name = s.name
               and r.partition = s.partition
            left join sysibm.sysCopy c
            on c.dbName = s.dbName and c.tsName = s.name
                and c.partition = p.partition
    icType, sum(pgSize *  copypagesf), sum(pgSize* nPagesF)
          , sum(pgSize * cPagesF)
    from sysibm.syscopy c, sysibm.systablespace s, m
    where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
        and s.dbName = c.dbName and s.name = c.tsName
        and c.dbName = m.dbName and c.tsName = m. tsName
        and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
        from sysibm.tablespacestats r, sysibm.sysTablespace s
        where r.dbid = s.dbid  and r.psid = s.psid
             and r.dbName= s.dbName  and r.name = s.name
        group by s.dbid, s.psid, s.dbname, s.name
)
select * from tsDet where db like 'MF01%'
;
select current timestamp from sysibm.sysdummy1;
with a as
(
select current timestamp from sysibm.sysdummy1;
x
with m as
  ( select max(timestamp) maxTst, dbName, tsName, dsNum
        from sysibm.syscopy
        where icType = 'F'
        group by dbName, tsName, dsNum
  )
select
    icType, sum(pgSize *  copypagesf), sum(pgSize* nPagesF)
          , sum(pgSize * cPagesF)
    from sysibm.syscopy c, sysibm.systablespace s, m
    where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
        and s.dbName = c.dbName and s.name = c.tsName
        and c.dbName = m.dbName and c.tsName = m. tsName
        and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
    group by icType
    with ur
;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(CATCOPDA) cre=2008-01-10 mod=2008-03-07-09.44.16 F540769 ---
-- sysCopies pro Tag und icType
--     copied = bytes kopiert
--     cnt = Anzahl copies
select date(timestamp) da, icType,
        sum(copyPagesF * pgSize * 1024) copied,
        sum(case when copyPagesF * pgSize >= 20 * 1024 * 1024
                 then copyPagesF * pgSize * 1024 else 0 end) coTape,
        sum(nPagesF * pgSize * 1024) coSize,
        sum(cPagesF * pgSize * 1024) coChgd,
        count(*) cnt
    from sysibm.syscopy c, sysibm.systablespace s
    where icType in ('F', 'I') -- and c.dbName like 'MF01%'
        and c.dbName = s.dbName and c.tsName = s.name
    group by date(timestamp), icType
    order by 1 desc, 2
    with ur
;
}¢--- A540769.WK.SQL(CATCOPEN) cre=2007-12-14 mod=2007-12-18-11.57.49 F540769 ---
select d.name, t.*
    from sysibm.sysDatabase d
    left join
    (
select count(*) cnt, dbname, min(jobNAME) minJob, MAX(JOBNAME) maxJob
    from sysibm.syscopy
    where jobName like 'QCS%'
    group by dbName
    ) t
    on d.Name = t.dbName
    order by d.Name
;
x
select count(*), dbname, min(jobNAME), MAX(JOBNAME)
    from sysibm.syscopy
    where jobName like 'QCS%'
    group by dbName
    order by dbName
;
x
select count(*), jobname, left(dbName, 2)
    from sysibm.syscopy
    where left(dbName, 2) in ('DG', 'DA', 'DF')
    group by jobName, left(dbName, 2)
    order by 3 asc, 1 desc
;
    achtung, Sau langsam|
select count(*), jobname, max(partition), min(partition)
    from sysibm.syscopy c, sysibm.systablepart p
    where c.dbName = p.dbName and c.tsName = p.tsname
        and c.dsNum in (0, p.partition)
    group by jobName
    order by 1 desc
;
 x
with coPa as
  ( select c.*, p.partition
        from sysibm.syscopy c, sysibm.systablepart p
        where c.dbName = p.dbName and c.tsName = p.tsname
            and c.dsNum in (0, p.partition)
  )
select dbName, tsName, partition, dsNUm,
    ( select max(timestamp) from coPa s
          where s.dbName = c.dbName and s.tsName = c.tsname
              and s.partition = c.partition
              and s.icType in ('F') ) copy,
    ( select max(timestamp) from coPa s
          where s.dbName = c.dbName and s.tsName = c.tsname
              and s.partition = c.partition
              and s.icType in ('S', 'W', 'Y') ) noLog
    from coPa c
    where dbName = 'DA540769'
    order by dbName, tsName, partition, timestamp desc
;
x-- very slow
with coPa as
  ( select c.*, p.partition
        from sysibm.syscopy c, sysibm.systablepart p
        where c.dbName = p.dbName and c.tsName = p.tsname
            and c.dsNum in (0, p.partition)
  )
select dbName, tsName, partition, dsNUm, timestamp, icType, sType
    from coPa c
    where dbName = 'DA139274'
        and c.timestamp = (select max(timestamp) from coPa s
             where s.dbName = c.dbName and s.tsName = c.tsname
                   and s.partition = c.partition)
    order by dbName, tsName, partition, timestamp desc
}¢--- A540769.WK.SQL(CATCOPEW) cre=2007-12-14 mod=2008-03-07-13.42.10 F540769 ---
    call SqlConnect dbaf
    $= dbLike = 'MF01%'
    $£ timing() 'dbLike' $dbLike
$;
$<<¢eof
  select c.dbName, c.tsName, partition,
             c.dsNum, timestamp, icType, sType
        from sysibm.syscopy c, sysibm.systablepart p
        where c.dbName = p.dbName and c.tsName = p.tsname
            and c.dsNum in (0, p.partition)
            and p.dbName like $dbLike
    order by 1, 2, 3, 5 desc
eof call sql 4
$¨  old='';state='F';cCo=0;cPa=0
    $@for v
    $@{ act = ${v.DBNAME}'.'${v.TSNAME}'.'${v.PARTITION}
       cCo = cCo+1
 $**    $$ read $(act$) ${v.ICTYPE} ${v.TIMESTAMP}
       if act ^== old then do
           if pos(state, 'FTZ') < 1 then
               $£ cCo cPa old state 'chain' chain
           chain = ${v.ICTYPE}
           state = ${v.ICTYPE}
           old = act
           cPa = cPa + 1
           end
       else do
           chain = chain ${v.ICTYPE}
           if pos(state, 'FSWY') < 1 then
               state = ${v.ICTYPE}
           end
    $}
    if pos(state, 'FTZ') < 1 then
        $£ cCo cPa old state chain
    $£ 'total' cCo 'sysCopies,' cPa 'partitions'
    $£ timing() 'dbLike' $dbLike
$;
    call SqlDisconnect
$***out************20080307 13:35:21************************************
13:35:21 0    101.62 dbLike 'MF01%'
total 1715 sysCopies, 568 partitions
13:35:26 0    104.91 dbLike 'MF01%'
$***out************20080307 13:34:58************************************
13:34:58 0    101.47 dbLike 'DF5%'
22 6 DA540769.A418A.0 S chain S S S
total 60 sysCopies, 18 partitions
13:34:59 0    101.53 dbLike 'DF5%'
$***out************20080307 13:34:05************************************
13:34:05 0    101.27 dbLike 'DF5%'
$***out************20080307 13:33:17************************************
13:33:17 0    101.01 dbLike 'DF5%'
$***out************20080307 13:30:44************************************
13:30:45 0    100.66 dbLike 'DF5%'
$***out************20080307 13:29:50************************************
13:29:51 0    100.53 dbLike 'DF5%'
$***out************20071228 13:28:06************************************
13:28:06 0     17.11 dbLike 'DF5%'
24 2 DA540769.A418A.0 S chain S S S
total 62 sysCopies, 14 partitions
13:28:06 0     17.17 dbLike 'DF5%'
$***out************20071228 13:27:04************************************
$***out************20071228 13:26:27************************************
$***out************20071228 13:22:09************************************
$***out************20071228 13:20:17************************************
$***out************20071228 13:19:06************************************
$***out************20071228 13:15:09************************************
$***out************20071228 13:14:49************************************
$***out************20071228 12:37:15************************************
$***out************20071228 12:23:39************************************
$***out************20071228 12:22:17************************************
$***out************20071228 12:21:40************************************
12:21:40 0     14.52 dbLike 'DF5%'
24 2 DA540769.A418A.0 S chain S S S
total 62 sysCopies, 14 partitions
12:21:40 0     14.57 dbLike 'DF5%'
}¢--- A540769.WK.SQL(CATCOPFF) cre=2008-03-13 mod=2008-03-13-15.38.26 F540769 ---
$£ timing() 'be'
$;
$<~wk.texv(syscopy)
$@{
    x = 0
    $@for v $@{
        x = x + 1
        v = $v
        if x // 10000 = 0 then
            say x 'db' substr(v, 1, 8) 'ts' substr(v, 9, 8) ,
                  'pa' c2d(substr(v, 17, 4))
        $}
$}
$;
$£ timing() 'en' x
$***out            20080313 15:34:41
$***out            20080313 15:32:27
$***out
}¢--- A540769.WK.SQL(CATCOPFG) cre=2008-03-13 mod=2008-03-13-17.31.00 F540769 ---
$£ timing() 'be'
$;
ddal = dsnAlloc('~wk.texv(syscopy)')
say ddAl
dd = word(ddAl, 1)
call readDDBegin dd
x = 0
z = 0
cDb = 0
cTs = 0
cPa = 0
old = ''
curr = '2008-03-13-11.11'
last = '2008-03-12-11.11'
keys = 'B N C L O'
do kx=1 to words(keys)
    ky = word(keys, kx)
    c.ky.f.By = 0
    c.ky.f.cn = 0
    c.ky.i.By = 0
    c.ky.i.cn = 0
    end
do while readDD(dd, i., 1000)
    x = x + i.0
    do y=1 to i.0
        z = z + 1
        if z // 10000 = 0 then
             say 'en' x 'z' z 'db' cDb 'ts' cTs 'pa' cPa ,
                     db'.'ts'.'pa'|'
        if old ^== left(i.y, 20) then do
            if left(old, 8) ^== left(i.y, 8) then do
                cDb = cDb+1
                db = strip(left(i.y, 8))
                end
            if left(old, 16) ^== left(i.y, 16) then do
                cTs = cTs+1
                ts = strip(substr(i.y, 9, 8))
                end
            cPa = cPa + 1
            pa = c2d(substr(i.y, 17, 4))
            old = left(i.y, 20)
            sta = 'B'
            end
        parse var i.y 21 tst 47 tp 48 dsn . 92 bytes .
        if sta == 'B' then
            if tst <= curr then
                sta = 'N'
        if sta == 'C' then do
            say 'changing' dsn
            if tp = 'F' then
                if tst <  last then
                    sta = 'L'
            end

        say sta tp dsn
        c.sta.tp.cn = c.sta.tp.cn + 1
        c.sta.tp.by = c.sta.tp.by + bytes
        if sta == 'N' then
            if tp = 'F' then
                sta = 'C'
        if sta == 'L' then
            sta = 'O'
        end
    call sf 'before' curr
    call sf 'new'        , n
    end
call readDDEnd dd
interpret subWord(ddAl, 2)
$£ timing() 'en' x 'z' z 'db' cDb 'ts' cTs 'pa' cPa
$***out            20080313 17:10:53
$***out            20080313 17:09:47
$***out            20080313 17:08:27
$***out            20080313 17:07:29
$***out            20080313 17:06:39
$***out            20080313 17:06:11
$***out            20080313 17:05:56
$***out            20080313 16:16:53
$***out
}¢--- A540769.WK.SQL(CATCOPFR) cre=2008-03-06 mod=2008-03-07-09.51.59 F540769 ---
-- copies gruppiert nach Anzahl Copies in den letzten 7 Tagen
--     paSpc  = runStats Space der kopierten Partitionen
--     copied = bytes kopiert
--     coCnt = Anzahl copies
--     paCnt = Anzahl Partitionen
--     taLim = 't' > 20Giga --> Tape
--     taLim = 'd' <= 20Giga --> Disk
select  coalesce(icType, 'n') icType,
        case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end taLim,
        coalesce(coCnt, 0) coCnt,
        count(*) paCnt,
        7 tage,
        sum(p.spaceF * 1024) paSpc,
        sum(copied * pgSize * 1024) copied,
        sum(coSize * pgSize * 1024) coSize,
        sum(coChgd * pgSize * 1024) coChgd
    from sysibm.systablespace s
        join sysibm.sysTablePart p
            on s.dbName = p.dbName and s.name = p.tsName
        left join (
            select icType, dbName, tsName, dsNum,
                    count(*) coCnt,
                    sum(copyPagesF) copied,
                    sum(nPagesF) coSize,
                    sum(cPagesF) coChgd
                from sysibm.sysCopy
                where date(timestamp) < current date
                  and date(timestamp) >= current date - 7 days
                  and icType in (     'F')
                group by icType, dbName, tsName, dsNum
            ) c
            on p.dbName = c.dbName and p.tsName = c.tsName
                                   and p.partition = c.dsNum
--  where s.dbName like 'MF01%'
    group by icType, coCnt,
        case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end
    order by 1, 3
    with ur
;
select  coalesce(icType, 'n') icType,
        case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end taLim,
        coalesce(coCnt, 0) coCnt,
        count(*) paCnt,
        14 tage,
        sum(p.spaceF * 1024) paSpc,
        sum(copied * pgSize * 1024) copied,
        sum(coSize * pgSize * 1024) coSize,
        sum(coChgd * pgSize * 1024) coChgd
    from sysibm.systablespace s
        join sysibm.sysTablePart p
            on s.dbName = p.dbName and s.name = p.tsName
        left join (
            select icType, dbName, tsName, dsNum,
                    count(*) coCnt,
                    sum(copyPagesF) copied,
                    sum(nPagesF) coSize,
                    sum(cPagesF) coChgd
                from sysibm.sysCopy
                where date(timestamp) < current date
                  and date(timestamp) >= current date - 14 days
                  and icType in (     'F')
                group by icType, dbName, tsName, dsNum
            ) c
            on p.dbName = c.dbName and p.tsName = c.tsName
                                   and p.partition = c.dsNum
--  where s.dbName like 'MF01%'
    group by icType, coCnt,
        case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end
    order by 1, 3
    with ur
;
select  coalesce(icType, 'n') icType,
        case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end taLim,
        coalesce(coCnt, 0) coCnt,
        count(*) paCnt,
        21 tage,
        sum(p.spaceF * 1024) paSpc,
        sum(copied * pgSize * 1024) copied,
        sum(coSize * pgSize * 1024) coSize,
        sum(coChgd * pgSize * 1024) coChgd
    from sysibm.systablespace s
        join sysibm.sysTablePart p
            on s.dbName = p.dbName and s.name = p.tsName
        left join (
            select icType, dbName, tsName, dsNum,
                    count(*) coCnt,
                    sum(copyPagesF) copied,
                    sum(nPagesF) coSize,
                    sum(cPagesF) coChgd
                from sysibm.sysCopy
                where date(timestamp) < current date
                  and date(timestamp) >= current date - 21 days
                  and icType in (     'F')
                group by icType, dbName, tsName, dsNum
            ) c
            on p.dbName = c.dbName and p.tsName = c.tsName
                                   and p.partition = c.dsNum
--  where s.dbName like 'MF01%'
    group by icType, coCnt,
        case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end
    order by 1, 3
    with ur
;
}¢--- A540769.WK.SQL(CATCOPF0) cre=2008-03-07 mod=2008-03-07-12.39.29 F540769 ---
-- copies gruppiert nach Anzahl Copies in den letzten 7 Tagen
--     paSpc  = runStats Space der kopierten Partitionen
--     copied = bytes kopiert
--     coCnt = Anzahl copies
--     paCnt = Anzahl Partitionen
--     taLim = 't' > 20Giga --> Tape
--     taLim = 'd' <= 20Giga --> Disk
select  s.dbName,
        case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end taLim,
        coalesce(coCnt, 0) coCnt,
        count(*) paCnt,
        7 tage,
        sum(p.spaceF * 1024) paSpc,
        sum(copied * pgSize * 1024) copied,
        sum(coSize * pgSize * 1024) coSize,
        sum(coChgd * pgSize * 1024) coChgd
    from sysibm.systablespace s
        join sysibm.sysTablePart p
            on s.dbName = p.dbName and s.name = p.tsName
        left join (
            select icType, dbName, tsName, dsNum,
                    count(*) coCnt,
                    sum(copyPagesF) copied,
                    sum(nPagesF) coSize,
                    sum(cPagesF) coChgd
                from sysibm.sysCopy
                where date(timestamp) < current date
                  and date(timestamp) >= current date - 21 days
                  and icType in (     'F')
                group by icType, dbName, tsName, dsNum
            ) c
            on p.dbName = c.dbName and p.tsName = c.tsName
                                   and p.partition = c.dsNum
--  where s.dbName like 'MF01%'
    group by s.dbName, coCnt,
        case when p.spaceF > 20*1024*1024 THEN 't' else 'd' end
    having coCnt is null
    order by paSpc desc
    with ur
}¢--- A540769.WK.SQL(CATCOPIN) cre=2012-05-10 mod=2012-10-29-12.02.44 A540769 ---
with ci(c, i) as
(           select 'N', 1 from sysibm.sysDummy1
  union all select 'Y', 1 from sysibm.sysDummy1
  union all select 'Y', 2 from sysibm.sysDummy1
)
, s as
(
select s.dbname, s.name, s.clone, s.instance, i,
       case when s.instance = i then 'base' else 'clone' end baCl,
        c.cInMin, cInMax,
        r.rInMin, rInMax
    from sysibm.sysTablespace s
    full join ci on c=clone
    full join (select dbName, tsname, min(instance) cInMin,
                                    max(instance) cInMax
                 from sysibm.sysCopy c
                 group by dbName, tsname
              ) c
      on c.dbName = s.dbName and c.tsname = s.name
    full join (select dbName, name, min(instance) rInMin,
                                    max(instance) rInMax
                 from sysibm.sysTableSpaceStats r
                 group by dbName, name
              ) r
      on r.dbName = s.dbName and r.name = s.name
)
select count(*),clone, instance, i, baCl, cInMin, cInMax, rInMin, rInMax
    from s
    group by    clone, instance, i, baCl, cInMin, cInMax, rInMin, rInMax
;x;
with q as
(
select s.dbname, s.name, s.clone, s.instance,
        c.cInMin, cInMax,
        r.rInMin, rInMax
    from sysibm.sysTablespace s
    full join (select dbName, tsname, min(instance) cInMin,
                                    max(instance) cInMax
                 from sysibm.sysCopy c
                 group by dbName, tsname
              ) c
      on c.dbName = s.dbName and c.tsname = s.name
    full join (select dbName, name, min(instance) rInMin,
                                    max(instance) rInMax
                 from sysibm.sysTableSpaceStats r
                 group by dbName, name
              ) r
      on r.dbName = s.dbName and r.name = s.name
)
select count(*), clone, instance, cInMin, cInMax, rInMin, rInMax
    from q
    group by     clone, instance, cInMin, cInMax, rInMin, rInMax
;x;
with p as (
    select dbName db, tsname ts, dsnum part, instance inst,
         count(*) cnt,
      min(case when icType = 'F' then timestamp else null end) fullMin,
      max(case when icType = 'F' then timestamp else null end) fullMax
    from sysibm.sysCopy
    group by dbName, tsName, dsNum, instance
)
select s.dbname, s.name, s.clone, s.instance,
        case when inst = instance then 'base' else 'clone' end baCl,
        part, inst, cnt, fullMin, fullMax
    from sysibm.sysTablespace s
    left join p on s.dbName = db and s.name = ts
    where s.dbName like 'DCMN010%'
    order by s.dbName, s.name, part, inst
}¢--- A540769.WK.SQL(CATCOPLA) cre=2012-11-04 mod=2012-11-04-11.54.00 A540769 ---
-- syscopy last icType pro Partition / Instance
with cx as
(
select dbName db, tsName ts, dsNum part, instance, icType, sType
       , count(*) cnt
       , max(char(timestamp) || ' p' || char(smallint(dsNum))
             || ' j' || jobName || ' d' || dsName) la
    from sysibm.sysCopy
    group by dbName, tsName, dsNum, instance, icType, sType
)
, c0 as
( select * from cx where part = 0
)
, c1 as
( select * from cx where part <> 0
)
, co as
(
select
    value(c0.db, c1.db) db,
    value(c0.ts, c1.ts) ts,
    value(c0.part, c1.part) part,
    value(c0.instance, c1.instance) instance,
    value(c0.icType, c1.icType) icType,
    value(c0.sType, c1.sType) sType,
    smallint(c1.cnt) c1Cnt,
    smallint(c0.cnt) c0Cnt,
    value(max(c1.la,  c0.la) , c1.la,  c0.la,   '') la
  from c1 full join c0
  on c1.db = c0.db and c1.ts=c0.ts and c1.part = c0.part
    and c1.instance = c0.instance
    and c1.icType = c0.icType and c1.sType = c0.sType
)
, ci(c, i) as
(           select 'N', 1 from sysibm.sysDummy1
  union all select 'Y', 1 from sysibm.sysDummy1
  union all select 'Y', 2 from sysibm.sysDummy1
)
, p as
(
 SELECT substr(PT.DBNAME, 1, 8) db, substr(pt.tsName, 1, 8) ts,
     smallint(pt.partition) part,
     icType, sType, c1Cnt, c0Cnt, la,
     smallInt(ci.i) inst, ts.clone, ts.instance,
     case when ts.instance = i then 'base' else 'clone' end baCl,
     r.nActive,
     COPYLASTTIME,
     COPYUPDATEDPAGES,
     COPYCHANGES,
     COPYUPDATETIME
----  end   @proc selIncrCopy: select fullcopy etc. --------------------
   from SYSIBM.SYSTABLESPACE TS
   join SYSIBM.SYSTABLEPART PT
     on pt.dbNAME = TS.DBNAME
       AND pt.tsNAME = ts.NAME
   join ci on ci.c=ts.clone
   left join co on co.db = pt.dbName and co.ts = pt.tsName
               and co.part = pt.partition and co.instance = ci.i
   left join SYSIBM.SYSTABLESpaceStats r
      on r.dbid = ts.dbid
        and r.psid = ts.psid
        and r.partition = pt.partition
        and r.instance = ci.i
)
select * from p
    WHERE  db = 'XBDJJ001' and ts = 'SIT03001'
    order by db, ts, inst, part desc, la desc
    with ur
}¢--- A540769.WK.SQL(CATCOPLH) cre=2015-12-16 mod=2015-12-16-08.04.38 A540769 ---
select count(*), icType, dsNum, lowDsNum, highDsNum
    from sysibm.sysCopy
    where -- icType <> 'M'
        ( lowDsNum <> 0 or highdsNum <> 0)
    group by icType, dsNum, lowDsNum, highDsNum
;
}¢--- A540769.WK.SQL(CATCOPPA) cre=2010-11-30 mod=2010-11-30-14.07.48 A540769 ---
select min(jobName), max(jobName), dsName,
        count(distinct dsNum), min(dsNum), max(dsNum),
        min(timestamp), max(timestamp)
    from sysibm.syscopy
    where icType in ('F', 'I')
        and timestamp > current timestamp - 5 days
        and jobName like 'QR%'
    group by dsName
    order by 4 desc
    fetch first 100 rows only
    with ur
}¢--- A540769.WK.SQL(CATCOPRC) cre=2009-10-01 mod=2009-10-06-14.08.31 A540769 ---
-- find the startpoint for a recovery or logDiscontinuity
--     and all subsequent incremental image copies
--     assumption: only part level copies for partitioned TS
declare global temporary table session.copy
    ( db char(8) not null
    , ts char(8) not null
    , pa integer not null
    , typ char(1) not null
    , tst timestamp not null
    , dsName char(44) not null
    ) ;
--  as (select * from sysibm.syscopy) with no data;
create index session.iCopy on session.copy
    (db, ts, pa, tst, typ)
;
select current timestamp from sysibm.sysDummy1
;
insert into session.copy
   select * from
   (
   select dbName db, tsName ts, dsNum pa, icType typ, timestamp
       , dsName
       from sysibm.sysCopy
       where icType in ('I', 'F', 'R', 'S', 'W', 'Y')
   union select dbName db, tsName ts, partition pa, 'c' typ,
        createdTS, ''
        from sysibm.sysTablePart
   ) x
            where db     like 'DGDB9%'
;
select current timestamp from sysibm.sysDummy1
;
with recSta as
  ( select c.*
        from session.copy c
        where c.tst >=
          ( select max(a.tst)
                from session.copy a
                where c.db = a.db and c.ts = a.ts
                    and c.pa = a.pa
                    and typ in ('c', 'F', 'R', 'S', 'W', 'Y')
          )
  )
select * from recSta
    order by db, pa, ts
;
select current timestamp from sysibm.sysDummy1
;
rollback
;
sdf
select count(*), min(icType), max(icType),
    dbName, tsName, dsNum, timeStamp
    from sysibm.syscopy
    group by dbName, tsName, dsNum, timeStamp
    order by 1 desc
;
sdf
            ( select timestamp c.tsName, c.partition, max(timestamp)
        where
         from sysibm.syscopy c, sysibm.systablepart p
         where c.dbName = p.dbName and c.tsName = p.tsname
             and c.dsNum in (0, p.partition)
   )
 select dbName, tsName, partition, dsNUm,
     ( select max(timestamp) from coPa s
           where s.dbName = c.dbName and s.tsName = c.tsname
               and s.partition = c.partition
               and s.icType in ('F') ) copy,
     ( select max(timestamp) from coPa s
           where s.dbName = c.dbName and s.tsName = c.tsname
               and s.partition = c.partition
               and s.icType in ('S', 'W', 'Y') ) noLog
     from coPa c
     where dbName = 'DA540769'
     order by dbName, tsName, partition, timestamp desc
}¢--- A540769.WK.SQL(CATCOPRE) cre=2012-09-25 mod=2012-09-25-17.32.37 A540769 ---
with p as
(
   select dbName, tsName, partition,
         ( select max(f.timestamp) from sysibm.sysCopy f
             where p.dbName = f.dbName and p.tsName = f.tsName
                  and f.dsNum in (p.partition, 0)
                  and f.icType in ('F', 'R','X')
         ) laFu
     from sysibm.sysTablePart p
     where dbName like 'MF01%'
)
select substr(strip(p.dbName) || '.' || strip(p.tsName)
          || ':' || right('   ' || strip(char(partition)), 4), 1, 22),
          laFu, c.icType, c.dsNum, c.Timestamp,
          c.dsName, c.*
     from p left join sysibm.sysCopy c
           on p.dbName = c.dbName and p.tsName = c.tsName
               and c.dsNum in (p.partition, 0)
               and c.icType in ('F', 'I', 'R','X')
               and c.timestamp >= laFu
     order by p.dbName, p.tsName, p.partition, c.timestamp desc
;;;;
AND (( CP.ICTYPE IN ('F','R','X')   -- fullcopy or fullLog
       AND CP.TIMESTAMP > CURRENT TIMESTAMP - $-{days} DAYS
     ) or ((CP.ICTYPE = 'C'         -- created today
                                    -- part added today
              or (CP.ICTYPE = 'A' and CP.sType = 'A')
           ) and date(cp.timestamp) >= current date
    )      )
(
 select case when strip(min(dbName)) like '_*' and min(dbName) > 'A*'
            then left(min(dbName), 1) else ''
       end fr,
       case when strip(max(dbName)) like '_*'
            then left(max(dbName), 1) else ''
       end || x'FFFF' to
     FROM DLC.OBJECTS_V13
     WHERE EXCLUDE='I' AND    NAME='QDDBOF INCL EXCLUDES'
)
, p as
$! else $@=¢
with p as
$!
$@=¢
(
 SELECT PT.DBNAME, pt.tsName, pt.partition,
     (  SELECT char(timestamp) || icType
          FROM  SYSIBM.SYSCOPY CP
          WHERE PT.DBNAME = CP.DBNAME
            AND PT.TSNAME = CP.TSNAME
            AND cp.dsNum in (PT.PARTITION, 0)
            AND  CP.ICTYPE IN ('F','R','X')
          order by timestamp desc
          fetch first 1 row only
     ) laFull,
     r.nActive,
     COPYLASTTIME,
     COPYUPDATEDPAGES,
     COPYCHANGES,
     COPYUPDATETIME
----  end   @proc selIncrCopy: select fullcopy etc. --------------------
 FROM   SYSIBM.SYSDATABASE DB
$!
if $ptaInc then $@=¢
   join frTo
     on db.name >= frTo.fr and db.name <= frTo.to
$!
$@=¢
   join SYSIBM.SYSTABLESPACE TS
     on DB.NAME = PT.DBNAME
   join SYSIBM.SYSTABLEPART PT
     on DB.NAME = TS.DBNAME
       AND TS.NAME = PT.TSNAME
   left join SYSIBM.SYSTABLESpaceStats r
      on r.dbid = db.dbid
        and r.psid = ts.psid
        and r.partition = pt.partition
 WHERE  0 = 0
----  end   @proc missFUllcopies1: fehlende Fullcopies -----------------

----  begin @proc exclude ----------------------------------------------
----- begin @proc exclGen: gemeinsame excludes -------------------------
   AND NOT (PT.DBNAME like 'DSNDB%')            -- DB2 CATALOG
   AND NOT (PT.DBNAME LIKE 'DSN8%')             -- IBM TEST DB
   AND NOT (PT.DBNAME LIKE 'WKDBD%')            -- DB2 WORK DATABASE
   AND NOT (PT.DBNAME = 'DSNTESQ')              -- DB2 CATALOG CLONE
   AND NOT (PT.DBNAME LIKE 'DB2MAPP%')          -- REORG MAPPING TABLES
   AND NOT (PT.DBNAME LIKE 'DB2PLAN%')          -- explain tables
   and not translate(PT.dbName, '999999999AAAAAA', '012345678FISWXY')
           = 'DA999999'                         -- user datenbanken
   AND NOT (PT.DBNAME LIKE 'DB2ALA%')           -- marec  generated
   AND NOT (PT.DBNAME LIKE '%MAREC%')           -- marec generated
   AND NOT (PT.DBNAME LIKE 'DACME%')            -- Mail Heinz Bühler
   AND NOT (PT.DBNAME LIKE 'DGDB%')             -- PROTOTYPEN
   AND NOT (PT.DBNAME LIKE 'DGO%')              -- PROTOTYPEN
   AND NOT (PT.DBNAME LIKE '%A1X%')             -- Neue Prototypen
   AND NOT (PT.DBNAME LIKE 'DAU%')              -- Schulung Gerrit
   AND NOT (PT.DBNAME LIKE 'IDT%')              -- ibm tools
----  end   @proc exclGen: gemeinsame excludes ------------------------
   AND NOT (PT.DBNAME LIKE 'OE02%')    -- Mail Ivo Eichmann
   AND NOT (PT.DBNAME LIKE 'CSQ%')     -- M-QUEUE DATENBANK
----  end   @proc exclude ---------------------------------------------
----  end   @proc exclGen: gemeinsame excludes -------------------------

   AND NOT (PT.DBNAME = 'XC01A1P'  AND PT.TSNAME LIKE 'A2%'  )
                                       -- EOS: Armin Breyer
   AND NOT (PT.DBNAME = 'XR01A1P'  AND PT.TSNAME LIKE 'A2%'  )
                                       -- ERET: Armin Breyer
   AND NOT (PT.DBNAME = 'CSQDBOF' AND PT.TSNAME like 'TSBLOB%' )
----  end   @proc exclude ----------------------------------------------

   AND DB.TYPE NOT IN ('T','W')
----  begin @proc missFUllcopies2: fehlende Fullcopies -----------------
   AND TS.NTABLES <> 0
   AND PT.SPACEF <> -1 -- attention space is sometimes wrong|
   $** and db.Name like 'WI02%'   --- ????
 )
, q as
(
select case when laFull < char(current timestamp - $-¢168+$hh$! hours)
                then 'full old'
            when copyUpdateTime > current timestamp - $hh hours
                then 'no newUpd'
            when nActive * 0.1 <= COPYUPDATEDPAGES then 'full upda'
            when COPYUPDATEDPAGES <> 0 or copyChanges <> 0 then 'inc'
            else 'no changes'
            end copy,
      p.*
    from p
)
select *
    from q
    where left(copy, 2) <> 'no'
 ORDER BY DBNAME, TSNAME, PARTITION
 WITH UR
$!
$/sql/
call sqlSel
m.inc.0 = 0
m.ful.0 = 0
cAll = 0
pAll = 0
$| $@forWith c $@¢
   cAll = cAll + 1
   if datatype($NACTIVE, 'n') then
        pAll = pAll + $NACTIVE
    say left($COPY, 10) left($DBNAME, 8) left($TSNAME, 8) ,
           right($PARTITION, 5) left($LAFULL, 30)
    say right($COPYCHANGES     , 12),
     || right('>'$COPYUPDATEDPAGES, 10),
     || right('%'$NACTIVE, 10) ,
        left($COPYLASTTIME, 19),
        left($COPYUPDATETIME, 19)
    if cAll <= $partLim then
        call mAdd if(abbrev($COPY, 'inc'), inc, ful),
          , '      INCLUDE TABLESPACE' strip($DBNAME)'.'strip($TSNAME),
            'PARTLEVEL' if($PARTITION <> 0, $PARTITION)
    $!
$;
  say 'total' cAll 'parts and' pAll 'pages'
  say '     ' m.inc.0 'incremental and' m.ful.0 'full part copies'
  $;
  $>DSN.BESENWAG.$dbSy(GENINC)
  $@makeList-{INC, FULL NO, 'incremental', cAll, pAll}
  $;
  $>DSN.BESENWAG.$dbSy(GENFUL)
  $@makeList-{FUL, FULL YES, 'full'      , cAll, pAll}
  $;
$@proc makeList $@/makeList/
  parse arg ,lst, full, tit, cAll, pAll
  $** say 'lst' lst 'full' full 'tit' tit 'cAll' cAll 'pAll' pAll
  $$- '--' sysvar('sysnode') $dbSy date('s') time()
  $$- '-- total           : ' cAll 'parts' pAll 'pages'
  $$- '--' left(tit, 11) 'copy: ' m.lst.0 'parts'
  if $previewOnly then
      $$ OPTIONS(PREVIEW)
  else
      $$  OPTIONS EVENT(ITEMERROR,SKIP)
  if m.lst.0 > 0 then $@=¢
  $$- '  LISTDEF LST'lst '   -- ' m.lst.0 'parts'
  $@do ix=1 to m.lst.0 $$- m.lst.ix
COPY LIST LST$-{lst} COPYDDN(TCOPYD)
    PARALLEL $-{full}
    SHRLEVEL CHANGE
  $!
$/makeList/
//************************************* copy ***************************
//         IF    (ABEND OR NOT ABEND) THEN
//COPYINC  EXEC  PGM=DSNUTILB,REGION=0000M,COND=(8,LT),
//          DYNAMNBR=99,PARM=(DBTF,'QCSBESTP.COPYINC')
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=DBTF.DBAA.LISTDEF(TEMPL)
//SYSIN    DD DISP=SHR,DSN=DSN.BESENWAG.DBTF(GENINC)
//         ENDIF
//************************************* copy ***************************
//         IF    (ABEND OR NOT ABEND) THEN
//COPYFUL  EXEC  PGM=DSNUTILB,REGION=0000M,COND=(8,LT),
//          DYNAMNBR=99,PARM=(DBTF,'QCSBESTP.COPYFUL')
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=DBTF.DBAA.LISTDEF(TEMPL)
//SYSIN    DD DISP=SHR,DSN=DSN.BESENWAG.DBTF(GENFUL)
//         ENDIF
//*
//************************************* send mail if error *************
// IF (ABEND OR RC GT 7 OR RC LT 0) THEN
//EMAIL   EXEC PGM=OS3550
//STEPLIB  DD DISP=SHR,DSN=MQM.QP00
//SYSPRINT DD  SYSOUT=*
//IEMLOG   DD  SYSOUT=*
//IEMAPI   DD  *
SUBJECT    RZ1.DBTF job qcsBesTp
AUTHOR     GGDB2
RECPLIST   GGDB2
DOCTEXT
meldung vom technischen saveablauf - BesenWagen
Im Job qcsBesTp konnte mindestens 1 Objekt nicht kopiert werden.
Zur Analyse im sysprint einen find auf "skip" oder "dsnu1027i" absetzen
DOCTEXTEND
// ENDIF
//*
//************************************* create member to mark finish ***
// IF (ABEND OR NOT ABEND) THEN
//FINISH   EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD *
       job qcsBesTp finished
//SYSUT2   DD DISP=SHR,DSN=DSN.BESENWAG.DBTF(FINISH)
// ENDIF
}¢--- A540769.WK.SQL(CATCOPW) cre=2008-01-14 mod=2008-01-14-17.06.34 F540769 ---
call adrSqlConnect dbaf
$£ timing() 'elapsed' time(e)
$;
$<<eof
select
    c.dbname, c.tsName, c.dsNum, s.pgSize, s.partitions,
    icType, copyPagesf, nPagesF, cPagesF, dsName, timestamp
    from sysibm.syscopy c, sysibm.systablespace s
    where icType in ('F', 'I') and c.dbName like 'MF01%'
        and s.dbName = c.dbName and s.name = c.tsName
    order by 1, 2,3, timestamp desc
    with ur
eof call sql 1 $¨ $@{
    lst = ''
    parts = 0
    copys = 0
    allKeys = 'DDF DDI DAF DAI ADF ADI AAF AAI' ,
              'NDF NDI NAF NAI TDF TDI TAF TTI UDF UDI UAF UAI'
    do kx=1 to words(allKeys)
        k = word(allKeys, kx)
        v.k = 0
        v.k.kb = 0
        end
    first = 1
    $@for c $@{
    copys = copys + 1
    dsn = ${c.DSNAME}
    crn = ${c.DBNAME}'.'${c.TSNAME}'.'${c.DSNUM}
    if crn <> lst then do
        if lst <> '' then do
        $** $£ lst 'with' f 'full and' i 'incremental'
            end
        f = 0
        i = 0
        parts = parts + 1
        lst = crn
        if first then do
            first = 0
            $£ 'first' crn dsn
            end
        if time('e') > 4 then do
            $£ 'elapsed time guillotine' time('e') crn dsn
            leave
            end
        end
    if f < 1 then
        key = 'D'
    else
        key = 'A'
    if ${c.ICTYPE} = 'F' then
        f = f + 1
    else if ${c.ICTYPE} = 'I' then
        i = i + 1
    else
        say 'bad type' ${c.ICTYPE}
    rc = listdsi("'"dsn"'" smsInfo)
    if sysReason = 0 then do
        key = 'D'key
        if sysUnits = 'CYLINDER' then
            cy = sysUsed
        else if sysUnits = 'TRACK' then
            cy = sysUsed / sysTrksCyl
        else if sysUnits = 'BLOCK' then
            cy = sysUsed / sysTrksCyl / sysBlksTrk
        else
            cy = '?'
        if cy <> '?' then do
           sz = cy * 720
           ct = ${c.COPYPAGESF} * ${c.PGSIZE}
           if sz < 0.8 * ct | sz > max(ct + 720, 1.2 * ct) then
               say 'sizeMismatch' sz '<> cat' ct 'dsn' dsn
           end
        end
    else if sysReason =  5 then do
        key = 'N'key $** not catalogued
        end
    else if sysReason =  8 then do
        key = 'T'key $** not direct access
        end
    else if sysReason = 19 then do
        key = 'U'key $** multiple volumes ---> unknown
        end
    else if sysReason = 25 then do
        key = 'A'key $** archived
        end
    else do
        $£ 'reason:' sysReason 'l1:' sysMsgLvl1 'l2:' sysMsgLvl2 $*+
                  'for' dsn
        key = 'U'key
        end
    key = key || ${c.ICTYPE}
    if ^ (sysUnit = '' | sysUnit = '3390') then
        $£ key 'unit' sysUnit dsn
    v.key = v.key + 1
    v.key.kb = v.key.kb + ${c.COPYPAGESF} * ${c.PGSIZE}
    $}
   $*(  if lst <> '' then do
            $£ 'last' lst 'with' f 'full and' i 'incremental'
            end
   $*)
    $£  copys 'copies in' parts 'partitions'
    do kx=1 to words(allKeys)
        k = word(allKeys, kx)
        $£ k right(v.k, 10) format(v.k.kb, 1,3,1,0)
        end
$} $;
$£ timing() 'end elapsed' time(e)
call adrSqlDisconnect
$***out            20080114 17:06:10
17:06:11 0     60.34 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 4.010811 MF01A1A.A150H.21 DBAF.MF01A1A.A150H.P0021.D0801
868 copies in 290 partitions
DDF          0 0.000
DDI          0 0.000
DAF          0 0.000
DAI          0 0.000
ADF        289 4.383E+7
ADI          0 0.000
AAF        578 8.765E+7
AAI          0 0.000
NDF          0 0.000
NDI          0 0.000
NAF          0 0.000
NAI          0 0.000
TDF          0 0.000
TDI          0 0.000
TAF          0 0.000
TTI          0 0.000
UDF          0 0.000
UDI          0 0.000
UAF          0 0.000
UAI          0 0.000
17:06:15 4.013969     61.68 end elapsed 4.013982
$***out            20080114 17:05:48
17:05:48 0     58.84 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 4.004996 MF01A1A.A150H.19 DBAF.MF01A1A.A150H.P0019.D0801
862 copies in 288 partitions
DDF          0 0.000
DDI          0 0.000
DAF          0 0.000
DAI          0 0.000
ADF        287 4.383E+7
ADI          0 0.000
AAF        574 8.765E+7
AAI          0 0.000
17:05:52 4.006937     60.16 end elapsed 4.006952
$***out            20080114 16:40:11
16:40:11 0     55.71 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 4.004951 MF01A1A.A150H.189 DBAF.MF01A1A.A150H.P0189.D080
1372 copies in 458 partitions
UDF          0 0.000
UDI          0 0.000
UTF          0 0.000
UTI          0 0.000
MDF          0 0.000
MDI          0 0.000
MTF          0 0.000
MTI          0 0.000
DDF          0 0.000
DDI          0 0.000
DTF          0 0.000
DTI          0 0.000
TDF        457 6.477E+7
TDI          0 0.000
TTF        914 1.295E+8
TTI          0 0.000
16:40:15 4.007936     57.71 end elapsed 4.007950
$***out            20080114 16:36:29
16:36:29 0     53.58 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 4.006499 MF01A1A.A150H.166 DBAF.MF01A1A.A150H.P0166.D080
1303 copies in 435 partitions
UDF          0 0.000
UDI          0 0.000
UTF          0 0.000
UTI          0 0.000
MDF          0 0.000
MDI          0 0.000
MTF          0 0.000
MTI          0 0.000
DDF          0 0.000
DDI          0 0.000
DTF          0 0.000
DTI          0 0.000
TDF        434 5.875E+7
TDI          0 0.000
TTF        868 1.175E+8
TTI          0 0.000
16:36:33 4.009540     55.44 end elapsed 4.009553
$***out            20080114 16:35:32
16:35:32 0     53.35 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 0.102144 MF01A1A.A137A.0 DBAF.MF01A1A.A137A.P0000.D08010
28 copies in 10 partitions
UDF          0 0.000
UDI          0 0.000
UTF          0 0.000
UTI          0 0.000
MDF          0 0.000
MDI          0 0.000
MTF          0 0.000
MTI          0 0.000
DDF          0 0.000
DDI          0 0.000
DTF          0 0.000
DTI          0 0.000
TDF          9 1.410E+7
TDI          0 0.000
TTF         18 2.820E+7
TTI          0 0.000
16:35:32 0.105071     53.40 end elapsed 0.105084
$***out            20080114 16:35:08
16:35:08 0     53.06 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 0.105246 MF01A1A.A138A.0 DBAF.MF01A1A.A138A.P0000.D08010
31 copies in 11 partitions
UDF          0 0.000
UDI          0 0.000
UTF          0 0.000
UTI          0 0.000
MDF          0 0.000
MDI          0 0.000
MTF          0 0.000
MTI          0 0.000
DDF          0 0.000
DDI          0 0.000
DTF          0 0.000
DTI          0 0.000
TDF         10 1.410E+7
TDI          0 0.000
TTF         20 2.820E+7
TTI          0 0.000
16:35:08 0.108192     53.12 end elapsed 0.108204
$***out            20080114 16:34:44
16:34:44 0     52.84 elapsed 0
first MF01A1A.A101A.0 DBAF.MF01A1A.A101A.P0000.D08010.T031218
elapsed time guillotine 0.102147 MF01A1A.A138A.0 DBAF.MF01A1A.A138A.P0000.D08010
31 copies in 11 partitions
UDF          0 0.000
UDI          0 0.000
UTF          0 0.000
UTI          0 0.000
MDF          0 0.000
MDI          0 0.000
MTF          0 0.000
MTI          0 0.000
DDF          0 0.000
DDI          0 0.000
DTF          0 0.000
DTI          0 0.000
TDF         10 1.410E+7
TDI          0 0.000
TTF         20 2.820E+7
TTI          0 0.000
16:34:44 0.105212     52.90 end elapsed 0.105227
$***out            20080114 16:34:07
}¢--- A540769.WK.SQL(CATCOPWT) cre=2008-03-11 mod=2008-03-11-18.31.59 F540769 ---
//A5407698 JOB (CP00,KE50),
//       'CATALOG',MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG,SYSTEM=S12
//P01     EXEC PGM=IKJEFT01,
//             DYNAMNBR=200,
//             TIME=99
//SYSTSIN   DD *
   DSN SYSTEM(DBTF)
   RUN PROGRAM(DSNTIAUL) PARMS('SQL')
   END
//SYSTSPRT  DD SYSOUT=*
//SYSPRINT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//SYSTERM   DD DUMMY
//*YSPUNCH  DD DUMMY
//SYSPUNCH  DD DSN=A540769.TMPUL.CATCOPWT.PU,
//             DISP=(NEW,CATLG,CATLG),
//             SPACE=(CYL,(1,1)),
//             DATACLAS=NULL30,MGMTCLAS=S005Y000,
//             RECFM=FB,LRECL=80
//SYSREC00  DD DSN=A540769.TMPUL.CATCOPWT.UN,
//             DISP=(NEW,CATLG,CATLG),
//             SPACE=(CYL,(1000,500)),
//             DATACLAS=NULL30,MGMTCLAS=S005Y000,
//             RECFM=FB,LRECL=80
//*            DCB=(LRECL=5000,RECFM=VB,BLKSIZE=32760)
//SYSREC01  DD SYSOUT=*,
//             RECFM=VB,LRECL=200
//SYSIN     DD *
 SELECT
     C.DBNAME, C.TSNAME, C.DSNUM, C.ICTYPE, C.DSNAME, C.TIMESTAMP,
               C.COPYPAGESF * 1024 * S.PGSIZE COPIED,
     CASE WHEN C.ICTYPE <> 'F'     THEN 'IN'
          WHEN C.TIMESTAMP = X.NEW THEN 'NW'
          WHEN C.TIMESTAMP = X.LAST THEN 'LA'
          ELSE 'FU' END MYTYPE
     FROM
 (
 SELECT DBNAME, TSNAME, DSNUM, MAX(TIMESTAMP) NEW,
         MAX(CASE WHEN TIMESTAMP <= '2008-03-07-11.11.11'
                  THEN TIMESTAMP ELSE NULL END) LAST
     FROM A540769.SYSCOPY
     WHERE ICTYPE = 'F'
     GROUP BY DBNAME, TSNAME, DSNUM
 ) X ,
     A540769.SYSCOPY C,
     SYSIBM.SYSTABLESPACE S
     WHERE C.ICTYPE IN ('F', 'I')
         AND C.DBNAME = X.DBNAME
         AND C.TSNAME = X.TSNAME
         AND C.DSNUM  = X.DSNUM
         AND C.TIMESTAMP <= X.NEW
         AND C.TIMESTAMP >= X.LAST
         AND S.DBNAME = X.DBNAME
         AND S.NAME = X.TSNAME
     WITH UR
 ;
}¢--- A540769.WK.SQL(CATCOPWX) cre=2008-03-11 mod=2008-03-13-13.00.48 F540769 ---
call errReset 'h'
$=subsys = DBOF
$=creator = A540769
$=creator = sysibm
$=curr = '2008-03-13-11.11.11'
$=last = '2008-03-05-11.11.11'
$=mgmtClas = A000Yneu
call sqlConnect $subsys
$=out  £ catDsn("~catCopy.out2 ::F")
call jOpen $out, 'w'
$£  timing() 'be' $subsys $creator $curr $last
say timing() 'be' $subsys $creator $curr $last
$;
$<<¢eof
select
    c.dbname, c.tsName, c.dsNum, c.icType, c.dsName, c.timestamp,
              c.copyPagesf * 1024 * s.pgSize copied,
    case when c.icType <> 'F'     then 'IN'
         when c.timestamp = x.new then 'NW'
         when c.timestamp = x.last then 'LA'
         else 'FU' end myType
    from
(
select dbName, tsName, dsNum, max(timestamp) new,
        max(case when timestamp <=   $last
                 then timestamp else '1900-01-01-00.00.00'  end) last
    from $creator.sysCopy
    where icType = 'F' $** and dbName = 'MF01A1P'
                       and timestamp <= $curr
    group by dbName, tsName, dsNum
) x ,
    $creator.sysCopy c,
    sysibm.sysTablespace s
    where c.icType in ('F', 'I')
        and c.dbName = x.dbName
        and c.tsName = x.tsName
        and c.dsNum  = x.dsNum
        and c.timestamp <  x.new
        and c.timestamp >= x.last
        and s.dbName = x.dbName
        and s.name = x.tsName
$** order by c.dbName, c.tsName, c.dsNum, c.timestamp desc
    with ur
eof call sql 1 $¨ pref = '' $@{
    lst = ''
    cDb = 0
    cTs = 0
    cPa = 0
    cCo = 0
    c.nw.c = 0
    c.nw.b = 0
    c.la.c = 0
    c.la.b = 0
    c.fu.c = 0
    c.fu.b = 0
    c.in.c = 0
    c.in.b = 0
    $@for c $@{
        if cCo // 10000 = 0 then do
            say timing() cDb 'dbs,' cTs 'TS,' cPa 'parts,' cCo 'copies'
            $£  timing() cDb 'dbs,' cTs 'TS,' cPa 'parts,' cCo 'copies'
            if cCo >=200000 then leave
            end
        dsn = ${c.DSNAME}
        crn = ${c.DBNAME}'.'${c.TSNAME}'.'${c.DSNUM}
        if crn <> lst then do
            if ^ abbrev(lst, ${c.DBNAME}'.') then do
                cDb = cDb + 1
                end
            if ^ abbrev(lst, ${c.DBNAME}'.'${c.TSNAME}'.') then
                cTs = cTs + 1
            cPa = cPa + 1
            sta = 'NW'
            lst = crn
            end
        tp = ${c.MYTYPE}
        if tp ^== 'NW' then
            call jWrite $out,'ALTER' ${c.DSNAME} 'MGMTCLAS('$mgmtClas')'
        cCo = cCo + 1
        c.tp.c = c.tp.c + 1
        c.tp.b = c.tp.b + ${c.COPIED}
        $}
    $£ cDb 'dbs,' cTs 'TS,' cPa 'parts,' cCo 'copies'
    $£ 'neu ' right(c.nw.c, 10) c.nw.b
    $£ 'last' right(c.la.c, 10) c.la.b
    $£ 'full' right(c.fu.c, 10) c.fu.b
    $£ 'inc ' right(c.in.c, 10) c.in.b
$} $;
$£  timing() 'end' $subsys $creator $curr $last
say timing() 'end' $subsys $creator $curr $last
call jCLose $out
call SqlDisconnect
$***out            20080313 12:03:03
12:03:03 0    658.11 be DBOF sysibm '2008-03-13-11.11.11' '2008-03-12-11.11.11'
12:11:38 0    985.50 0 dbs, 0 TS, 0 parts, 0 copies
12:11:51 0    997.17 19 dbs, 788 TS, 2229 parts, 10000 copies
12:12:04 0   1008.90 19 dbs, 800 TS, 3835 parts, 20000 copies
12:12:19 0   1020.45 3149 dbs, 4293 TS, 10874 parts, 30000 copies
12:12:33 0   1031.92 3267 dbs, 6766 TS, 17228 parts, 40000 copies
12:12:48 0   1043.42 3384 dbs, 8381 TS, 24431 parts, 50000 copies
12:13:03 0   1055.01 3530 dbs, 11515 TS, 30566 parts, 60000 copies
3571 dbs, 12065 TS, 36973 parts, 68692 copies
neu       36975 5.58642407E+12
last      11808 1.98522453E+12
full       2600 4.95282462E+11
inc       17309 2.47778851E+10
12:13:16 0   1065.06 end DBOF sysibm '2008-03-13-11.11.11' '2008-03-12-11.11.11'
$***out            20080313 11:40:19
}¢--- A540769.WK.SQL(CATCOPY) cre=2008-01-10 mod=2014-05-08-09.22.43 A540769 ---
select *
    from sysibm.sysCopy c
    where icType in ('F', 'I')
     -- and dsName like 'CH.S00%'
        and dsName like 'A470264%'
    order by timestamp desc
    with ur
;x;
select count(*), substr(dsName, 1, 5), min(dsName), max(dsName)
    from sysibm.sysCopy c
    where icType in ('F', 'I')
    group by substr(dsName, 1, 5)
    with ur
;x;
select count(*), date(timestamp)
    from sysibm.sysCopy c
    where dbName = 'DCMN050' and tsname = 'CMN$AAPR'
        and ictype = 'A'
    group by date(timestamp)
    order by 2 desc
;                  x;
select timestamp, icType, instance
    from sysibm.sysCopy c
    where dbName = 'DCMN050' and tsname = 'CMN$AAPR'
        and ictype = 'A'
    order by 1 desc
;                  x;
select timestamp, icType, hex(start_rba), hex(pit_rba)
    from sysibm.sysCopy c
    where dbName = 'DA540769' and tsname = 'A924A'
    order by 1
;
x
select left(c.jobName, 2), count(distinct c.jobName),
                           min(c.jobName), max(c.jobName),
       count(*) cnt,
       sum(c.copyPagesF * 1024 * s.pgSize) bytes
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where c.timestamp between '2008-06-27-19.00.00'
                          and '2008-06-30-06.00.00'
          and s.dbName = c.dbName and s.name = c.tsName
          and c.icType in ('F', 'I')
    group by left(c.jobName, 2)
    order by 6 desc
;
x
select date(timestamp),
       count(*) cnt,
       sum(c.copyPagesF * 1024 * s.pgSize) bytes
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where --c.timestamp between '2008-06-27-19.00.00'
          --                and '2008-06-30-06.00.00'
              s.dbName = c.dbName and s.name = c.tsName
          and c.icType in ('F', 'I')
    group by date(timestamp)
    order by 1 asc
;
x
select c.jobName, count(*) cnt,
       sum(c.copyPagesF * 1024 * s.pgSize) bytes
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where s.partitions > 0 and c.timestamp > current timestamp - 20 days
          and s.dbName = c.dbName and s.name = c.tsName
          and c.dsNum = 0
          and c.icType in ('F', 'I')
    group by c.jobName
    order by 3 desc
;
    having sum(case when c.dsNum = 0 then 1 else 0 end) >0
 ) x
select sum(cnt), sum(total) total, sum(totBy) totBy, sum(maxBy) maxBy,
             sum(part), sum(paBy)
from (
 -- where dbName like 'MF%'
;
xelect ictype, timestamp, hex(timestamp), dsName
    from sysibm.sysCopy c
    where dbName = 'XR01A1P' AND TSNAME = 'A200A'
          AND DSNUM = 69
    order by 2 desc
    fetch first 100 rows only
;
select ictype, timestamp, hex(timestamp), dsName
    from sysibm.sysCopy c
    where dbName = 'XR01A1P' AND TSNAME = 'A200A'
          AND DSNUM = 69
    order by 2 desc
    fetch first 100 rows only
;
Xselect dsName , copyPagesF * 1024 * pgSize
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where copyPagesF > 10 * 1024 * 1024
          and s.dbName = c.dbName and s.name = c.tsName
    order by 2 desc
    fetch first 100 rows only
;
x
select current timestamp from sysibm.sysdummy1
;
select count(*) from
(
select dbName, tsName, dsNum, max(timestamp) new,
        max(case when timestamp <= '2008-03-07-11.11.11'
                 then timestamp else null end) last
    from sysibm.sysCopy
    where icType = 'F' -- and dbName = 'MF01A1P'
    group by dbName, tsName, dsNum
) x ,
    sysibm.sysCopy c
    where c.icType in ('F', 'I')
        and c.dbName = x.dbName
        and c.tsName = x.tsName
        and c.dsNum  = x.dsNum
        and c.timestamp <= x.new
        and c.timestamp >= x.last
    with ur
;
select current timestamp from sysibm.sysdummy1
;
select count(*), icType, date(timestamp)
    from sysibm.syscopy
    group by icType, date(timestamp)
    order by 2, 3
;
x
select da, icType,
        sum(copied) copied, sum(coSize) coSize,
        sum(coChgd) coChgd, sum(catSpc) catSpc,
        sum(coCnt) coCntz, sum(paCnt) paCnt
    from
    ( select date(timestamp) da, icType,
              sum(copyPagesF * pgSize * 1024) copied,
              sum(nPagesF * pgSize * 1024) coSize,
              sum(cPagesF * pgSize * 1024) coChgd,
              max(p.spacef * s.pgSize * 1024) catSpc,
              count(*) coCnt,
              1        paCnt
          from sysibm.syscopy c, sysibm.systablespace s,
                                 sysIbm.sysTablePart p
          where icType in ('F', 'I') and c.dbName like 'MF01%'
              and p.dbName = s.dbName and p.tsName = s.name
              and c.dbName = p.dbName and c.tsName = p.tsName
                                      and c.dsNum  = p.partition
          group by date(timestamp), icType,
              s.dbName, s.name, p.partition
    ) pa
    group by da, icType
    order by 1 desc, 2
    with ur
;
x
with tsDet as
(   select s.dbname db, s.name ts,
            sum(real(s.nActive) * s.pgSize* 1024) cAct,
            sum(s.spaceF * 1024) cSpa,
            sum(real(r.space) * 1024) rSpa,
            sum(real(r.nActive) * s.pgSize * 1024) rAct
        from sysibm.sysTablespace s,
            join sysibm.sysTablePart p
              on s.dbName = p.dbName and s.name = p.tsName
            left Join sysibm.tablespacestats r
            on  r.dbid = s.dbid  and r.psid = s.psid
               and r.dbName= s.dbName  and r.name = s.name
               and r.partition = s.partition
            left join sysibm.sysCopy c
            on c.dbName = s.dbName and c.tsName = s.name
                and c.partition = p.partition
    icType, sum(pgSize *  copypagesf), sum(pgSize* nPagesF)
          , sum(pgSize * cPagesF)
    from sysibm.syscopy c, sysibm.systablespace s, m
    where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
        and s.dbName = c.dbName and s.name = c.tsName
        and c.dbName = m.dbName and c.tsName = m. tsName
        and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
        from sysibm.tablespacestats r, sysibm.sysTablespace s
        where r.dbid = s.dbid  and r.psid = s.psid
             and r.dbName= s.dbName  and r.name = s.name
        group by s.dbid, s.psid, s.dbname, s.name
)
select * from tsDet where db like 'MF01%'
;
select current timestamp from sysibm.sysdummy1;
with a as
(
select current timestamp from sysibm.sysdummy1;
x
with m as
  ( select max(timestamp) maxTst, dbName, tsName, dsNum
        from sysibm.syscopy
        where icType = 'F'
        group by dbName, tsName, dsNum
  )
select
    icType, sum(pgSize *  copypagesf), sum(pgSize* nPagesF)
          , sum(pgSize * cPagesF)
    from sysibm.syscopy c, sysibm.systablespace s, m
    where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
        and s.dbName = c.dbName and s.name = c.tsName
        and c.dbName = m.dbName and c.tsName = m. tsName
        and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
    group by icType
    with ur
;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(CATCOPYC) cre=2008-01-21 mod=2008-03-07-14.46.10 F540769 ---
$*(*****************************************************************
--
--  Hochrechnug disk verbrauch für copy datasets nur aus sysCopy
--       - alt: alles älter als 24 h archiviert
--       - neu: alles älter als Save > 28h wegeputzt
--  ==> gibt SpitzenDiskverbrauch
--       - unmittelbar vor täglichem SMS-Cleanup
-- *****************************************************************
select
    c.dbname, c.tsName, c.dsNum,
         current timestamp - 24 hours gNeu,
         max(case when icType = 'F'
                      and timestamp < current timestamp - 28 hours
                  then timestamp else '1900-01-01-00.00.00'
             end) gAlt
    from sysibm.syscopy c, sysibm.systablespace s
    group by c.dbname, c.tsName, c.dsNum
$*)
call sqlConnect DBTF
$;
$<<eof
select
    c.dbname, c.tsName, c.dsNum, s.pgSize, s.partitions,
    icType, copyPagesf, nPagesF, cPagesF, dsName, timestamp,
    case when timestamp > current timestamp - 24 hours   then 'u'
         when timestamp > current timestamp - 28 hours   then 'o'
         else 'n' end gest
    from sysibm.syscopy c, sysibm.systablespace s
    where icType in ('F', 'I') and c.dbName like '%'
        and s.dbName = c.dbName and s.name = c.tsName
    order by 1, 2,3, timestamp desc
    with ur
eof call sql 1 $¨ pref = '' $@{
    lst = ''
    parts = 0
    copys = 0
    allKeys = 'DDF DDI DAF DAI ADF ADI AAF AAI' ,
              'NDF NDI NAF NAI TDF TDI TAF TTI UDF UDI UAF UAI'
    do kx=1 to words(allKeys)
        k = word(allKeys, kx)
        v.k = 0
        v.k.kb = 0
        end
    first = 1
    $@for c $@{
    crn = ${c.DBNAME}'.'${c.TSNAME}'.'${c.DSNUM}
    copys = copys + 1
    if crn <> lst then do
        if lst <> '' then do
        $** $£ lst 'with' f 'full and' i 'incremental'
            end
        fiFu = 0
        parts = parts + 1
        lst = crn
        if first then do
            first = 0
            $£ 'first' crn dsn
            end
        if time('e') >  300 then do
            $£ 'elapsed time guillotine' time('e') crn dsn
            leave
            end
        end
    gest = ${c.GEST}
    if gest == 'u' then
        key = 'DD'
    else if gest = 'o' then
        key = 'AD'
    else if fiFu then
        key = 'AA'
    else do
        key = 'AD'
        fiFu = ${c.ICTYPE} = 'F'
        end
    key = key || ${c.ICTYPE}
    if symbol('v.key') == VAR then do
        v.key = v.key + 1
        v.key.kb = v.key.kb + ${c.COPYPAGESF} * ${c.PGSIZE}
        end
    else do
        $£ 'bad key' key 'for cl' cl 'dsn' dsn
        end
    $}
    $£  copys 'copies in' parts 'partitions'
    do kx=1 to words(allKeys)
        k = word(allKeys, kx)
        $£ k right(v.k, 10) format(v.k.kb, 1,3,1,0)
        end
$} $;
$£ timing() 'end elapsed' time(e)
call sqlDisconnect
$***out            20080307 13:51:02
first AC01A1P.A002P.0 DSN
160822 copies in 36368 partitions
DDF       1380 9.799E+7
DDI        896 4.644E+6
DAF          0 0.000
DAI          0 0.000
ADF      36384 2.115E+9
ADI       2465 1.379E+7
AAF     100524 6.567E+9
AAI      19173 7.308E+7
NDF          0 0.000
NDI          0 0.000
NAF          0 0.000
NAI          0 0.000
TDF          0 0.000
TDI          0 0.000
TAF          0 0.000
TTI          0 0.000
UDF          0 0.000
UDI          0 0.000
UAF          0 0.000
UAI          0 0.000
13:55:23 245.452290    296.17 end elapsed 245.452310
$***out            20080307 13:49:23
first MF01A1T.A101A.0 DSN
2326 copies in 698 partitions
DDF          2 6.640E+2
DDI          0 0.000
DAF          0 0.000
DAI          0 0.000
ADF        698 7.569E+7
ADI          2 3.364E+3
AAF       1613 1.687E+8
AAI         11 1.692E+4
NDF          0 0.000
NDI          0 0.000
NAF          0 0.000
NAI          0 0.000
TDF          0 0.000
TDI          0 0.000
TAF          0 0.000
TTI          0 0.000
UDF          0 0.000
UDI          0 0.000
UAF          0 0.000
UAI          0 0.000
13:49:27 2.896786    108.21 end elapsed 2.896804
$***out            20080307 13:49:02
$***out            20080307 13:48:48
$***out            20080121 15:19:51
15:19:51 0      0.41 elapsed 0
first AC01A1P.A002P.0 DSN
elapsed time guillotine 300.327667 BE01A1P.A005A02.67 DSN
108863 copies in 1641 partitions
DDF        525 3.257E+7
DDI       3253 2.119E+6
DAF          0 0.000
DAI          0 0.000
ADF       1780 9.825E+7
ADI       1171 1.132E+7
AAF      22357 2.377E+9
AAI      79776 7.435E+7
NDF          0 0.000
NDI          0 0.000
NAF          0 0.000
NAI          0 0.000
TDF          0 0.000
TDI          0 0.000
TAF          0 0.000
TTI          0 0.000
UDF          0 0.000
UDI          0 0.000
UAF          0 0.000
UAI          0 0.000
15:24:51 300.335001    157.22 end elapsed 300.335036
$***out            20080121 14:44:13
14:44:13 0    813.34 elapsed 0
first MF01A1P.A101A.0 DSN
3007 copies in 569 partitions
DDF         44 1.020E+7
DDI          6 1.620E+3
DAF          0 0.000
DAI          0 0.000
ADF        569 2.922E+8
ADI        101 1.544E+5
AAF       1438 7.588E+8
AAI        849 3.174E+6
NDF          0 0.000
NDI          0 0.000
NAF          0 0.000
NAI          0 0.000
TDF          0 0.000
TDI          0 0.000
TAF          0 0.000
TTI          0 0.000
UDF          0 0.000
UDI          0 0.000
UAF          0 0.000
UAI          0 0.000
14:44:22 8.877636    817.37 end elapsed 8.877658
}¢--- A540769.WK.SQL(CATCOPYH) cre=2010-07-06 mod=2010-07-06-12.05.11 A540769 ---
select count(*), jobName, min(dbName), max(dbName),
                          min(left(dsName, 12)), max(left(dsName, 12))
    from sysibm.sysCopy c
    where icType in ('F', 'I') and left(dsName, 5) <> 'DBOF.'
    group by jobName
    order by jobName
    with ur
 -- fetch first 100 rows only
;x;
select timestamp, icType, hex(start_rba), hex(pit_rba)
    from sysibm.sysCopy c
    where dbName = 'DA540769' and tsname = 'A924A'
    order by 1
;
x
select left(c.jobName, 2), count(distinct c.jobName),
                           min(c.jobName), max(c.jobName),
       count(*) cnt,
       sum(c.copyPagesF * 1024 * s.pgSize) bytes
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where c.timestamp between '2008-06-27-19.00.00'
                          and '2008-06-30-06.00.00'
          and s.dbName = c.dbName and s.name = c.tsName
          and c.icType in ('F', 'I')
    group by left(c.jobName, 2)
    order by 6 desc
;
x
select date(timestamp),
       count(*) cnt,
       sum(c.copyPagesF * 1024 * s.pgSize) bytes
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where --c.timestamp between '2008-06-27-19.00.00'
          --                and '2008-06-30-06.00.00'
              s.dbName = c.dbName and s.name = c.tsName
          and c.icType in ('F', 'I')
    group by date(timestamp)
    order by 1 asc
;
x
select c.jobName, count(*) cnt,
       sum(c.copyPagesF * 1024 * s.pgSize) bytes
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where s.partitions > 0 and c.timestamp > current timestamp - 20 days
          and s.dbName = c.dbName and s.name = c.tsName
          and c.dsNum = 0
          and c.icType in ('F', 'I')
    group by c.jobName
    order by 3 desc
;
    having sum(case when c.dsNum = 0 then 1 else 0 end) >0
 ) x
select sum(cnt), sum(total) total, sum(totBy) totBy, sum(maxBy) maxBy,
             sum(part), sum(paBy)
from (
 -- where dbName like 'MF%'
;
xelect ictype, timestamp, hex(timestamp), dsName
    from sysibm.sysCopy c
    where dbName = 'XR01A1P' AND TSNAME = 'A200A'
          AND DSNUM = 69
    order by 2 desc
    fetch first 100 rows only
;
select ictype, timestamp, hex(timestamp), dsName
    from sysibm.sysCopy c
    where dbName = 'XR01A1P' AND TSNAME = 'A200A'
          AND DSNUM = 69
    order by 2 desc
    fetch first 100 rows only
;
Xselect dsName , copyPagesF * 1024 * pgSize
    from sysibm.sysCopy c , sysibm.systableSpace  s
    where copyPagesF > 10 * 1024 * 1024
          and s.dbName = c.dbName and s.name = c.tsName
    order by 2 desc
    fetch first 100 rows only
;
x
select current timestamp from sysibm.sysdummy1
;
select count(*) from
(
select dbName, tsName, dsNum, max(timestamp) new,
        max(case when timestamp <= '2008-03-07-11.11.11'
                 then timestamp else null end) last
    from sysibm.sysCopy
    where icType = 'F' -- and dbName = 'MF01A1P'
    group by dbName, tsName, dsNum
) x ,
    sysibm.sysCopy c
    where c.icType in ('F', 'I')
        and c.dbName = x.dbName
        and c.tsName = x.tsName
        and c.dsNum  = x.dsNum
        and c.timestamp <= x.new
        and c.timestamp >= x.last
    with ur
;
select current timestamp from sysibm.sysdummy1
;
select count(*), icType, date(timestamp)
    from sysibm.syscopy
    group by icType, date(timestamp)
    order by 2, 3
;
x
select da, icType,
        sum(copied) copied, sum(coSize) coSize,
        sum(coChgd) coChgd, sum(catSpc) catSpc,
        sum(coCnt) coCntz, sum(paCnt) paCnt
    from
    ( select date(timestamp) da, icType,
              sum(copyPagesF * pgSize * 1024) copied,
              sum(nPagesF * pgSize * 1024) coSize,
              sum(cPagesF * pgSize * 1024) coChgd,
              max(p.spacef * s.pgSize * 1024) catSpc,
              count(*) coCnt,
              1        paCnt
          from sysibm.syscopy c, sysibm.systablespace s,
                                 sysIbm.sysTablePart p
          where icType in ('F', 'I') and c.dbName like 'MF01%'
              and p.dbName = s.dbName and p.tsName = s.name
              and c.dbName = p.dbName and c.tsName = p.tsName
                                      and c.dsNum  = p.partition
          group by date(timestamp), icType,
              s.dbName, s.name, p.partition
    ) pa
    group by da, icType
    order by 1 desc, 2
    with ur
;
x
with tsDet as
(   select s.dbname db, s.name ts,
            sum(real(s.nActive) * s.pgSize* 1024) cAct,
            sum(s.spaceF * 1024) cSpa,
            sum(real(r.space) * 1024) rSpa,
            sum(real(r.nActive) * s.pgSize * 1024) rAct
        from sysibm.sysTablespace s,
            join sysibm.sysTablePart p
              on s.dbName = p.dbName and s.name = p.tsName
            left Join sysibm.tablespacestats r
            on  r.dbid = s.dbid  and r.psid = s.psid
               and r.dbName= s.dbName  and r.name = s.name
               and r.partition = s.partition
            left join sysibm.sysCopy c
            on c.dbName = s.dbName and c.tsName = s.name
                and c.partition = p.partition
    icType, sum(pgSize *  copypagesf), sum(pgSize* nPagesF)
          , sum(pgSize * cPagesF)
    from sysibm.syscopy c, sysibm.systablespace s, m
    where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
        and s.dbName = c.dbName and s.name = c.tsName
        and c.dbName = m.dbName and c.tsName = m. tsName
        and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
        from sysibm.tablespacestats r, sysibm.sysTablespace s
        where r.dbid = s.dbid  and r.psid = s.psid
             and r.dbName= s.dbName  and r.name = s.name
        group by s.dbid, s.psid, s.dbname, s.name
)
select * from tsDet where db like 'MF01%'
;
select current timestamp from sysibm.sysdummy1;
with a as
(
select current timestamp from sysibm.sysdummy1;
x
with m as
  ( select max(timestamp) maxTst, dbName, tsName, dsNum
        from sysibm.syscopy
        where icType = 'F'
        group by dbName, tsName, dsNum
  )
select
    icType, sum(pgSize *  copypagesf), sum(pgSize* nPagesF)
          , sum(pgSize * cPagesF)
    from sysibm.syscopy c, sysibm.systablespace s, m
    where icType in ('F', 'I') -- and c.dbName = 'MF01A1P'
        and s.dbName = c.dbName and s.name = c.tsName
        and c.dbName = m.dbName and c.tsName = m. tsName
        and c.dsNum = m.dsNum and c.timestamp >= m.maxTst
    group by icType
    with ur
;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(CATCOPY2) cre=2008-01-15 mod=2008-01-21-12.50.09 F540769 ---
call adrSqlConnect dbof
$;
$<<¢eof
    select date(timestamp) da, icType,
           sum(pgSize * 1024 * copypagesf) cp,
           sum(pgSize * 1024 * nPagesF) ts,
           sum(pgSize * 1024 * cPagesF) ch
        from sysibm.syscopy c, sysibm.systablespace s
        where icType in ('F', 'I') $*+ and c.dbName = 'MF01A1P'
            and s.dbName = c.dbName and s.name = c.tsName
        group by date(timestamp), icType
        order by 1 desc, 2
        with ur
eof call sql 3
$¨ li = ''
$@¢
date        full copy Bytes ..........    incremental copy Bytes....
            copy     TS       changed     copy     TS       changed
$!
   $@for v $@{
       if ${v.DA} ^== left(li, 10) then do
           if li ^== '' then
               $£ li
           li = ${v.DA}
           end
       tx = format(${v.CP}, 1, 2, 2, 0) ,
            format(${v.TS}, 1, 2, 2, 0) ,
            format(${v.CH}, 1, 2, 2, 0)
       if ${v.ICTYPE} = 'F' then
            li = overlay(tx, li, 13)
       else
            li = overlay(tx, li, 43)
   $}
   $£ li
$;
call adrSqlDisconnect
$***out            20080121 12:47:45
date        full copy Bytes ..........    incremental copy Bytes....
            copy     TS       changed     copy     TS       changed
21.01.2008  1.14E+12 4.76E+13 8.28E+10    2.76E+10 2.46E+12 2.67E+10
20.01.2008  1.21E+12 4.35E+13 2.09E+11    3.96E+10 2.75E+12 3.90E+10
19.01.2008  1.53E+12 4.81E+13 2.11E+10    1.54E+10 3.96E+12 1.45E+10
18.01.2008  2.26E+12 4.98E+13 7.74E+10    5.62E+10 5.01E+12 5.44E+10
17.01.2008  2.71E+12 5.04E+13 7.15E+10    4.78E+10 4.91E+12 4.60E+10
16.01.2008  2.25E+12 4.97E+13 7.76E+10    4.55E+10 4.85E+12 4.38E+10
15.01.2008  2.63E+12 4.76E+13 9.65E+10    4.76E+10 4.86E+12 4.58E+10
14.01.2008  2.09E+12 4.71E+13 1.11E+11    4.12E+10 4.56E+12 3.97E+10
13.01.2008  1.41E+12 4.00E+13 3.37E+11    2.88E+09 2.98E+12 2.24E+09
12.01.2008  1.40E+12 4.87E+13 2.42E+10    1.42E+10 3.91E+12 1.33E+10
11.01.2008  2.44E+12 4.91E+13 7.64E+10    5.31E+10 4.91E+12 5.14E+10
10.01.2008  2.36E+12 5.02E+13 7.98E+10    5.08E+10 4.89E+12 4.91E+10
09.01.2008  2.71E+12 5.03E+13 7.85E+10    4.96E+10 4.86E+12 4.79E+10
08.01.2008  2.43E+12 4.90E+13 9.32E+10    5.51E+10 4.90E+12 5.34E+10
07.01.2008  2.16E+12 4.86E+13 1.19E+11    4.25E+10 4.52E+12 4.09E+10
06.01.2008  1.56E+12 3.06E+13 4.90E+11    9.97E+10 2.96E+12 9.90E+10
05.01.2008  1.36E+12 4.81E+13 1.65E+10    1.43E+10 3.79E+12 1.34E+10
04.01.2008  2.51E+12 5.06E+13 1.19E+11    5.65E+10 4.97E+12 5.48E+10
03.01.2008  2.45E+12 4.97E+13 1.04E+11    5.53E+10 5.13E+12 5.36E+10
02.01.2008  2.22E+12 5.04E+13 2.36E+11    2.66E+10 3.69E+12 2.54E+10
01.01.2008  1.32E+12 4.73E+13 1.61E+11    4.37E+10 2.05E+12 4.31E+10
31.12.2007  2.23E+12 4.68E+13 1.23E+11    4.40E+10 4.61E+12 4.25E+10
30.12.2007  1.35E+12 4.15E+13 3.03E+11    3.00E+09 2.98E+12 2.34E+09
29.12.2007  1.29E+12 4.82E+13 1.60E+10    1.86E+10 3.90E+12 1.76E+10
28.12.2007  2.46E+12 4.94E+13 1.07E+11    6.16E+10 4.92E+12 5.99E+10
27.12.2007  2.21E+12 4.92E+13 7.25E+10    4.97E+10 6.66E+12 4.76E+10
26.12.2007  1.62E+12 1.64E+12 9.27E+10    1.80E+10 7.13E+11 1.76E+10
25.12.2007  4.06E+09 3.43E+11 0.00        2.60E+08 4.08E+09 2.55E+08
24.12.2007  1.20E+11 1.22E+11 1.91E+10    3.57E+08 7.60E+09 3.39E+08
23.12.2007  1.84E+09 1.84E+09 1.84E+09
22.12.2007  9.94E+07 9.94E+07 9.94E+07
21.12.2007  4.67E+10 4.80E+10 8.84E+08    1.84E+08 3.15E+09 1.71E+08
17.12.2007  3.35E+09 3.50E+09 2.60E+09
10.12.2007  6.45E+09 6.60E+09 6.45E+09
03.12.2007  8.59E+09 8.67E+09 8.59E+09
26.11.2007  8.60E+09 8.69E+09 8.60E+09
25.11.2007  1.00E+06 1.47E+06 1.47E+06
19.11.2007  1.42E+10 1.43E+10 1.34E+10
12.11.2007  1.00E+09 1.10E+09 1.00E+09
06.11.2007  3.28E+04 1.97E+05 0.00
05.11.2007  8.30E+09 8.43E+09 8.30E+09
29.10.2007  7.32E+09 7.46E+09 7.32E+09
26.10.2007  2.81E+08 2.79E+08 2.79E+08
22.10.2007  1.33E+10 1.35E+10 1.12E+10
21.10.2007  1.58E+08 1.65E+08 1.65E+08
18.10.2007  3.28E+04 1.97E+05 0.00
15.10.2007  2.56E+09 2.70E+09 2.56E+09
08.10.2007  8.30E+09 8.44E+09 8.30E+09
01.10.2007  4.27E+09 4.33E+09 4.27E+09
24.09.2007  7.18E+09 7.30E+09 7.18E+09
17.09.2007  1.07E+10 1.08E+10 8.71E+09
10.09.2007  2.29E+09 2.40E+09 2.29E+09
09.09.2007  5.23E+06 5.13E+06 5.13E+06
03.09.2007  8.07E+09 8.20E+09 8.07E+09
02.09.2007  4.90E+07 4.35E+07 4.35E+07
27.08.2007  1.14E+10 1.15E+10 8.53E+09
20.08.2007  3.23E+09 3.36E+09 3.23E+09
13.08.2007  9.67E+09 9.82E+09 8.45E+09
08.08.2007  7.76E+10 7.76E+10 7.76E+10
07.08.2007  3.53E+10 3.53E+10 3.53E+10
06.08.2007  1.47E+09 1.60E+09 1.47E+09
30.07.2007  4.83E+09 4.97E+09 4.83E+09
23.07.2007  1.16E+10 1.17E+10 1.00E+10
22.07.2007  7.27E+06 7.14E+06 7.14E+06
16.07.2007  1.85E+09 1.98E+09 1.85E+09
15.07.2007  1.26E+06 1.47E+06 1.47E+06
09.07.2007  8.07E+09 8.20E+09 8.07E+09
02.07.2007  1.30E+10 1.31E+10 1.30E+10
01.07.2007  5.31E+07 5.22E+07 5.22E+07
25.06.2007  6.20E+09 6.33E+09 6.20E+09
24.06.2007  3.30E+07 2.93E+07 2.93E+07
18.06.2007  1.28E+10 1.29E+10 9.18E+09
17.06.2007  2.02E+07 1.79E+07 1.79E+07
11.06.2007  4.18E+09 4.28E+09 4.18E+09
04.06.2007  1.20E+10 1.20E+10 0.00
03.06.2007  1.20E+10 1.20E+10 1.20E+10
28.05.2007  1.18E+09 1.18E+09 0.00
27.05.2007  1.67E+10 1.67E+10 1.67E+10
21.05.2007  8.95E+09 8.95E+09 0.00
20.05.2007  8.95E+09 8.95E+09 8.95E+09
14.05.2007  1.30E+09 1.30E+09 0.00
13.05.2007  1.67E+10 1.67E+10 1.67E+10
07.05.2007  9.35E+09 9.35E+09 0.00
06.05.2007  9.35E+09 9.35E+09 9.35E+09
30.04.2007  1.22E+10 1.22E+10 5.24E+05
29.04.2007  1.53E+10 1.53E+10 1.53E+10
23.04.2007  7.48E+09 7.48E+09 0.00
22.04.2007  7.59E+09 7.57E+09 7.57E+09
16.04.2007  3.34E+09 3.34E+09 0.00
15.04.2007  1.58E+10 1.58E+10 1.58E+10
09.04.2007  9.31E+09 9.31E+09 0.00
08.04.2007  9.55E+09 9.55E+09 9.55E+09
02.04.2007  2.76E+09 2.76E+09 0.00
01.04.2007  1.82E+10 1.82E+10 1.82E+10
26.03.2007  4.56E+09 4.56E+09 0.00
25.03.2007  4.56E+09 4.56E+09 4.56E+09
19.03.2007  1.34E+10 1.34E+10 0.00
18.03.2007  1.34E+10 1.34E+10 1.34E+10
12.03.2007  6.10E+09 6.10E+09 0.00
11.03.2007  6.10E+09 6.10E+09 6.10E+09
07.03.2007  1.47E+11 1.50E+11 3.40E+09
05.03.2007  9.27E+08 9.27E+08 0.00
04.03.2007  1.63E+10 1.63E+10 1.63E+10
28.02.2007  3.44E+05 5.90E+06 0.00
26.02.2007  6.10E+09 6.10E+09 0.00
25.02.2007  6.10E+09 6.10E+09 6.10E+09
21.02.2007  3.44E+05 5.90E+06 0.00
19.02.2007  6.27E+09 6.27E+09 0.00
18.02.2007  1.56E+10 1.56E+10 1.56E+10
12.02.2007  1.31E+09 1.46E+09 2.42E+05
28.01.2007  2.38E+07 2.36E+07 2.36E+07
13.12.2006  1.51E+07 1.46E+07 1.46E+07
27.11.2006  9.84E+08 9.84E+08 3.65E+05
14.11.2006  9.70E+07 9.79E+07 9.01E+04
13.11.2006  4.90E+07 4.90E+07 1.64E+04
16.10.2006  1.67E+09 1.68E+09 0.00
15.10.2006  6.55E+04 5.90E+06 5.90E+06
27.09.2006  7.58E+08 7.61E+08 2.95E+05
11.09.2006  2.31E+09 2.32E+09 0.00
07.09.2006  8.35E+08 8.39E+08 0.00
06.09.2006  1.72E+05 1.97E+05 0.00
05.09.2006  1.23E+04 4.92E+04 0.00
04.09.2006  2.31E+09 2.32E+09 0.00
31.08.2006  8.35E+08 8.39E+08 0.00
30.08.2006  1.72E+05 1.97E+05 0.00
29.08.2006  1.23E+04 4.92E+04 0.00
28.08.2006  2.31E+09 2.32E+09 0.00
24.08.2006  8.35E+08 8.39E+08 0.00
23.08.2006  1.72E+05 1.97E+05 0.00
22.08.2006  1.23E+04 4.92E+04 0.00
21.08.2006  2.31E+09 2.32E+09 0.00
17.08.2006  8.35E+08 8.39E+08 0.00
16.08.2006  1.72E+05 1.97E+05 0.00
15.08.2006  3.89E+09 4.29E+09 4.29E+09
14.08.2006  2.31E+09 2.32E+09 2.31E+09
10.08.2006  8.35E+08 8.39E+08 0.00
09.08.2006  1.72E+05 1.97E+05 0.00
08.08.2006  1.23E+04 4.92E+04 0.00
13.06.2006  9.63E+05 2.21E+06 2.21E+06
06.06.2006  8.19E+03 4.92E+04 8.19E+03
15.05.2006  1.72E+07 1.66E+07 1.66E+07
08.05.2006  8.44E+05 5.61E+05 5.61E+05
03.05.2006  1.67E+07 1.82E+07 2.79E+05
05.04.2006  4.69E+07 5.97E+07 5.97E+07
03.04.2006  3.28E+04 4.92E+04 4.92E+04
21.03.2006  3.37E+07 3.39E+07 3.39E+07
03.03.2006  3.34E+09 3.34E+09 3.34E+09
23.01.2006  5.02E+08 5.03E+08 9.83E+04
22.01.2006  2.23E+07 2.20E+07 2.20E+07
24.11.2005  2.95E+07 1.53E+08 1.53E+08
03.11.2005  1.55E+07 1.55E+07 4.61E+06
23.10.2005  4.75E+05 9.01E+05 4.67E+05
11.10.2005  2.75E+07 3.39E+07 2.75E+07
11.08.2005  2.07E+08 1.84E+08 1.84E+08
10.06.2005  5.12E+09 5.12E+09 0.00
09.06.2005  5.15E+09 5.18E+09 0.00
08.06.2005  5.30E+09 5.30E+09 1.15E+05
07.06.2005  5.12E+09 5.13E+09 0.00
06.06.2005  5.12E+09 5.23E+09 0.00
03.06.2005  5.12E+09 5.12E+09 0.00
02.06.2005  5.15E+09 5.18E+09 0.00
01.06.2005  5.30E+09 5.30E+09 1.11E+05
31.05.2005  5.12E+09 5.13E+09 8.19E+03
30.05.2005  5.12E+09 5.23E+09 0.00
27.05.2005  5.12E+09 5.12E+09 0.00
26.05.2005  5.15E+09 5.18E+09 0.00
25.05.2005  5.30E+09 5.30E+09 1.11E+05
24.05.2005  5.12E+09 5.13E+09 0.00
23.05.2005  5.12E+09 5.23E+09 0.00
20.05.2005  5.12E+09 5.12E+09 0.00
19.05.2005  5.15E+09 5.18E+09 0.00
18.05.2005  5.30E+09 5.30E+09 1.52E+05
17.05.2005  5.12E+09 5.12E+09 0.00
16.05.2005  5.12E+09 5.17E+09 8.19E+03
29.03.2004  8.19E+03 7.37E+05 8.19E+03
04.02.2004  2.92E+07 4.75E+07 0.00
03.02.2004  9.42E+04 2.90E+06 0.00
28.01.2004  2.92E+07 4.75E+07 0.00
26.01.2004  9.42E+04 2.90E+06 0.00
20.01.2004  2.92E+07 4.75E+07 0.00
19.01.2004  9.42E+04 2.90E+06 0.00
$***out            20080115 12:17:26
date        full copy Bytes ..........    incremental copy Bytes....
            copy     TS       changed     copy     TS       changed
15.01.2008  1.85E+12 4.68E+13 7.81E+10    3.15E+10 2.72E+12 3.05E+10
14.01.2008  2.09E+12 4.71E+13 1.11E+11    4.12E+10 4.56E+12 3.97E+10
13.01.2008  1.41E+12 4.00E+13 3.37E+11    2.88E+09 2.98E+12 2.24E+09
12.01.2008  1.40E+12 4.87E+13 2.42E+10    1.42E+10 3.91E+12 1.33E+10
11.01.2008  2.44E+12 4.91E+13 7.64E+10    5.31E+10 4.91E+12 5.14E+10
10.01.2008  2.36E+12 5.02E+13 7.98E+10    5.08E+10 4.89E+12 4.91E+10
09.01.2008  2.71E+12 5.03E+13 7.85E+10    4.96E+10 4.86E+12 4.79E+10
08.01.2008  2.43E+12 4.90E+13 9.32E+10    5.51E+10 4.90E+12 5.34E+10
07.01.2008  2.16E+12 4.86E+13 1.19E+11    4.25E+10 4.52E+12 4.09E+10
06.01.2008  1.56E+12 3.06E+13 4.90E+11    9.97E+10 2.96E+12 9.90E+10
05.01.2008  1.36E+12 4.81E+13 1.65E+10    1.43E+10 3.79E+12 1.34E+10
04.01.2008  2.51E+12 5.06E+13 1.19E+11    5.65E+10 4.97E+12 5.48E+10
03.01.2008  2.45E+12 4.97E+13 1.04E+11    5.53E+10 5.13E+12 5.36E+10
02.01.2008  2.22E+12 5.04E+13 2.36E+11    2.66E+10 3.69E+12 2.54E+10
01.01.2008  1.32E+12 4.73E+13 1.61E+11    4.37E+10 2.05E+12 4.31E+10
31.12.2007  2.23E+12 4.68E+13 1.23E+11    4.40E+10 4.61E+12 4.25E+10
30.12.2007  1.35E+12 4.15E+13 3.03E+11    3.00E+09 2.98E+12 2.34E+09
29.12.2007  1.29E+12 4.82E+13 1.60E+10    1.86E+10 3.90E+12 1.76E+10
28.12.2007  2.46E+12 4.94E+13 1.07E+11    6.16E+10 4.92E+12 5.99E+10
27.12.2007  2.21E+12 4.92E+13 7.25E+10    4.97E+10 6.66E+12 4.76E+10
26.12.2007  1.64E+12 1.65E+12 9.28E+10    1.80E+10 7.13E+11 1.76E+10
25.12.2007  1.24E+12 4.72E+13 1.68E+10    1.31E+10 1.75E+12 1.26E+10
24.12.2007  2.32E+12 4.72E+13 1.31E+11    3.99E+10 4.56E+12 3.84E+10
23.12.2007  1.59E+12 3.56E+13 5.37E+11    2.80E+09 3.01E+12 2.13E+09
22.12.2007  1.25E+12 4.80E+13 2.00E+10    1.50E+10 3.87E+12 1.41E+10
21.12.2007  2.29E+12 4.91E+13 8.01E+10    6.17E+10 4.90E+12 6.00E+10
20.12.2007  2.32E+12 4.78E+13 8.38E+10    5.63E+10 4.85E+12 5.45E+10
19.12.2007  1.56E+11 7.80E+12 3.68E+09    4.93E+09 1.06E+11 4.80E+09
18.12.2007  1.07E+11 3.78E+12 2.74E+09    2.51E+09 6.01E+10 2.45E+09
17.12.2007  1.02E+11 1.03E+11 4.54E+09    2.97E+08 4.29E+09 2.74E+08
16.12.2007  9.79E+09 9.78E+09 9.78E+09
15.12.2007  1.05E+09 1.04E+09 1.04E+09
14.12.2007  4.72E+10 4.84E+10 7.95E+08    1.36E+08 2.20E+09 1.27E+08
10.12.2007  6.45E+09 6.60E+09 6.45E+09
03.12.2007  8.59E+09 8.67E+09 8.59E+09
26.11.2007  8.60E+09 8.69E+09 8.60E+09
25.11.2007  1.00E+06 1.47E+06 1.47E+06
19.11.2007  1.42E+10 1.43E+10 1.34E+10
12.11.2007  1.00E+09 1.10E+09 1.00E+09
06.11.2007  3.28E+04 1.97E+05 0.00
05.11.2007  8.30E+09 8.43E+09 8.30E+09
29.10.2007  7.32E+09 7.46E+09 7.32E+09
26.10.2007  2.81E+08 2.79E+08 2.79E+08
22.10.2007  1.33E+10 1.35E+10 1.12E+10
21.10.2007  1.58E+08 1.65E+08 1.65E+08
18.10.2007  3.28E+04 1.97E+05 0.00
15.10.2007  2.56E+09 2.70E+09 2.56E+09
08.10.2007  8.30E+09 8.44E+09 8.30E+09
01.10.2007  4.27E+09 4.33E+09 4.27E+09
24.09.2007  7.18E+09 7.30E+09 7.18E+09
17.09.2007  1.07E+10 1.08E+10 8.71E+09
10.09.2007  2.29E+09 2.40E+09 2.29E+09
09.09.2007  5.23E+06 5.13E+06 5.13E+06
03.09.2007  8.07E+09 8.20E+09 8.07E+09
02.09.2007  4.90E+07 4.35E+07 4.35E+07
27.08.2007  1.14E+10 1.15E+10 8.53E+09
20.08.2007  3.23E+09 3.36E+09 3.23E+09
13.08.2007  9.67E+09 9.82E+09 8.45E+09
08.08.2007  7.76E+10 7.76E+10 7.76E+10
07.08.2007  3.53E+10 3.53E+10 3.53E+10
06.08.2007  1.47E+09 1.60E+09 1.47E+09
30.07.2007  4.83E+09 4.97E+09 4.83E+09
23.07.2007  1.16E+10 1.17E+10 1.00E+10
22.07.2007  7.27E+06 7.14E+06 7.14E+06
16.07.2007  1.85E+09 1.98E+09 1.85E+09
15.07.2007  1.26E+06 1.47E+06 1.47E+06
09.07.2007  8.07E+09 8.20E+09 8.07E+09
02.07.2007  1.30E+10 1.31E+10 1.30E+10
01.07.2007  5.31E+07 5.22E+07 5.22E+07
25.06.2007  6.20E+09 6.33E+09 6.20E+09
24.06.2007  3.30E+07 2.93E+07 2.93E+07
18.06.2007  1.28E+10 1.29E+10 9.18E+09
17.06.2007  2.02E+07 1.79E+07 1.79E+07
11.06.2007  4.18E+09 4.28E+09 4.18E+09
04.06.2007  1.20E+10 1.20E+10 0.00
03.06.2007  1.20E+10 1.20E+10 1.20E+10
28.05.2007  1.18E+09 1.18E+09 0.00
27.05.2007  1.67E+10 1.67E+10 1.67E+10
21.05.2007  8.95E+09 8.95E+09 0.00
20.05.2007  8.95E+09 8.95E+09 8.95E+09
14.05.2007  1.30E+09 1.30E+09 0.00
13.05.2007  1.67E+10 1.67E+10 1.67E+10
07.05.2007  9.35E+09 9.35E+09 0.00
06.05.2007  9.35E+09 9.35E+09 9.35E+09
30.04.2007  1.22E+10 1.22E+10 5.24E+05
29.04.2007  1.53E+10 1.53E+10 1.53E+10
23.04.2007  7.48E+09 7.48E+09 0.00
22.04.2007  7.59E+09 7.57E+09 7.57E+09
16.04.2007  3.34E+09 3.34E+09 0.00
15.04.2007  1.58E+10 1.58E+10 1.58E+10
09.04.2007  9.31E+09 9.31E+09 0.00
08.04.2007  9.55E+09 9.55E+09 9.55E+09
02.04.2007  2.76E+09 2.76E+09 0.00
01.04.2007  1.82E+10 1.82E+10 1.82E+10
26.03.2007  4.56E+09 4.56E+09 0.00
25.03.2007  4.56E+09 4.56E+09 4.56E+09
19.03.2007  1.34E+10 1.34E+10 0.00
18.03.2007  1.34E+10 1.34E+10 1.34E+10
12.03.2007  6.10E+09 6.10E+09 0.00
11.03.2007  6.10E+09 6.10E+09 6.10E+09
07.03.2007  1.47E+11 1.50E+11 3.40E+09
05.03.2007  9.27E+08 9.27E+08 0.00
04.03.2007  1.63E+10 1.63E+10 1.63E+10
28.02.2007  3.44E+05 5.90E+06 0.00
26.02.2007  6.10E+09 6.10E+09 0.00
25.02.2007  6.10E+09 6.10E+09 6.10E+09
21.02.2007  3.44E+05 5.90E+06 0.00
19.02.2007  6.27E+09 6.27E+09 0.00
18.02.2007  1.56E+10 1.56E+10 1.56E+10
12.02.2007  1.31E+09 1.46E+09 2.42E+05
28.01.2007  2.38E+07 2.36E+07 2.36E+07
13.12.2006  1.51E+07 1.46E+07 1.46E+07
27.11.2006  9.84E+08 9.84E+08 3.65E+05
14.11.2006  9.70E+07 9.79E+07 9.01E+04
13.11.2006  4.90E+07 4.90E+07 1.64E+04
16.10.2006  1.67E+09 1.68E+09 0.00
15.10.2006  6.55E+04 5.90E+06 5.90E+06
27.09.2006  7.58E+08 7.61E+08 2.95E+05
11.09.2006  2.31E+09 2.32E+09 0.00
07.09.2006  8.35E+08 8.39E+08 0.00
06.09.2006  1.72E+05 1.97E+05 0.00
05.09.2006  1.23E+04 4.92E+04 0.00
04.09.2006  2.31E+09 2.32E+09 0.00
31.08.2006  8.35E+08 8.39E+08 0.00
30.08.2006  1.72E+05 1.97E+05 0.00
29.08.2006  1.23E+04 4.92E+04 0.00
28.08.2006  2.31E+09 2.32E+09 0.00
24.08.2006  8.35E+08 8.39E+08 0.00
23.08.2006  1.72E+05 1.97E+05 0.00
22.08.2006  1.23E+04 4.92E+04 0.00
21.08.2006  2.31E+09 2.32E+09 0.00
17.08.2006  8.35E+08 8.39E+08 0.00
16.08.2006  1.72E+05 1.97E+05 0.00
15.08.2006  3.89E+09 4.29E+09 4.29E+09
14.08.2006  2.31E+09 2.32E+09 2.31E+09
10.08.2006  8.35E+08 8.39E+08 0.00
09.08.2006  1.72E+05 1.97E+05 0.00
08.08.2006  1.23E+04 4.92E+04 0.00
13.06.2006  9.63E+05 2.21E+06 2.21E+06
06.06.2006  8.19E+03 4.92E+04 8.19E+03
15.05.2006  1.72E+07 1.66E+07 1.66E+07
08.05.2006  8.44E+05 5.61E+05 5.61E+05
03.05.2006  1.67E+07 1.82E+07 2.79E+05
05.04.2006  4.69E+07 5.97E+07 5.97E+07
03.04.2006  3.28E+04 4.92E+04 4.92E+04
21.03.2006  3.37E+07 3.39E+07 3.39E+07
03.03.2006  3.34E+09 3.34E+09 3.34E+09
23.01.2006  5.02E+08 5.03E+08 9.83E+04
22.01.2006  2.23E+07 2.20E+07 2.20E+07
24.11.2005  2.95E+07 1.53E+08 1.53E+08
03.11.2005  1.55E+07 1.55E+07 4.61E+06
23.10.2005  4.75E+05 9.01E+05 4.67E+05
11.10.2005  2.75E+07 3.39E+07 2.75E+07
11.08.2005  2.07E+08 1.84E+08 1.84E+08
10.06.2005  5.12E+09 5.12E+09 0.00
09.06.2005  5.15E+09 5.18E+09 0.00
08.06.2005  5.30E+09 5.30E+09 1.15E+05
07.06.2005  5.12E+09 5.13E+09 0.00
06.06.2005  5.12E+09 5.23E+09 0.00
03.06.2005  5.12E+09 5.12E+09 0.00
02.06.2005  5.15E+09 5.18E+09 0.00
01.06.2005  5.30E+09 5.30E+09 1.11E+05
31.05.2005  5.12E+09 5.13E+09 8.19E+03
30.05.2005  5.12E+09 5.23E+09 0.00
27.05.2005  5.12E+09 5.12E+09 0.00
26.05.2005  5.15E+09 5.18E+09 0.00
25.05.2005  5.30E+09 5.30E+09 1.11E+05
24.05.2005  5.12E+09 5.13E+09 0.00
23.05.2005  5.12E+09 5.23E+09 0.00
20.05.2005  5.12E+09 5.12E+09 0.00
19.05.2005  5.15E+09 5.18E+09 0.00
18.05.2005  5.30E+09 5.30E+09 1.52E+05
17.05.2005  5.12E+09 5.12E+09 0.00
16.05.2005  5.12E+09 5.17E+09 8.19E+03
29.03.2004  8.19E+03 7.37E+05 8.19E+03
04.02.2004  2.92E+07 4.75E+07 0.00
03.02.2004  9.42E+04 2.90E+06 0.00
28.01.2004  2.92E+07 4.75E+07 0.00
26.01.2004  9.42E+04 2.90E+06 0.00
20.01.2004  2.92E+07 4.75E+07 0.00
19.01.2004  9.42E+04 2.90E+06 0.00
$***out            20080115 12:14:50
date        full copy kb .............    incremental copy kb ......
            copy     TS       changed     copy     TS       changed
15.01.2008  1.77E+09 4.57E+10 7.59E+07    3.00E+07 2.63E+09 2.91E+07
14.01.2008  2.04E+09 4.60E+10 1.08E+08    4.03E+07 4.45E+09 3.87E+07
13.01.2008  1.37E+09 3.91E+10 3.29E+08    2.81E+06 2.91E+09 2.19E+06
12.01.2008  1.37E+09 4.75E+10 2.36E+07    1.39E+07 3.82E+09 1.30E+07
11.01.2008  2.39E+09 4.80E+10 7.46E+07    5.19E+07 4.80E+09 5.02E+07
10.01.2008  2.31E+09 4.91E+10 7.79E+07    4.96E+07 4.78E+09 4.79E+07
09.01.2008  2.64E+09 4.91E+10 7.66E+07    4.84E+07 4.74E+09 4.67E+07
08.01.2008  2.37E+09 4.79E+10 9.10E+07    5.38E+07 4.79E+09 5.21E+07
07.01.2008  2.11E+09 4.74E+10 1.17E+08    4.15E+07 4.42E+09 4.00E+07
06.01.2008  1.53E+09 2.99E+10 4.78E+08    9.73E+07 2.89E+09 9.67E+07
05.01.2008  1.33E+09 4.70E+10 1.61E+07    1.40E+07 3.70E+09 1.31E+07
04.01.2008  2.45E+09 4.94E+10 1.16E+08    5.51E+07 4.86E+09 5.35E+07
03.01.2008  2.39E+09 4.86E+10 1.02E+08    5.40E+07 5.01E+09 5.23E+07
02.01.2008  2.17E+09 4.92E+10 2.30E+08    2.60E+07 3.61E+09 2.48E+07
01.01.2008  1.29E+09 4.62E+10 1.57E+08    4.26E+07 2.00E+09 4.21E+07
31.12.2007  2.18E+09 4.57E+10 1.20E+08    4.29E+07 4.50E+09 4.15E+07
30.12.2007  1.32E+09 4.05E+10 2.96E+08    2.93E+06 2.91E+09 2.28E+06
29.12.2007  1.26E+09 4.71E+10 1.56E+07    1.81E+07 3.81E+09 1.72E+07
28.12.2007  2.40E+09 4.82E+10 1.04E+08    6.02E+07 4.80E+09 5.85E+07
27.12.2007  2.16E+09 4.80E+10 7.08E+07    4.85E+07 6.50E+09 4.65E+07
26.12.2007  1.60E+09 1.62E+09 9.06E+07    1.76E+07 6.96E+08 1.72E+07
25.12.2007  1.21E+09 4.61E+10 1.64E+07    1.28E+07 1.71E+09 1.23E+07
24.12.2007  2.27E+09 4.61E+10 1.28E+08    3.89E+07 4.45E+09 3.75E+07
23.12.2007  1.55E+09 3.48E+10 5.24E+08    2.73E+06 2.94E+09 2.08E+06
22.12.2007  1.22E+09 4.69E+10 1.95E+07    1.47E+07 3.78E+09 1.38E+07
21.12.2007  2.24E+09 4.80E+10 7.83E+07    6.03E+07 4.78E+09 5.86E+07
20.12.2007  2.26E+09 4.67E+10 8.18E+07    5.50E+07 4.74E+09 5.33E+07
19.12.2007  1.53E+08 7.62E+09 3.59E+06    4.81E+06 1.03E+08 4.69E+06
18.12.2007  1.04E+08 3.69E+09 2.68E+06    2.45E+06 5.87E+07 2.39E+06
17.12.2007  9.99E+07 1.01E+08 4.43E+06    2.90E+05 4.19E+06 2.68E+05
16.12.2007  9.56E+06 9.55E+06 9.55E+06
15.12.2007  1.02E+06 1.02E+06 1.02E+06
14.12.2007  4.61E+07 4.73E+07 7.77E+05    1.33E+05 2.14E+06 1.24E+05
10.12.2007  6.30E+06 6.45E+06 6.30E+06
03.12.2007  8.39E+06 8.47E+06 8.39E+06
26.11.2007  8.40E+06 8.49E+06 8.40E+06
25.11.2007  9.80E+02 1.44E+03 1.44E+03
19.11.2007  1.39E+07 1.40E+07 1.31E+07
12.11.2007  9.77E+05 1.08E+06 9.77E+05
06.11.2007  3.20E+01 1.92E+02 0.00
05.11.2007  8.11E+06 8.24E+06 8.11E+06
29.10.2007  7.15E+06 7.29E+06 7.15E+06
26.10.2007  2.75E+05 2.72E+05 2.72E+05
22.10.2007  1.30E+07 1.31E+07 1.09E+07
21.10.2007  1.54E+05 1.61E+05 1.61E+05
18.10.2007  3.20E+01 1.92E+02 0.00
15.10.2007  2.50E+06 2.63E+06 2.50E+06
08.10.2007  8.11E+06 8.24E+06 8.11E+06
01.10.2007  4.17E+06 4.23E+06 4.17E+06
24.09.2007  7.01E+06 7.13E+06 7.01E+06
17.09.2007  1.04E+07 1.06E+07 8.51E+06
10.09.2007  2.24E+06 2.34E+06 2.24E+06
09.09.2007  5.11E+03 5.01E+03 5.01E+03
03.09.2007  7.88E+06 8.00E+06 7.88E+06
02.09.2007  4.78E+04 4.24E+04 4.24E+04
27.08.2007  1.11E+07 1.12E+07 8.33E+06
20.08.2007  3.15E+06 3.28E+06 3.15E+06
13.08.2007  9.45E+06 9.59E+06 8.25E+06
08.08.2007  7.58E+07 7.57E+07 7.57E+07
07.08.2007  3.45E+07 3.44E+07 3.44E+07
06.08.2007  1.44E+06 1.57E+06 1.44E+06
30.07.2007  4.72E+06 4.85E+06 4.72E+06
23.07.2007  1.13E+07 1.15E+07 9.80E+06
22.07.2007  7.10E+03 6.97E+03 6.97E+03
16.07.2007  1.81E+06 1.93E+06 1.81E+06
15.07.2007  1.23E+03 1.44E+03 1.44E+03
09.07.2007  7.88E+06 8.01E+06 7.88E+06
02.07.2007  1.27E+07 1.28E+07 1.27E+07
01.07.2007  5.18E+04 5.10E+04 5.10E+04
25.06.2007  6.06E+06 6.18E+06 6.06E+06
24.06.2007  3.22E+04 2.86E+04 2.86E+04
18.06.2007  1.25E+07 1.26E+07 8.96E+06
17.06.2007  1.97E+04 1.75E+04 1.75E+04
11.06.2007  4.08E+06 4.18E+06 4.08E+06
04.06.2007  1.17E+07 1.17E+07 0.00
03.06.2007  1.17E+07 1.17E+07 1.17E+07
28.05.2007  1.15E+06 1.15E+06 0.00
27.05.2007  1.63E+07 1.63E+07 1.63E+07
21.05.2007  8.74E+06 8.74E+06 0.00
20.05.2007  8.74E+06 8.74E+06 8.74E+06
14.05.2007  1.27E+06 1.27E+06 0.00
13.05.2007  1.63E+07 1.63E+07 1.63E+07
07.05.2007  9.13E+06 9.13E+06 0.00
06.05.2007  9.13E+06 9.13E+06 9.13E+06
30.04.2007  1.19E+07 1.19E+07 5.12E+02
29.04.2007  1.49E+07 1.49E+07 1.49E+07
23.04.2007  7.31E+06 7.31E+06 0.00
22.04.2007  7.41E+06 7.40E+06 7.40E+06
16.04.2007  3.26E+06 3.26E+06 0.00
15.04.2007  1.55E+07 1.55E+07 1.55E+07
09.04.2007  9.09E+06 9.09E+06 0.00
08.04.2007  9.33E+06 9.33E+06 9.33E+06
02.04.2007  2.70E+06 2.70E+06 0.00
01.04.2007  1.78E+07 1.78E+07 1.78E+07
26.03.2007  4.45E+06 4.45E+06 0.00
25.03.2007  4.45E+06 4.45E+06 4.45E+06
19.03.2007  1.31E+07 1.31E+07 0.00
18.03.2007  1.31E+07 1.31E+07 1.31E+07
12.03.2007  5.96E+06 5.96E+06 0.00
11.03.2007  5.96E+06 5.96E+06 5.96E+06
07.03.2007  1.43E+08 1.47E+08 3.32E+06
05.03.2007  9.05E+05 9.05E+05 0.00
04.03.2007  1.60E+07 1.60E+07 1.60E+07
28.02.2007  3.36E+02 5.76E+03 0.00
26.02.2007  5.96E+06 5.96E+06 0.00
25.02.2007  5.96E+06 5.96E+06 5.96E+06
21.02.2007  3.36E+02 5.76E+03 0.00
19.02.2007  6.13E+06 6.13E+06 0.00
18.02.2007  1.52E+07 1.52E+07 1.52E+07
12.02.2007  1.28E+06 1.43E+06 2.36E+02
28.01.2007  2.33E+04 2.30E+04 2.30E+04
13.12.2006  1.48E+04 1.43E+04 1.43E+04
27.11.2006  9.61E+05 9.61E+05 3.56E+02
14.11.2006  9.48E+04 9.56E+04 8.80E+01
13.11.2006  4.78E+04 4.78E+04 1.60E+01
16.10.2006  1.63E+06 1.64E+06 0.00
15.10.2006  6.40E+01 5.76E+03 5.76E+03
27.09.2006  7.41E+05 7.44E+05 2.88E+02
11.09.2006  2.25E+06 2.27E+06 0.00
07.09.2006  8.15E+05 8.19E+05 0.00
06.09.2006  1.68E+02 1.92E+02 0.00
05.09.2006  1.20E+01 4.80E+01 0.00
04.09.2006  2.25E+06 2.27E+06 0.00
31.08.2006  8.15E+05 8.19E+05 0.00
30.08.2006  1.68E+02 1.92E+02 0.00
29.08.2006  1.20E+01 4.80E+01 0.00
28.08.2006  2.25E+06 2.27E+06 0.00
24.08.2006  8.15E+05 8.19E+05 0.00
23.08.2006  1.68E+02 1.92E+02 0.00
22.08.2006  1.20E+01 4.80E+01 0.00
21.08.2006  2.25E+06 2.27E+06 0.00
17.08.2006  8.15E+05 8.19E+05 0.00
16.08.2006  1.68E+02 1.92E+02 0.00
15.08.2006  3.80E+06 4.19E+06 4.19E+06
14.08.2006  2.25E+06 2.27E+06 2.25E+06
10.08.2006  8.15E+05 8.19E+05 0.00
09.08.2006  1.68E+02 1.92E+02 0.00
08.08.2006  1.20E+01 4.80E+01 0.00
13.06.2006  9.40E+02 2.16E+03 2.16E+03
06.06.2006  8.00     4.80E+01 8.00
15.05.2006  1.68E+04 1.62E+04 1.62E+04
08.05.2006  8.24E+02 5.48E+02 5.48E+02
03.05.2006  1.63E+04 1.78E+04 2.72E+02
05.04.2006  4.58E+04 5.83E+04 5.83E+04
03.04.2006  3.20E+01 4.80E+01 4.80E+01
21.03.2006  3.29E+04 3.31E+04 3.31E+04
03.03.2006  3.26E+06 3.27E+06 3.26E+06
23.01.2006  4.90E+05 4.91E+05 9.60E+01
22.01.2006  2.18E+04 2.14E+04 2.14E+04
24.11.2005  2.88E+04 1.50E+05 1.50E+05
03.11.2005  1.51E+04 1.51E+04 4.50E+03
23.10.2005  4.64E+02 8.80E+02 4.56E+02
11.10.2005  2.68E+04 3.31E+04 2.68E+04
11.08.2005  2.02E+05 1.80E+05 1.80E+05
10.06.2005  5.00E+06 5.00E+06 0.00
09.06.2005  5.03E+06 5.06E+06 0.00
08.06.2005  5.17E+06 5.18E+06 1.12E+02
07.06.2005  5.00E+06 5.01E+06 0.00
06.06.2005  5.00E+06 5.11E+06 0.00
03.06.2005  5.00E+06 5.00E+06 0.00
02.06.2005  5.03E+06 5.06E+06 0.00
01.06.2005  5.17E+06 5.18E+06 1.08E+02
31.05.2005  5.00E+06 5.01E+06 8.00
30.05.2005  5.00E+06 5.11E+06 0.00
27.05.2005  5.00E+06 5.00E+06 0.00
26.05.2005  5.03E+06 5.06E+06 0.00
25.05.2005  5.17E+06 5.18E+06 1.08E+02
24.05.2005  5.00E+06 5.01E+06 0.00
23.05.2005  5.00E+06 5.11E+06 0.00
20.05.2005  5.00E+06 5.00E+06 0.00
19.05.2005  5.03E+06 5.06E+06 0.00
18.05.2005  5.17E+06 5.18E+06 1.48E+02
17.05.2005  5.00E+06 5.00E+06 0.00
16.05.2005  5.00E+06 5.04E+06 8.00
29.03.2004  8.00     7.20E+02 8.00
04.02.2004  2.85E+04 4.64E+04 0.00
03.02.2004  9.20E+01 2.83E+03 0.00
28.01.2004  2.85E+04 4.64E+04 0.00
26.01.2004  9.20E+01 2.83E+03 0.00
20.01.2004  2.85E+04 4.64E+04 0.00
19.01.2004  9.20E+01 2.83E+03 0.00
$***out            20080114 17:54:08
date        full copy kb .............    incremental copy kb ......
            copy     TS       changed     copy     TS       changed
14.01.2008  1.04E+09 4.50E+10 8.70E+07    2.94E+07 3.12E+09 2.83E+07
13.01.2008  1.37E+09 3.91E+10 3.29E+08    2.81E+06 2.91E+09 2.19E+06
12.01.2008  1.37E+09 4.75E+10 2.36E+07    1.39E+07 3.82E+09 1.30E+07
11.01.2008  2.39E+09 4.80E+10 7.46E+07    5.19E+07 4.80E+09 5.02E+07
10.01.2008  2.31E+09 4.91E+10 7.79E+07    4.96E+07 4.78E+09 4.79E+07
09.01.2008  2.64E+09 4.91E+10 7.66E+07    4.84E+07 4.74E+09 4.67E+07
08.01.2008  2.37E+09 4.79E+10 9.10E+07    5.38E+07 4.79E+09 5.21E+07
07.01.2008  2.11E+09 4.74E+10 1.17E+08    4.15E+07 4.42E+09 4.00E+07
06.01.2008  1.53E+09 2.99E+10 4.78E+08    9.73E+07 2.89E+09 9.67E+07
05.01.2008  1.33E+09 4.70E+10 1.61E+07    1.40E+07 3.70E+09 1.31E+07
04.01.2008  2.45E+09 4.94E+10 1.16E+08    5.51E+07 4.86E+09 5.35E+07
03.01.2008  2.39E+09 4.86E+10 1.02E+08    5.40E+07 5.01E+09 5.23E+07
02.01.2008  2.17E+09 4.92E+10 2.30E+08    2.60E+07 3.61E+09 2.48E+07
01.01.2008  1.29E+09 4.62E+10 1.57E+08    4.26E+07 2.00E+09 4.21E+07
31.12.2007  2.18E+09 4.57E+10 1.20E+08    4.29E+07 4.50E+09 4.15E+07
30.12.2007  1.32E+09 4.05E+10 2.96E+08    2.93E+06 2.91E+09 2.28E+06
29.12.2007  1.26E+09 4.71E+10 1.56E+07    1.81E+07 3.81E+09 1.72E+07
28.12.2007  2.40E+09 4.82E+10 1.04E+08    6.02E+07 4.80E+09 5.85E+07
27.12.2007  2.16E+09 4.80E+10 7.08E+07    4.85E+07 6.50E+09 4.65E+07
26.12.2007  1.60E+09 1.62E+09 9.06E+07    1.76E+07 6.96E+08 1.72E+07
25.12.2007  1.21E+09 4.61E+10 1.64E+07    1.28E+07 1.71E+09 1.23E+07
24.12.2007  2.27E+09 4.61E+10 1.28E+08    3.89E+07 4.45E+09 3.75E+07
23.12.2007  1.55E+09 3.48E+10 5.24E+08    2.73E+06 2.94E+09 2.08E+06
22.12.2007  1.22E+09 4.69E+10 1.95E+07    1.47E+07 3.78E+09 1.38E+07
21.12.2007  2.24E+09 4.80E+10 7.83E+07    6.03E+07 4.78E+09 5.86E+07
20.12.2007  2.28E+09 4.67E+10 8.20E+07    5.50E+07 4.74E+09 5.33E+07
19.12.2007  2.25E+09 4.83E+10 7.86E+07    5.16E+07 4.71E+09 5.00E+07
18.12.2007  1.72E+08 3.79E+09 5.13E+07    1.09E+07 2.45E+08 1.08E+07
17.12.2007  1.07E+08 1.08E+08 4.72E+06    8.02E+05 1.70E+07 7.69E+05
16.12.2007  9.83E+06 9.83E+06 9.83E+06
15.12.2007  1.02E+06 1.02E+06 1.02E+06
14.12.2007  4.81E+07 4.93E+07 7.77E+05    1.35E+05 2.19E+06 1.27E+05
10.12.2007  6.30E+06 6.45E+06 6.30E+06
03.12.2007  8.39E+06 8.47E+06 8.39E+06
26.11.2007  8.40E+06 8.49E+06 8.40E+06
25.11.2007  9.80E+02 1.44E+03 1.44E+03
19.11.2007  1.39E+07 1.40E+07 1.31E+07
12.11.2007  9.77E+05 1.08E+06 9.77E+05
06.11.2007  3.20E+01 1.92E+02 0.00
05.11.2007  8.11E+06 8.24E+06 8.11E+06
29.10.2007  7.15E+06 7.29E+06 7.15E+06
26.10.2007  2.75E+05 2.72E+05 2.72E+05
22.10.2007  1.30E+07 1.31E+07 1.09E+07
21.10.2007  1.54E+05 1.61E+05 1.61E+05
18.10.2007  3.20E+01 1.92E+02 0.00
15.10.2007  2.50E+06 2.63E+06 2.50E+06
08.10.2007  8.11E+06 8.24E+06 8.11E+06
01.10.2007  4.17E+06 4.23E+06 4.17E+06
24.09.2007  7.01E+06 7.13E+06 7.01E+06
17.09.2007  1.04E+07 1.06E+07 8.51E+06
10.09.2007  2.24E+06 2.34E+06 2.24E+06
09.09.2007  5.11E+03 5.01E+03 5.01E+03
03.09.2007  7.88E+06 8.00E+06 7.88E+06
02.09.2007  4.78E+04 4.24E+04 4.24E+04
27.08.2007  1.11E+07 1.12E+07 8.33E+06
20.08.2007  3.15E+06 3.28E+06 3.15E+06
13.08.2007  9.45E+06 9.59E+06 8.25E+06
08.08.2007  7.58E+07 7.57E+07 7.57E+07
07.08.2007  3.45E+07 3.44E+07 3.44E+07
06.08.2007  1.44E+06 1.57E+06 1.44E+06
30.07.2007  4.72E+06 4.85E+06 4.72E+06
23.07.2007  1.13E+07 1.15E+07 9.80E+06
22.07.2007  7.10E+03 6.97E+03 6.97E+03
16.07.2007  1.81E+06 1.93E+06 1.81E+06
15.07.2007  1.23E+03 1.44E+03 1.44E+03
09.07.2007  7.88E+06 8.01E+06 7.88E+06
02.07.2007  1.27E+07 1.28E+07 1.27E+07
01.07.2007  5.18E+04 5.10E+04 5.10E+04
25.06.2007  6.06E+06 6.18E+06 6.06E+06
24.06.2007  3.22E+04 2.86E+04 2.86E+04
18.06.2007  1.25E+07 1.26E+07 8.96E+06
17.06.2007  1.97E+04 1.75E+04 1.75E+04
11.06.2007  4.08E+06 4.18E+06 4.08E+06
05.06.2007  5.56E+02 1.44E+03 4.00
04.06.2007  1.17E+07 1.17E+07 0.00
03.06.2007  1.17E+07 1.17E+07 1.17E+07
28.05.2007  1.15E+06 1.15E+06 0.00
27.05.2007  1.63E+07 1.63E+07 1.63E+07
21.05.2007  8.74E+06 8.74E+06 0.00
20.05.2007  8.74E+06 8.74E+06 8.74E+06
14.05.2007  1.27E+06 1.27E+06 0.00
13.05.2007  1.63E+07 1.63E+07 1.63E+07
07.05.2007  9.13E+06 9.13E+06 0.00
06.05.2007  9.13E+06 9.13E+06 9.13E+06
30.04.2007  1.19E+07 1.19E+07 5.12E+02
29.04.2007  1.49E+07 1.49E+07 1.49E+07
23.04.2007  7.31E+06 7.31E+06 0.00
22.04.2007  7.41E+06 7.40E+06 7.40E+06
16.04.2007  3.26E+06 3.26E+06 0.00
15.04.2007  1.55E+07 1.55E+07 1.55E+07
09.04.2007  9.09E+06 9.09E+06 0.00
08.04.2007  9.33E+06 9.33E+06 9.33E+06
02.04.2007  2.70E+06 2.70E+06 0.00
01.04.2007  1.78E+07 1.78E+07 1.78E+07
26.03.2007  4.45E+06 4.45E+06 0.00
25.03.2007  4.45E+06 4.45E+06 4.45E+06
19.03.2007  1.31E+07 1.31E+07 0.00
18.03.2007  1.31E+07 1.31E+07 1.31E+07
12.03.2007  5.96E+06 5.96E+06 0.00
11.03.2007  5.96E+06 5.96E+06 5.96E+06
07.03.2007  1.43E+08 1.47E+08 3.32E+06
05.03.2007  9.05E+05 9.05E+05 0.00
04.03.2007  1.60E+07 1.60E+07 1.60E+07
28.02.2007  3.36E+02 5.76E+03 0.00
26.02.2007  5.96E+06 5.96E+06 0.00
25.02.2007  5.96E+06 5.96E+06 5.96E+06
21.02.2007  3.36E+02 5.76E+03 0.00
19.02.2007  6.13E+06 6.13E+06 0.00
18.02.2007  1.52E+07 1.52E+07 1.52E+07
12.02.2007  1.28E+06 1.43E+06 2.36E+02
28.01.2007  2.33E+04 2.30E+04 2.30E+04
13.12.2006  1.48E+04 1.43E+04 1.43E+04
27.11.2006  9.61E+05 9.61E+05 3.56E+02
14.11.2006  9.48E+04 9.56E+04 8.80E+01
13.11.2006  4.78E+04 4.78E+04 1.60E+01
16.10.2006  1.63E+06 1.64E+06 0.00
15.10.2006  6.40E+01 5.76E+03 5.76E+03
27.09.2006  7.41E+05 7.44E+05 2.88E+02
11.09.2006  2.25E+06 2.27E+06 0.00
07.09.2006  8.15E+05 8.19E+05 0.00
06.09.2006  1.68E+02 1.92E+02 0.00
05.09.2006  1.20E+01 4.80E+01 0.00
04.09.2006  2.25E+06 2.27E+06 0.00
31.08.2006  8.15E+05 8.19E+05 0.00
30.08.2006  1.68E+02 1.92E+02 0.00
29.08.2006  1.20E+01 4.80E+01 0.00
28.08.2006  2.25E+06 2.27E+06 0.00
24.08.2006  8.15E+05 8.19E+05 0.00
23.08.2006  1.68E+02 1.92E+02 0.00
22.08.2006  1.20E+01 4.80E+01 0.00
21.08.2006  2.25E+06 2.27E+06 0.00
17.08.2006  8.15E+05 8.19E+05 0.00
16.08.2006  1.68E+02 1.92E+02 0.00
15.08.2006  3.80E+06 4.19E+06 4.19E+06
14.08.2006  2.25E+06 2.27E+06 2.25E+06
10.08.2006  8.15E+05 8.19E+05 0.00
09.08.2006  1.68E+02 1.92E+02 0.00
08.08.2006  1.20E+01 4.80E+01 0.00
13.06.2006  9.40E+02 2.16E+03 2.16E+03
06.06.2006  8.00     4.80E+01 8.00
15.05.2006  1.68E+04 1.62E+04 1.62E+04
08.05.2006  8.24E+02 5.48E+02 5.48E+02
03.05.2006  1.63E+04 1.78E+04 2.72E+02
05.04.2006  4.58E+04 5.83E+04 5.83E+04
03.04.2006  3.20E+01 4.80E+01 4.80E+01
21.03.2006  3.29E+04 3.31E+04 3.31E+04
03.03.2006  3.26E+06 3.27E+06 3.26E+06
23.01.2006  4.90E+05 4.91E+05 9.60E+01
22.01.2006  2.18E+04 2.14E+04 2.14E+04
24.11.2005  2.88E+04 1.50E+05 1.50E+05
03.11.2005  1.51E+04 1.51E+04 4.50E+03
23.10.2005  4.64E+02 8.80E+02 4.56E+02
11.10.2005  2.68E+04 3.31E+04 2.68E+04
11.08.2005  2.02E+05 1.80E+05 1.80E+05
10.06.2005  5.00E+06 5.00E+06 0.00
09.06.2005  5.03E+06 5.06E+06 0.00
08.06.2005  5.17E+06 5.18E+06 1.12E+02
07.06.2005  5.00E+06 5.01E+06 0.00
06.06.2005  5.00E+06 5.11E+06 0.00
03.06.2005  5.00E+06 5.00E+06 0.00
02.06.2005  5.03E+06 5.06E+06 0.00
01.06.2005  5.17E+06 5.18E+06 1.08E+02
31.05.2005  5.00E+06 5.01E+06 8.00
30.05.2005  5.00E+06 5.11E+06 0.00
27.05.2005  5.00E+06 5.00E+06 0.00
26.05.2005  5.03E+06 5.06E+06 0.00
25.05.2005  5.17E+06 5.18E+06 1.08E+02
24.05.2005  5.00E+06 5.01E+06 0.00
23.05.2005  5.00E+06 5.11E+06 0.00
20.05.2005  5.00E+06 5.00E+06 0.00
19.05.2005  5.03E+06 5.06E+06 0.00
18.05.2005  5.17E+06 5.18E+06 1.48E+02
17.05.2005  5.00E+06 5.00E+06 0.00
16.05.2005  5.00E+06 5.04E+06 8.00
29.03.2004  8.00     7.20E+02 8.00
04.02.2004  2.85E+04 4.64E+04 0.00
03.02.2004  9.20E+01 2.83E+03 0.00
28.01.2004  2.85E+04 4.64E+04 0.00
26.01.2004  9.20E+01 2.83E+03 0.00
20.01.2004  2.85E+04 4.64E+04 0.00
19.01.2004  9.20E+01 2.83E+03 0.00
$***out
col1       ICTYPE           CP            TS          CH
14.01.2008 F      1042746532.0 44959468004.0  87002228.0
14.01.2008 I        29358724.0  3124851392.0  28290128.0
13.01.2008 F      1372347740.0 39078480100.0 329430708.0
13.01.2008 I         2808640.0  2908792240.0   2185056.0
12.01.2008 F      1371710576.0 47535937260.0  23594524.0
12.01.2008 I        13894020.0  3817340292.0  12989164.0
11.01.2008 F      2387243348.0 47994747348.0  74640060.0
11.01.2008 I        51897236.0  4799416332.0  50205932.0
10.01.2008 F      2307644476.0 49058467292.0  77905604.0
10.01.2008 I        49575084.0  4775467984.0  47901212.0
09.01.2008 F      2643405440.0 49149205032.0  76626476.0
09.01.2008 I        48432368.0  4743058820.0  46731632.0
08.01.2008 F      2371899660.0 47876503992.0  91031356.0
08.01.2008 I        53795884.0  4786069028.0  52115212.0
07.01.2008 F      2106863976.0 47448569588.0 116641584.0
07.01.2008 I        41495256.0  4416629160.0  39985504.0
06.01.2008 F      1528193756.0 29901405704.0 478107180.0
06.01.2008 I        97349236.0  2887044720.0  96674596.0
05.01.2008 F      1327980736.0 47007244076.0  16067596.0
05.01.2008 I        13980024.0  3703064932.0  13089988.0
04.01.2008 F      2454549236.0 49381306716.0 115899784.0
04.01.2008 I        55137204.0  4856651132.0  53469896.0
03.01.2008 F      2390913156.0 48566367700.0 101683976.0
03.01.2008 I        53973396.0  5009169264.0  52305432.0
02.01.2008 F      2168703116.0 49247755964.0 230126300.0
02.01.2008 I        26020088.0  3605907060.0  24800516.0
01.01.2008 F      1292543412.0 46170317988.0 156774728.0
01.01.2008 I        42639716.0  2004022356.0  42065836.0
31.12.2007 F      2180091092.0 45662439552.0 120076440.0
31.12.2007 I        42927556.0  4499815608.0  41514844.0
30.12.2007 F      1322510540.0 40528335088.0 295901252.0
30.12.2007 I         2926516.0  2909508684.0   2284296.0
29.12.2007 F      1261447540.0 47088697512.0  15623484.0
29.12.2007 I        18125352.0  3805093076.0  17197632.0
28.12.2007 F      2404094792.0 48207795660.0 104101380.0
28.12.2007 I        60188164.0  4800673608.0  58543268.0
27.12.2007 F      2161831520.0 48015359876.0  70839068.0
27.12.2007 I        48487228.0  6502327208.0  46480628.0
26.12.2007 F      1599133620.0  1616130728.0  90613432.0
26.12.2007 I        17575588.0   695930376.0  17234968.0
25.12.2007 F      1212295924.0 46098955472.0  16367680.0
25.12.2007 I        12823236.0  1705650120.0  12318224.0
24.12.2007 F      2269847900.0 46129645136.0 127985004.0
24.12.2007 I        38949840.0  4448788784.0  37539716.0
23.12.2007 F      1548480348.0 34796978248.0 524218312.0
23.12.2007 I         2730648.0  2941004944.0   2084688.0
22.12.2007 F      1223998320.0 46903132032.0  19501488.0
22.12.2007 I        14680552.0  3777174940.0  13763764.0
21.12.2007 F      2242145436.0 47995130144.0  78250640.0
21.12.2007 I        60300312.0  4783786416.0  58606632.0
20.12.2007 F      2275896328.0 46671827156.0  82017588.0
20.12.2007 I        54967340.0  4740323884.0  53257552.0
19.12.2007 F      2254717268.0 48314222204.0  78599744.0
19.12.2007 I        51608508.0  4712078848.0  49958576.0
18.12.2007 F       171691644.0  3794117708.0  51275292.0
18.12.2007 I        10904812.0   245022260.0  10808540.0
17.12.2007 F       106821848.0   107998808.0   4715016.0
17.12.2007 I          802088.0    16993384.0    769108.0
16.12.2007 F         9832476.0     9826540.0   9826540.0
15.12.2007 F         1024920.0     1018968.0   1018968.0
14.12.2007 F        48113124.0    49291172.0    776648.0
14.12.2007 I          135052.0     2187732.0    126548.0
10.12.2007 F         6303168.0     6445120.0   6302784.0
03.12.2007 F         8385600.0     8470048.0   8385280.0
26.11.2007 F         8396448.0     8490944.0   8396128.0
25.11.2007 F             980.0        1440.0      1440.0
19.11.2007 F        13886080.0    13992704.0  13089056.0
12.11.2007 F          976896.0     1077120.0    976576.0
06.11.2007 F              32.0         192.0         0.0
05.11.2007 F         8108576.0     8236800.0   8108256.0
29.10.2007 F         7152352.0     7286400.0   7152032.0
26.10.2007 F          274884.0      272368.0    272176.0
22.10.2007 F        13003584.0    13139456.0  10910272.0
21.10.2007 F          153816.0      161468.0    161468.0
18.10.2007 F              32.0         192.0         0.0
15.10.2007 F         2504512.0     2632960.0   2504192.0
08.10.2007 F         8108896.0     8243840.0   8108576.0
01.10.2007 F         4172096.0     4232928.0   4171776.0
24.09.2007 F         7010400.0     7132928.0   7010080.0
17.09.2007 F        10444480.0    10568448.0   8510368.0
10.09.2007 F         2239104.0     2341504.0   2238784.0
09.09.2007 F            5112.0        5012.0      5012.0
03.09.2007 F         7882432.0     8003072.0   7882112.0
02.09.2007 F           47808.0       42436.0     42436.0
27.08.2007 F        11091872.0    11222464.0   8325312.0
20.08.2007 F         3151328.0     3282048.0   3151008.0
13.08.2007 F         9447488.0     9588480.0   8247424.0
08.08.2007 F        75757464.0    75740368.0  75736944.0
07.08.2007 F        34450844.0    34439992.0  34439992.0
06.08.2007 F         1435648.0     1565344.0   1435568.0
30.07.2007 F         4719488.0     4849152.0   4719168.0
23.07.2007 F        11315168.0    11462528.0   9796672.0
22.07.2007 F            7104.0        6968.0      6968.0
16.07.2007 F         1809088.0     1934592.0   1808768.0
15.07.2007 F            1232.0        1440.0      1440.0
09.07.2007 F         7884736.0     8007296.0   7884416.0
02.07.2007 F        12709856.0    12817024.0  12709536.0
01.07.2007 F           51848.0       50956.0     50956.0
25.06.2007 F         6057184.0     6178304.0   6056864.0
24.06.2007 F           32224.0       28600.0     28600.0
18.06.2007 F        12509728.0    12632576.0   8962208.0
17.06.2007 F           19728.0       17512.0     17512.0
11.06.2007 F         4080480.0     4181760.0   4080160.0
05.06.2007 F             556.0        1440.0         4.0
04.06.2007 F        11729696.0    11729696.0         0.0
03.06.2007 F        11730336.0    11729696.0  11729696.0
28.05.2007 F         1153152.0     1153152.0         0.0
27.05.2007 F        16303040.0    16303680.0  16303680.0
21.05.2007 F         8740864.0     8740864.0         0.0
20.05.2007 F         8742892.0     8742304.0   8742304.0
14.05.2007 F         1268256.0     1268256.0         0.0
13.05.2007 F        16348832.0    16347552.0  16347552.0
07.05.2007 F         9132320.0     9132320.0         0.0
06.05.2007 F         9132960.0     9132320.0   9132320.0
30.04.2007 F        11907104.0    11908000.0       512.0
29.04.2007 F        14928000.0    14927296.0  14927296.0
23.04.2007 F         7308960.0     7308960.0         0.0
22.04.2007 F         7407564.0     7395956.0   7395956.0
16.04.2007 F         3259360.0     3259360.0         0.0
15.04.2007 F        15453664.0    15452512.0  15452512.0
09.04.2007 F         9087744.0     9087744.0         0.0
08.04.2007 F         9330852.0     9327720.0   9327720.0
02.04.2007 F         2696704.0     2696704.0         0.0
01.04.2007 F        17808480.0    17807392.0  17807392.0
26.03.2007 F         4451616.0     4451616.0         0.0
25.03.2007 F         4452256.0     4451616.0   4451616.0
19.03.2007 F        13069920.0    13069920.0         0.0
18.03.2007 F        13070560.0    13069920.0  13069920.0
12.03.2007 F         5955776.0     5955776.0         0.0
11.03.2007 F         5956416.0     5955776.0   5955776.0
07.03.2007 F       143245424.0   146899968.0   3322240.0
05.03.2007 F          905376.0      905376.0         0.0
04.03.2007 F        15962624.0    15961344.0  15961344.0
28.02.2007 F             336.0        5760.0         0.0
26.02.2007 F         5958912.0     5958912.0         0.0
25.02.2007 F         5959552.0     5958912.0   5958912.0
21.02.2007 F             336.0        5760.0         0.0
19.02.2007 F         6127456.0     6127648.0         0.0
18.02.2007 F        15230400.0    15229568.0  15229568.0
12.02.2007 F         1276436.0     1427244.0       236.0
28.01.2007 F           23256.0       23040.0     23040.0
13.12.2006 F           14760.0       14256.0     14256.0
27.11.2006 F          961184.0      961184.0       356.0
14.11.2006 F           94760.0       95648.0        88.0
13.11.2006 F           47824.0       47824.0        16.0
16.10.2006 F         1631152.0     1638656.0         0.0
15.10.2006 F              64.0        5760.0      5760.0
27.09.2006 F          740704.0      743536.0       288.0
11.09.2006 F         2252204.0     2269968.0         0.0
07.09.2006 F          815396.0      819088.0         0.0
06.09.2006 F             168.0         192.0         0.0
05.09.2006 F              12.0          48.0         0.0
04.09.2006 F         2252204.0     2269968.0         0.0
31.08.2006 F          815396.0      819088.0         0.0
30.08.2006 F             168.0         192.0         0.0
29.08.2006 F              12.0          48.0         0.0
28.08.2006 F         2252204.0     2269968.0         0.0
24.08.2006 F          815396.0      819088.0         0.0
23.08.2006 F             168.0         192.0         0.0
22.08.2006 F              12.0          48.0         0.0
21.08.2006 F         2252204.0     2269968.0         0.0
17.08.2006 F          815396.0      819088.0         0.0
16.08.2006 F             168.0         192.0         0.0
15.08.2006 F         3796608.0     4190448.0   4190400.0
14.08.2006 F         2252204.0     2269968.0   2252204.0
10.08.2006 F          815396.0      819088.0         0.0
09.08.2006 F             168.0         192.0         0.0
08.08.2006 F              12.0          48.0         0.0
13.06.2006 F             940.0        2160.0      2160.0
06.06.2006 F               8.0          48.0         8.0
15.05.2006 F           16772.0       16188.0     16188.0
08.05.2006 F             824.0         548.0       548.0
03.05.2006 F           16328.0       17792.0       272.0
05.04.2006 F           45792.0       58296.0     58296.0
03.04.2006 F              32.0          48.0        48.0
21.03.2006 F           32872.0       33080.0     33080.0
03.03.2006 F         3264004.0     3265680.0   3262832.0
23.01.2006 F          489960.0      490728.0        96.0
22.01.2006 F           21784.0       21436.0     21436.0
24.11.2005 F           28848.0      149728.0    149728.0
03.11.2005 F           15140.0       15112.0      4500.0
23.10.2005 F             464.0         880.0       456.0
11.10.2005 F           26840.0       33120.0     26836.0
11.08.2005 F          202216.0      179676.0    179676.0
10.06.2005 F         4995292.0     4996932.0         0.0
09.06.2005 F         5030792.0     5056508.0         0.0
08.06.2005 F         5172212.0     5176884.0       112.0
07.06.2005 F         4995804.0     5013492.0         0.0
06.06.2005 F         4998356.0     5109492.0         0.0
03.06.2005 F         4995324.0     5002692.0         0.0
02.06.2005 F         5030792.0     5056508.0         0.0
01.06.2005 F         5172212.0     5176884.0       108.0
31.05.2005 F         4995796.0     5013156.0         8.0
30.05.2005 F         4998364.0     5109828.0         0.0
27.05.2005 F         4995324.0     5002692.0         0.0
26.05.2005 F         5030792.0     5056508.0         0.0
25.05.2005 F         5172212.0     5176884.0       108.0
24.05.2005 F         4995788.0     5012820.0         0.0
23.05.2005 F         4998364.0     5109828.0         0.0
20.05.2005 F         4995324.0     5002692.0         0.0
19.05.2005 F         5030792.0     5056508.0         0.0
18.05.2005 F         5172212.0     5176884.0       148.0
17.05.2005 F         4995276.0     4996788.0         0.0
16.05.2005 F         4996620.0     5044644.0         8.0
29.03.2004 F               8.0         720.0         8.0
04.02.2004 F           28548.0       46432.0         0.0
03.02.2004 F              92.0        2832.0         0.0
28.01.2004 F           28548.0       46432.0         0.0
26.01.2004 F              92.0        2832.0         0.0
20.01.2004 F           28548.0       46432.0         0.0
19.01.2004 F              92.0        2832.0         0.0
}¢--- A540769.WK.SQL(CATCORT) cre=2013-09-30 mod=2013-09-30-13.23.24 A540769 ---
/*-- techsave Entscheidungs View --------------------------------------
        what 'i%' --> incremental
        what 'f%' --> full
        what ' %' --> no copy needed
     join alias
        s: tablespace
        p: tablePart
        r: table RTS
        i: newest full or incremental save, or log discontinity
        f: newest full                save, or log discontinity
    Achtung: besenWagen behandelt clones richtiger|||
----------------------------------------------------------------------*/
select s.dbName, s.name, p.partition
       , value(r.instance, 1) inst
       , case when f.icType is null then 'f1'
              when f.icType <> 'F'  then 'f2'
              when f.timestamp < current timestamp - 7 days then 'fW'
              when i.icType is null then 'f5'
              when i.icType not in ('I', 'F') then 'f6'
              when i.timestamp < r.copyLastTime - 60 seconds then 'f7'
              when r.nactive * 0.1 <= r.copyupdatedpages then 'fU'
              when r.copyupdatedpages > 0 then 'iU'
              when r.copyChanges > 0 then 'iC'
              when r.copyUpdateLRSN is not null then 'iL'
              else ' n'
         end wh
       , r.copyLasttime
       , r.*
       , i.*
       , f.*
    from sysibm.sysTablespace s
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
      left join sysibm.sysTableSpaceStats r
        on    s.dbName = r.dbName and s.name = r.name
          and s.dbid = r.dbid and s.psid = r.psid
          and p.partition = r.partition
      left join
         ( select c.*
             , row_number() over(partition by dbName, tsName, dsNum
                                           , instance
                                order by timestamp desc) rn
             from sysibm.sysCopy c
             where c.icType not in ('D', 'M', 'Q', 'R', 'T', 'X', 'Z')
         ) i on i.rn = 1
                and s.dbName = i.dbName and s.Name = i.tsName
                and p.partition = i.dsNum
                and i.instance = value(r.instance, 1)
      left join
         ( select c.*
             , row_number() over(partition by dbName, tsName, dsNum
                                           , instance
                                order by timestamp desc) rn
             from sysibm.sysCopy c
             where c.icType not in ('D','I','M','Q', 'R', 'T', 'X', 'Z')
         ) f on f.rn = 1
                and s.dbName = f.dbName and s.Name = f.tsName
                and p.partition = f.dsNum
                and f.instance = value(r.instance, 1)
    where s.dbName like 'BE%' --and s.name like 'APER%'
    order by 5, 1, 2,3,4
;x;
select s.dbName, s.name, p.partition
       , value(r.instance, 1) inst
       , (select max(timestamp)
             from sysibm.sysCopy c
             where c.icType in ('F', 'I')
                and s.dbName = c.dbName and s.Name = c.tsName
                and p.partition = c.dsNum
                and c.instance = value(r.instance, 1)
         ) copyTst
       , r.copyLasttime
    from sysibm.sysTablespace s
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
      left join sysibm.sysTableSpaceStats r
        on    s.dbName = r.dbName and s.name = r.name
          and s.dbid = r.dbid and s.psid = r.psid
          and p.partition = r.partition
    where s.dbName = 'DA540769' and s.name like 'APER%'
;x;
select s.dbName, s.name, p.partition , c.dsNum
    from sysibm.sysTablespace s
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
      left join sysibm.sysTableSpaceStats r
        on    s.dbName = r.dbName and s.name = r.name
          and s.dbid = r.dbid and s.psid = r.psid
          and p.partition = r.partition
      left join
        ( select * from sysibm.sysCopy c
             where timestamp = (select max(timestamp)
         from sysibm.sysCopy a
            where a.icType in ('F', 'I')
                and a.dbName = c.dbName and a.tsName = c.tsName
                and a.dsNum in (0, c.dsNum)
        )   )  c
        on c.icType in ('F', 'I')
          and c.dbName = s.dbName and c.tsName = s.name
          and c.dsNum in (0, p.partition)
    where s.dbName = 'DA540769' and s.name like 'APER%'
;x;
select r.dbName, r.name, r.partition, c.dsNum
     , r.copyLastTime, c.timestamp, r.*, c.*
    from sysibm.sysCopy c
      join sysibm.sysTablespaceStats r
      on c.dbName = r.dbName and c.tsName = r.name
         and c.dsNum in (0, r.partition)
    where c.dbName = 'DA540769' and c.tsName like 'APER24%'
         and c.timestamp = (select max(a.timestamp)
         from sysibm.sysCopy a
            where a.dbName = c.dbName and a.tsName = c.tsName
                and a.dsNum in (0, c.dsNum)
            )
  --       and c.timestamp = r.copyLastTime
;x;
select r.dbName, r.name, r.partition, c.dsNum
     , r.copyLastTime, c.timestamp, r.*, c.*
    from sysibm.sysCopy c
      join sysibm.sysTablespaceStats r
      on c.dbName = r.dbName and c.tsName = r.name
         and c.dsNum in (0, r.partition)
    where c.dbName = 'DA540769' and c.tsName like 'APER24%'
         and c.timestamp = (select max(a.timestamp)
         from sysibm.sysCopy a
            where a.dbName = c.dbName and a.tsName = c.tsName
                and a.dsNum in (0, c.dsNum)
            )
  --       and c.timestamp = r.copyLastTime
;x;
with c as
(
  select * from sysibm.sysCopy c
    where
select *
    from sysibm.sysCopy c
      join sysibm.sysTablespaceStats r
      on c.dbName = r.dbName and c.tsName = r.name
           and c.timestamp = r.copyLastTime
    where c.dbName = 'DA540769' and c.tsName like 'APER24%'
with c as
(
   select *
     from sysibm.sysCopy c
     where timestamp = (select max(a.timestamp)
            from sysibm.sysCopy a
            where a.dbName = c.dbName and a.tsName = c.tsName
                and a.dsNum in (0, c.dsNum)
            )
)
}¢--- A540769.WK.SQL(CATDB) cre=2006-08-03 mod=2016-10-05-11.27.59 A540769 -----
select dbName, count(*)
    from sysibm.sysTables
    where dbName like 'QZ%'
    group by dbName
    order by dbname
;x;
select type, count(*), min(name), max(name)
    from sysibm.sysdatabase
    group by type
    order by type
;
select type, count(*), min(name), max(name)
    from sysibm.sysdatabase
    where name like 'WK%'
    group by type
    order by type
;
;X; where (name like 'D%' and length(strip(name)) = 8
            and translate(strip(substr(name, 3)), '', '0123456789')=''
          )
;;;
select count(*), cat, min(name), max(name)
    from
      ( select
            case
                when name like 'DSNDB%' then 'dsnDb'
                when name like 'BJ%' and LENGTH(STRIP(name)) = 8
                    then 'bj%'
                when name like 'DB2%' then 'db2%'
                when name like 'DEMO%' then 'demo%'
                when name like 'DGDB%' and LENGTH(STRIP(name)) = 8
                    then 'dgdb%'
                when name like 'DGO%' and LENGTH(STRIP(name)) = 8
                    then 'dgow%'
                when name like 'WKDB%' then 'wkdb%'
                when LENGTH(STRIP(name)) = 7 and right(strip(name), 3)
                              = 'A1A'
                    then '____a1a'
                when length(strip(name)) >= 7 and
                           translate(right(strip(name), 6),
                               '0000000000', '0123456789') = '000000'
                        then 'user'
                else name end cat,
            name
            from sysibm.sysdatabase
      ) c
    group by cat
    order by cat
;
x
select count(*), creator
    from sysibm.systables
    where dbName =    'DGOWA600'
    group by creator
    order by 1 desc
;
select count(*), dbname
    from sysibm.systables
    where dbName like 'DG%'
    group by dbname
    order by 1 desc
;
x
SELECT cTyp,
        count(*) tables,
        count(distinct creator) creators, MIN(creator), MAX(creator),
        MIN(DBNAME) dbName, MAX(DBNAME)
  from
  ( SELECT
        CASE
            when creator = 'SYSIBM' then 'sysibm'
            when dbname like 'DSNDB%'
                then left(lower(dbname), 8)
            when DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8
                then left(dbName, 3) || 'xxxxx'
            when length(strip(creator)) = 7 and
                   translate(substr(creator, 2, 6),
                       '0000000000', '0123456789') = '000000'
                then 'user'
            when creator like 'BMC%' then 'bmc'
            else creator
        end cTyp,
        creator, name, dbname
      FROM SYSIBM.SYSTABLES
      WHERE TYPE = 'T'
  ) s
    GROUP BY cTyp
    ORDER BY cTyp
;
XELECT DISTINCT CREATOR, COUNT(*), COUNT(DISTINCT DBNAME),
                         MIN(DBNAME), MAX(DBNAME)
    FROM SYSIBM.SYSTABLES
    WHERE TYPE = 'T'
        AND NOT (DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8)
    GROUP BY CREATOR
    ORDER BY CREATOR
;
SELECT DISTINCT CREATOR, COUNT(*), COUNT(DISTINCT DBNAME),
                         MIN(DBNAME), MAX(DBNAME)
    FROM SYSIBM.SYSTABLES
    WHERE TYPE = 'T'
        AND NOT (DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8)
    GROUP BY CREATOR
    ORDER BY CREATOR
;
    LEFT(CREATOR, 9)  || LEFT(DBNAME, 9)
    || CHAR(COUNT(*))
    || MIN(LEFT(NAME, 8)) || ' .. ' || MAX(LEFT(NAME, 8))
    FROM SYSIBM.SYSTABLES
    WHERE TYPE = 'T'
        AND NOT (DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8)
    GROUP BY CREATOR, DBNAME
    ORDER BY 1 ASC
;
;
X
SELECT DISTINCT
    LEFT(CREATOR, 9)  || LEFT(DBNAME, 9)
    || CHAR(COUNT(*))
    || MIN(LEFT(NAME, 8)) || ' .. ' || MAX(LEFT(NAME, 8))
    FROM SYSIBM.SYSTABLES
    WHERE TYPE = 'T'
        AND NOT (DBNAME LIKE 'BJ%' AND LENGTH(STRIP(DBNAME)) = 8)
    GROUP BY CREATOR, DBNAME
    ORDER BY 1 ASC
;
}¢--- A540769.WK.SQL(CATDBALR) cre=2012-04-19 mod=2012-04-19-16.26.59 A540769 ---
$#@                                                                     00010000
$=in1=~.wk.sql(catdbal1)                                                00020000
$=in2=~.wk.sql(catdbal2)                                                00030000
$=out=~.wk.sql(catdbal9)                                                00040002
call readDsn $in1, m.i1.                                                00050000
say $in1 m.i1.0                                                         00060000
call readDsn $in2, m.i2.                                                00070000
say $in2 m.i2.0                                                         00080000
x1 = 1                                                                  00090001
x2 = 1                                                                  00100001
m.o.0 = 0                                                               00110002
do while x1 <= m.i1.0 & x2 <= m.i2.0                                    00120002
    parse var m.i1.x1 pro1 cnt1 alt1 rst1                               00130002
    parse var m.i2.x2 pro2 db2 rst2  73 .                               00140003
    if pro1 == pro2 then                                                00150001
        call mAdd o, left(pro2, 8) left(db2, 8) left(alt1, 10)          00160002
    else if pro2 << pro1 then                                           00170002
        call mAdd o, left(pro2, 8) left(db2, 8) strip(rst2)             00180002
    x1 = x1 + (pro1 <<= pro2)                                           00190001
    x2 = x2 + (pro1 >>= pro2)                                           00200001
    end                                                                 00210001
do x2 = x2 to m.i2.0                                                    00220003
    parse var m.i2.x2 pro2 db2 rst2  73 .                               00230003
    call mAdd o, left(pro2, 8) left(db2, 8) strip(rst2)                 00240003
    end                                                                 00250003
call writeDsn $out, m.o., ,1                                            00260002
$#out                                              20120419 16:26:54    00270004
$#out                                              20120419 16:21:30    00280003
$#out                                              20120419 16:19:02    00290002
}¢--- A540769.WK.SQL(CATDBALT) cre=2012-04-19 mod=2012-04-19-16.25.38 A540769 ---
with d as
(
    select name db
        from sysibm.sysDatabase
        where name like 'DG%' or name like '%A1X%'
)
, v0 (ty, db, cr, vw, at, lv) as
(
    select type, dbname, creator, name, alteredTs, 0
        from sysibm.sysTables
        where dbName in (select db from d) and type = 'T'
    union all select dtype, db, dCreator, dName, t.alteredTs,  lv+1
        from v0, sysibm.sysViewDep q, sysibm.sysTables t
        where lv < 99 and q.bcreator = v0.cr and q.bName = v0.vw
             and t.creator = dCreator and t.name = dName
)
, v as
(  select db, cr, vw, max(ty) ty, max(at) at
        from v0
        group by db, cr, vw
   union all select dbName db , creator cr, name vw, 'ix' ty,
          alteredTs at
        from sysibm.sysIndexes
        where dbName in (select db from d)
)
select db,  count(*), max(at)
    from v
    group by db
    order by db
$#out                                              20120419 16:24:54
DB       OL2 COL3
AV01A1X  325 2009-03-06-09.56.13.347096
AV02A1X   29 2009-11-05-15.04.31.233447
AV03A1X  162 2012-02-15-15.56.00.992980
AV04A1X   70 2012-02-15-15.56.20.101081
AV05A1X   30 2011-09-09-16.04.25.659715
AV06A1X  126 2012-02-15-15.56.44.900875
AV07A1X  126 2012-02-15-15.56.56.623324
AV08A1X  126 2012-02-15-15.57.08.237247
AV09A1X  126 2012-02-15-15.57.19.005186
AV10A1X  126 2012-02-15-15.57.29.100327
AV11A1X  126 2012-02-15-15.57.45.244556
AV12A1X  126 2012-02-15-15.57.59.382430
AV13A1X  126 2012-02-15-15.58.18.653586
AV14A1X  126 2012-02-15-15.58.34.142134
AV15A1X  176 2012-03-15-14.59.55.329691
AV16A1X  126 2012-02-15-15.58.50.859737
AV17A1X  126 2012-02-15-15.59.09.054278
AV18A1X  126 2012-02-15-15.59.22.097118
DG01A1A  201 2012-04-02-08.38.16.929850
DG02A1A  122 2012-01-30-12.54.53.534434
DG666308   2 2009-02-18-12.35.14.395438
DGDB0008 153 2008-03-14-13.04.33.490511
DGDB0009   9 2004-10-26-15.13.54.114580
DGDB0015 201 2012-03-29-12.45.42.624562
DGDB0031  60 2007-07-25-07.17.23.210039
DGDB0033   6 2004-10-26-15.13.58.488538
DGDB0035  21 2007-06-22-13.26.09.175553
DGDB0039  36 2006-05-19-14.17.02.071896
DGDB0041  46 2004-10-26-15.14.09.759890
DGDB0042   3 2004-10-26-15.14.09.826515
DGDB0044   4 2004-10-26-15.14.09.914919
DGDB0047   5 2004-10-26-15.14.12.791258
DGDB0049  13 2010-07-29-15.27.33.622954
DGDB0052 378 2006-09-08-10.13.08.350741
DGDB0056   6 2004-10-26-15.14.49.340828
DGDB0057 152 2010-06-25-10.55.07.240600
DGDB0058  77 2009-02-16-16.24.51.053775
DGDB0059  34 2008-12-23-12.47.57.841673
DGDB0060 121 2009-04-21-07.25.35.986757
DGDB0061   8 2004-10-26-15.15.04.437668
DGDB0062  49 2010-04-22-13.19.16.615883
DGDB0065  39 2004-10-26-15.15.20.634315
DGDB0067  75 2011-09-27-15.04.49.189528
DGDB0072  90 2008-01-17-18.27.15.263195
DGDB0074 228 2004-10-26-15.15.43.907806
DGDB0078  74 2008-04-22-11.08.37.492940
DGDB0080  27 2004-10-26-15.15.53.616592
DGDB0082 145 2004-10-26-15.16.16.107311
DGDB0084 571 2008-10-30-17.23.26.248352
DGDB0085   6 2004-10-26-15.16.45.326968
DGDB0086   3 2004-10-26-15.16.45.450493
DGDB0088  26 2011-01-12-14.58.17.403487
DGDB0089   4 2004-10-26-15.16.46.747597
DGDB0090  24 2007-07-10-13.33.01.985987
DGDB0091  57 2009-07-31-16.24.24.282235
DGDB0093  18 2004-10-26-15.17.05.688324
DGDB0094  51 2004-10-26-15.17.07.479274
DGDB0095  18 2004-10-26-15.17.07.906538
DGDB0098   3 2004-10-26-15.17.08.024597
DGDB0103  52 2005-08-23-15.04.51.695020
DGDB0104  89 2011-03-07-11.24.47.409982
DGDB0105 146 2006-05-09-15.29.38.403093
DGDB0106 112 2012-02-06-15.47.39.861403
DGDB0110  25 2011-02-02-13.45.07.510254
DGDB0112 688 2012-02-16-11.41.10.222958
DGDB0113 258 2012-01-12-17.24.32.566470
DGDB0120 338 2011-09-22-08.37.30.692568
DGDB0121  21 2012-03-06-15.01.59.414022
DGDB0125  37 2009-11-18-13.37.33.681197
DGDB0129  12 2004-10-26-15.43.54.433882
DGDB0130  24 2004-11-03-11.12.47.882202
DGDB0131  49 2011-11-01-08.45.13.650123
DGDB0132   9 2006-10-03-18.07.12.156178
DGDB0133 371 2012-04-10-15.19.08.010289
DGDB0135  78 2010-12-15-10.44.14.150780
DGDB0136 192 2011-09-23-12.40.35.137113
DGDB0137 191 2012-04-12-10.51.12.318909
DGDB0139  92 2006-09-08-10.15.11.761270
DGDB0140 120 2010-04-08-11.28.21.175572
DGDB0141  21 2006-09-05-18.21.37.237084
DGDB0142  75 2009-03-06-11.40.05.708110
DGDB0143  49 2004-10-26-15.46.50.593341
DGDB0144   4 2004-10-26-15.46.50.627553
DGDB0145  25 2006-05-09-15.29.38.740267
DGDB0151  40 2010-08-17-10.26.47.966178
DGDB0153  44 2012-04-17-11.42.11.416017
DGDB0154 113 2007-04-26-14.52.26.375676
DGDB0155  96 2011-11-07-10.00.24.371112
DGDB0156 146 2012-02-13-18.17.12.526169
DGDB0159   2 2004-10-26-15.47.54.862251
DGDB0162  37 2010-03-01-13.34.58.807827
DGDB0166  45 2009-06-24-10.11.34.524267
DGDB0167 165 2004-10-26-15.48.12.096602
DGDB0168  65 2011-03-02-13.22.04.943211
DGDB0169  43 2010-06-17-08.44.11.264635
DGDB0171  56 2012-03-26-09.49.28.897080
DGDB0173 350 2010-02-24-13.44.34.529229
DGDB0174   8 2011-11-16-12.03.38.194573
DGDB0175  47 2004-10-26-15.49.17.533858
DGDB0177  38 2004-10-26-15.50.02.498005
DGDB0178 186 2011-08-15-13.52.20.151219
DGDB0179 173 2010-05-28-11.32.55.602101
DGDB0180  15 2004-10-26-15.50.50.978297
DGDB0181  23 2007-02-27-11.06.10.205960
DGDB0182  12 2004-10-26-15.50.51.737228
DGDB0183 367 2012-03-06-14.14.38.800727
DGDB0185  10 2004-10-26-15.50.57.210769
DGDB0186  26 2007-10-01-07.39.03.571013
DGDB0187 172 2008-05-06-22.33.40.942777
DGDB0189 140 2012-04-19-15.10.21.608464
DGDB0192 126 2012-01-30-12.36.00.752766
DGDB0193 141 2008-01-15-16.26.26.452125
DGDB0194  17 2008-12-19-14.13.25.529939
DGDB0195  11 2004-10-26-15.52.05.192138
DGDB0196  76 2012-02-21-16.04.41.114114
DGDB0200 310 2004-10-27-10.25.57.753074
DGDB0201  22 2007-04-13-17.31.09.157936
DGDB0202 241 2012-02-13-18.19.03.741293
DGDB0203  40 2012-02-28-09.52.36.737259
DGDB0205  10 2004-10-27-10.26.32.469902
DGDB0206  22 2004-10-27-10.26.34.590578
DGDB0207 237 2011-04-28-15.56.57.412443
DGDB0209  12 2004-10-27-10.26.39.896668
DGDB0211 105 2011-02-03-16.43.44.123978
DGDB0212  27 2006-09-08-10.35.00.000617
DGDB0213 251 2012-04-11-13.28.46.995190
DGDB0214   5 2004-10-27-10.26.51.819135
DGDB0215   9 2004-10-27-10.26.52.282957
DGDB0217 199 2012-01-11-15.16.53.415090
DGDB0218  65 2009-10-01-15.48.29.999826
DGDB0220   6 2006-11-08-13.03.57.222846
DGDB0222 159 2004-10-27-10.27.15.092403
DGDB0223 107 2011-12-13-12.48.31.089270
DGDB0224  27 2009-06-17-13.09.50.284614
DGDB0226  60 2006-06-08-15.44.50.793406
DGDB0227  15 2008-10-21-10.34.03.396936
DGDB0228 187 2011-12-15-13.29.03.118489
DGDB0231  41 2006-12-13-10.05.01.238523
DGDB0232  17 2009-04-02-14.54.06.617324
DGDB0235 279 2011-08-23-12.15.47.899057
DGDB0236  17 2006-08-17-10.44.37.822719
DGDB0237 330 2012-03-26-15.15.02.794184
DGDB0238  33 2006-09-08-10.40.16.350739
DGDB0239  47 2011-11-29-13.05.21.939649
DGDB0241  78 2012-03-01-07.57.16.326406
DGDB0242  53 2004-10-27-10.29.15.688356
DGDB0243   4 2001-07-04-15.24.14.921785
DGDB0244 102 2011-03-17-13.11.56.616841
DGDB0247  83 2010-09-01-11.15.27.735671
DGDB0248   4 2004-10-27-10.29.23.052453
DGDB0254 149 2006-07-12-16.35.49.369482
DGDB0255   6 2009-06-11-08.44.03.203655
DGDB0256  19 2011-09-06-15.28.09.229664
DGDB0257  59 2011-09-06-15.29.42.960811
DGDB0258  20 2009-09-29-15.19.57.611661
DGDB0260  17 2009-06-25-08.22.17.297017
DGDB0261   5 2009-06-25-08.23.28.423606
DGDB0262   5 2009-06-25-08.25.18.112304
DGDB0263  35 2004-10-27-10.29.41.195829
DGDB0264   9 2004-10-27-10.29.41.877308
DGDB0265  76 2012-03-16-09.46.15.968614
DGDB0266  20 2007-11-26-08.14.38.947415
DGDB0268  51 2007-05-31-10.41.51.640387
DGDB0269  16 2004-10-27-10.29.57.644724
DGDB0272  45 2004-10-27-10.30.13.604279
DGDB0273  37 2011-11-28-10.57.30.181899
DGDB0274   6 2006-09-08-10.40.29.777600
DGDB0275 221 2012-04-13-08.50.28.813048
DGDB0276  30 2011-02-15-07.53.02.085361
DGDB0277   2 2004-10-27-10.30.16.265751
DGDB0278  32 2004-10-27-10.30.17.040738
DGDB0279  25 2005-08-22-10.08.55.624049
DGDB0281 171 2008-07-21-14.31.34.649556
DGDB0282  27 2012-04-14-11.40.20.325701
DGDB0283  71 2010-02-10-14.19.39.422838
DGDB0284   7 2009-06-25-07.31.45.485555
DGDB0285  31 2009-11-18-13.24.14.262770
DGDB0286  44 2012-01-06-06.41.49.700114
DGDB0287  30 2011-01-26-14.51.07.826564
DGDB0288  33 2007-12-21-13.07.55.406211
DGDB0289  11 2007-05-24-15.42.08.563298
DGDB0290 287 2012-01-05-09.39.36.559408
DGDB0291   8 2012-02-14-10.45.10.650668
DGDB0292  44 2011-08-25-15.45.12.998437
DGDB0295  43 2004-10-27-11.06.06.170413
DGDB0296  51 2009-12-02-14.26.17.948619
DGDB0297   4 2004-10-27-11.06.07.558401
DGDB0300  34 2006-04-27-14.26.20.464157
DGDB0308  26 2004-10-27-10.37.34.302559
DGDB0309   5 2004-10-27-10.37.34.405394
DGDB0310  29 2004-10-27-10.37.34.983835
DGDB0311  46 2004-10-27-10.37.35.686834
DGDB0312  44 2004-10-27-10.37.36.700587
DGDB0313   4 2004-10-27-10.37.36.761966
DGDB0315  87 2007-11-21-07.34.14.982034
DGDB0316  42 2004-11-25-15.18.17.018574
DGDB0317  36 2010-03-05-15.50.28.944976
DGDB0319  57 2004-10-27-10.37.46.607315
DGDB0320  42 2004-10-27-10.37.47.417532
DGDB0321  48 2004-10-27-10.37.48.446302
DGDB0322 111 2004-10-27-10.37.49.957114
DGDB0323  48 2007-08-29-15.03.45.341618
DGDB0324  39 2011-06-09-11.12.50.962332
DGDB0325   9 2004-10-27-10.37.51.070278
DGDB0326  46 2007-06-08-12.42.42.737442
DGDB0327  12 2011-01-31-13.38.16.901852
DGDB0328   6 2004-10-27-10.37.51.987275
DGDB0329  36 2011-12-29-15.47.21.565017
DGDB0330 260 2004-10-27-10.38.06.389515
DGDB0331  20 2004-12-29-11.24.35.814504
DGDB0332 145 2004-10-27-10.38.18.950946
DGDB0334  26 2004-10-27-10.38.20.840649
DGDB0336  41 2011-01-31-13.22.20.144663
DGDB0337  23 2010-03-05-15.53.42.060703
DGDB0338  20 2006-11-03-09.17.17.281054
DGDB0339 163 2010-05-11-12.02.39.073483
DGDB0340  48 2006-08-22-15.43.55.718488
DGDB0341  23 2007-10-09-13.06.32.319986
DGDB0342 166 2005-10-18-16.50.49.693781
DGDB0343  51 2004-10-27-10.38.52.739428
DGDB0344  47 2004-10-27-10.38.54.194384
DGDB0346  13 2005-07-12-11.28.55.165917
DGDB0348  27 2004-10-27-10.39.16.348035
DGDB0349  32 2009-04-03-13.41.43.533715
DGDB0351 188 2012-02-23-13.02.25.753177
DGDB0352   9 2005-03-01-09.24.30.322573
DGDB0354 130 2012-04-10-12.24.27.906766
DGDB0358  49 2010-10-18-16.37.47.140905
DGDB0359 176 2012-02-16-15.28.38.250825
DGDB0360  23 2012-02-16-15.39.32.680807
DGDB0361   4 2004-10-27-10.45.55.286884
DGDB0362 183 2007-11-08-10.54.38.483692
DGDB0363  24 2005-03-04-12.58.24.634911
DGDB0364 105 2004-10-27-10.46.06.076344
DGDB0365  62 2010-03-30-10.33.31.788061
DGDB0366 140 2006-08-11-16.05.44.163608
DGDB0368  10 2012-02-24-15.12.26.189389
DGDB0369  59 2004-12-07-14.12.33.241170
DGDB0370   2 2007-01-30-15.24.18.000563
DGDB0371  36 2006-08-03-14.24.35.904079
DGDB0372  15 2005-06-01-17.07.03.460778
DGDB0373  51 2006-05-09-15.29.40.469475
DGDB0374 196 2011-08-31-17.10.49.928103
DGDB0375   2 2004-10-27-10.48.08.689781
DGDB0376 181 2010-09-29-14.05.30.417429
DGDB0378  12 2005-11-10-11.55.59.849415
DGDB0380  24 2010-02-10-11.37.58.389299
DGDB0381  32 2011-09-13-18.12.47.849518
DGDB0383  21 2007-04-03-18.43.48.575619
DGDB0384 110 2011-09-20-12.27.03.548968
DGDB0385  21 2006-05-09-16.03.41.066883
DGDB0386  37 2006-05-18-14.03.34.184573
DGDB0387   8 2006-01-12-12.57.56.183975
DGDB0388  78 2011-04-20-17.29.21.080223
DGDB0389 176 2011-09-20-15.39.51.976393
DGDB0390  29 2005-10-05-08.57.04.766439
DGDB0391  27 2005-08-25-11.23.21.295470
DGDB0392  36 2010-11-30-09.41.05.588493
DGDB0394  12 2005-05-24-17.53.44.644243
DGDB0395 297 2011-06-09-16.32.36.818613
DGDB0396  57 2011-07-05-14.42.35.712514
DGDB0399  22 2012-04-13-14.30.31.758354
DGDB0400  24 2008-09-05-12.41.37.447612
DGDB0401  84 2011-08-18-14.17.50.966395
DGDB0402  62 2011-04-05-07.22.13.038016
DGDB0403  12 2007-08-02-15.01.49.279712
DGDB0404  51 2005-09-19-11.51.05.491506
DGDB0405  14 2011-11-28-16.16.09.744385
DGDB0406  48 2005-06-08-13.53.30.572456
DGDB0412 220 2011-11-07-13.49.18.749770
DGDB0416  11 2005-10-10-13.35.03.891626
DGDB0417   9 2005-08-10-15.21.24.767924
DGDB0418  26 2008-01-07-13.16.34.910529
DGDB0419   4 2011-03-25-12.47.40.552238
DGDB0420  65 2011-10-11-14.19.07.782165
DGDB0421  11 2009-07-03-13.33.38.613923
DGDB0423   8 2008-01-10-14.50.37.984697
DGDB0424 216 2012-04-13-13.40.37.250468
DGDB0426 314 2007-11-19-11.35.16.571883
DGDB0431 206 2011-11-11-11.06.18.557060
DGDB0432 206 2011-11-11-11.06.18.953307
DGDB0433 175 2011-11-11-11.06.19.338967
DGDB0434 175 2011-11-11-11.06.19.811567
DGDB0435 175 2011-11-11-11.06.20.149377
DGDB0436 175 2011-11-11-11.06.20.614490
DGDB0439 125 2011-12-23-10.46.26.050337
DGDB0441  61 2007-04-10-17.01.59.786020
DGDB0442  68 2007-12-05-11.22.07.796985
DGDB0443  23 2006-06-21-12.01.49.732236
DGDB0444  12 2008-06-26-13.56.23.725837
DGDB0446  47 2010-11-25-11.01.16.065087
DGDB0448   3 2006-11-07-13.48.38.391975
DGDB0449  10 2007-02-22-18.21.36.616246
DGDB0450  36 2011-01-06-00.05.31.564479
DGDB0451  45 2006-10-02-13.22.51.890066
DGDB0452  54 2007-07-06-15.35.21.362996
DGDB0454  15 2007-02-27-15.07.23.973506
DGDB0455  14 2007-03-06-12.10.47.308374
DGDB0456  11 2007-03-06-12.12.25.339149
DGDB0457  12 2007-02-06-13.05.57.831276
DGDB0460 175 2011-11-11-11.06.20.951273
DGDB0463  19 2011-05-26-08.14.11.538447
DGDB0466 106 2010-06-17-12.03.20.687745
DGDB0467  99 2011-07-14-08.53.42.802215
DGDB0468  63 2012-01-09-10.38.16.942277
DGDB0470   6 2008-01-14-13.19.17.936519
DGDB0471   1 2007-04-05-08.09.21.530616
DGDB0472  91 2011-12-15-10.33.00.293887
DGDB0473  57 2011-04-04-17.19.32.307455
DGDB0474  36 2012-02-27-13.52.12.774518
DGDB0475  23 2007-06-26-13.46.14.204488
DGDB0476  16 2012-03-29-12.07.04.466512
DGDB0478 277 2010-05-15-09.25.09.288955
DGDB0479 277 2011-11-04-10.16.27.336216
DGDB0480  43 2010-09-17-18.08.08.876526
DGDB0481   9 2007-09-26-15.51.50.914007
DGDB0482 169 2012-03-07-11.27.46.542459
DGDB0483   3 2008-09-01-09.33.39.312408
DGDB0484  36 2008-09-08-10.01.03.725452
DGDB0485  65 2012-02-08-13.58.37.250580
DGDB0486 213 2012-04-03-11.06.33.703349
DGDB0494  24 2009-06-16-14.33.13.522117
DGDB0495 175 2011-11-11-11.06.21.269834
DGDB0496 175 2011-11-11-11.06.21.620887
DGDB0497 175 2011-11-11-11.06.21.993914
DGDB0498 175 2011-11-11-11.06.22.390687
DGDB0499  38 2010-09-24-15.16.39.934793
DGDB0500 152 2011-01-14-15.36.57.314514
DGDB0501   4 2009-02-04-13.13.45.476435
DGDB0502   6 2009-05-04-12.22.26.732774
DGDB0503  46 2010-11-26-14.51.58.901951
DGDB0504 352 2008-09-29-18.11.51.855204
DGDB0505  52 2011-02-21-18.04.00.438971
DGDB0506 192 2011-12-02-11.42.24.425738
DGDB0509  22 2008-10-06-14.23.27.354520
DGDB0510  18 2008-10-17-15.45.38.642431
DGDB0511   3 2008-11-11-19.19.50.921896
DGDB0513   9 2008-10-16-10.34.43.834006
DGDB0514  44 2011-07-01-09.53.45.583816
DGDB0515  59 2009-06-02-09.39.32.305035
DGDB0516  36 2011-10-27-11.02.46.180128
DGDB0517   5 2008-12-17-14.51.44.330750
DGDB0518  10 2011-08-03-09.49.50.966829
DGDB0519  90 2011-09-22-13.28.20.262347
DGDB0520 175 2011-11-11-11.06.22.757670
DGDB0521 175 2011-11-11-11.06.23.329570
DGDB0522  26 2010-02-26-13.33.41.444428
DGDB0523   7 2010-02-25-09.51.34.640754
DGDB0524 102 2010-11-16-12.44.38.747763
DGDB0525  12 2010-02-02-11.30.57.909044
DGDB0526   2 2010-03-09-09.01.29.460049
DGDB0527   5 2010-09-03-12.45.17.717523
DGDB0528 109 2012-04-13-15.22.09.442700
DGDB0530   4 2010-07-02-15.47.56.155215
DGDB0531   3 2010-09-23-13.08.55.621643
DGDB0532  41 2012-03-21-14.27.34.410053
DGDB0535   6 2012-03-05-18.56.40.857804
DGDB0537   9 2011-12-23-11.50.25.850467
DGDB0544  75 2012-04-04-08.14.10.385242
DGDB0545  11 2012-02-10-11.16.01.047999
DGDB0546  35 2012-02-07-07.56.45.853935
DGDB0547   4 2012-03-28-15.36.32.255944
DGDB0549  25 2012-04-19-11.10.51.095930
DGDB0550 222 2012-04-11-10.19.41.648048
DGDB0637  23 2008-05-14-13.57.46.949266
DGDB0638  32 2011-08-23-16.05.12.759488
DGDB0639  52 2012-01-12-17.46.02.351192
DGDB0668  38 2006-07-07-13.57.03.529288
DGDB0669  34 2007-02-16-10.51.37.229471
DGDB0670   4 2007-02-16-10.51.30.970612
DGDB0671 119 2012-03-14-01.44.21.325314
DGDB0672   8 2009-09-30-17.20.42.593724
DGDB0673 417 2011-11-21-07.49.01.349758
DGDB0674  16 2012-01-23-16.19.46.217184
DGDB0675  24 2011-12-23-13.41.31.721097
DGDB0676  24 2011-12-23-13.42.18.336935
DGDB0677  24 2011-12-23-13.45.13.116665
DGDB0678  24 2011-12-23-13.38.40.186996
DGDB0679  20 2012-04-13-11.35.52.553230
DGDB0680   9 2012-02-03-13.34.57.714327
DGDB0681  64 2012-02-07-13.58.45.450658
DGDB0999   3 2006-08-02-17.04.48.795859
DGDB6663  84 2008-12-16-11.00.34.036780
DGDB9991   3 2010-03-10-17.51.18.864416
DGDB9992   3 2010-03-10-17.51.20.104435
DGDB9993   3 2010-03-10-17.51.21.415808
DGDB9996  15 2012-03-14-16.20.29.519115
DGDB9997  24 2009-10-21-16.03.17.745454
DGDB9998 331 2012-04-17-11.18.48.221102
DGDB9999  25 2005-06-02-12.56.05.901310
DGOCB130 195 2008-01-11-13.10.57.152269
DGOCF101 217 2003-10-02-11.52.21.535732
DGOCF102  96 2002-05-27-10.09.04.384760
DGOCK310  61 2003-08-18-19.35.03.473574
DGOKB701  34 2006-03-07-13.10.56.348447
DGOMA24N   2 2004-10-29-11.15.54.055296
DGOMM700 125 2003-08-18-19.35.05.963203
DGOWA200  54 2010-08-18-16.12.20.421306
DGOWB420  25 2011-05-31-15.58.01.748775
DGOWD501  36 2011-09-14-09.35.44.132928
DGOWD502  32 2011-09-13-18.01.39.070889
DGOWD503  10 2010-04-29-10.25.04.876989
DGOWD504  16 2010-04-29-12.19.53.240238
DGOWD600  97 2012-03-27-09.24.03.252276
DGOWD700  35 2004-10-28-10.26.00.904484
DGOWM200   4 2004-10-28-10.26.01.000641
DGOWM301 369 2010-10-25-13.40.35.625293
DSN8DA1X  27 2012-04-03-13.11.17.644146
DXB03A1X 629 2012-04-03-08.55.56.154808
DXB04A1X  50 2009-12-15-18.24.16.145724
DXB05A1X 116 2009-03-04-09.01.13.643837
DXB07A1X 129 2011-03-28-14.58.08.134166
ED06A1X    7 2009-08-28-15.38.57.030399
EL01A1X   89 2011-08-18-09.39.17.820486
EU02A1X    5 2010-07-02-11.08.17.078666
KT01A1X    5 2010-07-02-11.12.19.036057
RG01A1X    6 2009-06-18-14.43.25.871094
SV30A1X   45 2010-11-04-11.13.35.516893
SV31A1X   31 2011-05-18-10.36.35.986528
TG01A1X   61 2012-04-02-14.59.27.053202
VV21A1X  412 2012-04-10-11.37.08.065762
VV22A1X  196 2012-02-06-11.55.49.598181
VV23A1X  414 2012-04-10-11.37.08.065762
VV24A1X  385 2012-04-10-11.37.08.065762
VV25A1X  158 2012-04-10-12.44.58.385957
VV26A1X  190 2011-12-04-11.53.07.423236
VV27A1X  197 2012-04-10-12.40.42.540084
VV28A1X  193 2012-04-10-12.40.42.818874
VV29A1X  105 2012-04-04-14.12.34.285387
WG01A1X  132 2010-12-07-11.45.46.327279
430 rows fetched: with d as ( select name db from sysibm.sysDatabase where...
$#out                                              20120419 16:24:36
*** run error ***
unclosed ' string:         where name like 'DG%' or name like '%A1X%
$#out                                              20120419 15:41:12
DB       OL2 COL3
DGDB0008 153 2008-03-14-13.04.33.490511
DGDB0009   9 2004-10-26-15.13.54.114580
DGDB0015 201 2012-03-29-12.45.42.624562
DGDB0031  60 2007-07-25-07.17.23.210039
DGDB0033   6 2004-10-26-15.13.58.488538
DGDB0035  21 2007-06-22-13.26.09.175553
DGDB0039  36 2006-05-19-14.17.02.071896
DGDB0041  46 2004-10-26-15.14.09.759890
DGDB0042   3 2004-10-26-15.14.09.826515
DGDB0044   4 2004-10-26-15.14.09.914919
DGDB0047   5 2004-10-26-15.14.12.791258
DGDB0049  13 2010-07-29-15.27.33.622954
DGDB0052 378 2006-09-08-10.13.08.350741
DGDB0056   6 2004-10-26-15.14.49.340828
DGDB0057 152 2010-06-25-10.55.07.240600
DGDB0058  77 2009-02-16-16.24.51.053775
DGDB0059  34 2008-12-23-12.47.57.841673
DGDB0060 121 2009-04-21-07.25.35.986757
DGDB0061   8 2004-10-26-15.15.04.437668
DGDB0062  49 2010-04-22-13.19.16.615883
DGDB0065  39 2004-10-26-15.15.20.634315
DGDB0067  75 2011-09-27-15.04.49.189528
DGDB0072  90 2008-01-17-18.27.15.263195
DGDB0074 228 2004-10-26-15.15.43.907806
DGDB0078  74 2008-04-22-11.08.37.492940
DGDB0080  27 2004-10-26-15.15.53.616592
DGDB0082 145 2004-10-26-15.16.16.107311
DGDB0084 571 2008-10-30-17.23.26.248352
DGDB0085   6 2004-10-26-15.16.45.326968
DGDB0086   3 2004-10-26-15.16.45.450493
DGDB0088  26 2011-01-12-14.58.17.403487
DGDB0089   4 2004-10-26-15.16.46.747597
DGDB0090  24 2007-07-10-13.33.01.985987
DGDB0091  57 2009-07-31-16.24.24.282235
DGDB0093  18 2004-10-26-15.17.05.688324
DGDB0094  51 2004-10-26-15.17.07.479274
DGDB0095  18 2004-10-26-15.17.07.906538
DGDB0098   3 2004-10-26-15.17.08.024597
DGDB0103  52 2005-08-23-15.04.51.695020
DGDB0104  89 2011-03-07-11.24.47.409982
DGDB0105 146 2006-05-09-15.29.38.403093
DGDB0106 112 2012-02-06-15.47.39.861403
DGDB0110  25 2011-02-02-13.45.07.510254
DGDB0112 688 2012-02-16-11.41.10.222958
DGDB0113 258 2012-01-12-17.24.32.566470
DGDB0120 338 2011-09-22-08.37.30.692568
DGDB0121  21 2012-03-06-15.01.59.414022
DGDB0125  37 2009-11-18-13.37.33.681197
DGDB0129  12 2004-10-26-15.43.54.433882
DGDB0130  24 2004-11-03-11.12.47.882202
DGDB0131  49 2011-11-01-08.45.13.650123
DGDB0132   9 2006-10-03-18.07.12.156178
DGDB0133 371 2012-04-10-15.19.08.010289
DGDB0135  78 2010-12-15-10.44.14.150780
DGDB0136 192 2011-09-23-12.40.35.137113
DGDB0137 191 2012-04-12-10.51.12.318909
DGDB0139  92 2006-09-08-10.15.11.761270
DGDB0140 120 2010-04-08-11.28.21.175572
DGDB0141  21 2006-09-05-18.21.37.237084
DGDB0142  75 2009-03-06-11.40.05.708110
DGDB0143  49 2004-10-26-15.46.50.593341
DGDB0144   4 2004-10-26-15.46.50.627553
DGDB0145  25 2006-05-09-15.29.38.740267
DGDB0151  40 2010-08-17-10.26.47.966178
DGDB0153  44 2012-04-17-11.42.11.416017
DGDB0154 113 2007-04-26-14.52.26.375676
DGDB0155  96 2011-11-07-10.00.24.371112
DGDB0156 146 2012-02-13-18.17.12.526169
DGDB0159   2 2004-10-26-15.47.54.862251
DGDB0162  37 2010-03-01-13.34.58.807827
DGDB0166  45 2009-06-24-10.11.34.524267
DGDB0167 165 2004-10-26-15.48.12.096602
DGDB0168  65 2011-03-02-13.22.04.943211
DGDB0169  43 2010-06-17-08.44.11.264635
DGDB0171  56 2012-03-26-09.49.28.897080
DGDB0173 350 2010-02-24-13.44.34.529229
DGDB0174   8 2011-11-16-12.03.38.194573
DGDB0175  47 2004-10-26-15.49.17.533858
DGDB0177  38 2004-10-26-15.50.02.498005
DGDB0178 186 2011-08-15-13.52.20.151219
DGDB0179 173 2010-05-28-11.32.55.602101
DGDB0180  15 2004-10-26-15.50.50.978297
DGDB0181  23 2007-02-27-11.06.10.205960
DGDB0182  12 2004-10-26-15.50.51.737228
DGDB0183 367 2012-03-06-14.14.38.800727
DGDB0185  10 2004-10-26-15.50.57.210769
DGDB0186  26 2007-10-01-07.39.03.571013
DGDB0187 172 2008-05-06-22.33.40.942777
DGDB0189 140 2012-04-19-15.10.21.608464
DGDB0192 126 2012-01-30-12.36.00.752766
DGDB0193 141 2008-01-15-16.26.26.452125
DGDB0194  17 2008-12-19-14.13.25.529939
DGDB0195  11 2004-10-26-15.52.05.192138
DGDB0196  76 2012-02-21-16.04.41.114114
DGDB0200 310 2004-10-27-10.25.57.753074
DGDB0201  22 2007-04-13-17.31.09.157936
DGDB0202 241 2012-02-13-18.19.03.741293
DGDB0203  40 2012-02-28-09.52.36.737259
DGDB0205  10 2004-10-27-10.26.32.469902
DGDB0206  22 2004-10-27-10.26.34.590578
DGDB0207 237 2011-04-28-15.56.57.412443
DGDB0209  12 2004-10-27-10.26.39.896668
DGDB0211 105 2011-02-03-16.43.44.123978
DGDB0212  27 2006-09-08-10.35.00.000617
DGDB0213 251 2012-04-11-13.28.46.995190
DGDB0214   5 2004-10-27-10.26.51.819135
DGDB0215   9 2004-10-27-10.26.52.282957
DGDB0217 199 2012-01-11-15.16.53.415090
DGDB0218  65 2009-10-01-15.48.29.999826
DGDB0220   6 2006-11-08-13.03.57.222846
DGDB0222 159 2004-10-27-10.27.15.092403
DGDB0223 107 2011-12-13-12.48.31.089270
DGDB0224  27 2009-06-17-13.09.50.284614
DGDB0226  60 2006-06-08-15.44.50.793406
DGDB0227  15 2008-10-21-10.34.03.396936
DGDB0228 187 2011-12-15-13.29.03.118489
DGDB0231  41 2006-12-13-10.05.01.238523
DGDB0232  17 2009-04-02-14.54.06.617324
DGDB0235 279 2011-08-23-12.15.47.899057
DGDB0236  17 2006-08-17-10.44.37.822719
DGDB0237 330 2012-03-26-15.15.02.794184
DGDB0238  33 2006-09-08-10.40.16.350739
DGDB0239  47 2011-11-29-13.05.21.939649
DGDB0241  78 2012-03-01-07.57.16.326406
DGDB0242  53 2004-10-27-10.29.15.688356
DGDB0243   4 2001-07-04-15.24.14.921785
DGDB0244 102 2011-03-17-13.11.56.616841
DGDB0247  83 2010-09-01-11.15.27.735671
DGDB0248   4 2004-10-27-10.29.23.052453
DGDB0254 149 2006-07-12-16.35.49.369482
DGDB0255   6 2009-06-11-08.44.03.203655
DGDB0256  19 2011-09-06-15.28.09.229664
DGDB0257  59 2011-09-06-15.29.42.960811
DGDB0258  20 2009-09-29-15.19.57.611661
DGDB0260  17 2009-06-25-08.22.17.297017
DGDB0261   5 2009-06-25-08.23.28.423606
DGDB0262   5 2009-06-25-08.25.18.112304
DGDB0263  35 2004-10-27-10.29.41.195829
DGDB0264   9 2004-10-27-10.29.41.877308
DGDB0265  76 2012-03-16-09.46.15.968614
DGDB0266  20 2007-11-26-08.14.38.947415
DGDB0268  51 2007-05-31-10.41.51.640387
DGDB0269  16 2004-10-27-10.29.57.644724
DGDB0272  45 2004-10-27-10.30.13.604279
DGDB0273  37 2011-11-28-10.57.30.181899
DGDB0274   6 2006-09-08-10.40.29.777600
DGDB0275 221 2012-04-13-08.50.28.813048
DGDB0276  30 2011-02-15-07.53.02.085361
DGDB0277   2 2004-10-27-10.30.16.265751
DGDB0278  32 2004-10-27-10.30.17.040738
DGDB0279  25 2005-08-22-10.08.55.624049
DGDB0281 171 2008-07-21-14.31.34.649556
DGDB0282  27 2012-04-14-11.40.20.325701
DGDB0283  71 2010-02-10-14.19.39.422838
DGDB0284   7 2009-06-25-07.31.45.485555
DGDB0285  31 2009-11-18-13.24.14.262770
DGDB0286  44 2012-01-06-06.41.49.700114
DGDB0287  30 2011-01-26-14.51.07.826564
DGDB0288  33 2007-12-21-13.07.55.406211
DGDB0289  11 2007-05-24-15.42.08.563298
DGDB0290 287 2012-01-05-09.39.36.559408
DGDB0291   8 2012-02-14-10.45.10.650668
DGDB0292  44 2011-08-25-15.45.12.998437
DGDB0295  43 2004-10-27-11.06.06.170413
DGDB0296  51 2009-12-02-14.26.17.948619
DGDB0297   4 2004-10-27-11.06.07.558401
DGDB0300  34 2006-04-27-14.26.20.464157
DGDB0308  26 2004-10-27-10.37.34.302559
DGDB0309   5 2004-10-27-10.37.34.405394
DGDB0310  29 2004-10-27-10.37.34.983835
DGDB0311  46 2004-10-27-10.37.35.686834
DGDB0312  44 2004-10-27-10.37.36.700587
DGDB0313   4 2004-10-27-10.37.36.761966
DGDB0315  87 2007-11-21-07.34.14.982034
DGDB0316  42 2004-11-25-15.18.17.018574
DGDB0317  36 2010-03-05-15.50.28.944976
DGDB0319  57 2004-10-27-10.37.46.607315
DGDB0320  42 2004-10-27-10.37.47.417532
DGDB0321  48 2004-10-27-10.37.48.446302
DGDB0322 111 2004-10-27-10.37.49.957114
DGDB0323  48 2007-08-29-15.03.45.341618
DGDB0324  39 2011-06-09-11.12.50.962332
DGDB0325   9 2004-10-27-10.37.51.070278
DGDB0326  46 2007-06-08-12.42.42.737442
DGDB0327  12 2011-01-31-13.38.16.901852
DGDB0328   6 2004-10-27-10.37.51.987275
DGDB0329  36 2011-12-29-15.47.21.565017
DGDB0330 260 2004-10-27-10.38.06.389515
DGDB0331  20 2004-12-29-11.24.35.814504
DGDB0332 145 2004-10-27-10.38.18.950946
DGDB0334  26 2004-10-27-10.38.20.840649
DGDB0336  41 2011-01-31-13.22.20.144663
DGDB0337  23 2010-03-05-15.53.42.060703
DGDB0338  20 2006-11-03-09.17.17.281054
DGDB0339 163 2010-05-11-12.02.39.073483
DGDB0340  48 2006-08-22-15.43.55.718488
DGDB0341  23 2007-10-09-13.06.32.319986
DGDB0342 166 2005-10-18-16.50.49.693781
DGDB0343  51 2004-10-27-10.38.52.739428
DGDB0344  47 2004-10-27-10.38.54.194384
DGDB0346  13 2005-07-12-11.28.55.165917
DGDB0348  27 2004-10-27-10.39.16.348035
DGDB0349  32 2009-04-03-13.41.43.533715
DGDB0351 188 2012-02-23-13.02.25.753177
DGDB0352   9 2005-03-01-09.24.30.322573
DGDB0354 130 2012-04-10-12.24.27.906766
DGDB0358  49 2010-10-18-16.37.47.140905
DGDB0359 176 2012-02-16-15.28.38.250825
DGDB0360  23 2012-02-16-15.39.32.680807
DGDB0361   4 2004-10-27-10.45.55.286884
DGDB0362 183 2007-11-08-10.54.38.483692
DGDB0363  24 2005-03-04-12.58.24.634911
DGDB0364 105 2004-10-27-10.46.06.076344
DGDB0365  62 2010-03-30-10.33.31.788061
DGDB0366 140 2006-08-11-16.05.44.163608
DGDB0368  10 2012-02-24-15.12.26.189389
DGDB0369  59 2004-12-07-14.12.33.241170
DGDB0370   2 2007-01-30-15.24.18.000563
DGDB0371  36 2006-08-03-14.24.35.904079
DGDB0372  15 2005-06-01-17.07.03.460778
DGDB0373  51 2006-05-09-15.29.40.469475
DGDB0374 196 2011-08-31-17.10.49.928103
DGDB0375   2 2004-10-27-10.48.08.689781
DGDB0376 181 2010-09-29-14.05.30.417429
DGDB0378  12 2005-11-10-11.55.59.849415
DGDB0380  24 2010-02-10-11.37.58.389299
DGDB0381  32 2011-09-13-18.12.47.849518
DGDB0383  21 2007-04-03-18.43.48.575619
DGDB0384 110 2011-09-20-12.27.03.548968
DGDB0385  21 2006-05-09-16.03.41.066883
DGDB0386  37 2006-05-18-14.03.34.184573
DGDB0387   8 2006-01-12-12.57.56.183975
DGDB0388  78 2011-04-20-17.29.21.080223
DGDB0389 176 2011-09-20-15.39.51.976393
DGDB0390  29 2005-10-05-08.57.04.766439
DGDB0391  27 2005-08-25-11.23.21.295470
DGDB0392  36 2010-11-30-09.41.05.588493
DGDB0394  12 2005-05-24-17.53.44.644243
DGDB0395 297 2011-06-09-16.32.36.818613
DGDB0396  57 2011-07-05-14.42.35.712514
DGDB0399  22 2012-04-13-14.30.31.758354
DGDB0400  24 2008-09-05-12.41.37.447612
DGDB0401  84 2011-08-18-14.17.50.966395
DGDB0402  62 2011-04-05-07.22.13.038016
DGDB0403  12 2007-08-02-15.01.49.279712
DGDB0404  51 2005-09-19-11.51.05.491506
DGDB0405  14 2011-11-28-16.16.09.744385
DGDB0406  48 2005-06-08-13.53.30.572456
DGDB0412 220 2011-11-07-13.49.18.749770
DGDB0416  11 2005-10-10-13.35.03.891626
DGDB0417   9 2005-08-10-15.21.24.767924
DGDB0418  26 2008-01-07-13.16.34.910529
DGDB0419   4 2011-03-25-12.47.40.552238
DGDB0420  65 2011-10-11-14.19.07.782165
DGDB0421  11 2009-07-03-13.33.38.613923
DGDB0423   8 2008-01-10-14.50.37.984697
DGDB0424 216 2012-04-13-13.40.37.250468
DGDB0426 314 2007-11-19-11.35.16.571883
DGDB0431 206 2011-11-11-11.06.18.557060
DGDB0432 206 2011-11-11-11.06.18.953307
DGDB0433 175 2011-11-11-11.06.19.338967
DGDB0434 175 2011-11-11-11.06.19.811567
DGDB0435 175 2011-11-11-11.06.20.149377
DGDB0436 175 2011-11-11-11.06.20.614490
DGDB0439 125 2011-12-23-10.46.26.050337
DGDB0441  61 2007-04-10-17.01.59.786020
DGDB0442  68 2007-12-05-11.22.07.796985
DGDB0443  23 2006-06-21-12.01.49.732236
DGDB0444  12 2008-06-26-13.56.23.725837
DGDB0446  47 2010-11-25-11.01.16.065087
DGDB0448   3 2006-11-07-13.48.38.391975
DGDB0449  10 2007-02-22-18.21.36.616246
DGDB0450  36 2011-01-06-00.05.31.564479
DGDB0451  45 2006-10-02-13.22.51.890066
DGDB0452  54 2007-07-06-15.35.21.362996
DGDB0454  15 2007-02-27-15.07.23.973506
DGDB0455  14 2007-03-06-12.10.47.308374
DGDB0456  11 2007-03-06-12.12.25.339149
DGDB0457  12 2007-02-06-13.05.57.831276
DGDB0460 175 2011-11-11-11.06.20.951273
DGDB0463  19 2011-05-26-08.14.11.538447
DGDB0466 106 2010-06-17-12.03.20.687745
DGDB0467  99 2011-07-14-08.53.42.802215
DGDB0468  63 2012-01-09-10.38.16.942277
DGDB0470   6 2008-01-14-13.19.17.936519
DGDB0471   1 2007-04-05-08.09.21.530616
DGDB0472  91 2011-12-15-10.33.00.293887
DGDB0473  57 2011-04-04-17.19.32.307455
DGDB0474  36 2012-02-27-13.52.12.774518
DGDB0475  23 2007-06-26-13.46.14.204488
DGDB0476  16 2012-03-29-12.07.04.466512
DGDB0478 277 2010-05-15-09.25.09.288955
DGDB0479 277 2011-11-04-10.16.27.336216
DGDB0480  43 2010-09-17-18.08.08.876526
DGDB0481   9 2007-09-26-15.51.50.914007
DGDB0482 169 2012-03-07-11.27.46.542459
DGDB0483   3 2008-09-01-09.33.39.312408
DGDB0484  36 2008-09-08-10.01.03.725452
DGDB0485  65 2012-02-08-13.58.37.250580
DGDB0486 213 2012-04-03-11.06.33.703349
DGDB0494  24 2009-06-16-14.33.13.522117
DGDB0495 175 2011-11-11-11.06.21.269834
DGDB0496 175 2011-11-11-11.06.21.620887
DGDB0497 175 2011-11-11-11.06.21.993914
DGDB0498 175 2011-11-11-11.06.22.390687
DGDB0499  38 2010-09-24-15.16.39.934793
DGDB0500 152 2011-01-14-15.36.57.314514
DGDB0501   4 2009-02-04-13.13.45.476435
DGDB0502   6 2009-05-04-12.22.26.732774
DGDB0503  46 2010-11-26-14.51.58.901951
DGDB0504 352 2008-09-29-18.11.51.855204
DGDB0505  52 2011-02-21-18.04.00.438971
DGDB0506 192 2011-12-02-11.42.24.425738
DGDB0509  22 2008-10-06-14.23.27.354520
DGDB0510  18 2008-10-17-15.45.38.642431
DGDB0511   3 2008-11-11-19.19.50.921896
DGDB0513   9 2008-10-16-10.34.43.834006
DGDB0514  44 2011-07-01-09.53.45.583816
DGDB0515  59 2009-06-02-09.39.32.305035
DGDB0516  36 2011-10-27-11.02.46.180128
DGDB0517   5 2008-12-17-14.51.44.330750
DGDB0518  10 2011-08-03-09.49.50.966829
DGDB0519  90 2011-09-22-13.28.20.262347
DGDB0520 175 2011-11-11-11.06.22.757670
DGDB0521 175 2011-11-11-11.06.23.329570
DGDB0522  26 2010-02-26-13.33.41.444428
DGDB0523   7 2010-02-25-09.51.34.640754
DGDB0524 102 2010-11-16-12.44.38.747763
DGDB0525  12 2010-02-02-11.30.57.909044
DGDB0526   2 2010-03-09-09.01.29.460049
DGDB0527   5 2010-09-03-12.45.17.717523
DGDB0528 109 2012-04-13-15.22.09.442700
DGDB0530   4 2010-07-02-15.47.56.155215
DGDB0531   3 2010-09-23-13.08.55.621643
DGDB0532  41 2012-03-21-14.27.34.410053
DGDB0535   6 2012-03-05-18.56.40.857804
DGDB0537   9 2011-12-23-11.50.25.850467
DGDB0544  75 2012-04-04-08.14.10.385242
DGDB0545  11 2012-02-10-11.16.01.047999
DGDB0546  35 2012-02-07-07.56.45.853935
DGDB0547   4 2012-03-28-15.36.32.255944
DGDB0549  25 2012-04-19-11.10.51.095930
DGDB0550 222 2012-04-11-10.19.41.648048
DGDB0637  23 2008-05-14-13.57.46.949266
DGDB0638  32 2011-08-23-16.05.12.759488
DGDB0639  52 2012-01-12-17.46.02.351192
DGDB0668  38 2006-07-07-13.57.03.529288
DGDB0669  34 2007-02-16-10.51.37.229471
DGDB0670   4 2007-02-16-10.51.30.970612
DGDB0671 119 2012-03-14-01.44.21.325314
DGDB0672   8 2009-09-30-17.20.42.593724
DGDB0673 417 2011-11-21-07.49.01.349758
DGDB0674  16 2012-01-23-16.19.46.217184
DGDB0675  24 2011-12-23-13.41.31.721097
DGDB0676  24 2011-12-23-13.42.18.336935
DGDB0677  24 2011-12-23-13.45.13.116665
DGDB0678  24 2011-12-23-13.38.40.186996
DGDB0679  20 2012-04-13-11.35.52.553230
DGDB0680   9 2012-02-03-13.34.57.714327
DGDB0681  64 2012-02-07-13.58.45.450658
DGDB0999   3 2006-08-02-17.04.48.795859
DGDB6663  84 2008-12-16-11.00.34.036780
DGDB9991   3 2010-03-10-17.51.18.864416
DGDB9992   3 2010-03-10-17.51.20.104435
DGDB9993   3 2010-03-10-17.51.21.415808
DGDB9996  15 2012-03-14-16.20.29.519115
DGDB9997  24 2009-10-21-16.03.17.745454
DGDB9998 331 2012-04-17-11.18.48.221102
DGDB9999  25 2005-06-02-12.56.05.901310
369 rows fetched: with d as ( select name db from sysibm.sysDatabase where...
$#out                                              20120419 15:39:58
DB       OL2 COL3
DGDB0380  24 2010-02-10-11.37.58.389299
DGDB0381  32 2011-09-13-18.12.47.849518
DGDB0383  21 2007-04-03-18.43.48.575619
DGDB0384 110 2011-09-20-12.27.03.548968
DGDB0385  21 2006-05-09-16.03.41.066883
DGDB0386  37 2006-05-18-14.03.34.184573
DGDB0387   8 2006-01-12-12.57.56.183975
DGDB0388  78 2011-04-20-17.29.21.080223
DGDB0389 176 2011-09-20-15.39.51.976393
9 rows fetched: with d as ( select name db from sysibm.sysDatabase where n...
$#out                                              20120419 15:38:39
DB       TY L3 COL4
DGDB0380 T   8 2010-02-10-11.37.58.130586
DGDB0380 V   8 2010-02-10-11.37.58.389299
DGDB0380 ix  8 2010-02-10-11.37.58.182409
DGDB0381 T   7 2011-09-13-18.12.47.849518
DGDB0381 ix 25 2011-03-11-11.14.40.735444
DGDB0383 T   5 2007-03-27-19.45.43.349765
DGDB0383 V   1 2007-04-03-18.43.48.575619
DGDB0383 ix 15 2007-03-27-19.45.44.239856
DGDB0384 T  30 2011-09-20-12.27.03.548968
DGDB0384 V  30 2011-09-20-12.27.03.509150
DGDB0384 ix 50 2011-09-20-12.27.03.250716
DGDB0385 T   5 2006-01-31-14.41.21.042825
DGDB0385 V   8 2006-05-09-16.03.41.066883
DGDB0385 ix  8 2006-01-31-14.41.21.182119
DGDB0386 T   9 2005-07-12-18.18.49.591562
DGDB0386 V   9 2005-07-12-18.18.49.565084
DGDB0386 ix 19 2006-05-18-14.03.34.184573
DGDB0387 T   2 2005-05-26-17.14.59.864175
DGDB0387 V   2 2005-05-26-17.15.01.494312
DGDB0387 ix  4 2006-01-12-12.57.56.183975
DGDB0388 T  28 2011-04-20-17.29.18.870285
DGDB0388 V   3 2008-04-23-09.00.49.671155
DGDB0388 ix 47 2011-04-20-17.29.21.080223
DGDB0389 T  46 2011-09-20-15.39.51.557962
DGDB0389 V  31 2011-06-17-16.03.25.380888
DGDB0389 ix 99 2011-09-20-15.39.51.976393
26 rows fetched: with d as ( select name db from sysibm.sysDatabase where ...
$#out                                              20120419 15:38:11
DB       TY L3 COL4
DGDB0389 T  46 2011-09-20-15.39.51.557962
DGDB0389 V  31 2011-06-17-16.03.25.380888
DGDB0389 ix 99 2011-09-20-15.39.51.976393
3 rows fetched: with d as ( select name db from sysibm.sysDatabase where n...
$#out                                              20120419 15:37:51
*** run error ***
SQLCODE = -206: AT IS NOT VALID IN THE CONTEXT WHERE IT IS
    USED
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
     from :src = with d as
$#out                                              20120419 15:37:22
*** run error ***
SQLCODE = -206: DB IS NOT VALID IN THE CONTEXT WHERE IT IS
    USED
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
     from :src = with d as
$#out                                              20120419 15:34:48
*** run error ***
SQLCODE = -421: THE OPERANDS OF A SET OPERATOR DO NOT HAVE
    THE SAME NUMBER OF COLUMNS
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
     from :src = with d as
$#out                                              20120419 15:33:22
*** run error ***
SQLCODE = -122: COLUMN OR EXPRESSION IN THE SELECT LIST IS
    NOT VALID
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
     from :src = with d as
$#out                                              20120419 15:30:21
CO L2 COL3
T  46 2011-09-20-15.39.51.557962
V  31 2011-06-17-16.03.25.380888
ix 99 2011-09-20-15.39.51.976393
3 rows fetched: with d as ( select name db from sysibm.sysDatabase where n...
$#out                                              20120419 15:30:04
CO 2 COL
ix 0 ---
1 rows fetched: with d as ( select name db from sysibm.sysDatabase where n...
$#out                                              20120419 15:28:08
}¢--- A540769.WK.SQL(CATDBAL1) cre=2012-04-19 mod=2012-04-19-16.26.46 A540769 ---
AV01A1X  325 2009-03-06-09.56.13.347096
AV02A1X   29 2009-11-05-15.04.31.233447
AV03A1X  162 2012-02-15-15.56.00.992980
AV04A1X   70 2012-02-15-15.56.20.101081
AV05A1X   30 2011-09-09-16.04.25.659715
AV06A1X  126 2012-02-15-15.56.44.900875
AV07A1X  126 2012-02-15-15.56.56.623324
AV08A1X  126 2012-02-15-15.57.08.237247
AV09A1X  126 2012-02-15-15.57.19.005186
AV10A1X  126 2012-02-15-15.57.29.100327
AV11A1X  126 2012-02-15-15.57.45.244556
AV12A1X  126 2012-02-15-15.57.59.382430
AV13A1X  126 2012-02-15-15.58.18.653586
AV14A1X  126 2012-02-15-15.58.34.142134
AV15A1X  176 2012-03-15-14.59.55.329691
AV16A1X  126 2012-02-15-15.58.50.859737
AV17A1X  126 2012-02-15-15.59.09.054278
AV18A1X  126 2012-02-15-15.59.22.097118
DGDB0008 153 2008-03-14-13.04.33.490511
DGDB0009   9 2004-10-26-15.13.54.114580
DGDB0015 201 2012-03-29-12.45.42.624562
DGDB0031  60 2007-07-25-07.17.23.210039
DGDB0033   6 2004-10-26-15.13.58.488538
DGDB0035  21 2007-06-22-13.26.09.175553
DGDB0039  36 2006-05-19-14.17.02.071896
DGDB0041  46 2004-10-26-15.14.09.759890
DGDB0042   3 2004-10-26-15.14.09.826515
DGDB0044   4 2004-10-26-15.14.09.914919
DGDB0047   5 2004-10-26-15.14.12.791258
DGDB0049  13 2010-07-29-15.27.33.622954
DGDB0052 378 2006-09-08-10.13.08.350741
DGDB0056   6 2004-10-26-15.14.49.340828
DGDB0057 152 2010-06-25-10.55.07.240600
DGDB0058  77 2009-02-16-16.24.51.053775
DGDB0059  34 2008-12-23-12.47.57.841673
DGDB0060 121 2009-04-21-07.25.35.986757
DGDB0061   8 2004-10-26-15.15.04.437668
DGDB0062  49 2010-04-22-13.19.16.615883
DGDB0065  39 2004-10-26-15.15.20.634315
DGDB0067  75 2011-09-27-15.04.49.189528
DGDB0072  90 2008-01-17-18.27.15.263195
DGDB0074 228 2004-10-26-15.15.43.907806
DGDB0078  74 2008-04-22-11.08.37.492940
DGDB0080  27 2004-10-26-15.15.53.616592
DGDB0082 145 2004-10-26-15.16.16.107311
DGDB0084 571 2008-10-30-17.23.26.248352
DGDB0085   6 2004-10-26-15.16.45.326968
DGDB0086   3 2004-10-26-15.16.45.450493
DGDB0088  26 2011-01-12-14.58.17.403487
DGDB0089   4 2004-10-26-15.16.46.747597
DGDB0090  24 2007-07-10-13.33.01.985987
DGDB0091  57 2009-07-31-16.24.24.282235
DGDB0093  18 2004-10-26-15.17.05.688324
DGDB0094  51 2004-10-26-15.17.07.479274
DGDB0095  18 2004-10-26-15.17.07.906538
DGDB0098   3 2004-10-26-15.17.08.024597
DGDB0103  52 2005-08-23-15.04.51.695020
DGDB0104  89 2011-03-07-11.24.47.409982
DGDB0105 146 2006-05-09-15.29.38.403093
DGDB0106 112 2012-02-06-15.47.39.861403
DGDB0110  25 2011-02-02-13.45.07.510254
DGDB0112 688 2012-02-16-11.41.10.222958
DGDB0113 258 2012-01-12-17.24.32.566470
DGDB0120 338 2011-09-22-08.37.30.692568
DGDB0121  21 2012-03-06-15.01.59.414022
DGDB0125  37 2009-11-18-13.37.33.681197
DGDB0129  12 2004-10-26-15.43.54.433882
DGDB0130  24 2004-11-03-11.12.47.882202
DGDB0131  49 2011-11-01-08.45.13.650123
DGDB0132   9 2006-10-03-18.07.12.156178
DGDB0133 371 2012-04-10-15.19.08.010289
DGDB0135  78 2010-12-15-10.44.14.150780
DGDB0136 192 2011-09-23-12.40.35.137113
DGDB0137 191 2012-04-12-10.51.12.318909
DGDB0139  92 2006-09-08-10.15.11.761270
DGDB0140 120 2010-04-08-11.28.21.175572
DGDB0141  21 2006-09-05-18.21.37.237084
DGDB0142  75 2009-03-06-11.40.05.708110
DGDB0143  49 2004-10-26-15.46.50.593341
DGDB0144   4 2004-10-26-15.46.50.627553
DGDB0145  25 2006-05-09-15.29.38.740267
DGDB0151  40 2010-08-17-10.26.47.966178
DGDB0153  44 2012-04-17-11.42.11.416017
DGDB0154 113 2007-04-26-14.52.26.375676
DGDB0155  96 2011-11-07-10.00.24.371112
DGDB0156 146 2012-02-13-18.17.12.526169
DGDB0159   2 2004-10-26-15.47.54.862251
DGDB0162  37 2010-03-01-13.34.58.807827
DGDB0166  45 2009-06-24-10.11.34.524267
DGDB0167 165 2004-10-26-15.48.12.096602
DGDB0168  65 2011-03-02-13.22.04.943211
DGDB0169  43 2010-06-17-08.44.11.264635
DGDB0171  56 2012-03-26-09.49.28.897080
DGDB0173 350 2010-02-24-13.44.34.529229
DGDB0174   8 2011-11-16-12.03.38.194573
DGDB0175  47 2004-10-26-15.49.17.533858
DGDB0177  38 2004-10-26-15.50.02.498005
DGDB0178 186 2011-08-15-13.52.20.151219
DGDB0179 173 2010-05-28-11.32.55.602101
DGDB0180  15 2004-10-26-15.50.50.978297
DGDB0181  23 2007-02-27-11.06.10.205960
DGDB0182  12 2004-10-26-15.50.51.737228
DGDB0183 367 2012-03-06-14.14.38.800727
DGDB0185  10 2004-10-26-15.50.57.210769
DGDB0186  26 2007-10-01-07.39.03.571013
DGDB0187 172 2008-05-06-22.33.40.942777
DGDB0189 140 2012-04-19-15.10.21.608464
DGDB0192 126 2012-01-30-12.36.00.752766
DGDB0193 141 2008-01-15-16.26.26.452125
DGDB0194  17 2008-12-19-14.13.25.529939
DGDB0195  11 2004-10-26-15.52.05.192138
DGDB0196  76 2012-02-21-16.04.41.114114
DGDB0200 310 2004-10-27-10.25.57.753074
DGDB0201  22 2007-04-13-17.31.09.157936
DGDB0202 241 2012-02-13-18.19.03.741293
DGDB0203  40 2012-02-28-09.52.36.737259
DGDB0205  10 2004-10-27-10.26.32.469902
DGDB0206  22 2004-10-27-10.26.34.590578
DGDB0207 237 2011-04-28-15.56.57.412443
DGDB0209  12 2004-10-27-10.26.39.896668
DGDB0211 105 2011-02-03-16.43.44.123978
DGDB0212  27 2006-09-08-10.35.00.000617
DGDB0213 251 2012-04-11-13.28.46.995190
DGDB0214   5 2004-10-27-10.26.51.819135
DGDB0215   9 2004-10-27-10.26.52.282957
DGDB0217 199 2012-01-11-15.16.53.415090
DGDB0218  65 2009-10-01-15.48.29.999826
DGDB0220   6 2006-11-08-13.03.57.222846
DGDB0222 159 2004-10-27-10.27.15.092403
DGDB0223 107 2011-12-13-12.48.31.089270
DGDB0224  27 2009-06-17-13.09.50.284614
DGDB0226  60 2006-06-08-15.44.50.793406
DGDB0227  15 2008-10-21-10.34.03.396936
DGDB0228 187 2011-12-15-13.29.03.118489
DGDB0231  41 2006-12-13-10.05.01.238523
DGDB0232  17 2009-04-02-14.54.06.617324
DGDB0235 279 2011-08-23-12.15.47.899057
DGDB0236  17 2006-08-17-10.44.37.822719
DGDB0237 330 2012-03-26-15.15.02.794184
DGDB0238  33 2006-09-08-10.40.16.350739
DGDB0239  47 2011-11-29-13.05.21.939649
DGDB0241  78 2012-03-01-07.57.16.326406
DGDB0242  53 2004-10-27-10.29.15.688356
DGDB0243   4 2001-07-04-15.24.14.921785
DGDB0244 102 2011-03-17-13.11.56.616841
DGDB0247  83 2010-09-01-11.15.27.735671
DGDB0248   4 2004-10-27-10.29.23.052453
DGDB0254 149 2006-07-12-16.35.49.369482
DGDB0255   6 2009-06-11-08.44.03.203655
DGDB0256  19 2011-09-06-15.28.09.229664
DGDB0257  59 2011-09-06-15.29.42.960811
DGDB0258  20 2009-09-29-15.19.57.611661
DGDB0260  17 2009-06-25-08.22.17.297017
DGDB0261   5 2009-06-25-08.23.28.423606
DGDB0262   5 2009-06-25-08.25.18.112304
DGDB0263  35 2004-10-27-10.29.41.195829
DGDB0264   9 2004-10-27-10.29.41.877308
DGDB0265  76 2012-03-16-09.46.15.968614
DGDB0266  20 2007-11-26-08.14.38.947415
DGDB0268  51 2007-05-31-10.41.51.640387
DGDB0269  16 2004-10-27-10.29.57.644724
DGDB0272  45 2004-10-27-10.30.13.604279
DGDB0273  37 2011-11-28-10.57.30.181899
DGDB0274   6 2006-09-08-10.40.29.777600
DGDB0275 221 2012-04-13-08.50.28.813048
DGDB0276  30 2011-02-15-07.53.02.085361
DGDB0277   2 2004-10-27-10.30.16.265751
DGDB0278  32 2004-10-27-10.30.17.040738
DGDB0279  25 2005-08-22-10.08.55.624049
DGDB0281 171 2008-07-21-14.31.34.649556
DGDB0282  27 2012-04-14-11.40.20.325701
DGDB0283  71 2010-02-10-14.19.39.422838
DGDB0284   7 2009-06-25-07.31.45.485555
DGDB0285  31 2009-11-18-13.24.14.262770
DGDB0286  44 2012-01-06-06.41.49.700114
DGDB0287  30 2011-01-26-14.51.07.826564
DGDB0288  33 2007-12-21-13.07.55.406211
DGDB0289  11 2007-05-24-15.42.08.563298
DGDB0290 287 2012-01-05-09.39.36.559408
DGDB0291   8 2012-02-14-10.45.10.650668
DGDB0292  44 2011-08-25-15.45.12.998437
DGDB0295  43 2004-10-27-11.06.06.170413
DGDB0296  51 2009-12-02-14.26.17.948619
DGDB0297   4 2004-10-27-11.06.07.558401
DGDB0300  34 2006-04-27-14.26.20.464157
DGDB0308  26 2004-10-27-10.37.34.302559
DGDB0309   5 2004-10-27-10.37.34.405394
DGDB0310  29 2004-10-27-10.37.34.983835
DGDB0311  46 2004-10-27-10.37.35.686834
DGDB0312  44 2004-10-27-10.37.36.700587
DGDB0313   4 2004-10-27-10.37.36.761966
DGDB0315  87 2007-11-21-07.34.14.982034
DGDB0316  42 2004-11-25-15.18.17.018574
DGDB0317  36 2010-03-05-15.50.28.944976
DGDB0319  57 2004-10-27-10.37.46.607315
DGDB0320  42 2004-10-27-10.37.47.417532
DGDB0321  48 2004-10-27-10.37.48.446302
DGDB0322 111 2004-10-27-10.37.49.957114
DGDB0323  48 2007-08-29-15.03.45.341618
DGDB0324  39 2011-06-09-11.12.50.962332
DGDB0325   9 2004-10-27-10.37.51.070278
DGDB0326  46 2007-06-08-12.42.42.737442
DGDB0327  12 2011-01-31-13.38.16.901852
DGDB0328   6 2004-10-27-10.37.51.987275
DGDB0329  36 2011-12-29-15.47.21.565017
DGDB0330 260 2004-10-27-10.38.06.389515
DGDB0331  20 2004-12-29-11.24.35.814504
DGDB0332 145 2004-10-27-10.38.18.950946
DGDB0334  26 2004-10-27-10.38.20.840649
DGDB0336  41 2011-01-31-13.22.20.144663
DGDB0337  23 2010-03-05-15.53.42.060703
DGDB0338  20 2006-11-03-09.17.17.281054
DGDB0339 163 2010-05-11-12.02.39.073483
DGDB0340  48 2006-08-22-15.43.55.718488
DGDB0341  23 2007-10-09-13.06.32.319986
DGDB0342 166 2005-10-18-16.50.49.693781
DGDB0343  51 2004-10-27-10.38.52.739428
DGDB0344  47 2004-10-27-10.38.54.194384
DGDB0346  13 2005-07-12-11.28.55.165917
DGDB0348  27 2004-10-27-10.39.16.348035
DGDB0349  32 2009-04-03-13.41.43.533715
DGDB0351 188 2012-02-23-13.02.25.753177
DGDB0352   9 2005-03-01-09.24.30.322573
DGDB0354 130 2012-04-10-12.24.27.906766
DGDB0358  49 2010-10-18-16.37.47.140905
DGDB0359 176 2012-02-16-15.28.38.250825
DGDB0360  23 2012-02-16-15.39.32.680807
DGDB0361   4 2004-10-27-10.45.55.286884
DGDB0362 183 2007-11-08-10.54.38.483692
DGDB0363  24 2005-03-04-12.58.24.634911
DGDB0364 105 2004-10-27-10.46.06.076344
DGDB0365  62 2010-03-30-10.33.31.788061
DGDB0366 140 2006-08-11-16.05.44.163608
DGDB0368  10 2012-02-24-15.12.26.189389
DGDB0369  59 2004-12-07-14.12.33.241170
DGDB0370   2 2007-01-30-15.24.18.000563
DGDB0371  36 2006-08-03-14.24.35.904079
DGDB0372  15 2005-06-01-17.07.03.460778
DGDB0373  51 2006-05-09-15.29.40.469475
DGDB0374 196 2011-08-31-17.10.49.928103
DGDB0375   2 2004-10-27-10.48.08.689781
DGDB0376 181 2010-09-29-14.05.30.417429
DGDB0378  12 2005-11-10-11.55.59.849415
DGDB0380  24 2010-02-10-11.37.58.389299
DGDB0381  32 2011-09-13-18.12.47.849518
DGDB0383  21 2007-04-03-18.43.48.575619
DGDB0384 110 2011-09-20-12.27.03.548968
DGDB0385  21 2006-05-09-16.03.41.066883
DGDB0386  37 2006-05-18-14.03.34.184573
DGDB0387   8 2006-01-12-12.57.56.183975
DGDB0388  78 2011-04-20-17.29.21.080223
DGDB0389 176 2011-09-20-15.39.51.976393
DGDB0390  29 2005-10-05-08.57.04.766439
DGDB0391  27 2005-08-25-11.23.21.295470
DGDB0392  36 2010-11-30-09.41.05.588493
DGDB0394  12 2005-05-24-17.53.44.644243
DGDB0395 297 2011-06-09-16.32.36.818613
DGDB0396  57 2011-07-05-14.42.35.712514
DGDB0399  22 2012-04-13-14.30.31.758354
DGDB0400  24 2008-09-05-12.41.37.447612
DGDB0401  84 2011-08-18-14.17.50.966395
DGDB0402  62 2011-04-05-07.22.13.038016
DGDB0403  12 2007-08-02-15.01.49.279712
DGDB0404  51 2005-09-19-11.51.05.491506
DGDB0405  14 2011-11-28-16.16.09.744385
DGDB0406  48 2005-06-08-13.53.30.572456
DGDB0412 220 2011-11-07-13.49.18.749770
DGDB0416  11 2005-10-10-13.35.03.891626
DGDB0417   9 2005-08-10-15.21.24.767924
DGDB0418  26 2008-01-07-13.16.34.910529
DGDB0419   4 2011-03-25-12.47.40.552238
DGDB0420  65 2011-10-11-14.19.07.782165
DGDB0421  11 2009-07-03-13.33.38.613923
DGDB0423   8 2008-01-10-14.50.37.984697
DGDB0424 216 2012-04-13-13.40.37.250468
DGDB0426 314 2007-11-19-11.35.16.571883
DGDB0431 206 2011-11-11-11.06.18.557060
DGDB0432 206 2011-11-11-11.06.18.953307
DGDB0433 175 2011-11-11-11.06.19.338967
DGDB0434 175 2011-11-11-11.06.19.811567
DGDB0435 175 2011-11-11-11.06.20.149377
DGDB0436 175 2011-11-11-11.06.20.614490
DGDB0439 125 2011-12-23-10.46.26.050337
DGDB0441  61 2007-04-10-17.01.59.786020
DGDB0442  68 2007-12-05-11.22.07.796985
DGDB0443  23 2006-06-21-12.01.49.732236
DGDB0444  12 2008-06-26-13.56.23.725837
DGDB0446  47 2010-11-25-11.01.16.065087
DGDB0448   3 2006-11-07-13.48.38.391975
DGDB0449  10 2007-02-22-18.21.36.616246
DGDB0450  36 2011-01-06-00.05.31.564479
DGDB0451  45 2006-10-02-13.22.51.890066
DGDB0452  54 2007-07-06-15.35.21.362996
DGDB0454  15 2007-02-27-15.07.23.973506
DGDB0455  14 2007-03-06-12.10.47.308374
DGDB0456  11 2007-03-06-12.12.25.339149
DGDB0457  12 2007-02-06-13.05.57.831276
DGDB0460 175 2011-11-11-11.06.20.951273
DGDB0463  19 2011-05-26-08.14.11.538447
DGDB0466 106 2010-06-17-12.03.20.687745
DGDB0467  99 2011-07-14-08.53.42.802215
DGDB0468  63 2012-01-09-10.38.16.942277
DGDB0470   6 2008-01-14-13.19.17.936519
DGDB0471   1 2007-04-05-08.09.21.530616
DGDB0472  91 2011-12-15-10.33.00.293887
DGDB0473  57 2011-04-04-17.19.32.307455
DGDB0474  36 2012-02-27-13.52.12.774518
DGDB0475  23 2007-06-26-13.46.14.204488
DGDB0476  16 2012-03-29-12.07.04.466512
DGDB0478 277 2010-05-15-09.25.09.288955
DGDB0479 277 2011-11-04-10.16.27.336216
DGDB0480  43 2010-09-17-18.08.08.876526
DGDB0481   9 2007-09-26-15.51.50.914007
DGDB0482 169 2012-03-07-11.27.46.542459
DGDB0483   3 2008-09-01-09.33.39.312408
DGDB0484  36 2008-09-08-10.01.03.725452
DGDB0485  65 2012-02-08-13.58.37.250580
DGDB0486 213 2012-04-03-11.06.33.703349
DGDB0494  24 2009-06-16-14.33.13.522117
DGDB0495 175 2011-11-11-11.06.21.269834
DGDB0496 175 2011-11-11-11.06.21.620887
DGDB0497 175 2011-11-11-11.06.21.993914
DGDB0498 175 2011-11-11-11.06.22.390687
DGDB0499  38 2010-09-24-15.16.39.934793
DGDB0500 152 2011-01-14-15.36.57.314514
DGDB0501   4 2009-02-04-13.13.45.476435
DGDB0502   6 2009-05-04-12.22.26.732774
DGDB0503  46 2010-11-26-14.51.58.901951
DGDB0504 352 2008-09-29-18.11.51.855204
DGDB0505  52 2011-02-21-18.04.00.438971
DGDB0506 192 2011-12-02-11.42.24.425738
DGDB0509  22 2008-10-06-14.23.27.354520
DGDB0510  18 2008-10-17-15.45.38.642431
DGDB0511   3 2008-11-11-19.19.50.921896
DGDB0513   9 2008-10-16-10.34.43.834006
DGDB0514  44 2011-07-01-09.53.45.583816
DGDB0515  59 2009-06-02-09.39.32.305035
DGDB0516  36 2011-10-27-11.02.46.180128
DGDB0517   5 2008-12-17-14.51.44.330750
DGDB0518  10 2011-08-03-09.49.50.966829
DGDB0519  90 2011-09-22-13.28.20.262347
DGDB0520 175 2011-11-11-11.06.22.757670
DGDB0521 175 2011-11-11-11.06.23.329570
DGDB0522  26 2010-02-26-13.33.41.444428
DGDB0523   7 2010-02-25-09.51.34.640754
DGDB0524 102 2010-11-16-12.44.38.747763
DGDB0525  12 2010-02-02-11.30.57.909044
DGDB0526   2 2010-03-09-09.01.29.460049
DGDB0527   5 2010-09-03-12.45.17.717523
DGDB0528 109 2012-04-13-15.22.09.442700
DGDB0530   4 2010-07-02-15.47.56.155215
DGDB0531   3 2010-09-23-13.08.55.621643
DGDB0532  41 2012-03-21-14.27.34.410053
DGDB0535   6 2012-03-05-18.56.40.857804
DGDB0537   9 2011-12-23-11.50.25.850467
DGDB0544  75 2012-04-04-08.14.10.385242
DGDB0545  11 2012-02-10-11.16.01.047999
DGDB0546  35 2012-02-07-07.56.45.853935
DGDB0547   4 2012-03-28-15.36.32.255944
DGDB0549  25 2012-04-19-11.10.51.095930
DGDB0550 222 2012-04-11-10.19.41.648048
DGDB0637  23 2008-05-14-13.57.46.949266
DGDB0638  32 2011-08-23-16.05.12.759488
DGDB0639  52 2012-01-12-17.46.02.351192
DGDB0668  38 2006-07-07-13.57.03.529288
DGDB0669  34 2007-02-16-10.51.37.229471
DGDB0670   4 2007-02-16-10.51.30.970612
DGDB0671 119 2012-03-14-01.44.21.325314
DGDB0672   8 2009-09-30-17.20.42.593724
DGDB0673 417 2011-11-21-07.49.01.349758
DGDB0674  16 2012-01-23-16.19.46.217184
DGDB0675  24 2011-12-23-13.41.31.721097
DGDB0676  24 2011-12-23-13.42.18.336935
DGDB0677  24 2011-12-23-13.45.13.116665
DGDB0678  24 2011-12-23-13.38.40.186996
DGDB0679  20 2012-04-13-11.35.52.553230
DGDB0680   9 2012-02-03-13.34.57.714327
DGDB0681  64 2012-02-07-13.58.45.450658
DGDB0999   3 2006-08-02-17.04.48.795859
DGDB6663  84 2008-12-16-11.00.34.036780
DGDB9991   3 2010-03-10-17.51.18.864416
DGDB9992   3 2010-03-10-17.51.20.104435
DGDB9993   3 2010-03-10-17.51.21.415808
DGDB9996  15 2012-03-14-16.20.29.519115
DGDB9997  24 2009-10-21-16.03.17.745454
DGDB9998 331 2012-04-17-11.18.48.221102
DGDB9999  25 2005-06-02-12.56.05.901310
DGOCB130 195 2008-01-11-13.10.57.152269
DGOCF101 217 2003-10-02-11.52.21.535732
DGOCF102  96 2002-05-27-10.09.04.384760
DGOCK310  61 2003-08-18-19.35.03.473574
DGOKB701  34 2006-03-07-13.10.56.348447
DGOMA24N   2 2004-10-29-11.15.54.055296
DGOMM700 125 2003-08-18-19.35.05.963203
DGOWA200  54 2010-08-18-16.12.20.421306
DGOWB420  25 2011-05-31-15.58.01.748775
DGOWD501  36 2011-09-14-09.35.44.132928
DGOWD502  32 2011-09-13-18.01.39.070889
DGOWD503  10 2010-04-29-10.25.04.876989
DGOWD504  16 2010-04-29-12.19.53.240238
DGOWD600  97 2012-03-27-09.24.03.252276
DGOWD700  35 2004-10-28-10.26.00.904484
DGOWM200   4 2004-10-28-10.26.01.000641
DGOWM301 369 2010-10-25-13.40.35.625293
DG01A1A  201 2012-04-02-08.38.16.929850
DG02A1A  122 2012-01-30-12.54.53.534434
DG666308   2 2009-02-18-12.35.14.395438
DSN8DA1X  27 2012-04-03-13.11.17.644146
DXB03A1X 629 2012-04-03-08.55.56.154808
DXB04A1X  50 2009-12-15-18.24.16.145724
DXB05A1X 116 2009-03-04-09.01.13.643837
DXB07A1X 129 2011-03-28-14.58.08.134166
ED06A1X    7 2009-08-28-15.38.57.030399
EL01A1X   89 2011-08-18-09.39.17.820486
EU02A1X    5 2010-07-02-11.08.17.078666
KT01A1X    5 2010-07-02-11.12.19.036057
RG01A1X    6 2009-06-18-14.43.25.871094
SV30A1X   45 2010-11-04-11.13.35.516893
SV31A1X   31 2011-05-18-10.36.35.986528
TG01A1X   61 2012-04-02-14.59.27.053202
VV21A1X  412 2012-04-10-11.37.08.065762
VV22A1X  196 2012-02-06-11.55.49.598181
VV23A1X  414 2012-04-10-11.37.08.065762
VV24A1X  385 2012-04-10-11.37.08.065762
VV25A1X  158 2012-04-10-12.44.58.385957
VV26A1X  190 2011-12-04-11.53.07.423236
VV27A1X  197 2012-04-10-12.40.42.540084
VV28A1X  193 2012-04-10-12.40.42.818874
VV29A1X  105 2012-04-04-14.12.34.285387
WG01A1X  132 2010-12-07-11.45.46.327279
}¢--- A540769.WK.SQL(CATDBAL2) cre=2012-04-19 mod=2012-04-19-16.09.20 A540769 ---
DGDB0008 NG01A1A                                                        00010000
DGDB0015 DG01A1A                                                        00020000
DGDB0031 NG02A1A                                                        00030001
DGDB0035 NG06A1A                                                        00040001
DGDB0039 CE01A1A                                                        00050001
DGDB0052 SM01A1A                                                        00060001
DGDB0057 RP01A1A                                                        00070001
DGDB0058 RP02A1A                                                        00080001
DGDB0059 RP03A1A                                                        00090001
DGDB0060 EX01A1A                                                        00100001
DGDB0062 RP04A1A                                                        00110001
DGDB0065 BP01A1A                                                        00120001
DGDB0067 RM01A1A                                                        00130001
DGDB0072 CE02A1A                                                        00140001
DGDB0078 LW01A1A                                                        00150001
DGDB0080 SF01A1A                                                        00160001
DGDB0082 OE02A1A                                                        00170001
DGDB0084 CZ01A1A                                                        00180001
DGDB0086 KS08A1A                                                        00190001
DGDB0088 DI01A1A                                                        00200001
DGDB0089 DI02A1A                                                        00210001
DGDB0090 DI03A1A                                                        00220001
DGDB0091 DI04A1A                                                        00230001
DGDB0094 FF01A1A                                                        00240001
DGDB0103 PR01A1A                                                        00250001
DGDB0104 BG01A1A                                                        00260001
DGDB0106 CD02A1A                                                        00270001
DGDB0110 SV05A1A                                                        00280001
DGDB0112 WI02A1A                                                        00290001
DGDB0113 NZ01A1A                                                        00300001
DGDB0120 WB12A1A                                                        00310001
DGDB0121 WB11A1A                                                        00320001
DGDB0125 TP01A1A                                                        00330001
DGDB0130 NO01A1A                                                        00340001
DGDB0131 AC01A1A                                                        00350001
DGDB0132 ZV02A1A                                                        00360001
DGDB0133 CZ03A1A                                                        00370000
DGDB0134 DA234579                                                       00380000
DGDB0135 WB20A1A                                                        00390000
DGDB0136 CD01A1A                                                        00400000
DGDB0137 CD03A1A                                                        00410000
DGDB0139 JM01A1A                                                        00420000
DGDB0140 LC02A1A                                                        00430000
DGDB0141 PV01A1A                                                        00440000
DGDB0142 VD01A1A                                                        00450000
DGDB0143 VP02A1A                                                        00460000
DGDB0150 WF01A1A                                                        00470000
DGDB0151 WN01A1A                                                        00480000
DGDB0153 WM01A1A                                                        00490000
DGDB0154 EF01A1A                                                        00500000
DGDB0155 VK02A1A                                                        00510000
DGDB0156 CZ04A1A                                                        00520000
DGDB0162 LG01A1A                                                        00530000
DGDB0166 SX01A1A                                                        00540000
DGDB0167 EQ01A1A                                                        00550000
DGDB0168 WN02A1A                                                        00560000
DGDB0169 ED02A1A                                                        00570000
DGDB0171 NJ01A1A                                                        00580000
DGDB0173 PW01A1A                                                        00590000
DGDB0174 WL09A1A                                                        00600000
DGDB0175 CZ05A1A                                                        00610000
DGDB0177 SW01A1A                                                        00620000
DGDB0178 NF01A1A                                                        00630000
DGDB0179 WP02A1A                                                        00640000
DGDB0180 VP01A1A                                                        00650000
DGDB0181 SV06A1A                                                        00660000
DGDB0182 CZ06A1A                                                        00670000
DGDB0183 WA01A1A                                                        00680000
DGDB0185 PQ01A1A                                                        00690000
DGDB0186 NZ05A1A                                                        00700000
DGDB0187 OO01A1A                                                        00710000
DGDB0189 WF01A1A                                                        00720000
DGDB0192 DG02A1A                                                        00730000
DGDB0193 EK01A1A                                                        00740000
DGDB0194 CZ07A1A                                                        00750000
DGDB0195 WV01A1A                                                        00760000
DGDB0196 CZ08A1A                                                        00770000
DGDB0200 CZ11G1A                                                        00780000
DGDB0201 CZ01G1A                                                        00790000
DGDB0202 CZ03G1A                                                        00800000
DGDB0203 CZ08G1A                                                        00810000
DGDB0204 RT03A1A                                                        00820000
DGDB0205 CZ07G1A                                                        00830000
DGDB0206 KS04A1A                                                        00840000
DGDB0207 NL01A1A                                                        00850000
DGDB0209 WV10A1A                                                        00860000
DGDB0211 ID01A1A                                                        00870000
DGDB0212 SV09A1A                                                        00880000
DGDB0213 KS09A1A                                                        00890000
DGDB0215 PI01A1A                                                        00900000
DGDB0216 AX01A1A                                                        00910000
DGDB0217 UU02A1A                                                        00920000
DGDB0218 TR01A1A                                                        00930000
DGDB0220 CM01A1A                                                        00940000
DGDB0222 CM02A1A                                                        00950000
DGDB0223 WP08A1A                                                        00960000
DGDB0224 SV07A1A                                                        00970000
DGDB0226 CZ20A1A                                                        00980000
DGDB0228 CZ10A1A                                                        00990000
DGDB0230 CZ21A1A                                                        01000000
DGDB0231 GA01A1A                                                        01010000
DGDB0232 QM01A1A                                                        01020000
DGDB0234 PT02A1A                                                        01030000
DGDB0235 HY01A1A                                                        01040000
DGDB0236 MC01A1A                                                        01050000
DGDB0237 NI02A1A                                                        01060000
DGDB0238 PV02A1A                                                        01070000
DGDB0239 LW02A1A                                                        01080000
DGDB0241 KC01A1A                                                        01090000
DGDB0242 MB01A1A                                                        01100000
DGDB0243 ST01A1A                                                        01110000
DGDB0244 EK03A1A                                                        01120000
DGDB0246 EV01A1A                                                        01130000
DGDB0247 WU10A1A                                                        01140000
DGDB0248 WU90A1A                                                        01150000
DGDB0255 WU20A1A                                                        01160000
DGDB0256 DE01A1A                                                        01170000
DGDB0257 DE02A1A                                                        01180000
DGDB0258 DE03A1A                                                        01190000
DGDB0259 DE04A1A                                                        01200000
DGDB0260 DE05A1A                                                        01210000
DGDB0261 DE06A1A                                                        01220000
DGDB0262 DE07A1A                                                        01230000
DGDB0263 VP03A1A                                                        01240000
DGDB0264 SA01A1A                                                        01250000
DGDB0265 SA02A1A                                                        01260000
DGDB0266 SA03A1A                                                        01270000
DGDB0268 SA05A1A                                                        01280000
DGDB0269 SA06A1A                                                        01290000
DGDB0270 GR05A1A                                                        01300000
DGDB0272 VP02H1A                                                        01310000
DGDB0273 WU30A1A                                                        01320000
DGDB0274 KX01A1A                                                        01330000
DGDB0275 CK01A1A                                                        01340000
DGDB0276 BP02A1A                                                        01350000
DGDB0277 AM01A1A                                                        01360000
DGDB0281 NB01A1A                                                        01370000
DGDB0282 RI01A1A                                                        01380000
DGDB0283 NZ06A1A                                                        01390000
DGDB0284 TR02A1A                                                        01400000
DGDB0285 TR03A1A                                                        01410000
DGDB0286 DM40A1A                                                        01420000
DGDB0287 CY02A1A                                                        01430000
DGDB0288 CW01A1A                                                        01440000
DGDB0289 EF02A1A                                                        01450000
DGDB0290 BE01A1A                                                        01460000
DGDB0291 SA07A1A                                                        01470000
DGDB0292 WU40A1A                                                        01480000
DGDB0293 RT41A1A                                                        01490000
DGDB0295 IT01A1A                                                        01500000
DGDB0296 SV40A1A                                                        01510000
DGDB0297 WV80A1A                                                        01520000
DGDB0300 RF01A1A                                                        01530000
DGDB0308 UU03A1A                                                        01540000
DGDB0309 KS02A1A                                                        01550000
DGDB0310 KS05A1A                                                        01560000
DGDB0311 KS06A1A                                                        01570000
DGDB0312 KS07A1A                                                        01580000
DGDB0313 KS11A1A                                                        01590000
DGDB0315 BE03A1A                                                        01600000
DGDB0316 EF03A1A                                                        01610000
DGDB0317 DP02A1A                                                        01620000
DGDB0319 BJ02A1A                                                        01630000
DGDB0320 BJA10004                                                       01640000
DGDB0321 KS01A1A                                                        01650000
DGDB0322 NF02A1A                                                        01660000
DGDB0323 NF03A1A                                                        01670000
DGDB0324 NF08A1A                                                        01680000
DGDB0325 EF04A1A                                                        01690000
DGDB0326 IT02A1A                                                        01700000
DGDB0327 DP03A1A                                                        01710000
DGDB0328 DP04A1A                                                        01720000
DGDB0329 NT21A1A                                                        01730000
DGDB0330 WP04A1A                                                        01740000
DGDB0331 UU04A1A                                                        01750000
DGDB0332 EQ02A1A                                                        01760000
DGDB0334 SE02A1A                                                        01770000
DGDB0336 DP05A1A                                                        01780000
DGDB0337 DP06A1A                                                        01790000
DGDB0338 CW10A1A                                                        01800000
DGDB0339 WP01A1A                                                        01810000
DGDB0340 WP03A1A                                                        01820000
DGDB0341 WP09A1A                                                        01830000
DGDB0342 CZ02A1A                                                        01840000
DGDB0343 CZ09A1A                                                        01850000
DGDB0344 CZ11G1A                                                        01860000
DGDB0346 AN01A1A                                                        01870000
DGDB0348 EQ03A1A                                                        01880000
DGDB0349 NZ07A1A                                                        01890000
DGDB0350 AV03A1A                                                        01900000
DGDB0351 FI04A1A                                                        01910000
DGDB0352 PR02A1A                                                        01920000
DGDB0354 WQ01A1A                                                        01930000
DGDB0358 SV10A1A                                                        01940000
DGDB0359 PC01A1A                                                        01950000
DGDB0360 PC02A1A                                                        01960000
DGDB0361 DP07A1A                                                        01970000
DGDB0362 SU01A1P                                                        01980000
DGDB0363 VV01A1A                                                        01990000
DGDB0365 BX01A1A                                                        02000000
DGDB0366 HY01G1A                                                        02010000
DGDB0367 NM01A1A                                                        02020000
DGDB0368 CE03A1A                                                        02030000
DGDB0369 IT03A1A                                                        02040000
DGDB0370 SA08A1A                                                        02050000
DGDB0371 DB01A1A                                                        02060000
DGDB0373 WU50A1A                                                        02070000
DGDB0374 TN01A1A                                                        02080000
DGDB0375 BF03A1A                                                        02090000
DGDB0376 VV20A1A                                                        02100000
DGDB0378 IT04A1A                                                        02110000
DGDB0379 KK01A1A                                                        02120000
DGDB0380 SB01A1A                                                        02130000
DGDB0381 SV02B1A                                                        02140000
DGDB0383 SV40B1A                                                        02150000
DGDB0384 WY10A1A                                                        02160000
DGDB0385 WY20A1A                                                        02170000
DGDB0386 WY30A1A                                                        02180000
DGDB0387 WY40A1A                                                        02190000
DGDB0389 MF01A1A                                                        02200000
DGDB0390 CZ13A1A                                                        02210000
DGDB0391 CZ13G1A                                                        02220000
DGDB0392 CW30A1A                                                        02230000
DGDB0394 EG01A1A                                                        02240000
DGDB0395 SN01A1A                                                        02250000
DGDB0396 DI05A1A                                                        02260000
DGDB0399 NZ08A1A                                                        02270000
DGDB0400 AU02A1A                                                        02280000
DGDB0401 MF02A1A                                                        02290000
DGDB0402 XC01A1A                                                        02300000
DGDB0403 SV50A1A                                                        02310000
DGDB0404 NZ03A1A                                                        02320000
DGDB0405 NZ02A1A                                                        02330000
DGDB0406 NZ04A1A                                                        02340000
DGDB0407 PL01A1A                                                        02350000
DGDB0416 CZ14A1A                                                        02360000
DGDB0417 CZ14G1A                                                        02370000
DGDB0418 FZ01A1A                                                        02380000
DGDB0419 XC02A1A                                                        02390000
DGDB0420 KB01A1A                                                        02400000
DGDB0421 MF03A1A                                                        02410000
DGDB0422 AV05A1A                                                        02420000
DGDB0423 FZ02A1A                                                        02430000
DGDB0424 HB01A1A                                                        02440000
DGDB0426 TO01A1A                                                        02450000
DGDB0427 AV06A1A                                                        02460000
DGDB0428 AV07A1A                                                        02470000
DGDB0429 AV08A1A                                                        02480000
DGDB0430 AV09A1A                                                        02490000
DGDB0431 PC11A1A                                                        02500000
DGDB0432 PC12A1A                                                        02510000
DGDB0433 PC13A1A                                                        02520000
DGDB0434 PC14A1A                                                        02530000
DGDB0435 PC15A1A                                                        02540000
DGDB0436 PC16A1A                                                        02550000
DGDB0439 ER01A1A                                                        02560000
DGDB0441 MC02A1A                                                        02570000
DGDB0442 MC03A1A                                                        02580000
DGDB0443 WU60A1A                                                        02590000
DGDB0444 PO01A1A                                                        02600000
DGDB0445 AV04A1A                                                        02610000
DGDB0446 RB01A1A                                                        02620000
DGDB0448 ZV01A1A                                                        02630000
DGDB0449 PP01A1P                                                        02640000
DGDB0450 CW70A1A                                                        02650000
DGDB0451 CZ03M1A                                                        02660000
DGDB0452 EG02A1A                                                        02670000
DGDB0454 DT01A1A                                                        02680000
DGDB0455 DT02A1A                                                        02690000
DGDB0456 DT03A1A                                                        02700000
DGDB0457 DT04A1A                                                        02710000
DGDB0459 MT01A1A                                                        02720000
DGDB0460 PC17A1A                                                        02730000
DGDB0461 AV10A1A                                                        02740000
DGDB0462 AV11A1A                                                        02750000
DGDB0463 MF04A1A                                                        02760000
DGDB0464 VV29A1A                                                        02770000
DGDB0465 AV02A1A                                                        02780000
DGDB0466 NG03A1A                                                        02790000
DGDB0467 MI01A1A                                                        02800000
DGDB0468 UI01A1A                                                        02810000
DGDB0470 BQ01A1A                                                        02820000
DGDB0471 ED05A1A                                                        02830000
DGDB0472 XR01A1A                                                        02840000
DGDB0473 DW10A1A                                                        02850000
DGDB0474 CZ18A1A                                                        02860000
DGDB0475 MF05A1A                                                        02870000
DGDB0476 YN01A1A                                                        02880000
DGDB0478 CT01G1A                                                        02890000
DGDB0479 CT02A1A                                                        02900000
DGDB0480 WI03A1A                                                        02910000
DGDB0481 CE04A1A                                                        02920000
DGDB0482 PV03A1A                                                        02930000
DGDB0483 OV01A1A                                                        02940000
DGDB0484 KD01A1A                                                        02950000
DGDB0485 WI01A1A                                                        02960000
DGDB0486 NI10A1A                                                        02970000
DGDB0487 AV12A1A                                                        02980000
DGDB0488 AV13A1A                                                        02990000
DGDB0489 AV14A1A                                                        03000000
DGDB0490 AV15A1A                                                        03010000
DGDB0491 MA01A1A                                                        03020000
DGDB0492 MA02A1A                                                        03030000
DGDB0493 MA03A1A                                                        03040000
DGDB0494 EF05A1A                                                        03050000
DGDB0495 PC18A1A                                                        03060000
DGDB0496 PC19A1A                                                        03070000
DGDB0497 PC20A1A                                                        03080000
DGDB0498 PC21A1A                                                        03090000
DGDB0499 SV70A1A                                                        03100000
DGDB0500 RV01A1A                                                        03110000
DGDB0501 AU04A1A                                                        03120000
DGDB0502 SA09A1A                                                        03130000
DGDB0503 FI04A1A                                                        03140000
DGDB0505 RC02A1A                                                        03150000
DGDB0506 XXXXXXX                                                        03160000
DGDB0509 DI06A1A                                                        03170000
DGDB0511 EU01A1A                                                        03180000
DGDB0514 DP08A1A                                                        03190000
DGDB0515 RS01A1A                                                        03200000
DGDB0516 SV90A1A                                                        03210000
DGDB0518 BU01A1A                                                        03220000
DGDB0519 EL02A1A                                                        03230000
DGDB0520 PC22A1A                                                        03240000
DGDB0521 PC23A1A                                                        03250000
DGDB0522 LO01A1A                                                        03260000
DGDB0523 EU90A1A                                                        03270000
DGDB0524 KD02A1A                                                        03280000
DGDB0526 LX01A1A                                                        03290000
DGDB0527 SU02A1A                                                        03300000
DGDB0530 WW20A1A                                                        03310000
DGDB0531 EU03A1A                                                        03320000
DGDB0532 OZ01A1A                                                        03330000
DGDB0533 XI90A1A                                                        03340000
DGDB0534 OS01A1A                                                        03350000
DGDB0535 OS03A1A                                                        03360000
DGDB0537 GT01A1A                                                        03370000
DGDB0538 OS10A1A                                                        03380000
DGDB0539 OS11A1A                                                        03390000
DGDB0540 OS12A1A                                                        03400000
DGDB0541 OS13A1A                                                        03410000
DGDB0542 OS14A1A                                                        03420000
DGDB0543 OS15A1A                                                        03430000
DGDB0544 RA01A1A                                                        03440000
DGDB0545 EU04A1A                                                        03450000
DGDB0546 OS40A1A                                                        03460000
DGDB0547 NI03A1A                                                        03470000
DGDB0548 NI04A1A                                                        03480000
DGDB0549 KE01A1A                                                        03490000
DGDB0550 AC05A1A                                                        03500000
DGDB0551 TT01A1A                                                        03510000
DGDB0637 JR01A1A                                                        03520000
DGDB0639 OS02A1A                                                        03530000
DGDB0640 SV94A1A                                                        03540000
DGDB0672 AV16A1A                                                        03550000
DGDB0674 FK01A1A                                                        03560000
DGDB0675 AO01A1A                                                        03570000
DGDB0676 AO02A1A                                                        03580000
DGDB0677 AO03A1A                                                        03590000
DGDB0678 AO04A1A                                                        03600000
DGDB0679 BV01A1A                                                        03610000
DGDB0680 AC04A1A                                                        03620000
DGDB0681 KD03A1A                                                        03630000
DGDB0995 XY05A1A                                                        03640000
DGDB0996 XY04A1A                                                        03650000
DGDB0997 XY03A1A                                                        03660000
DGDB0998 XY02A1A                                                        03670000
DGDB0999 XY01A1A                                                        03680000
DGOCB130 RE01A1A                                                        03690000
DGOCF101 NF01A1A                                                        03700000
DGOCF102 BJ01A1A                                                        03710000
DGOCK310 VT01A1A                                                        03720000
DGODT530 OD01A1A                                                        03730000
DGOKB701 CT01A1A                                                        03740000
DGOWA542 AV01A1A                                                        03750001
DGOWA600 WB11A1A                                                        03760001
DGOWB420 GM01A1A                                                        03770000
DGOWD501 SV01A1A                                                        03780000
DGOWD502 SV02A1A                                                        03790000
DGOWD503 SV03A1A                                                        03800000
DGOWD600 FI02A1A                                                        03810000
DGOWD700 VV02A1A                                                        03820000
DGOWM200 WD01A1A                                                        03830000
DGOWM301 WL07A1A                                                        03840000
DXB03A1X DXB03                                                          03850000
DXB04A1X DXB04                                                          03860000
DXB05A1X DXB05                                                          03870000
DXB07A1X DXB07                                                          03880000
ED06A1X  ED06A1A                                                        03890000
EL01A1X  EL01A1A                                                        03900000
EU02A1X  EU02A1A                                                        03910000
KT01A1X  KT01A1A                                                        03920000
RG01A1X  RG01A1A                                                        03930000
SV30A1X  SV30A1A                                                        03940000
SV31A1X  SV31A1A                                                        03950000
TG01A1X  TG01A1A                                                        03960000
VV21A1X  VV21A1A                                                        03970000
VV22A1X  VV22A1A                                                        03980000
}¢--- A540769.WK.SQL(CATDBAL9) cre=2012-04-19 mod=2012-04-19-17.10.25 A540769 ---
* protot db       alteredTS   erledigt
DGDB0131 AC01A1P  2011-11-01  wk 19.4
DGDB0680 AC04A1P  2012-02-03  nonEx
DGDB0550 AC05A1P  2012-04-11  nonEx
DGDB0277 AM01A1P  2004-10-27
DGDB0346 AN01A1P  2005-07-12
DGDB0675 AO01A1P  2011-12-23  nonEx
DGDB0676 AO02A1P  2011-12-23  nonEx
DGDB0677 AO03A1P  2011-12-23  nonEx
DGDB0678 AO04A1P  2011-12-23  nonEx
DGDB0400 AU02A1P  2008-09-05
DGDB0501 AU04A1P  2009-02-04
DGOWA542 AV01A1P              wk 17.4
DGDB0465 AV02A1P              wk 17.4
DGDB0350 AV03A1P              wk 17.4
DGDB0445 AV04A1P              wk 17.4
DGDB0422 AV05A1P              wk 17.4
DGDB0427 AV06A1P              wk 17.4
DGDB0428 AV07A1P              wk 17.4
DGDB0429 AV08A1P              wk 17.4
DGDB0430 AV09A1P              wk 17.4
DGDB0461 AV10A1P              wk 17.4
DGDB0462 AV11A1P              wk 17.4
DGDB0487 AV12A1P              wk 17.4
DGDB0488 AV13A1P              wk 17.4
DGDB0489 AV14A1P              wk 17.4
DGDB0490 AV15A1P              wk 17.4
DGDB0672 AV16A1P  2009-09-30  wk 17.4
         AV17A1P              wk 17.4
         AV18A1P              wk 17.4
         AV19A1P              wk 17.4
         AV20A1P              wk 17.4
         AV21A1P              wk 17.4
DGDB0216 AX01A1P
DGDB0290 BE01A1P  2012-01-05
DGDB0315 BE03A1P  2007-11-21
DGDB0375 BF03A1P  2004-10-27
DGDB0104 BG01A1P  2011-03-07
DGDB0320 BJA10004 2004-10-27
DGOCF102 BJ01A1P  2002-05-27
DGDB0319 BJ02A1P  2004-10-27
DGDB0065 BP01A1P  2004-10-26
DGDB0276 BP02A1P  2011-02-15
DGDB0470 BQ01A1P  2008-01-14
DGDB0518 BU01A1P  2011-08-03
DGDB0679 BV01A1P  2012-04-13  nonEx
DGDB0365 BX01A1P  2010-03-30
DGDB0136 CD01A1P  2011-09-23
DGDB0106 CD02A1P  2012-02-06
DGDB0137 CD03A1P  2012-04-12
DGDB0039 CE01A1P  2006-05-19
DGDB0072 CE02A1P  2008-01-17
DGDB0368 CE03A1P  2012-02-24
DGDB0481 CE04A1P  2007-09-26
DGDB0275 CK01A1P  2012-04-13
DGDB0220 CM01A1P  2006-11-08
DGDB0222 CM02A1P  2004-10-27
DGOKB701 CT01A1P  2006-03-07
DGDB0478 CT01G1P  2010-05-15
DGDB0479 CT02A1P  2011-11-04
DGDB0288 CW01A1P  2007-12-21
DGDB0338 CW10A1P  2006-11-03
DGDB0392 CW30A1P  2010-11-30
DGDB0450 CW70A1P  2011-01-06
DGDB0287 CY02A1P  2011-01-26
DGDB0084 CZ01A1P  2008-10-30
DGDB0201 CZ01G1P  2007-04-13
DGDB0342 CZ02A1P  2005-10-18
DGDB0133 CZ03A1P  2012-04-10
DGDB0202 CZ03G1P  2012-02-13
DGDB0451 CZ03M1A  2006-10-02
DGDB0156 CZ04A1P  2012-02-13
DGDB0175 CZ05A1P  2004-10-26
DGDB0182 CZ06A1P  2004-10-26
DGDB0194 CZ07A1P  2008-12-19
DGDB0205 CZ07G1P  2004-10-27
DGDB0196 CZ08A1P  2012-02-21
DGDB0203 CZ08G1P  2012-02-28
DGDB0343 CZ09A1P  2004-10-27
DGDB0228 CZ10A1P  2011-12-15
DGDB0200 CZ11G1P  2004-10-27
DGDB0344 CZ11G1P  2004-10-27
DGDB0390 CZ13A1P  2005-10-05
DGDB0391 CZ13G1P  2005-08-25
DGDB0416 CZ14A1P  2005-10-10
DGDB0417 CZ14G1P  2005-08-10
DGDB0474 CZ18A1P  2012-02-27
DGDB0226 CZ20A1P  2006-06-08
DGDB0230 CZ21A1P
DGDB0134 D3234579
DGDB0371 DB01A1P  2006-08-03
DGDB0256 DE01A1P  2011-09-06
DGDB0257 DE02A1P  2011-09-06
DGDB0258 DE03A1P  2009-09-29
DGDB0259 DE04A1P
DGDB0260 DE05A1P  2009-06-25
DGDB0261 DE06A1P  2009-06-25
DGDB0262 DE07A1P  2009-06-25
DGDB0015 DG01A1P  2012-03-29
DGDB0192 DG02A1P  2012-01-30
DGDB0088 DI01A1P  2011-01-12
DGDB0089 DI02A1P  2004-10-26
DGDB0090 DI03A1P  2007-07-10
DGDB0091 DI04A1P  2009-07-31
DGDB0396 DI05A1P  2011-07-05
DGDB0509 DI06A1P  2008-10-06
DGDB0286 DM40A1P  2012-01-06
DGDB0317 DP02A1P  2010-03-05
DGDB0327 DP03A1P  2011-01-31
DGDB0328 DP04A1P  2004-10-27
DGDB0336 DP05A1P  2011-01-31
DGDB0337 DP06A1P  2010-03-05
DGDB0361 DP07A1P  2004-10-27
DGDB0514 DP08A1P  2011-07-01
DGDB0454 DT01A1P  2007-02-27
DGDB0455 DT02A1P  2007-03-06
DGDB0456 DT03A1P  2007-03-06
DGDB0457 DT04A1P  2007-02-06
DGDB0473 DW10A1P  2011-04-04
DXB03A1X DXB03    2012-04-03
DXB04A1X DXB04    2009-12-15
DXB05A1X DXB05    2009-03-04
DXB07A1X DXB07    2011-03-28
DGDB0169 ED02A1P  2010-06-17
DGDB0471 ED05A1P  2007-04-05
ED06A1X  ED06A1P  2009-08-28
DGDB0154 EF01A1P  2007-04-26
DGDB0289 EF02A1P  2007-05-24
DGDB0316 EF03A1P  2004-11-25
DGDB0325 EF04A1P  2004-10-27
DGDB0494 EF05A1P  2009-06-16
DGDB0394 EG01A1P  2005-05-24
DGDB0452 EG02A1P  2007-07-06
DGDB0193 EK01A1P  2008-01-15
DGDB0244 EK03A1P  2011-03-17
EL01A1X  EL01A1P  2011-08-18
DGDB0519 EL02A1P  2011-09-22
DGDB0167 EQ01A1P  2004-10-26
DGDB0332 EQ02A1P  2004-10-27
DGDB0348 EQ03A1P  2004-10-27
DGDB0439 ER01A1P  2011-12-23
DGDB0511 EU01A1P  2008-11-11
EU02A1X  EU02A1P  2010-07-02
DGDB0531 EU03A1P  2010-09-23
DGDB0545 EU04A1P  2012-02-10
DGDB0523 EU90A1P  2010-02-25
DGDB0246 EV01A1P
DGDB0060 EX01A1P  2009-04-21
DGDB0094 FF01A1P  2004-10-26
DGOWD600 FI02A1P  2012-03-27
DGDB0503 FI04A1P  2010-11-26
DGDB0351 FI04A1P  2012-02-23
DGDB0674 FK01A1P  2012-01-23
DGDB0418 FZ01A1P  2008-01-07
DGDB0423 FZ02A1P  2008-01-10
DGDB0231 GA01A1P  2006-12-13
DGOWB420 GM01A1P  2011-05-31
DGDB0270 GR05A1P
DGDB0537 GT01A1P  2011-12-23
DGDB0424 HB01A1P  2012-04-13
DGDB0235 HY01A1P  2011-08-23
DGDB0366 HY01G1P  2006-08-11
DGDB0211 ID01A1P  2011-02-03
DGDB0295 IT01A1P  2004-10-27
DGDB0326 IT02A1P  2007-06-08
DGDB0369 IT03A1P  2004-12-07
DGDB0378 IT04A1P  2005-11-10
DGDB0139 JM01A1P  2006-09-08
DGDB0637 JR01A1P  2008-05-14
DGDB0420 KB01A1P  2011-10-11
DGDB0241 KC01A1P  2012-03-01
DGDB0484 KD01A1P  2008-09-08
DGDB0524 KD02A1P  2010-11-16
DGDB0681 KD03A1P  2012-02-07
DGDB0549 KE01A1P  2012-04-19
DGDB0379 KK01A1P
DGDB0321 KS01A1P  2004-10-27
DGDB0309 KS02A1P  2004-10-27
DGDB0206 KS04A1P  2004-10-27
DGDB0310 KS05A1P  2004-10-27
DGDB0311 KS06A1P  2004-10-27
DGDB0312 KS07A1P  2004-10-27
DGDB0086 KS08A1P  2004-10-26
DGDB0213 KS09A1P  2012-04-11
DGDB0313 KS11A1P  2004-10-27
KT01A1X  KT01A1P  2010-07-02
DGDB0274 KX01A1P  2006-09-08
DGDB0140 LC02A1P  2010-04-08
DGDB0162 LG01A1P  2010-03-01
DGDB0522 LO01A1P  2010-02-26
DGDB0078 LW01A1P  2008-04-22
DGDB0239 LW02A1P  2011-11-29
DGDB0526 LX01A1P  2010-03-09
DGDB0491 MA01A1P
DGDB0492 MA02A1P
DGDB0493 MA03A1P
DGDB0242 MB01A1P  2004-10-27
DGDB0236 MC01A1P  2006-08-17
DGDB0441 MC02A1P  2007-04-10
DGDB0442 MC03A1P  2007-12-05
DGDB0389 MF01A1P  2011-09-20
DGDB0401 MF02A1P  2011-08-18
DGDB0421 MF03A1P  2009-07-03
DGDB0463 MF04A1P  2011-05-26
DGDB0475 MF05A1P  2007-06-26
DGDB0467 MI01A1P  2011-07-14
DGDB0459 MT01A1P
DGDB0281 NB01A1P  2008-07-21
DGOCF101 NF01A1P  2003-10-02
DGDB0178 NF01A1P  2011-08-15
DGDB0322 NF02A1P  2004-10-27
DGDB0323 NF03A1P  2007-08-29
DGDB0324 NF08A1P  2011-06-09
DGDB0008 NG01A1P  2008-03-14
DGDB0031 NG02A1P  2007-07-25
DGDB0466 NG03A1P  2010-06-17
DGDB0035 NG06A1P  2007-06-22
DGDB0237 NI02A1P  2012-03-26  wk 17.4
DGDB0547 NI03A1P  2012-03-28
DGDB0548 NI04A1P
DGDB0486 NI10A1P  2012-04-03  wk 17.4
DGDB0171 NJ01A1P  2012-03-26
DGDB0207 NL01A1P  2011-04-28
DGDB0367 NM01A1P
DGDB0130 NO01A1P  2004-11-03
DGDB0329 NT21A1P  2011-12-29
DGDB0113 NZ01A1P  2012-01-12
DGDB0405 NZ02A1P  2011-11-28
DGDB0404 NZ03A1P  2005-09-19
DGDB0406 NZ04A1P  2005-06-08
DGDB0186 NZ05A1P  2007-10-01
DGDB0283 NZ06A1P  2010-02-10
DGDB0349 NZ07A1P  2009-04-03
DGDB0399 NZ08A1P  2012-04-13
DGODT530 OD01A1P
DGDB0082 OE02A1P  2004-10-26
DGDB0187 OO01A1P  2008-05-06
DGDB0534 OS01A1P
DGDB0639 OS02A1P  2012-01-12
DGDB0535 OS03A1P  2012-03-05
DGDB0538 OS10A1P
DGDB0539 OS11A1P
DGDB0540 OS12A1P
DGDB0541 OS13A1P
DGDB0542 OS14A1P
DGDB0543 OS15A1P
DGDB0546 OS40A1P  2012-02-07
DGDB0483 OV01A1P  2008-09-01
DGDB0532 OZ01A1P  2012-03-21
DGDB0359 PC01A1P  2012-02-16
DGDB0360 PC02A1P  2012-02-16
DGDB0431 PC11A1P  2011-11-11
DGDB0432 PC12A1P  2011-11-11
DGDB0433 PC13A1P  2011-11-11
DGDB0434 PC14A1P  2011-11-11
DGDB0435 PC15A1P  2011-11-11
DGDB0436 PC16A1P  2011-11-11
DGDB0460 PC17A1P  2011-11-11
DGDB0495 PC18A1P  2011-11-11
DGDB0496 PC19A1P  2011-11-11
DGDB0497 PC20A1P  2011-11-11
DGDB0498 PC21A1P  2011-11-11
DGDB0520 PC22A1P  2011-11-11
DGDB0521 PC23A1P  2011-11-11
DGDB0215 PI01A1P  2004-10-27
DGDB0407 PL01A1P
DGDB0444 PO01A1P  2008-06-26
DGDB0449 PP01A1P  2007-02-22
DGDB0185 PQ01A1P  2004-10-26
DGDB0103 PR01A1P  2005-08-23
DGDB0352 PR02A1P  2005-03-01
DGDB0234 PT02A1P
DGDB0141 PV01A1P  2006-09-05
DGDB0238 PV02A1P  2006-09-08
DGDB0482 PV03A1P  2012-03-07
DGDB0173 PW01A1P  2010-02-24
DGDB0232 QM01A1P  2009-04-02
DGDB0544 RA01A1P  2012-04-04
DGDB0446 RB01A1P  2010-11-25
DGDB0505 RC02A1P  2011-02-21
DGOCB130 RE01A1P  2008-01-11
DGDB0300 RF01A1P  2006-04-27
RG01A1X  RG01A1P  2009-06-18
DGDB0282 RI01A1P  2012-04-14
DGDB0067 RM01A1P  2011-09-27
DGDB0057 RP01A1P  2010-06-25
DGDB0058 RP02A1P  2009-02-16
DGDB0059 RP03A1P  2008-12-23
DGDB0062 RP04A1P  2010-04-22
DGDB0515 RS01A1P  2009-06-02
DGDB0204 RT03A1P
DGDB0293 RT41A1P
DGDB0500 RV01A1P  2011-01-14
DGDB0264 SA01A1P  2004-10-27
DGDB0265 SA02A1P  2012-03-16
DGDB0266 SA03A1P  2007-11-26
DGDB0268 SA05A1P  2007-05-31
DGDB0269 SA06A1P  2004-10-27
DGDB0291 SA07A1P  2012-02-14
DGDB0370 SA08A1P  2007-01-30
DGDB0502 SA09A1P  2009-05-04
DGDB0380 SB01A1P  2010-02-10
DGDB0334 SE02A1P  2004-10-27
DGDB0080 SF01A1P  2004-10-26
DGDB0052 SM01A1P  2006-09-08
DGDB0395 SN01A1P  2011-06-09
DGDB0243 ST01A1P  2001-07-04
DGDB0362 SU01A1P  2007-11-08
DGDB0527 SU02A1P  2010-09-03
DGOWD501 SV01A1P  2011-09-14
DGOWD502 SV02A1P  2011-09-13
DGDB0381 SV02B1A  2011-09-13
DGOWD503 SV03A1P  2010-04-29
DGDB0110 SV05A1P  2011-02-02
DGDB0181 SV06A1P  2007-02-27
DGDB0224 SV07A1P  2009-06-17
DGDB0212 SV09A1P  2006-09-08
DGDB0358 SV10A1P  2010-10-18
SV30A1X  SV30A1P  2010-11-04
SV31A1X  SV31A1P  2011-05-18
DGDB0296 SV40A1P  2009-12-02
DGDB0383 SV40B1A  2007-04-03
DGDB0403 SV50A1P  2007-08-02
DGDB0499 SV70A1P  2010-09-24
DGDB0516 SV90A1P  2011-10-27
DGDB0640 SV94A1P
DGDB0177 SW01A1P  2004-10-26
DGDB0166 SX01A1P  2009-06-24
TG01A1X  TG01A1P  2012-04-02
DGDB0374 TN01A1P  2011-08-31
DGDB0426 TO01A1P  2007-11-19
DGDB0125 TP01A1P  2009-11-18
DGDB0218 TR01A1P  2009-10-01
DGDB0284 TR02A1P  2009-06-25
DGDB0285 TR03A1P  2009-11-18
DGDB0551 TT01A1P
DGDB0468 UI01A1P  2012-01-09
DGDB0217 UU02A1P  2012-01-11
DGDB0308 UU03A1P  2004-10-27
DGDB0331 UU04A1P  2004-12-29
DGDB0142 VD01A1P  2009-03-06
DGDB0155 VK02A1P  2011-11-07
DGDB0180 VP01A1P  2004-10-26
DGDB0143 VP02A1P  2004-10-26
DGDB0272 VP02H1A  2004-10-27
DGDB0263 VP03A1P  2004-10-27
DGOCK310 VT01A1P  2003-08-18
DGDB0363 VV01A1P  2005-03-04  wk 17.4
DGOWD700 VV02A1P  2004-10-28  wk 17.4
DGDB0376 VV20A1P  2010-09-29  wk 17.4
VV21A1X  VV21A1P  2012-04-10  wk 17.4
VV22A1X  VV22A1P  2012-02-06  wk 17.4
         VV2*A1P              wk 17.4
DGDB0464 VV29A1P              wk 17.4
DGDB0183 WA01A1P  2012-03-06
DGOWA600 WB11A1P
DGDB0121 WB11A1P  2012-03-06
DGDB0120 WB12A1P  2011-09-22
DGDB0135 WB20A1P  2010-12-15
DGOWM200 WD01A1P  2004-10-28
DGDB0150 WF01A1P
DGDB0189 WF01A1P  2012-04-19
DGDB0485 WI01A1P  2012-02-08
DGDB0112 WI02A1P  2012-02-16
DGDB0480 WI03A1P  2010-09-17
DGOWM301 WL07A1P  2010-10-25
DGDB0174 WL09A1P  2011-11-16
DGDB0153 WM01A1P  2012-04-17
DGDB0151 WN01A1P  2010-08-17
DGDB0168 WN02A1P  2011-03-02
DGDB0339 WP01A1P  2010-05-11
DGDB0179 WP02A1P  2010-05-28
DGDB0340 WP03A1P  2006-08-22
DGDB0330 WP04A1P  2004-10-27
DGDB0223 WP08A1P  2011-12-13
DGDB0341 WP09A1P  2007-10-09
DGDB0354 WQ01A1P  2012-04-10
DGDB0247 WU10A1P  2010-09-01
DGDB0255 WU20A1P  2009-06-11
DGDB0273 WU30A1P  2011-11-28
DGDB0292 WU40A1P  2011-08-25
DGDB0373 WU50A1P  2006-05-09
DGDB0443 WU60A1P  2006-06-21
DGDB0248 WU90A1P  2004-10-27
DGDB0195 WV01A1P  2004-10-26
DGDB0209 WV10A1P  2004-10-27
DGDB0297 WV80A1P  2004-10-27
DGDB0530 WW20A1P  2010-07-02
DGDB0384 WY10A1P  2011-09-20
DGDB0385 WY20A1P  2006-05-09
DGDB0386 WY30A1P  2006-05-18
DGDB0387 WY40A1P  2006-01-12
DGDB0402 XC01A1P  2011-04-05
DGDB0419 XC02A1P  2011-03-25
DGDB0533 XI90A1P
DGDB0472 XR01A1P  2011-12-15
DGDB0506 XXXXXXX  2011-12-02
DGDB0999 XY01A1P  2006-08-02
DGDB0998 XY02A1P
DGDB0997 XY03A1P
DGDB0996 XY04A1P
DGDB0995 XY05A1P
DGDB0476 YN01A1P  2012-03-29
DGDB0448 ZV01A1P  2006-11-07
DGDB0132 ZV02A1P  2006-10-03
}¢--- A540769.WK.SQL(CATDBCNT) cre=2012-04-04 mod=2012-04-04-12.56.30 A540769 ---
select count(*) cnt
     , SUM(case when name like 'DXB%' then 1 else 0 end) dxb
     , SUM(case when name like 'XB%' then 1 else 0 end)  xb
     , min(dbid) dbidMin
     , max(case when dbid < 0 then dbid else -99000 end)  dbidNegMax
     , mAX(dbid) dbidMax
     from sysibm.sysDatabase
}¢--- A540769.WK.SQL(CATDBID) cre=2006-12-05 mod=2006-12-05-14.18.44 F540769 ---
select dbid, name
    from sysibm.sysdatabase
    where dbid in (403, 1606, 1600)
;
}¢--- A540769.WK.SQL(CATDBL) cre=2016-10-05 mod=2016-10-05-11.54.12 A540769 ----
select dbName, count(*)
    from sysibm.sysTables
    where dbName like 'QZ%'
    group by dbName
    order by dbname
$*(
QZMAPTB
QZ01A1P
QZ02A1P
QZ03A1P
QZ04A1P
QZ10A1P
QZ11A1P
QZ91A1S
QZ92A1T
$*)
}¢--- A540769.WK.SQL(CATDBOB) cre=2009-10-02 mod=2009-10-02-10.16.37 A540769 ---
select strip(creator) || '.' || strip(name)
    from sysIbm.systables
    where dbid = 3086 and obid = 377
}¢--- A540769.WK.SQL(CATDBPR) cre=2012-12-18 mod=2012-12-19-09.06.35 A540769 ---
select min(Name) name, length(strip(Name))
    from sysibm.sysdatabase
    group by length(strip(Name))
    order by 2
 ;
select left(name, 6),  count(*)
    from sysibm.sysdatabase
    group by left(name, 6)
    order by 2 desc
    fetch first 20 rows only
}¢--- A540769.WK.SQL(CATDBX) cre=2008-09-25 mod=2008-09-25-17.35.53 F540769 ----
select * from sysibm.sysPackDep
    where bQualifier='BE01A1A'
      and bName  in ('A111A01')
      ;
   list 1
    expanding TB OA1A01.TBE111A1
     ts BE01A1A.A111A01, 128 parts, 1 tables: OA1A01.TBE111A1, auth w
 --- no utility statements generated
    238 *-*    call sqlPreOpen 8,
                    , "select distinct dCollid, dName, dContoken, versio
 e,",                                  "p.bindTime, p.valid, p.operative
                            "from sysibm.sysPackDep d, sysibm.sysPackage
                             "where bType = 'R'" ,
                                  "and d.dLocation = p.location" ,
                                   "and d.dCollid = p.collid" ,
                                    "and d.dName = p.name" ,
                                     "and d.dConToken = p.conToken" ,
                                      "and ("sel")" ,
                                   "order by 2, 4, 1"
        >>>      "8"
        >>>      "select distinct dCollid, dName, dContoken, version, p.
 bindTime, p.valid, p.operative from sysibm.sysPackDep d, sysibm.sysPack
 ere bType = 'R' and d.dLocation = p.location and d.dCollid = p.collid a
 me = p.name and d.dConToken = p.conToken and ( (bQualifier='BE01A1A' an
 in ('A111A01'))) order by 2, 4, 1"
   1532 *-*     sqlPreOpen:
 IRX0100I +++ Interactive trace.  TRACE OFF to end debug, ENTER to conti

say sel
  (bQualifier='BE01A1A' and bName in ('A111A01'))

   1532 *-*     procedure expose m.

   1533 *-*     parse arg cx, src, descOut, descInp
        >>>       "8"
        >>>       "select distinct dCollid, dName, dContoken, version, p
 .bindTime, p.valid, p.operative from sysibm.sysPackDep d, sysibm.sysPac
 here bType = 'R' and d.dLocation = p.location and d.dCollid = p.collid
 ame = p.name and d.dConToken = p.conToken and ( (bQualifier='BE01A1A' a
  in ('A111A01'))) order by 2, 4, 1"
        >>>       ""
}¢--- A540769.WK.SQL(CATDEP) cre=2007-06-12 mod=2007-06-12-09.50.03 F540769 ----
with o (lev, dType, dCreator, dName, bType, bCreator, bName) as         00010000
(   select 0, t.type, creator, name, '.', '', t.dbName                  00020000
        from sysibm.sysTables t                                         00030000
        where t.dbname like 'DSA%'                                      00040014
    union all select o.lev+1, d.dType, d.dCreator, d.dName,             00050000
                              o.dType, o.dCreator, o.dName              00060000
        from o, sysibm.sysviewdep d                                     00070000
        where d.bcreator = o.dCreator and d.bName = o.dName             00080000
             and o.lev < 999999                                         00090000
    union all select o.lev+1, a.Type, a.creator, a.name,                00100000
                              o.dType, o.dCreator, o.dName              00110000
        from o, sysibm.systables a                                      00120000
        where a.tbCreator = o.dCreator and a.tbName = o.dName           00130000
           and a.type = 'A' and o.lev < 999999                          00140000
    union all select o.lev+1, 'Y',  y.creator, y.name,                  00141002
                              o.dType, o.dCreator, o.dName              00142002
        from o, sysibm.sysSynonyms y                                    00143003
        where y.tbCreator = o.dCreator and y.tbName = o.dName           00144002
             and o.lev < 999999                                         00145002
) select                                                                00150013
         char(strip(k.dCollid) || '.' || strip(k.dName), 20),           00150408
         hex(k.dConToken),                                              00150510
         o.dType, char(strip(o.dCreator) || '.' || strip(o.dName), 30), 00150608
         o.bType, char(strip(o.bCreator) || '.' || strip(o.bName), 30), 00151013
         q.valid "va", q.operative "op",                                00152013
         char('or (pck_id = ''' || strip(k.dName)                       00153013
         || ''' and  PCK_CONSIST_TOKEN = ''' || hex(k.dConToken)        00154013
         || ''')', 70)                                                  00155013
    from o                                                              00160000
    left join sysibm.syspackdep k                                       00170006
    on k.bQualifier = o.dCreator and k.bName = o.dName                  00180007
    left join sysibm.syspackage q                                       00190009
    on q.Location = k.dLocation and q.collid = k.dCollid                00200008
        and q.name = k.dName and q.conToken = k.dConToken               00210008
    where o.dType = 'Y'                                                 00220008
}¢--- A540769.WK.SQL(CATDSSZ) cre=2013-05-13 mod=2013-05-13-15.08.26 A540769 ---
select count(*), min(name),
     case when unique_count = 0 then '0'
          when unique_count = colCount then '='
          when unique_count < colCount then '<'
                                       else '>'
     end
from sysibm.sysindexes
     group by
     case when unique_count = 0 then '0'
          when unique_count = colCount then '='
          when unique_count < colCount then '<'
                                       else '>'
     end     ;X;
with x as
(
select i.indexType
    ,  (select min(ip.partition) from sysibm.sysIndexPart ip
            where ip.ixCreator = i.creator and ip.ixName = i.name) minPa
    ,  case when ts.partitions = 0   then 'tsNotPar'
            when t.partKeyColNum > 0 then 'tbPart'
                                     else 'ixPart' end tsPa
    from sysibm.sysindexes i
    join sysibm.sysTables t
      on t.creator = i.tbCreator and t.name = i.tbName
    join sysibm.sysTableSpace ts
      on ts.dbName = t.dbName and ts.name = t.tsName
)
select x.*, count(*) cnt
    from x
    group by indexType, minPa, tsPa
    ;
select value(max(clustering), 'YNJUL') from sysibm.sysIndexes
    where creator = '?540769'
}¢--- A540769.WK.SQL(CATFORKY) cre=2013-06-18 mod=2013-06-18-12.17.47 A540769 ---
with r as (
select creator chCr, tbName chTb, relName rel,
       REFTBCREATor paCr, refTbName paTb, colCount cols
    from sysibm.sysRels
    where creator = 'OA1T' -- and tbName like 'TCT%'
)
, k (chCr, chTb, rel, paCr, paTb, cols, ixCr, ix, cK, kys) as
( select r.*, i.creator, i.name, 0, varchar('', 500)
    from r join sysibm.sysIndexes i
       on r.chCr = i.tbCreator and r.chTb = i.tbName
  union all select chCr, chTb, rel, paCr, paTb, cols, ixCr, ix, cK+1,
       kys || ' ' || strip(char(ck+1))
           || '>' || strip(char(j.colSeq))
           || '>' || strip(char(f.colname))
      from k join sysibm.sysforeignKeys f
          on k.chCr = f.creator and k.chTb=f.tbName and k.rel=f.relName
               and f.colSeq = cK+1 and cK < 9999
         join sysibm.sysKeys j
           on k.ixCr = j.ixCreator and k.ix = j.ixName
             and f.colName = j.colName and j.colSeq <= k.cols
)
select * from r where not exists
        (SELECT 1 from k
            where r.chCr = k.chCr and r.chTb = k.chTb
                  and r.rel = k.rel and k.cols = k.cK
        )
    order by chCr, chTb, rel
}¢--- A540769.WK.SQL(CATID) cre=2006-08-31 mod=2014-06-16-15.39.02 A540769 -----
select char(t.dbname, 8) db, char(s.name,8) ts, char(t.name, 30) tb,
              s.dbid tsDbid, s.psid tsPsId, s.obid tsObId
           ,  t.dbid tbDbid,                t.obid tsObId
     from sysibm.systables t, sysibm.systablespace s
     where s.dbname = t.dbname and s.name = t.tsname
           and t.dbname = 'QZ01A1P';
     order by ts.dbName, ts.name
}¢--- A540769.WK.SQL(CATIDSEQ) cre=2011-01-28 mod=2012-04-17-11.11.50 A540769 ---
--         identity is a sequence, find by join over sequencesDep
--
set current sqlid = 'S100447';
select s.*, d.*
    from sysibm.sysSequencesDep   d
    left join sysibm.sysSequences s
    on s.sequenceId = d.bSequenceId
    where dName = 'TRI001A1'
;;;
select * from sysibm.sysSequencesDep
    where dColName = 'CY055_ID'
; -- sql not allowed on identities |
--select previous value for oa1a.SEQCWEQYXYS7VV4
--    from sysibm.sysDummy1
--;
select  CY055_ID
    from oa1a.TCY055A1
  --where cy055_id > 2061500
    order by 1 desc
    fetch first  20 rows only
    with ur
;;;; -- set restart value
alter table oa1a.TCY055A1
    alter CY055_ID     restart with 2600000
;
commit;
}¢--- A540769.WK.SQL(CATINDEX) cre=2008-04-07 mod=2008-04-07-11.27.02 F540769 ---
select count(*), space, nactive, totalentries
    from sysIbm.indexSpaceSTats
    where totalentries < 10
    group by space, nactive, totalentries
    order by 2, 3, 4
;
x
select count(*), year(createdts), min(createdts)
    from sysibm.sysIndexes
    group by year(createdts)
    order by 2 desc
}¢--- A540769.WK.SQL(CATINFO) cre=2011-09-22 mod=2011-09-22-10.58.39 A540769 ---
-- catalog rows for a table A540769.TPER13
select t.*
    from sysibm.systables t
    where t.creator = 'A540769' and t.name = 'TPER13'
    order by creator, name
;
select s.*
    from sysibm.systables t
      join sysibm.sysTablespace s
        on t.dbName = s.dbName and t.tsName = s.name
    where t.creator = 'A540769' and t.name = 'TPER13'
    order by s.dbName, s.name
;
select p.*
    from sysibm.systables t
      join sysibm.sysTablePart p
        on t.dbName = p.dbName and t.tsName = p.tsName
    where t.creator = 'A540769' and t.name = 'TPER13'
    order by p.dbName, p.tsName, p.partition
;
select t.*
    from sysibm.sysTabStats t
    where t.owner = 'A540769' and t.name = 'TPER13'
    order by owner, name, partition
;
select c.*
    from sysibm.sysColumns c
    where c.tbCreator = 'A540769' and c.tbName = 'TPER13'
    order by c.tbCreator, c.tbName, c.colNo
;
select c.*
    from sysibm.sysColDist c
    where c.tbOwner = 'A540769' and c.tbName = 'TPER13'
    order by c.tbOwner, c.tbName, c.name, COLGROUPCOLNO
;
select c.*
    from sysibm.sysColStats  c
    where c.tbOwner = 'A540769' and c.tbName = 'TPER13'
    order by c.tbOwner, c.tbName, c.name, c.partition
;
select c.*
    from sysibm.sysColDistStats  c
    where c.tbOwner = 'A540769' and c.tbName = 'TPER13'
    order by c.tbOwner, c.tbName, c.name, c.partition, COLGROUPCOLNO
;
}¢--- A540769.WK.SQL(CATIP) cre=2016-09-05 mod=2016-09-05-17.06.38 A540769 -----
select compress, count(*)
    from sysibm.sysIndexes
    where dbName like 'SU%'
    group by compress
}¢--- A540769.WK.SQL(CATIRDUP) cre=2014-07-15 mod=2014-07-15-15.37.36 A540769 ---
select count(*), dbName, indexSpace, partition, instance
    from sysibm.sysIndexSpaceStats
    group by dbName, indexSpace, partition, instance
    order by 1 desc, dbName, indexSpace, partition, instance
    fetch first 100 rows only
    with ur
;X;
delete from  sysibm.sysIndexSpaceStats q
  where dbName like 'DSN8D9%'
    and exists (select 1 from sysibm.sysIndexSpaceStats a
      where     a.dbName = q.dbName
            and a.indexSpace = q.indexSpace
            and a.partition  = q.partition
            and a.instance   = q.instance
            and a.updatestatsTime > q.updateStatstime
        )
;
with d as
(
  select count(*) cnt, dbName, indexSpace, partition, instance
    from sysibm.sysIndexSpaceStats
    group by dbName, indexSpace, partition, instance
    having count(*) > 1
)
, s as
(
   select row_number() over (partition by
                 d.dbName, d.indexSpace, d.partition, d.instance
                 order by r.updateSTatsTime desc) rn
      , cnt, r.*
    from sysibm.sysIndexSpaceStats r
      join d on r.dbName = d.dbName
            and r.indexSpace = d.indexSpace
            and r.partition  = d.partition
            and r.instance   = d.instance
    order by cnt, d.dbName, d.indexSpace, d.partition, d.instance
             , r.updateStatsTime desc
)
select * from s where rn > 1
    with ur
;
rollback
;x;
select *
   from OA1P.TQZ007GBGRIXSTATS n
   where rz = '?' and dbSys = '?' and dbName = 'DSN8D91A'
         and ts = 'DSN8S91E'
   order by indexSpace
;c;
        /*
          2 DSN8D91A DSN8S91E XEMP1    1 1
          2 DSN8D91A DSN8S91D XDEPT3   0 1
          2 DSN8D91A DSN8S91D XDEPT2   0 1
          2 DSN8D91A DSN8S91E XEMP1    4 1
          2 DSN8D91A DSN8S91E XEMP1    3 1
          2 DSN8D91A DSN8S91E XEMP1    2 1
          2 DSN8D91A DSN8S91S XPARTS   0 1
          2 DSN8D91A DSN8S91P XPROJAC1 0 1
          2 DSN8D91A DSN8S91P XPROJ1   0 1
          2 DSN8D91A DSN8S91P XEMPPROJ 0 1
          2 DSN8D91A DSN8S91P XACT2    0 1
          2 DSN8D91A DSN8S91E XEMP1    5 1
          2 DSN8D91X XPRO0000 IRNODEID 0 1
          2 DSN8D91X DSN8S91X SUPPLIER 0 1
          2 DSN8D91X DSN8S91X PRODUCTS 0 1
          2 DSN8D91X DSN8S91X IRDOCIDS 0 1
          2 DSN8D91X DSN8S91X IRDOCIDP 0 1
          2 DSN8D91X DSN8S91X IRDOCIDC 0 1
          2 DSN8D91X DSN8S91X INVENTOR 0 1
          2 DSN8D91X DSN8S91X CUSTOMER 0 1
          2 DSN8D91X DSN8S91X CATALOGR 0 1
          2 DSN8D91P DSN8S91Q XMAPRTBL 0 1
          2 DSN8D91P DSN8S91C XOPTVAL1 0 1
          2 DSN8D91P DSN8S91C XDSPTXT1 0 1
          2 DSN8D91A DSN8S91D XDEPT1   0 1
        */
with s as
(
select  'a' STATE
      , 'RZX' RZ
      , 'DE0G' DBSYS
      , '2014-07-15-14.39.25.139972' LOADTS
      , INDEXTYPE
      , COMPRESS
      , IXPARTS
      , IXPGSZ
      , PIECESIZE
      , PIECEGB
      , LIMGB
      , TBCREATOR
      , TBNAME
      , TS
      , TSTY
      , TSPARTS
      , TSCLONE
      , TSINST
      , TSDSSIZE
      , TSDSGB
      , TSLimGb
      , TSLimPart
      , TSPGSZ
      , UPDATESTATSTIME
      , NLEVELS
      , NPAGES
      , NLEAF
      , NACTIVE
      , SPACE
      , EXTENTS
      , LOADRLASTTIME
      , REBUILDLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGAPPENDINSERT
      , REORGPSEUDODELETES
      , REORGMASSDELETE
      , REORGLEAFNEAR
      , REORGLEAFFAR
      , REORGNUMLEVELS
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , LASTUSED
      , IBMREQD
      , DBID
      , ISOBID
      , PSID
      , PARTITION
      , INSTANCE
}¢--- A540769.WK.SQL(CATIX) cre=2006-03-01 mod=2014-07-14-13.06.16 A540769 -----
select *
    from sysibm.sysKeyTargets where ixName = 'IQZ008S1'
;x;
with t0 as
(
  select dbname db, name ts, pgSize
      , partitions parts, maxPartitions maxParts, dsSize
      , case
            when type <> ' ' then type
            when partitions > 0 and segsize = 0 then 'p' -- classic part
            when partitions = 0 and segsize = 0 then 'i' -- simple
            when partitions = 0 and segsize > 0 then 's' -- segmented
            else raise_error(70000, 'unknown ts type='||type
                || ' partitions=' || strip(char(partitions))
                || ' segsize=' || strip(char(segsize))
                || ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
      , case
            when dssize <> 0 then int(dssize / 1048576)
            when type in ('G', 'O', 'P', 'R', 'L') then 4
            when partitions = 0     then  64
            when partitions > 254 then    pgSize
            when partitions > 64    then   4
            when partitions > 32    then   1
            when partitions > 16    then   2
                                    else   4
        end dsGB
      , dbid, psid
      from sysibm.sysTablespace
)
, ts as
( select t0.*
      , case when tsTy = 'G' or parts = 0 then null else 1 end scope
      , case when tsTy = 'G' then dsGB * maxparts
             when tsTy = 'O' then dsGB * 254
             else dsGb end limGB
      from t0
)
, tb as
(
    select t.creator tbCr, t.name tb, ts.*
      from ts join sysibm.sysTables t
          on ts.db = t.dbName and ts.ts = t.tsName
)
, i0 as
(
  select indexType, pieceSize, relCreated, createdTS
            , spaceF, creator ixCr, name ix
         , case when i.pgSize = 4096 or i.compress = 'Y' then 4
                else i.pgSize
           end ixPgSz
         , (select min(partition)
              from sysibm.sysIndexPart p
                  where p.ixCreator = i.creator
                    and p.ixName = i.name
           ) ixMin
         , (select max(partition)
              from sysibm.sysIndexPart p
                  where p.ixCreator = i.creator
                    and p.ixName = i.name
            ) ixMax
         , tb.*
    from sysibm.sysIndexes i join tb
      on i.tbCreator = tb.tbCr and i.tbName = tb.tb
)
, i1 as
(
  select case when piecesize <> 0 then real(pieceSize) / 1048576
              when parts <> 0 then real(dsGB) * ixPgSz / pgSize
              else 2
         end pcGb
       , i0.*
      from i0
)
,  i2 as
(
  select case when ixMin = 1 then 1
              when parts = 0 then 32
              when tsTy <> 'L' and dsSize = 0 and parts <= 64 then 32
              when parts > 254 then 4096
              else smallInt(min(4096, 4096 / pcGb * ixPgSz))
         end pcMx
         , i1.*
      from i1
)
,  r as
(
  select pcGb * pcMx ixpGb
       , float(r.nActive) * i2.ixPgSz / 1048576 actGB
       , float(r.space) / 1048576 spaceGB
       , i2.*
    from i2 join sysibm.sysindexspacestats r
      on i2.ixCr = r.creator and i2.ix = r.name
)
select smallInt(100 * actGB/ixpGb) actPc
     , smallInt(100 * spaceGB/ixpGb) spcPc
     , r.*
    from r
 -- where db = 'DA540769'
    where actGB is not null
    order by 1 desc
    fetch first 100 rows only
;x;
select * from r
    where db = 'DA540769'
    and ixpGB <= 0
;x; group by pcMx, pcGb, ixMin, min(parts, 1), tsTy
     --  ixPgSz <> 4
     --  or  ( not ((ixMin=0 and ixMax=0)
     --            or (ixMin =1 and ixMax= parts)))
 -- order by spaceF desc
;x;
, i1 as
(
  select indexType, pieceSize, relCreated, createdTS
      , case when ixMin = 0 and ixMax = 0 then 'nonP'
             when ixMin = 1 and ixMax >= 1 then 'part'
             else raise_error(70001, 'parts ' || char(ixMin)
                                || ' - ' || char(ixMax))
        end partd
    from i0
)
select count(*), indexType, pieceSize, partd
    , max(relCreated), min(relCreated)
    , max(createdTS), min(createdTS)
    from i1
    group by indexType, pieceSize, partd
;x;
with ii as
(
select case when s.partitions = 0 then 'npTs ' else 'paTs ' end tt,
       i.indexType ixType, s.type tsType,
       ( select case when max(p.partition) = 0 then 'npIx ' else 'paIx '
                end
            || char(min(p.partition))
            || char(max(p.partition))
            || char(count(*))
           from sysibm.sysIndexPart p
           where p.ixCreator = i.creator and p.ixName = i.Name
       ) it,
       s.partitions, t.cardf,
       i.*
    from sysibm.sysIndexes i
      join sysibm.sysTables t
        on i.tbCreator = t.creator and i.tbName = t.name
      join sysibm.sysTableSpace s
        on s.dbName = t.dbName and s.name = t.tsname
 -- where i.dbName = 'DA540769'
)
select tt, ixType, left(it, 5), count(*)
    from ii
    group by tt, ixType, left(it, 5)
    order by tt, ixType, left(it, 5)
;;,
select * from sysibm.sysIndexPart
    where ixcreator = 'OA1A' and ixname like 'IMF150H%'
;
x
select '01 create    ',
        char(ixCreator, 8) cr, char(ixName, 16) ix, p.partition,
        statsTime "runStats",
        cardf,
        r.space/4 alPg, leafDist, leafNear, leafFar,
        nearOffPosf, farOffPosf,
        updatestatsTime "realTimeStats",
        nLeaf, reorgLeafNear, reorgLeafFar
    from sysibm.sysindexpart p
        left join sysibm.sysindexspacestats r
        on     p.ixCreator = r.creator
           and p.ixName    = r.name
           and p.partition = r.partition
    where ixCreator = 'GDB9998' and ixName like 'IWK465%'
;
}¢--- A540769.WK.SQL(CATIXCO) cre=2011-02-10 mod=2011-02-11-17.41.29 A540769 ---
-- show index with list of columns
--          plus hexKey for colDist etc.
with i (cr, ix, colC, seq, keys, kHex) as
( select creator, name, colCount, 0, varchar('',999),varchar('',999)
    from sysibm.sysindexes i
    where tbCreator = 'OA1P' and tbName = 'TWM005A1'
  union all select cr, ix, colC, seq+1,
        keys || case when length(strip(k.colName)) <= 15
                     then strip(k.colName)
                     else strip(char(k.colNo)) end || ' ',
        kHex || hex(k.colNo)
      from i join sysibm.sysKeys k
          on k.ixCreator = i.cr and k.ixName = i.ix
          and k.colSeq = i.seq + 1 and i.seq < i.colC
                                   and i.seq < 999
)
select substr(strip(cr) || '.' || strip(ix), 1, 16),
       substr(keys, 1, 80) keys,
       substr(kHex, 1, 80) kHex,
       colC, length(kHex)
    from i
    where seq = colC
    order by cr, ix
;;;
select SUBSTR(strip(i.creator) || '.' || strip(i.name), 1, 16),
         smallInt(colCount),
       substr(k1.colName, 1, 8) c1,
       substr(k2.colName, 1, 8) c2,
       substr(k3.colName, 1, 8) c3,
       hex(k1.colNo) || value(hex(k2.colNo), '')
                     || value(hex(k3.colNo), '')
    from sysibm.sysindexes i
    left join sysibm.sysKeys k1
    on k1.ixCreator = i.creator and k1.ixName = i.name
        and k1.colSeq = 1
    left join sysibm.sysKeys k2
    on k2.ixCreator = i.creator and k2.ixName = i.name
        and k2.colSeq = 2 and i.colCount >= 2
    left join sysibm.sysKeys k3
    on k3.ixCreator = i.creator and k3.ixName = i.name
        and k3.colSeq = 3 and i.colCount  >= 3
    where tbCreator = 'OA1P' and tbName = 'TWM005A1'
    order by i.name
}¢--- A540769.WK.SQL(CATIXEXT) cre=2012-11-19 mod=2012-11-19-16.32.36 A540769 ---
select ix_extension_type, hex(ix_extension_type), count(*)
     from sysibm.sysIndexes
     group by ix_extension_type
}¢--- A540769.WK.SQL(CATIXGBP) cre=2010-03-26 mod=2010-03-26-09.13.59 A540769 ---
select count(*), gbpCache, sum(p.spacef) runSp,
           sum(float(r.space)) realSp
       FROM  SYSIBM.SYSINDEXPART p
       join sysibm.sysIndexes i
       on     i.creator = p.ixCreator
          and i.name    = p.ixName
       left join sysibm.sysindexSpaceStats r
       on    r.DBID       = i.dbid
         and r.ISOBID     = i.isobid
         and r.PARTITION  = p.partition
    group by gbpCache
;
x
   SELECT B.IXCREATOR, B.IXNAME, B.GBPCACHE
       WHERE B.IXCREATOR = A.CREATOR
       AND   B.IXNAME    = A.NAME
       AND   B.GBPCACHE NOT IN (' ')
       )
}¢--- A540769.WK.SQL(CATIXKEY) cre=2011-11-10 mod=2015-06-19-08.04.06 A540769 ---
                -- redundante indexe, d.h. key sequence prefix
                -- keys eines indexes in der form a<b>c|d<
                --             a,b,c,d keys
                --             <>| ascending, descending, random
with k (cr, ix, tbCr, tb, uni, unC, keys, colCount, kCnt) as
                -- start selektiere Indexe
( select creator, name                      -- start selektiere Indexe
      , tbCreator, tbName, uniqueRule, unique_Count
      ,  cast('' as varchar(1500) ccsid unicode), colCount, 0
      from sysibm.sysIndexes
      where dbName like 'DSNDB%'--  and tbCreator = 'OA1P'
                -- Rekursion: nächster key
  union all select cr, ix, tbCr, tb, uni, unC
          , keys || strip(q.colName)
            || case when ordering = 'A' then '<'
                    when ordering = 'D' then '>'
                    when ordering = 'R' then '|'
                    else '?' end,
          k.colCount, kCnt + 1
       from k
         join sysibm.sysKeys q
         on q.ixCreator = k.cr and q.ixName = k.ix
             and q.colSeq = kCnt + 1
         where kCnt < 9999
)
, l as
(
   select k.*,
       translate(strip(keys), ',,,,', '<>|?') keyU
     from k
    where colCount = kCnt
)
, r as
(
  select a.*
    from l a
    where exists ( select 1 from l b
         where a.tbCr = b.tbCr and a.tb = b.tb
             and not (a.cr = b.cr and a.ix = b.ix)
             and ( left(a.keys, length(b.keys)) = b.keys
                 or a.keys = left(b.keys, length(a.keys)) )
         )
)
select substr(strip(tbCr) || '.' || tb, 1, 20) table
    ,  substr(strip(cr) || '.' || ix, 1, 20) index
    ,  uni, smallint(colCount) "#keys", unC, keys
    ,  tbcr, tb, cr, ix
    from r
    order by tbcr, tb, keys
;
;x;
                -- keys eines indexes in der form a<b>c|d<
                --             a,b,c,d keys
                --             <>| ascending, descending, random
with k (cr, ix, keys, cols, kCnt) as
                -- start selektiere Indexe
( select creator, name,     -- start selektiere Indexe
        cast('' as varchar(500) ccsid unicode), colCount, 0
      from sysibm.sysIndexes
      where tbCreator = 'OA1P'  and tbName in ( 'TDG122A1'
                                              , 'TDG127A1'
                                              , 'TDG127K1'
                                              , 'TDG128A1'
                                              , 'TDG128K1'
                                              , 'TDG132A1'
                                              , 'TDG132K1'
                                              , 'TDG154A1'
                                              , 'TDG210A0'
                                              , 'TDG310A0'
                                              , 'TDG320A1'
                                              , 'TDG570A0'
                                              , 'TDG900A0'
                                              , 'TDG950A0'
                                              , 'TDG950A1'
                                              , 'TDG970A0'
                                              , 'TDG990A0'
                                              )
                -- Rekursion: nächster key
  union all select cr, ix, keys || strip(q.colName)
            || case when ordering = 'A' then '<'
                    when ordering = 'D' then '>'
                    when ordering = 'R' then '|'
                    else '?' || ordering || '?' end,
          k.cols, kCnt + 1
       from k
         join sysibm.sysKeys q
         on q.ixCreator = k.cr and q.ixName = k.ix
             and q.colSeq = kCnt + 1
         where kCnt < 9999
)
select substr(strip(i.tbCreator) || '.' || strip(i.tbName), 1, 20) tb
       , substr(strip(cr) || '.' || strip(ix), 1, 20) ix
       , i.uniqueRule uni
       , smallint(cols), keys
    from k join sysibm.sysIndexes i
      on k.cr = i.creator and k.ix = i.name
    where cols = kCnt
    order by i.tbCreator, i.tbName, keys, cr, ix
;x;
                -- keys eines indexes in der form a<b>c|d<
                --             a,b,c,d keys
                --             <>| ascending, descending, random
with k (cr, ix, keys, colCount, kCnt) as
                -- start selektiere Indexe
( select creator, name,     -- start selektiere Indexe
        cast('' as varchar(500) ccsid unicode), colCount, 0
      from sysibm.sysIndexes
      where creator = 'OA1T'  and tbName like 'TWM005A1'
                -- Rekursion: nächster key
  union all select cr, ix, keys || strip(q.colName)
            || case when ordering = 'A' then '<'
                    when ordering = 'D' then '>'
                    when ordering = 'R' then '|'
                    else '?' || ordering || '?' end,
          k.colCount, kCnt + 1
       from k
         join sysibm.sysKeys q
         on q.ixCreator = k.cr and q.ixName = k.ix
             and q.colSeq = kCnt + 1
         where kCnt < 9999
)
select substr(strip(cr) || '.' || strip(ix), 1, 20),
       smallint(colCount), keys
    from k
    where colCount = kCnt
    order by cr, ix
;x;
}¢--- A540769.WK.SQL(CATIXLAS) cre=2014-06-05 mod=2014-06-05-12.57.29 A540769 ---
select max(r.lastUsed), count(*)
    , substr(strip(i.creator) || '.' || i.name, 1, 30)
    , max(i.createdTS) "created", max(r.updateStatsTime) "stats"
    from sysibm.sysIndexes i
      left join sysibm.sysIndexSpaceStats r
        on i.creator = r.creator and i.name = r.name
    where i.dbName = 'WI02A1P'
    group by i.creator, i.name
    order by case when max(r.lastUsed) is not null then max(r.lastUsed)
                  else '01.01.0001' end
;x;
  select value(i.creator, r.creator) || '.'
      || value(i.name, r.name)
    , i.name, r.name
    from sysibm.sysIndexes i
      full join sysibm.sysIndexSpaceStats r
        on i.creator = r.creator and i.name = r.name
    where i.name is null or r.name is null
;x;
    from sysibm.sysIndexes i
      full join sysibm.sysIndexSpaceStats r
        on i.creator = r.creator and i.name = r.name
    where i.dbName = 'WI02A1P'
    group by i.creator, i.name
    order by 1 desc
}¢--- A540769.WK.SQL(CATIXLIM) cre=2007-10-15 mod=2007-10-22-15.03.48 F540769 ---
with ts as
  ( select s.*,
            case when partitions = 0 then 64 * 1024 * 1024
                 when dssize <> 0 then dssize
                 when type in ('K', 'L') then 4 * 1024 * 1024
                 when partitions <=  16 then 4 * 1024 * 1024
                 when partitions <=  32 then 2 * 1024 * 1024
                 when partitions <=  64 then 1 * 1024 * 1024
                 when partitions <= 254 then 4 * 1024 * 1024
                 when partitions <=  16 then 4 * 1024 * 1024
            end dsSz
        from sysibm.sysTablespace s
  )
  , ii as
  (
    select i.*,
        case when maxPart > 0 then 1
             when s.dsSize < 4e6 and not s.type in ('L', 'K') then 32
             else 4096
        end pieceCnt,
        case when maxPart > 0 then dsSz
             when pieceSize > 0 then piecesize
             when s.dsSz >= 4 then 4 * 1024 * 1024
             else 2  * 1024 * 1024
        end pieceSz
    from sysibm.sysindexes i, sysibm.systables t, ts s,
        ( select max(partition) maxPart, ixCreator, ixName
               from sysibm.sysindexpart p
               group by ixCreator, ixName
        ) p
    where
            i.tbCreator = t.creator and i.tbName = t.name
        and t.dbName = s.dbName and t.tsName = s.name
        and i.creator = p.ixCreator and i.name = p.ixName
      --and (t.type not in ('L', 'K') and t.dssize < 4000000)
      --     or (t.
 --     and i.piecesize > 0 and i.piecesize < 65000000
  )
select coalesce(float(r.space) / ii.pieceSz / ii.pieceCnt, -1),
       coalesce(float(r.nActive) * 4 / ii.pieceSz / ii.pieceCnt, -1),
       strip(ii.Creator) || '.' || strip(ii.name)
                         || ':' || strip(char(partition))
    from ii, sysibm.indexspacestats r
    where ii.dbid = r.dbid and ii.isobid = r.isobid
          and ii.dbname = 'DGDB9998'
    order by 1 desc, 2 desc
    ;
  , tru as
  (
select trunc(float(r.space) / ii.pieceSz / ii.pieceCnt, 1) sz,
       trunc(float(r.nActive) * 4 / ii.pieceSz / ii.pieceCnt, 1) ac
    from ii, sysibm.indexspacestats r
    where ii.dbid = r.dbid and ii.isobid = r.isobid
  )
select sz, ac, count(*) from tru
    group by sz, ac
    order by 1 desc, 2 desc
    ;

select piecesize, pieceSz, dssize, dsSz, pieceCnt, count(*)
    from ii
    group by piecesize, pieceSz, dssize, dsSz, pieceCnt
    order by piecesize, pieceSz, dssize, dsSz, pieceCnt
;
x
select strip(ixcreator) || '.' || strip(ixname)
    from sysibm.sysindexpart
    where partition > 0 and ixcreator = 'A540769'
    ;
    x
select distinct length(limitKey), limitKey,
               case when limitKey = '0' then '=0'
                    when limitKey = x'00' then '=x'
               else 'not' end,
               hex(substr(limitKey,1,1))
               from sysibm.sysindexpart p
               where partition = 0 and length(limitKey) > 0
;
xelect length(limitKey), hex(limitKey)
select length(limitKey), hex(char(limitKey, 5)) || '::' || limitKey, p.*
               from sysibm.sysindexpart p
               where partition = 0 and length(limitKey) > 0
;
xelect length(limitKey), hex(limitKey)
               from sysibm.sysindexpart p
               where ixName = 'IWK101A0'
;
select piecesize, i.indexType, miPa, maPa, cnPa, liKe, count(*)
    from sysibm.sysindexes i left join
        ( select min(partition) mipa, max(partition) mapa,
                 count(*) cnpa, ixCreator, ixName,
                 sum(length(limitKey)) liKe
               from sysibm.sysindexpart p
               group by ixCreator, ixName
        ) p
    on i.creator=p.ixCreator and i.name = p.ixName
    group by piecesize, i.indexType, miPa, maPa, cnPa, like
;
xelect distinct piecesize,
    case when partition = 0 then 'np' else 'pa' end, i.*
    from sysibm.sysindexes i, sysibm.sysindexpart p
    where i.creator=p.ixCreator and i.name = p.ixName
       and piecesize = 0 and partition = 0
;
 d
 d
}¢--- A540769.WK.SQL(CATIXLI2) cre=2007-10-23 mod=2007-10-23-15.33.28 F540769 ---
with ts as   -- tablespace mit dsSz
  ( select s.*,
            case when partitions = 0 then 64 * 1024 * 1024
                 when dssize <> 0 then dssize
                 when type in ('K', 'L') then 4 * 1024 * 1024
                 when partitions <=  16 then 4 * 1024 * 1024
                 when partitions <=  32 then 2 * 1024 * 1024
                 when partitions <=  64 then 1 * 1024 * 1024
                 when partitions <= 254 then 4 * 1024 * 1024
                 when partitions <=  16 then 4 * 1024 * 1024
            end dsSz
        from sysibm.sysTablespace s
  ) ,
ii as   -- index mit pieceSz, pieceCnt und maxPartition
  (
    select i.*, t.tsName, p.maxPart,
        case when maxPart > 0 then 1
             when s.dsSize < 4e6 and not s.type in ('L', 'K') then 32
             else 4096
        end pieceCnt,
        case when maxPart > 0 then dsSz
             when pieceSize > 0 then piecesize
             when s.dsSz >= 4 then 4 * 1024 * 1024
             else 2  * 1024 * 1024
        end pieceSz
    from sysibm.sysindexes i, sysibm.systables t, ts s,
        ( select max(partition) maxPart, ixCreator, ixName
               from sysibm.sysindexpart p
               group by ixCreator, ixName
        ) p
    where
            i.tbCreator = t.creator and i.tbName = t.name
        and t.dbName = s.dbName and t.tsName = s.name
        and i.creator = p.ixCreator and i.name = p.ixName
  ) ,
L as --* SchwellWerte tadm10a1 mit like Wert ergänzen
  ( select W.*,
           case when posStr(db_name, '%') < 1 then '% no %'
                else left(db_name, posStr(db_name, '%') - 1)
           end dbLike,
           case when posStr(ts_name, '%') < 1 then '% no %'
                else left(ts_name, posStr(ts_name, '%') - 1)
           end tsLike
        from OA1A.tadm10a1 W
        where w.END_DATUM >= timestamp(current date,'00:00:00')
  ),
RR as --* RTS mit Limite und Schwellwert
  (
  select r.*,
       ii.creator ixCreator, ii.name ixName, ii.maxPart,
       ii.tbCreator, ii.tbName, ii.tsName,
       float(r.nActive) * 4 / 1024 / 1024 activeGB,
       float(r.space)       / 1024 / 1024 spaceGB,
       ii.pieceCnt limitPieces,
       float(ii.pieceSz) * ii.pieceCnt / 1024 / 1024 limitGB,
       coalesce(L1.HIGHWATER_1GB, L2.HIGHWATER_1GB, L3.HIGHWATER_1GB,
                L4.HIGHWATER_1GB, .8)  swFrc,
       coalesce(L1.exclude, L2.exclude, L3.exclude,
                    l4.exclude, 'N') exclude,
       coalesce(strip(l1.db_name) || '.' || strip(l1.ts_name)
                    || ':' || strip(char(l1.partitions_nr)),
                strip(l2.db_name) || '.' || strip(l2.ts_name)
                    || ':' || strip(char(l2.partitions_nr)),
                strip(l3.db_name) || '.' || strip(l3.ts_name)
                    || ':' || strip(char(l3.partitions_nr)),
                strip(l4.db_name) || '.' || strip(l4.ts_name)
                    || ':' || strip(char(l4.partitions_nr)),
                'sql default') swKey
      from sysibm.indexspacestats r
        left join ii on ii.dbid = r.dbid and ii.isobid = r.isobid
        left JOIN L L1      --* Schwelle für db, ts und part%
          ON      L1.DB_NAME       =    ii.DBNAME
              AND L1.TS_NAME      =    ii.indexSpace
              AND L1.PARTITIONS_NR IN (0 , r.PARTITION)
        left JOIN L L2       --* Schwelle für db, ts% und part%
          ON      L2.DB_NAME       =   ii.DBNAME
              AND L2.tsLike  = left(ii.indexSpace,length(L2.tsLike))
              AND L2.PARTITIONS_NR IN (0 , r.PARTITION)
        left JOIN l L3       --* Schwelle für db, ts% und part%
          ON      L3.dbLike  = left(ii.dbname, length(L3.dbLike))
              AND ( L3.tsLike  = left(ii.indexspace, length(L3.tsLike))
                    or L3.ts_name = ii.indexSpace )
              AND L3.PARTITIONS_NR IN (0 , r.PARTITION)
        LEFT JOIN L L4        --* Schwell Default
          ON L4.DB_NAME       =    'DEFAULT/I'
  )
--\*********************************************************************
--\
--\      IndexSpace (Partitionen) grösser SchwellWert * Limite
--\
SELECT suBSTR(DBNAME,1,8) "db",
       SUBSTR(indexSpace,1,8) "indexSpc",
       char(case
           when partition <= 999 and maxPart <= 999
               then right('  ' || strip(char(PARTITION)), 3) || '/'
                    || right('  ' || strip(char(maxPart)), 3)
               else strip(char(PARTITION)) || '/'
           end, 7) "par/tot" ,
       char(
       right('     '||strip(cast(dec(activeGB, 8, 3) as char(10))),10)
       || char(dec(swFrc, 3, 2))
       || right('     '||strip(cast(dec(limitGB, 8,3) as char(10))),10)
           , 25)        "    active scWe     limit",
       char(left(ixName, 20), 20)  "index name",
     rr.*
    from RR
    where exclude in ('N', 'S') and activeGB > swFrc * limitGB
    ORDER BY 1, 2, 3
    ;
--/
--/ db        = Datenbank
--/ indexSp   = index Space (Nicht Name|)
--/ par/tot   = betroffene PartitionsNummer / Total Partitonen
--/ active    = Speicherplatz in GB der active Pages
--/ schWe     = Schwellwert Faktor
--/ lim       = Limite in GB
--/ indexName = Name des Index
--/
--/*********************************************************************
--$SPECIAL
select current timestamp "timestamp",
       current member "member", current server "server",
               '23.10.07 a' "version"
    from sysibm.sysDummy1
;
}¢--- A540769.WK.SQL(CATIXPA) cre=2013-05-13 mod=2013-05-13-14.52.52 A540769 ---
with x as
(
select i.indexType
    ,  (select min(ip.partition) from sysibm.sysIndexPart ip
            where ip.ixCreator = i.creator and ip.ixName = i.name) minPa
    ,  case when ts.partitions = 0   then 'tsNotPar'
            when t.partKeyColNum > 0 then 'tbPart'
                                     else 'ixPart' end tsPa
    from sysibm.sysindexes i
    join sysibm.sysTables t
      on t.creator = i.tbCreator and t.name = i.tbName
    join sysibm.sysTableSpace ts
      on ts.dbName = t.dbName and ts.name = t.tsName
)
select x.*, count(*) cnt
    from x
    group by indexType, minPa, tsPa
    ;
}¢--- A540769.WK.SQL(CATIXPIE) cre=2013-06-20 mod=2013-06-20-09.30.57 A540769 ---
set current sqlid = 'S100447';
with j as
(
select i.PIECESIZE, i.ibmReqd, s.partitions
     ,  case
            when s.dssize <> 0 then s.dssize
            when s.type in ('G', 'O', 'P', 'R', 'L') then 4194304
            when S.partitions > 254 then 1048576 * s.pgSize
            when s.partitions > 64 then  4194304
            when s.partitions > 32 then  1048576
            when s.partitions > 16 then  2097152
            when s.partitions > 0 then   4194304
                                  else   2097152
        end dsSize
        from sysibm.sysIndexes i join sysibm.sysTables t
            on i.tbCreator = t.creator and i.tbName = t.name
               and i.dbName = t.dbName
          join sysibm.sysTablespace s
            on s.dbName = t.dbName and s.name = t.tsName
)
select count(*), pieceSize, partitions, dsSize
               , min(ibmReqd)
               , max(translate(ibmReqD, '  ', 'YN'))
               , max(case when ibmReqD = 'N' then 'N' else ' ' end)
               , max(case when ibmReqD = 'Y' then 'Y' else ' ' end)
    from j
    group by pieceSize, partitions, dsSize
;x;
select PIECESIZE, (select
        case
            when s.dssize <> 0 then s.dssize
            when s.type in ('G', 'O', 'P', 'R', 'L') then 4194304
            when S.partitions > 254 then 1048576 * s.pgSize
            when s.partitions > 64 then  4194304
            when s.partitions > 32 then  1048576
            when s.partitions > 16 then  2097152
            when s.partitions > 0 then   4194304
                                  else   2097152
        end dssWk
        from sysibm.sysTablespace s join sysibm.sysTables t
            on s.dbName = t.dbName and s.name = t.tsName
        where  i.tbCreator = t.creator and i.tbName = t.name
               and i.dbName = t.dbName
        ) tsDss
    from sysibm.sysIndexes i
    fetch first 100 rows only
;x;
CREATE        UNIQUE INDEX "A540769"."IWK993t1"
       ON "A540769"."TWK993PAR"
      (PARID ASC
      )
       NOT CLUSTER
       DEFINE YES
       COMPRESS NO
       BUFFERPOOL BP1
       CLOSE YES
       DEFER NO
       COPY NO
       USING STOGROUP GSMS
           PRIQTY -1
           SECQTY -1
           ERASE NO
       FREEPAGE 5
       PCTFREE 10
       GBPCACHE CHANGED;
select PIECESIZE, name
    from sysibm.sysIndexes
    where tbCreator = 'A540769' and tbName = 'TWK993PAR'
;
rollback
}¢--- A540769.WK.SQL(CATIXPLU) cre=2014-06-18 mod=2014-06-26-09.22.11 A540769 ---
-- copy catIxPlu begin
-- ixPlus: sysibm.sysIndexes plus missing infos
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
, tsPlus2 as
(
  select s.*
      , char(value(case
            when type <> ' ' then type
            when partitions > 0 and segsize = 0 then 'p' -- classic part
            when partitions = 0 and segsize = 0 then 'i' -- simple
            when partitions = 0 and segsize > 0 then 's' -- segmented
            else raise_error(70101, 'unknown ts type='||type
                || ' partitions=' || strip(char(partitions))
                || ' segsize=' || strip(char(segsize))
                || ' db.ts=' || strip(dbName) ||'.'||name)
        end, '?'), 1) tsTy
      , real(value(case
            when dssize <> 0 then real(dssize) / 1048576
            when type in ('G', 'O', 'P', 'R', 'L') then 4
            when partitions = 0     then  64
            when partitions > 254 then    pgSize
            when partitions > 64    then   4
            when partitions > 32    then   1
            when partitions > 16    then   2
                                    else   4
        end, -99)) dsGB
      from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
      , smallInt(case when tsTy = 'G' or partitions = 0
                      then 0 else 1 end) limPart
      , real(value(case when tsTy = 'G' then dsGB * maxPartitions
             when tsTy = 'O' then dsGB * 254
             else dsGb end, -99)) limGB
      from tsPlus2 s
)
-- copy catTsPlu end
, ixPlus2 as
(
  select i.*
         , s.name ts
         , s.tsTy
         , s.pgSize tsPgSz
         , s.partitions tsParts
         , s.dsSize tsDsSize
         , s.dsGb   tsDsGb
         , s.limGb   tsLimGb
         , s.limPart tsLimPart
         , s.clone tsClone
         , s.instance tsInst
         , smallint(case when i.pgSize = 4096 or i.compress='Y' then 4
                else i.pgSize
           end) ixPgSz
         , smallint(value((select max(partition)
              from sysibm.sysIndexPart p
                  where p.ixCreator = i.creator
                    and p.ixName = i.name
           ), -99)) ixParts
    from sysibm.sysIndexes i
      join sysibm.sysTables t
        on i.dbName = t.dbName
            and i.tbCreator = t.creator and i.tbName = t.name
      join tsPlus s
        on i.dbName = s.dbName and t.tsName = s.name
)

, ixPlus3 as
(
  select i.*
      ,  real(value(
          case when piecesize <> 0 then real(pieceSize) / 1048576
              when ixParts <> 0 then tsDsGb * ixPgSz / tsPgSz
              when tsTy in ('s', 'i') then 2
              else 4
         end, -99)) pieceGB
      from ixPlus2 i
)
,  ixPlus as
(
  select i.*
       , real(value(case when ixParts <> 0 then 1
              when tsParts = 0 then 32
              when tsTy <> 'L' and tsDsSize=0 and tsParts <= 64 then 32
              when tsParts > 254 then 4096
              else smallInt(min(4096, 4096 / pieceGB * ixPgSz))
         end * pieceGB, -99)) limGb
      from ixPlus3 i
)
-- copy catIxPlu end
}¢--- A540769.WK.SQL(CATIXPLV) cre=2014-06-19 mod=2014-06-19-09.51.29 A540769 ---
with dum as
( select * from sysibm.sysDummy1
)
-- copy catIxPlu begin
-- ixPlus: sysibm.sysIndexes plus missing infos
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
, tsPlus2 as
(
  select s.*
      , case
            when type <> ' ' then type
            when partitions > 0 and segsize = 0 then 'p' -- classic part
            when partitions = 0 and segsize = 0 then 'i' -- simple
            when partitions = 0 and segsize > 0 then 's' -- segmented
            else raise_error(70101, 'unknown ts type='||type
                || ' partitions=' || strip(char(partitions))
                || ' segsize=' || strip(char(segsize))
                || ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
      , case
            when dssize <> 0 then real(dssize) / 1048576
            when type in ('G', 'O', 'P', 'R', 'L') then 4
            when partitions = 0     then  64
            when partitions > 254 then    pgSize
            when partitions > 64    then   4
            when partitions > 32    then   1
            when partitions > 16    then   2
                                    else   4
        end dsGB
      from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
      , case when tsTy = 'G' or partitions = 0
             then 0 else 1 end limPart
      , case when tsTy = 'G' then dsGB * maxPartitions
             when tsTy = 'O' then dsGB * 254
             else dsGb end limGB
      from tsPlus2 s
)
-- copy catTsPlu end
-- ixPlus: sysIbm.indexes plus missing infos
, ixPlus2 as
(
  select i.*
         , s.name ts
         , s.tsTy
         , s.pgSize tsPgSz
         , s.partitions tsParts
         , dsSize
         , dsGb tsDsGb
         , case when i.pgSize = 4096 or i.compress = 'Y' then 4
                else i.pgSize
           end ixPgSz
         , (select max(partition)
              from sysibm.sysIndexPart p
                  where p.ixCreator = i.creator
                    and p.ixName = i.name
           ) ixParts
    from sysibm.sysIndexes i
      join sysibm.sysTables t
        on i.dbName = t.dbName
            and i.tbCreator = t.creator and i.tbName = t.name
      join tsPlus s
        on i.dbName = s.dbName and t.tsName = s.name
)

, ixPlus3 as
(
  select i.*
      ,  case when piecesize <> 0 then real(pieceSize) / 1048576
              when ixParts <> 0 then tsDsGb * ixPgSz / tsPgSz
              when tsTy in ('s', 'i') then 2
              else 4
         end pieceGB
      from ixPlus2 i
)
,  ixPlus as
(
  select i.*
       , case when ixParts <> 0 then 1
              when tsParts = 0 then 32
              when tsTy <> 'L' and dsSize = 0 and tsParts <= 64 then 32
              when tsParts > 254 then 4096
              else smallInt(min(4096, 4096 / pieceGB * ixPgSz))
         end * pieceGB limGb
      from ixPlus3 i
)
-- copy catIxPlu end
, t0 as
(
  select dbname db, name ts, pgSize
      , partitions parts, maxPartitions maxParts, dsSize
      , case
            when type <> ' ' then type
            when partitions > 0 and segsize = 0 then 'p' -- classic part
            when partitions = 0 and segsize = 0 then 'i' -- simple
            when partitions = 0 and segsize > 0 then 's' -- segmented
            else raise_error(70101, 'unknown ts type='||type
                || ' partitions=' || strip(char(partitions))
                || ' segsize=' || strip(char(segsize))
                || ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
      , case
            when dssize <> 0 then int(dssize / 1048576)
            when type in ('G', 'O', 'P', 'R', 'L') then 4
            when partitions = 0     then  64
            when partitions > 254 then    pgSize
            when partitions > 64    then   4
            when partitions > 32    then   1
            when partitions > 16    then   2
                                    else   4
        end dsGB
      , dbid, psid
      from sysibm.sysTablespace
)
, ts as
( select t0.*
      , case when tsTy = 'G' or parts = 0 then 0 else 9999 end scope
      , case when tsTy = 'G' then dsGB * maxparts
             when tsTy = 'O' then dsGB * 254
             else dsGb end limGB
      from t0
)
, tk1 as
(
  select ts.*
      , value( ( select max(a.key)
        from oa1p.tAdm13Schwelle a
        where
          validBegin <= current date and validEnd   > current date
          and a.part = 0
          and left(a.db, a.dbLen) = left(ts.db, a.dbLen)
          and left(a.ts, a.tsLen) = left(ts.ts, a.tsLen)
          and (a.tsTy = ' ' or a.tsTy = ts.tsTy)
          and a.dsMin <= ts.limGB
          ), raise_error(70102, 'schwelle null ' || db ||'.'||ts
                      || ' ty='||tsTy)
      ) keyTS
    from ts
)
, tr as
(
  select tk1.*
      , min(partition, scope) part
      , nActive nAct
    from tk1 join sysibm.sysTableSpaceStats r
      on tk1.db = r.dbName and tk1.ts = r.name
         and tk1.dbid = r.dbid and tk1.psid = r.psid
)
, tg (db, ts, part, limGb, keyTS, nAct
     , pgSize, parts, maxParts, dsSize, tsTy, dsGB) as
(
  select db, ts, part, min(limGb), max(keyTS), sum(bigInt(nAct))
      , max(pgSize), max(parts), max(maxParts), max(dsSize)
      , max(tsTy), max(dsGB)
    from tr
    group by db, ts, part
)
, i1 as
(
  select i.indexType, i.pieceSize, i.creator ixCr, i.name ix
         , case when i.pgSize = 4096 or i.compress = 'Y' then 4
                else i.pgSize
           end ixPgSz
         , (select max(partition)
              from sysibm.sysIndexPart p
                  where p.ixCreator = i.creator
                    and p.ixName = i.name
           ) ixPaMax
         , i.dbName
         , tk1.*
      from tk1
        join sysibm.sysTables t
          on tk1.db = t.dbName and tk1.ts = t.tsName
              and t.type not in ('A', 'V')
      join sysibm.sysIndexes i
        on i.tbCreator = t.creator and i.tbName = t.name
)

, i2 as
(
  select case when piecesize <> 0 then real(pieceSize) / 1048576
              when parts <> 0 then real(dsGB) * ixPgSz / pgSize
              else 2
         end pcGb
       , i1.*
      from i1
)
,  i3 as
(
  select case when ixPaMax <> 0 then 1
              when parts = 0 then 32
              when tsTy <> 'L' and dsSize = 0 and parts <= 64 then 32
              when parts > 254 then 4096
              else smallInt(min(4096, 4096 / pcGb * ixPgSz))
         end pcMx
         , i2.*
      from i2
)
select n.ixParts, o.ixPaMax, n.limGb, o.pcGb * o.pcMx
    , n.pieceGB, o.pcGB
    , n.ts, n.tsTy, n.creator, o.ixCr, n.name, o.ix
    from ixPlus n
      full outer join i3 o
        on n.dbName = o.dbName and n.name = o.ix and n.creator = o.ixCr
    where n.dbName is null or o.db is null
        or n.ixParts <> o.ixPaMax or n.limGb <> o.pcGb * o.pcMx
}¢--- A540769.WK.SQL(CATIXRUN) cre=2011-02-22 mod=2011-02-22-11.50.06 A540769 ---
-- indexes und indexPart haben
--     avgKeyLen =-1   iff cardF = -1
--     avgKeyLen = 0   iff cardF =  0
--     avgKeyLen > 0   iff cardF >  0
with g as
(
select smallInt(case when avgKeyLen < 2 then avgKeyLen else 999 end) k,
       smallInt(case when fullKeyCardF < 2 then fullKeyCardF
                     else 999 end) c,
       relCreated,
       statstime
    from sysibm.sysIndexes   p
)
select k, c, count(*),
        min(relCreated), max(relCreated),
        min(statstime), max(statstime)
    from g
    group by k, c
    order by k, c
    with ur
;
with g as
(
select smallInt(case when avgKeyLen < 2 then avgKeyLen else 999 end) k,
       smallInt(case when cardF < 2 then cardF else 999 end) c,
       (select relCreated
            from sysibm.sysIndexes   i
            where i.creator = p.ixCreator and i.name = p.ixName)
            relCreated,
       statstime
    from sysibm.sysIndexPart p
)
select k, c, count(*),
        min(relCreated), max(relCreated),
        min(statstime), max(statstime)
    from g
    group by k, c
    order by k, c
    with ur
}¢--- A540769.WK.SQL(CATIXSPC) cre=2010-03-26 mod=2010-12-13-10.50.26 A540769 ---
set current path = oa1p;
select count(*),
        substr(fosFmtE7(1024 * max(i.spacef)), 1, 7) "ixRunSp",
        substr(fosFmtE7(1024 * sum(p.spacef)), 1, 7) "paRunSp",
        substr(fosFmtE7(1024 * sum(float(r.space))), 1, 7) "rtsSp",
        substr(fosFmtE7(1024 * max(coalesce(sum(p.spacef), 0),
               coalesce(sum(float(r.space)), 0))), 1, 7) "maxRRSp",
           strip(i.creator) || '.' || strip (i.name)
       FROM  SYSIBM.SYSINDEXPART p
       join sysibm.sysIndexes i
       on     i.creator = p.ixCreator
          and i.name    = p.ixName
       left join sysibm.sysindexSpaceStats r
       on    r.DBID       = i.dbid
         and r.ISOBID     = i.isobid
         and r.PARTITION  = p.partition
    where i.tbCreator = 'BUA' and i.tbName = 'XBDM7001PM001003'
    group by i.creator, i.name
    order by 4 desc
    fetch first 100 rows only
    with ur
;
x
   SELECT B.IXCREATOR, B.IXNAME, B.GBPCACHE
       WHERE B.IXCREATOR = A.CREATOR
       AND   B.IXNAME    = A.NAME
       AND   B.GBPCACHE NOT IN (' ')
       )
}¢--- A540769.WK.SQL(CATIXSZ) cre=2011-02-21 mod=2016-01-18-10.30.33 A540769 ---
--- calculate minimal number of indexpages for an index part
 -- * leafSz = (pgSize - 64) * 100 / (100 - pctFree)
 -- * entrySize unique = keyLen + 1 + ridLen
 -- * uniqueIndex leafPages = cardF * (keyLen + 1+ridLen) / leafSz
 -- * entrySize nonUnique = 2 + keyLen + ridCnt * (1 + ridLen)
 -- * duplicateIndex leafPages = cardF
 --           * ((keyLen + 2) * distinctF / cardF + 1+ridLen) / leafSz
 -- see http://chsa4212/host/db2wiki/pmwiki.php?n=Walter.Jour1101#ixSz
set current path oa1p;
select dbNr, fqzFmte7(dbNr) e7, fqzFmte8(dbNr),fqzFmtBi2(dbNr) bi,dbName
    from oa1p.TQZ051DBNR
    order by dbNr desc
    fetch first 5 rows only
;
with i as
(
select r.nLeaf, r.nActive, r.totalEntries,
    case when i.pgSize<=32 then i.pgSize * 1024 else i.pgSize end pgSz,
    i.pgSize, i.uniquerule, i.relCreated,
    i.fullkeyCardF,
    s.keyCountF, s.fullKeyCardf sFullKeyCardF,
    case when r.partition > 0 then s.keyCountF else t.cardf end sCardF,
    case when r.partition > 0 then s.fullKeyCardF
         else i.fullKeyCardF end sDistinct,
    p.pctFree, i.avgKeyLen,
    t.cardf,
    i.creator, i.name, r.partition
    from sysibm.sysIndexSpaceStats r
         join sysibm.sysIndexes i
           on i.creator = r.creator and i.name = r.name
         left join sysibm.sysIndexStats s
           on    s.owner = i.Creator and s.name = i.name
               and s.partition = r.partition,
         sysibm.sysIndexPart p,
         sysibm.sysTables    t
    where
          p.ixCreator = r.creator and p.ixName = r.name
      and p.partition = r.partition
      and t.creator = i.tbCreator and t.Name = i.tbName
      and p.partition = r.partition
      and i.dbName like 'QZ01%' -- and i.name like 'IWU334%'
      and r.nLeaf > 100
)
, l as
(
select
    real(totalEntries) / (pgSz-64) * 100 / (100 -pctFree)

    * ( 6 + case when avgKeyLen < 1 then null
                 when uniqueRule = 'D' and not
                       (sCardf < 1 or sFullKeyCardf < 1) then
                     sFullKeyCardF / sCardf * (2 + avgKeyLen)
                 else
                     avgKeyLen
            end) leafMin,
    i.*
    from i
)
select        fqzFmtE7(nLeaf/max(1, leafMin))      "lea/min",
              fqzFmtE7(nLeaf)                      "actLeaf",
       subStr(fqzFmtE7(leafMin)              ,1,7) "minLeaf",
       substr(strip(creator) ||'.'||strip(name)
              ||':'||strip(char(partition)), 1, 30) "cr.ix.part",
       l.*
    from l
    where leafMin is not null
 --   order by 1  desc
    order by nLeaf - 2*leafMin desc
    fetch first 200 rows only
;;;
select totalEntries/nLeaf, r.*
    from sysibm.sysIndexSpaceStats r
    where r.Creator = 'OA1P' and   Name = 'IVV719A4'
      order by 1 desc ;
with g as
(
select count(*) c, VV719004, VV719005, VV719006, VV719007, VV719008
    from OA1P.TVV719A1
    --ere VV719002   <= 'B18999999999999999999999'
    -- re VV719002   >  'NDE000D99999999999999999'
    --and VV719002   <= 'NDE000U99999999999999999'
    where VV719002   >  'RL9999999999999999999999'
      and VV719002   <= 'RZ9999999999999999999999'
    group by       VV719004, VV719005, VV719006, VV719007, VV719008
)
select sum(c), count(*) from g
    with ur   ;;;
------- Achtung: card ist häufig -1, auch wenn cardf Ok
select cardf, card,count(*)
    from sysibm.systables t
    group by cardf, card
    order by cardf desc, card desc
    with ur
;;;
select min(cardf), max(cardf), card, count(*)
    from sysibm.systables t
    group by card, case when cardf <= 2 then cardf else 999 end
    order by card
    with ur
;;;
------- Achtung fullkeyCardF ist für DPSI auf IndexLevel
     -- unbrauchbar, müssen es aus sysIndexStats holen
select sum(fullKeyCardf), sum(keyCountf)
    from sysibm.sysIndexStats
    where owner = 'OA1P' and name = 'IVV719A4'
;;;
}¢--- A540769.WK.SQL(CATIXTT) cre=2013-05-24 mod=2013-05-24-09.34.32 A540769 ---
with s as
(
select piecesize
    , ( select case when min(partition) = '0' then 'not' else 'part' end
         from sysibm.sysIndexpart ip
         where ip.ixCreator = i.creator and ip.ixName = i.name ) pa
    from sysibm.sysindexes i
)
select count(*) cnt, piecesize, pa
    from s
    group by piecesize, pa
}¢--- A540769.WK.SQL(CATKEYEX) cre=2008-10-24 mod=2008-10-24-14.18.17 F540769 ---
select char(strip(ixSchema) || '.' || strip(ixName), 30), keySeq,
    derived_From
    from sysibm.sysKeyTargets
}¢--- A540769.WK.SQL(CATLABEL) cre=2007-12-11 mod=2007-12-11-17.07.24 F540769 ---
select count(*), type
    from sysibm.systables
    where label <> ''
    group by type
}¢--- A540769.WK.SQL(CATLIMIT) cre=2007-10-19 mod=2007-10-19-14.52.50 F540769 ---
select partition,
     smallint(length(limitKey)) len, char(left(limitkey, 10) leftExt,
     smallint(length(limitKey)) len,
     char(left(limitkey, 10) leftExt,
     char(left(limitkey, 10), 10) left, limitkey
select partition, length(limitKey) len,
     char(left(limitkey, 10), 10) left, limitkey
     from sysibm.systablepart
 --  where dbname = 'DA914227' and tsName = 'A203A'
     where dbname = 'DA540769' -- and tsName = 'A203A'
}¢--- A540769.WK.SQL(CATLIMMF) cre=2007-12-04 mod=2007-12-04-09.59.02 F540769 ---
select p.partition, s.totalrows, p.limitkey
     from sysibm.tablespacestats s, sysibm.sysTablePart p
     where s.dbName = p.dbName and s.Name = p.tsName
           and s.partition = p.partition
           and p.dbname = 'MF01A1A' and p.tsName = 'A150A'
}¢--- A540769.WK.SQL(CATLOAD) cre=2008-11-14 mod=2008-11-14-10.06.54 F540769 ---
select count(*), left(jobName, 7),
        min(strip(dbName) || '.' || strip(tsName)),
        max(strip(dbName) || '.' || strip(tsName)),
        count(distinct strip(dbName) || '.' || strip(tsName))
    from sysibm.syscopy
    where icType in ('R', 'S')
          and timestamp > current timestamp - 28 days
    group by left(jobName, 7)
    order by 1 desc
    with ur
;
x
select count(*), date(timestamp)
    from sysibm.syscopy
    group by date(timestamp)
    with ur
}¢--- A540769.WK.SQL(CATLONG) cre=2008-10-30 mod=2008-10-30-16.17.33 F540769 ---
select strip(tbCreator) || '.' || strip(tbName) || '.' || strip(name),
        c.*
    from sysibm.syscolumns c
    where colType = 'LONGVAR'
    with ur
}¢--- A540769.WK.SQL(CATOBID) cre=2012-07-26 mod=2012-07-26-14.57.08 A540769 ---
with d as (            --          5 13 11
select 5  obid, Name db, dbid
    from sysibm.sysDatabase d
    where d.name = 'DA540769'
)
select d.*, coalesce
        ('tb:' || strip(t.type) || ' '
               || strip(t.creator) || '.' || strip(t.name)
        ,'ts ' || strip(s.dbName) || '.' || strip(s.name)
        ,'ix ' || strip(i.creator) || '.' || strip(i.name)
        , '?'
        )
    from d
      left join sysibm.sysTables t
        on  t.dbName = d.db and t.dbid = d.dbid and t.obid = d.obid
      left join sysibm.sysTableSpace s
        on  t.dbName is null
            and s.dbName = d.db and s.dbid = d.dbid and s.obid = d.obid
      left join sysibm.sysIndexes i
        on  t.dbName is null and s.dbName is null
            and i.dbName = d.db and i.dbid = d.dbid and i.obid = d.obid
;x;
select s.*, t.*
    from sysibm.sysTablespace s
      ,  sysibm.sysTables     t
    where s.dbName = t.dbName and s.dbId = t.dbid
        and s.obid = t.obid
    with ur
}¢--- A540769.WK.SQL(CATOJREL) cre=2016-07-27 mod=2016-07-27-12.58.54 A540769 ---
select count(*), relBound, min(bindTime), max(bindTime)
    from sysibm.sysPackage p
    group by relBound
;
with o as
(
  select case when lastUsed > current date - 1 month
      then 'used' else 'old ' end
  || case when timestamp > '2015-04-09-23.59.59'
         then ' pkgV11' else ' pkgOld' end no
      , p.*
  from sysibm.sysPackage p
)
select count(*), no, relBound
    from o
    group by no, relBound
}¢--- A540769.WK.SQL(CATPART) cre=2007-06-11 mod=2011-09-29-15.58.06 A540769 ---
-- list tables and partition keys in a recursive sql
--     for ix- and tb-based partitioning
--     paCols = string with column Names
--     paNos = string with column Numbers
with t (cr, tb, partitions, paKeys, paKi,
             laKy, paCols, paNos, ixCr, ix ) as
(
  select t.creator, t.name, partitions,
       case when partitions = 0 then 0
            when partKeyColNum > 0 then partKeyColNum
                                   else 999999
       end,
       case when partitions = 0 then 'no'
            when partKeyColNum > 0 then 'tb'
            when partKeyColNum = 0 then 'ix'
            else '??'
       --   else 'p' || strip(char(partitions))
       --     || 'c' || strip(char(partKeyColNum))
       end ,
       case when partitions > 0 and partkeyColNum <= 0 then -1 else 0
       end,
       varchar('', 1000), varchar('', 1000), t.dbName, t.tsName
    from sysibm.sysTables t
      join sysibm.sysTablespace s
        on t.dbName = s.dbName and t.tsName = s.name
    where t.creator = 'A540769' and t.type = 'T' -- and s.partitions>0
  union all select cr, tb, partitions, i.colCount, paKi, laKy+1,
          paCols, paNos, i.creator, i.name
      from t, sysibm.sysIndexes i
      where t.laKy <= -1 and (i.creator, i.name) in
               (select ixCreator, ixName
                    from sysibm.sysTablePart p
                    where p.dbName = t.ixCr and p.tsName = t.ix
                        and p.partition = 1
               )
  union all select cr, tb, partitions, paKeys, paKi, laKy+1,
          paCols || strip(c.name) || ' ' || c.partkey_ordering ||',',
          paNos || strip(char(c.colno)) || c.partkey_ordering,
          ixCr, ix
      from t join sysibm.sysColumns c
      on t.cr = c.tbCreator and t.tb = c.tbName
          and c.partKey_colSeq = laKy+1
      where laKy < paKeys  and paKi = 'tb'
  union all select cr, tb, partitions, paKeys, paKi, laKy+1,
          paCols || strip(k.colName) || ' ' || k.ordering ||',',
          paNos || strip(char(k.colno)) || k.ordering,
          ixCr, ix
      from t join sysibm.sysKeys k
      on t.ixCr = k.ixCreator and t.ix = k.ixName
          and k.colSeq = laKy+1
      where laKy < paKeys  and paKi = 'ix'
)
select * from t
    where laKy = paKeys
    order by cr, tb
;;;
-- list tables and partition keys
--     for ix- and tb-based partitioning
select substr(strip(t.creator) || '.' || strip(t.Name) , 1, 20),
       partitions, partKeyColNum,
       case when partitions = 0 then 'noPa'
            when partKeyColNum > 0 then 'tbPa'
            when partKeyColNum = 0 then 'ixPa'
            else '???'
       --   else 'p' || strip(char(partitions))
       --     || 'c' || strip(char(partKeyColNum))
            end,
       substr(c.name, 1, 12), c.partkey_colSeq, c.partkey_ordering,
       substr(strip(ixCr) || '.' || strip(ix), 1, 20) "paIx",
       substr(k.colName, 1, 12), k.colSeq, k.ordering
    from sysibm.sysTables t
      join sysibm.sysTablespace s
        on t.dbName = s.dbName and t.tsName = s.name
      join (select dbName, tsName,
                    min(ixCreator) ixCr, min(ixName) ix
                from sysibm.sysTablePart
                group by dbName, tsName
           ) p
        on t.dbName = p.dbName and t.tsName = p.tsName
      left join sysibm.sysColumns c
        on c.tbcreator = t.creator
           and c.tbName = t.name    and c.partkey_colSeq <> 0
      left join sysibm.sysKeys k
        on k.ixcreator = p.ixCr and k.ixName = p.ix
    where t.creator = 'A540769' and t.type = 'T'
    order by t.creator, t.name, c.partKey_colSeq, k.colSeq
 ;;;
select dbName, Name, spacef
    from sysibm.sysTableSpace
    where partitions = 0
    order by spacef desc
    fetch first 100 rows only
    with ur
;   ;
x
select dbName, tsName, partition, limitkey, limitKey_internal
    from sysibm.sysTablePart p
    where -- dbName = 'NI02A1Z'    and tsName = 'A350A'
             partition > 0
             and (limitkey = '' or limitkey = '0')
    order by partition
    with ur
;   ;
select char(p.dbName, 8), char(p.tsName, 8),
       p.partition,  char(t.name,22), p.cardf,
       s.partitions, s.nTables
    from sysibm.sysTablePart p, sysibm.sysTablespace s,
         sysibm.sysTables t
    where s.dbName = p.dbName and s.name = p.tsName
        and t.dbName = p.dbName and t.tsName = p.tsName and t.type='T'
        and s.dbName in ('TSTNAKAL', 'DA540769')
    order by p.dbName, p.tsName, p.partition, t.name
}¢--- A540769.WK.SQL(CATPARTC) cre=2015-11-23 mod=2015-11-23-15.21.33 A540769 ---
-- count index/table based partitioned ts
set current application compatibility 'V11R1';
with x as
( select case when s.partitions = 0 and s.segsize = 0 then 'simple'
              when s.partitions = 0                   then 'segmented'
              when t.partKeyCOLNUM < 1 then s.type || ' ixPart'
              else                          s.type || ' tbPart' end ty
    from sysibm.sysTables t join sysibm.sysTablespace s
      on t.dbName = s.dbname and t.tsName = s.name
 )
select count(*), ty
    from x
    group by rollup(ty)
}¢--- A540769.WK.SQL(CATPK) cre=2014-06-12 mod=2014-06-12-10.59.29 A540769 -----
    -- packages bei denen gleichzeitig verschiedene Versionen laufen
select substr(strip(o.location) ||'.'|| strip(o.collid)
              ||'.'|| o.name, 1, 20)
    , date(o.timestamp) created, o.lastUsed
    , date(n.timestamp) newCre, n.lastUsed newLastUse
    , o.version oldVersion
    , n.version newVersion
    from sysibm.sysPackage o
      join sysibm.sysPackage n
        on o.location = n.location and o.collid = n.collid
            and o.name = n.name  and o.timestamp < n.timestamp
            and n.lastUsed > '01.01.1900'
            and o.lastUsed > date(n.timestamp) + 15 days
    where o.lastUsed > '10.12.2013'
        and o.name like '%'
    order by o.location, o.collid, o.name, o.timestamp
    with ur
;x;
select count(*), length(strip(Version, t))
    from sysibm.sysPackage
    group by length(strip(Version, t))
    with ur
}¢--- A540769.WK.SQL(CATPKCO) cre=2016-10-24 mod=2016-10-24-13.44.16 A540769 ---
with u as
(
  select 'pk' || copyid t, p.* from sysibm.sysPackage p
  union all select 'co' || copyid t, c.* from sysibm.sysPackCopy c
)
select *
   from u
   where location = '' and collid = 'DSNREXX_500'
;
select *
    from sysibm.syspksystem
}¢--- A540769.WK.SQL(CATPKDEP) cre=2014-03-10 mod=2015-11-25-09.40.48 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with d as
(  select dLocation, dCollid, dName, dContoken, dType
     from sysibm.syspackdep d
     where dType not in ('O', 'P') and
      ( (bQualifier = 'OA1P'
           and ( (bName = 'TTG503A1' and bType in ('G', 'M', 'P', 'T'))
              or (bName = 'TTG501A1' and bType in ('G', 'M', 'P', 'T'))
              or (bName like 'TMF%'  and bType in ('G', 'M', 'P', 'T'))
              or (bName = 'VTG501A1' and bType = 'V')
              or (bName = 'VTG501A1' and bType = 'V')
              or (bName = 'VTG503A1' and bType = 'V') ) ) )
   union all select dLocation, dCollid, dName, dContoken, dType
     from sysibm.syspackdep d
     where dType not in ('O', 'P') and
        bQualifier = 'TG01A1P'
           and (  (bName = 'A051H' and bType in ('P', 'R'))
               or (bName = 'A051A' and bType in ('P', 'R')))
)
, p as
(
  select collid, name, version, type, dType
      , p.validate || p.isolation || p.valid || p.operative vivo
      , p.contoken
      , p.timestamp
      , p.lastUsed
      , case when lastUsed  > current date - 10 days then 'lastUse'
             when timestamp > current timestamp -7 days then 'creTst'
             when not exists (select 1
            from sysibm.syspackage r
            where r.location = p.location and r.collid = p.collid
                and r.name = p.name
                and r.timestamp > p.timestamp
                and r.timestamp <= current timestamp - 7 days)
            then 'new7' else 'no' end doReb
    from d join sysibm.sysPackage p
    on dLocation = location and dCollid = collid
       and dName = name and dConToken = conToken
)
select doReb, lastUsed, timestamp
    , strip(collid) || '.' || strip(name) || ':' || strip(version)
    , p.*
  from p
order by collid, name, timestamp desc
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
;x;
with d as
(  select dLocation, dCollid, dName, dContoken, dType
     from sysibm.syspackdep d
     where dType not in ('O', 'P') and
        (bQualifier = 'OA1P'
           and ( (bName = 'TTG503A1' and bType in ('G', 'M', 'P', 'R'))
              or (bName = 'TTG501A1' and bType in ('G', 'M', 'P', 'R'))
              or (bName = 'VTG501A1' and bType = 'V')
              or (bName = 'VTG501A1' and bType = 'V')
              or (bName = 'VTG503A1' and bType = 'V') ) )
   group by dLocation, dCollid, dName, dContoken, dType
)
, p as
(
  select collid, name, version, type, dType
      , p.validate || p.isolation || p.valid || p.operative vivo
      , p.contoken
      , p.timestamp
      , p.lastUsed
      , value((select count(*)
            from sysibm.syspackage r
            where r.location = p.location and r.collid = p.collid
                and r.name = p.name
                and r.timestamp > p.timestamp
                and r.timestamp <= current timestamp - 7 days),0) nw7
    from d join sysibm.sysPackage p
    on dLocation = location and dCollid = collid
       and dName = name and dConToken = conToken
)
select * from p
order by 1, 2, 3, 4
;x;
select char(', ''' || strip(pk.NAME) || '''', 12) pkg
  , max(pcTimestamp) pc
  from sysIbm.sysPackage pk
  where  (pk.location, pk.collid, pk.name, pk.conToken) in
  (select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
    from sysIbm.sysPackDep pkd
    where  (pkd.bQualifier, pkd.bName) in
    (select t.creator, t.name
      from sysIbm.sysTables t
      where t.type not in ('A', 'V') and  t.name like 'TNG005A1%'
  ) )
  group by pk.name
  order by pk.name
;x;
select distinct p.collid, p.Name, p.version, p.type
      , p.validate || p.isolation || p.valid || p.operative vivo

/*      value((select count(*)
     from sysibm.syspackage r
       where r.location = p.location and r.collid = p.collid
        and r.name = p.name
        and r.timestamp > p.timestamp
        and r.timestamp < current timestamp - 7 days),0)   */
   from sysibm.syspackdep d join sysibm.syspackage p' ,
    'on p.location = d.dLocation and p.collid = d.dCollid' ,
       'and p.name = d.dName and  p.conToken = d.dConToken' ,
select char(', ''' || strip(pk.NAME) || '''', 12) pkg
  , left('-- ' || char(max(pcTimestamp)), 19) pc
  , max(lastUsed) lastUsed
  from sysIbm.sysPackage pk
  where  (pk.location, pk.collid, pk.name, pk.conToken) in
  (select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
    from sysIbm.sysPackDep pkd
    where  (pkd.bQualifier, pkd.bName) in
    (select t.creator, t.name
      from sysIbm.sysTables t
      where t.type in ('T') and t.creator = 'OA1P'
          and t.name in ('TDI002A1'
             --         ,'TWQX14A1'
             --         ,'TWQX13A1'
             --         ,'TWQ143A1'
                        )
  ) )
  group by pk.name
  order by pk.name
}¢--- A540769.WK.SQL(CATPKD2) cre=2015-11-14 mod=2015-11-14-20.41.20 A540769 ---
-- packDep: index ==> table
with d as
(  select d.dLocation, d.dCollid, d.dName, d.dContoken, d.dType, d.bType
       , i.creator cr, i.name tb,             l.bType lbTy
       , p.valid, p.operative
     from sysibm.syspackdep d
       join sysibm.sysindexes i
         on d.bQualifier = i.creator and d.bName = i.name
       left join sysibm.syspackdep l
         on d.dLocation = l.dLocation and d.dCollid = l.dCollid
           and d.dName = l.dName and d.dContoken = l.dContoken
           and d.dType = l.dType
           and l.bQualifier = i.tbcreator and l.bName = i.tbName
       left join sysibm.syspackage p
         on d.dLocation = p.Location and d.dCollid = p.Collid
           and d.dName = p.Name and d.dContoken = p.Contoken
     where d.dType not in ('O', 'P')
      -- and d.dLocation = '' and d.dCollid like 'M%'

)
select substr(strip(cr) || '.' || strip(tb), 1, 20)
          , bType, dType, lbTy, valid, operative
     , strip(dCollid) || '.' || strip(dName)
          || ':' || strip(hex(dContoken))
   from d
   where lbTy is null and valid = 'Y'
                      -- and tTy <> 'G'
fetch first 100 rows only
;x;
-- packDep: ts ==> table
with d as
(  select d.dLocation, d.dCollid, d.dName, d.dContoken, d.dType, d.bType
       , t.creator cr, t.name tb, t.type tTy, l.bType lbTy
       , p.valid, p.operative, s.nTables
     from sysibm.syspackdep d join sysibm.sysTables t
         on d.bQualifier = t.dbName  and d.bName = t.tsName
           and t.type not in ('A', 'V')
       left join sysibm.systablespace s
         on t.dbName = s.dbName and t.tsName = s.name
       left join sysibm.syspackdep l
         on d.dLocation = l.dLocation and d.dCollid = l.dCollid
           and d.dName = l.dName and d.dContoken = l.dContoken
           and d.dType = l.dType
           and l.bQualifier = t.creator and l.bName = t.Name
       left join sysibm.syspackage p
         on d.dLocation = p.Location and d.dCollid = p.Collid
           and d.dName = p.Name and d.dContoken = p.Contoken
     where d.dType not in ('O', 'P')
      --   and d.dLocation = '' and d.dCollid like 'N%'

)
select substr(strip(cr) || '.' || strip(tb), 1, 20)
     , tTy, bType, dType, lbTy, valid, operative, nTables
     , strip(dCollid) || '.' || strip(dName)
          || ':' || strip(hex(dContoken))
   from d
   where lbTy is null and valid = 'Y'  and nTables <= 1
                      and tTy <> 'G'
fetch first 100 rows only
;x;
-- packDep: table ==> TS
with d as
(  select d.dLocation, d.dCollid, d.dName, d.dContoken, d.dType, d.bType
       , t.creator cr, t.name tb, t.type tTy, l.bType lbTy
       , p.valid, p.operative
     from sysibm.syspackdep d join sysibm.sysTables t
         on d.bQualifier = t.creator and d.bName = t.name
           and t.type not in ('A', 'V')
       left join sysibm.syspackdep l
         on d.dLocation = l.dLocation and d.dCollid = l.dCollid
           and d.dName = l.dName and d.dContoken = l.dContoken
           and d.dType = l.dType
           and l.bQualifier = t.dbName and l.bName = t.tsName
       left join sysibm.syspackage p
         on d.dLocation = p.Location and d.dCollid = p.Collid
           and d.dName = p.Name and d.dContoken = p.Contoken
     where d.dType not in ('O', 'P')
           and d.dLocation = '' and d.dCollid =    'NJ'

)
select substr(strip(cr) || '.' || strip(tb), 1, 20)
     , tTy, bType, dType, lbTy, valid, operative
     , strip(dCollid) || '.' || strip(dName)
          || ':' || strip(hex(dContoken))
   from d
   where lbTy is null and valid = 'Y' and bType <> 'G'
fetch first 100 rows only
;x;
with d as
(  select d.dLocation, d.dCollid, d.dName, d.dContoken, d.dType, d.bType
       , t.creator cr, t.name tb, t.type tTy, l.bType lbTy
       , p.valid, p.operative
     from sysibm.syspackdep d join sysibm.sysTables t
         on d.bQualifier = t.creator and d.bName = t.name
           and t.type not in ('A', 'V')
       left join sysibm.syspackdep l
         on d.dLocation = l.dLocation and d.dCollid = l.dCollid
           and d.dName = l.dName and d.dContoken = l.dContoken
           and d.dType = l.dType
           and l.bQualifier = t.dbName and l.bName = t.tsName
       left join sysibm.syspackage p
         on d.dLocation = p.Location and d.dCollid = p.Collid
           and d.dName = p.Name and d.dContoken = p.Contoken
     where d.dType not in ('O', 'P')
           and d.dLocation = '' and d.dCollid =    'NJ'

)
select substr(strip(cr) || '.' || strip(tb), 1, 20)
     , tTy, bType, dType, lbTy, valid, operative
     , strip(dCollid) || '.' || strip(dName)
          || ':' || strip(hex(dContoken))
   from d
   where lbTy is null and valid = 'Y' and bType <> 'G'
fetch first 100 rows only
;x;
              or (bName = 'VTG501A1' and bType = 'V')
with d as
(  select dLocation, dCollid, dName, dContoken, dType
     from sysibm.syspackdep d
     where dType not in ('O', 'P') and
        (bQualifier = 'OA1P'
           and ( (bName = 'TTG503A1' and bType in ('G', 'M', 'P', 'T'))
              or (bName = 'TTG501A1' and bType in ('G', 'M', 'P', 'T'))
              or (bName like 'TMF%'  and bType in ('G', 'M', 'P', 'T'))
              or (bName = 'VTG501A1' and bType = 'V')
              or (bName = 'VTG501A1' and bType = 'V')
              or (bName = 'VTG503A1' and bType = 'V') ) )
   group by dLocation, dCollid, dName, dContoken, dType
)
, p as
(
  select collid, name, version, type, dType
      , p.validate || p.isolation || p.valid || p.operative vivo
      , p.contoken
      , p.timestamp
      , p.lastUsed
      , case when lastUsed  > current date - 10 days then 'lastUse'
             when timestamp > current timestamp -7 days then 'creTst'
             when not exists (select 1
            from sysibm.syspackage r
            where r.location = p.location and r.collid = p.collid
                and r.name = p.name
                and r.timestamp > p.timestamp
                and r.timestamp <= current timestamp - 7 days)
            then 'new7' else 'no' end doReb
    from d join sysibm.sysPackage p
    on dLocation = location and dCollid = collid
       and dName = name and dConToken = conToken
)
select doReb, lastUsed, timestamp
    , strip(collid) || '.' || strip(name) || ':' || strip(version)
    , p.*
  from p
order by collid, name, timestamp desc
;x;
with d as
(  select dLocation, dCollid, dName, dContoken, dType
     from sysibm.syspackdep d
     where dType not in ('O', 'P') and
        (bQualifier = 'OA1P'
           and ( (bName = 'TTG503A1' and bType in ('G', 'M', 'P', 'R'))
              or (bName = 'TTG501A1' and bType in ('G', 'M', 'P', 'R'))
              or (bName = 'VTG501A1' and bType = 'V')
              or (bName = 'VTG501A1' and bType = 'V')
              or (bName = 'VTG503A1' and bType = 'V') ) )
   group by dLocation, dCollid, dName, dContoken, dType
)
, p as
(
  select collid, name, version, type, dType
      , p.validate || p.isolation || p.valid || p.operative vivo
      , p.contoken
      , p.timestamp
      , p.lastUsed
      , value((select count(*)
            from sysibm.syspackage r
            where r.location = p.location and r.collid = p.collid
                and r.name = p.name
                and r.timestamp > p.timestamp
                and r.timestamp <= current timestamp - 7 days),0) nw7
    from d join sysibm.sysPackage p
    on dLocation = location and dCollid = collid
       and dName = name and dConToken = conToken
)
select * from p
order by 1, 2, 3, 4
;x;
select char(', ''' || strip(pk.NAME) || '''', 12) pkg
  , max(pcTimestamp) pc
  from sysIbm.sysPackage pk
  where  (pk.location, pk.collid, pk.name, pk.conToken) in
  (select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
    from sysIbm.sysPackDep pkd
    where  (pkd.bQualifier, pkd.bName) in
    (select t.creator, t.name
      from sysIbm.sysTables t
      where t.type not in ('A', 'V') and  t.name like 'TNG005A1%'
  ) )
  group by pk.name
  order by pk.name
;x;
select distinct p.collid, p.Name, p.version, p.type
      , p.validate || p.isolation || p.valid || p.operative vivo

/*      value((select count(*)
     from sysibm.syspackage r
       where r.location = p.location and r.collid = p.collid
        and r.name = p.name
        and r.timestamp > p.timestamp
        and r.timestamp < current timestamp - 7 days),0)   */
   from sysibm.syspackdep d join sysibm.syspackage p' ,
    'on p.location = d.dLocation and p.collid = d.dCollid' ,
       'and p.name = d.dName and  p.conToken = d.dConToken' ,
select char(', ''' || strip(pk.NAME) || '''', 12) pkg
  , left('-- ' || char(max(pcTimestamp)), 19) pc
  , max(lastUsed) lastUsed
  from sysIbm.sysPackage pk
  where  (pk.location, pk.collid, pk.name, pk.conToken) in
  (select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
    from sysIbm.sysPackDep pkd
    where  (pkd.bQualifier, pkd.bName) in
    (select t.creator, t.name
      from sysIbm.sysTables t
      where t.type in ('T') and t.creator = 'OA1P'
          and t.name in ('TDI002A1'
             --         ,'TWQX14A1'
             --         ,'TWQX13A1'
             --         ,'TWQ143A1'
                        )
  ) )
  group by pk.name
  order by pk.name
}¢--- A540769.WK.SQL(CATPKG) cre=2010-02-13 mod=2013-03-08-11.27.28 A540769 ----
select length(version), lastUsed, bindtime, version, p.*
    from sysibm.syspackage p
    where lastUsed > date(timestamp('2002-01-01-00.00.00'))
       or pctimestamp > '2000-01-01-00.00.00'
    order by length(version) desc
    fetch first 100 rows only
;;;
select count(*), lastUsed
    from sysibm.syspackage p
    group by lastUsed
order by lastUsed
    fetch first 100 rows only
    ;;;,
select length(version), version, p.*
    from sysibm.syspackage p
    order by length(version) desc
    fetch first 100 rows only
;;;
select count(*), dbProtocol, valid, operative
    from sysibm.syspackage
    group by dbProtocol, valid, operative
    order by dbProtocol, valid, operative
    with ur
;
x;
select substr(collid, 1, 8) coll,
       substr(name  , 1, 8) pkg ,
       dbProtocol,
       hex(contoken),
       p.*
    from sysibm.sysPackage p
    where conToken = x'18B70ABB0DFD8CC6'
    ;
    where name in ('TP5000' ,
                   'YCDSGET',
                   'YCDUVGE',
                   'YDESTEU',
                   'YDIEURE',
                   'YDIT001',
                   'YDIT002',
                   'YDIT003',
                   'YDIT004',
                   'YTPFLAG',
                   'YTPOBS' ,
                   'YTPTPS' ,
                   'YTREDB2')
    order by 2, 4, 1
    with ur
}¢--- A540769.WK.SQL(CATPKGCN) cre=2012-09-25 mod=2016-10-24-11.07.46 A540769 ---
set current application compatibility 'V11R1';
with p2 as
(
  select p.*
      , dense_rank() over(partition by location, collid, name
                          order by lastUsed desc) usSeq
      , row_number() over(partition by location, collid, name
                          order by pcTimestamp desc) pcSeq
    from sysibm.syspackage p
)
, p  as
(
  select case
           when sysentries <> 0 then '0sysEnt<>0'
           when timestamp > current timestamp - 1 month then '0creM'
           when lastUsed > current date - 1 month then '0lastM'
           when valid = 'N' and lastUsed < current date -  1 year
                          then '1validN'
           when pcSeq <= 2 then '0pc2'
           when lastUsed >= current date - 1 year and usSeq <= 2
                          then '0us2'
                          else '1else' end delRea
      , p2.*
    from p2
)
select left(delRea, 1) del, substr(delRea, 2) reason,  count(*) pkgVers
    , sum(case when pcSeq = 1 then 1 else 0 end) pkg
    , sum(case when pcSeq <= 2 then 1 else 0 end) pkg2V
    , sum(case when pcSeq <= 3 then 1 else 0 end) pkg3V
    , sum(case when usSeq <= 1 then 1 else 0 end) use1
    , sum(case when usSeq <= 2 then 1 else 0 end) use2
    , sum(case when usSeq <= 3 then 1 else 0 end) use3
    , sum(case when lastUsed > current date - 1 year
                   then 1 else 0 end) usedLastY
    from p
    group by rollup(left(delRea, 1), substr(delRea, 2))
;x;
, p as
(

select valid, operative, count(*) pkgVers
    , sum(case when pcSeq = 1 then 1 else 0 end) pkg
    , sum(case when pcSeq <= 2 then 1 else 0 end) pkg2V
    , sum(case when pcSeq <= 3 then 1 else 0 end) pkg3V
    , sum(case when usSeq <= 1 then 1 else 0 end) use1
    , sum(case when usSeq <= 2 then 1 else 0 end) use2
    , sum(case when usSeq <= 3 then 1 else 0 end) use3
    , sum(case when lastUsed > current date - 1 year
                   then 1 else 0 end) usedLastY
    , sum(case when pcSeq <= 3 then 1
               when lastUsed >= current date - 1 year
                   then 1 else 0 end) pkg3VorLaY
    , sum(case when pcSeq <= 2 then 1
               when lastUsed < current date - 1 year then 0
               when usSeq <= 2 then 1
               else 0 end) pkg2V2ULaY
    , sum(case when sysEntries  = 0 then 0 else 1 end) sysEntNot0
    from p
    group by rollup(valid, operative)
;x;
select *
    from sysibm.syspackage p
    where sysEntries <> 0
;x;
    group by rollup(pcSeq)
    order by pcSeq
    ;x;   -----------
select substr(creator, 1, 8) cre, substr(owner, 1, 8) owner, count(*)
    from sysibm.syspackage
    where timestamp > '2012-08-01-00.00.00'
    group by creator, owner
    with ur
    ;x;
with m (m, x) as
(  select trunc_timestamp(current timestamp, 'mon') , 0
       from sysibm.sysDummy1
   union all select m - 1  month, x+1
       from m where x < 30
)
, t (m, cTst) as
(
select trunc_timestamp(timestamp, 'mon'), count(*)
    from sysibm.syspackage
    group by trunc_timestamp(timestamp, 'mon')
)
, p (m, cPC) as
(
select trunc_timestamp(pctimestamp, 'mon'), count(*)
    from sysibm.syspackage
    group by trunc_timestamp(pctimestamp, 'mon')
)
select substr(char(m.m), 1, 7) mon, cTst, cPc
    from m left join p on m.m = p.m
           left join t on m.m = t.m
    order by m.m desc
    with ur
;X;
select trunc_timestamp(timestamp, 'mon'), count(*)
    from sysibm.syspackage
    group by trunc_timestamp(timestamp, 'mon')
    order by trunc_timestamp(timestamp, 'mon') desc
    with ur
}¢--- A540769.WK.SQL(CATPKGDP) cre=2007-04-23 mod=2010-05-11-17.15.21 A540769 ---
with t as
(
select char(bQualifier, 8) cr, char(bName, 12) tb,
       't' ty
 -- char(strip(bQualifier) || '.' || strip(bName), 24), -- btype,
     --        char(strip(dCollid) || '.'  || strip(dName), 24),
    --           count(*)
    from sysibm.syspackdep
    where(( dCollid = 'CD' and dName in
                ('YCDOGEE' ,
                 'YCDSGET' ,
                 'YCDX031' )
      ) or ( dCollid = 'CT' and dName in
                ('YCTMRLS' ,
                 'YCTM150' ,
                 'YCTM200' ,
                 'YCTM201' ,
                 'YCTM204' ,
                 'YCTM206' ,
                 'YCTM214' ,
                 'YCTM250' ,
                 'YCTM300' ,
                 'YCTM350' ,
                 'YCTM353' ,
                 'YCTM358' ,
                 'YCTSRLS' ,
                 'YCTSVPT' ,
                 'YCTS100' ,
                 'YCTS150' ,
                 'YCTS200' ,
                 'YCTS250' ,
                 'YCTS300' ,
                 'YCTS350' ,
                 'YCTS400' ,
                 'YCTTRA' )
      ) or ( dCollid = 'CZ' and dName in
                ('YCZAURA' ,
                 'YCZM005' ,
                 'YCZM025' ,
                 'YCZM095' ,
                 'YCZM098' ,
                 'YCZM100' ,
                 'YCZM101' ,
                 'YCZM103' ,
                 'YCZM106' ,
                 'YCZM107' ,
                 'YCZM300' ,
                 'YCZPARS' ,
                 'YCZT005' ,
                 'YCZT025' ,
                 'YCZT095' ,
                 'YCZT098' ,
                 'YCZT100' ,
                 'YCZT101' ,
                 'YCZT103' ,
                 'YCZT106' ,
                 'YCZT107' ,
                 'YCZT300' ,
                 'YCZUCOP' )
      ) or ( dCollid = 'RM' and dName in
                ('YRMCGP' ,
                 'YRMKCG' )
      )) and bType = 'T'
    group by bQualifier, bName
)
select cr, tb, closeRule,
       'alter tablespace ' || strip(c.dbName) || '.' || strip(c.name)
            || ' closeRule no;'
       from t, sysibm.sysTables c, sysibm.sysTablespace s
       where cr = c.creator and tb = c.name
         and c.dbName = s.dbName and c.tsName = s.name
union all select cr, tb, closeRule,
       'alter index ' || strip(creator) || '.' || strip(name)
            || ' closeRule no;'
       from t, sysibm.sysIndexes c
       where cr = tbCreator and tb = tbName
    order by cr, tb, 4
    with ur
    ; x ;
select char(strip(bQualifier) || '.' || strip(bName), 24), btype,
               char(strip(dCollid) || '.'  || strip(dName), 24),
               count(*)
    from sysibm.syspackdep
    where bName like 'TNI250A%'
    group by bQualifier, bName, bType, dCollid, dName
    order by                            dCollid, dName
    with ur
    ; x ;
with tc as
(
select dLocation, dCollid, dName,
        max(char(pcTimeStamp) || dContoken) tc
  --    char(strip(dCollid) || '.'  || strip(dName), 24) "package",
  --    pcTimeStamp "preCompile",
  --    char(pcTimeStamp) "char preCompile",
  --    hex(dConToken) "conToken"
    from sysibm.syspackdep
    left join sysibm.syspackage
        on dLocation = location
        and dCollid = collid and dName = name and dConToken = conToken
    where -- bType in ('P', 'R')
            bQualifier = 'OA1A' and bName = 'TMF150A1'
      group by dLocation, dCollid, dName
)
select dLocation, dCollid, dName,
       substr(tc, 27) dconToken,
       timestamp(left(tc, 26)) pcTimestamp
    from tc
    order by 1
    ;
x
select char(strip(bQualifier) || '.' || strip(bName), 24), btype,
               char(strip(dCollid) || '.'  || strip(dName), 24)
    from sysibm.syspackdep
    where dName = 'DBWK411'
    ;
x
select distinct
        char(strip(dCollid) || '.'  || strip(dName), 24) "package",
        pcTimeStamp "preCompile",
        hex(dConToken) "conToken"
    from sysibm.syspackdep
    left join sysibm.syspackage
        on dCollid = collid and dName = name and dConToken = conToken
    where bType in ('P', 'R')
        and bQualifier like 'BJA_0001'
    order by 1
    ;
    x
select distinct coalesce(s.dep, t.dep), s.ty, t.ty
    from
      (
        select 'sp' ty,
                char(strip(dCollid)||'.'||strip(dName), 24) dep
            from sysibm.syspackdep
            where bType in ('P', 'R')
                and bQualifier like 'BJA_0001'
      ) s
    full join
      (
        select 'ta' ty,
                char(strip(dCollid) || '.'  || strip(dName), 24) dep
            from sysibm.syspackdep
                where -- bType in ('T') and
                    (bQualifier, bName) in
                        (  select creator, name
                               from sysibm.sysTables
                               where dbName like 'BJA_0001'
                         )
      ) t
    on t.dep = s.dep
    order by 1
;
 x
select char(strip(bQualifier) || '.' || strip(bName), 24), btype,
               char(strip(dCollid) || '.'  || strip(dName), 24)
    from sysibm.syspackdep
    where -- bType in ('T') and
            (bQualifier, bName) in
        (  select creator, name
             from sysibm.sysTables
             where dbName like 'BJA_0001'
        )
    order by 1
    ;
    x
select char(strip(bQualifier) || '.' || strip(bName), 24), btype,
               char(strip(dCollid) || '.'  || strip(dName), 24)
    from sysibm.syspackdep
    where bType in ('P', 'R')
        and bQualifier like 'BJA_0001'
    order by 1
    ;
    x
select char(bname,12), char(bqualifier,12), btype
    from sysibm.syspackdep
    where bname = 'BJA80001'
    ;
select char(bname,12), char(bqualifier,12), btype
    from sysibm.syspackdep
    where dname = 'DBWK2'
;
x
select distinct p.collid, p.Name, p.version, p.type from
sysibm.syspackdep d join sysibm.syspackage p on p.location =
d.dLocation and p.collid = d.dCollid and p.name = d.dName
and  p.conToken = d.dConToken where ( bQualifier = 'OA1A03'
and bName in ('TAV408A1'))
;
 x
select distinct p.collid, p.Name, p.version, p.type from
sysibm.syspackdep d join sysibm.syspackage p on p.location =
d.dLocation and p.collid = d.dCollid and p.name = d.dName
and  p.conToken = d.dConToken where ( bQualifier = 'VDPS2'
and bName in ('DTUNDERFIXCOMQ', 'DTUNDERFIXCOMP', 'IIXDU',
'IIXDUZWEI')) or ( bQualifier = 'VDPS3 ' and bName in ('vdps
table drei ')) or ( bQualifier = 'EFG' and bName in ('HIK'))
or ( (bQualifier, bName) in ( select tbcreator, tbname from
sysibm.sysindexes where ( creator = 'VDPS2' and name in
('IIXDU', 'IIXDUZWEI')) ) )
;
select distinct p.collid, p.Name, p.version, p.type from sysibm.syspackd
in sysibm.syspackage p on p.location = d.dLocation and p.collid = d.dCol
 p.name = d.dName and  p.conToken = d.dConToken where ( bQualifier = 'VD
d bName in ('DTUNDERFIXCOMQ', 'DTUNDERFIXCOMP', 'IIXDU', 'IIXDUZWEI')) o
alifier = 'VDPS3 ' and bName in ('vdps table drei ')) or ( bQualifier =
nd bName in ('HIK')) or ( (bQualifier, bName) in ( select tbcreator, tbn
m sysibm.sysindexes where ( creator = 'VDPS2' and name in ('IIXDU', 'IIX
)) ) )
;
select char(bname,12), char(bqualifier,12), btype
    from sysibm.syspackdep
    where dname = 'DBWK2'
    ;
select distinct char(p.collid, 8), char(p.Name,12), char(p.version, 30),
                p.type
    from sysibm.syspackdep d join sysibm.syspackage p
        on p.location = d.dLocation and p.collid = d.dCollid
           and p.name = d.dName and  p.conToken = d.dConToken
    where
    --  ( bType in ('A', 'M', 'S', 'T', 'V') and
             (   ( bQualifier = 'gDB9998' and
                   bName in ('TWK003A', 'TWK001A')
                 ) or
                 ( bQualifier = 'dGDB9998' and
                   bName in ('TWK003A', 'TWK001A')
                 ) or
                 ( (bQualifier, bName) in
                     ( select tbcreator, tbname
                         from sysibm.sysindexes
                         where creator = 'GDB9998' and
                               name = 'IQQ051A0'
                     )
                 )
             )
    --  )
;
x
}¢--- A540769.WK.SQL(CATPKGDQ) cre=2011-09-21 mod=2011-09-22-11.41.44 A540769 ---
with p (col, pkg) as
(           select 'PC  ',   'YPCSPER' from sysIbm.sysDummy1
  union all select 'PC  ',   'YPCTECH' from sysIbm.sysDummy1
  union all select 'PC01',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC02',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC03',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC04',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC05',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC06',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC07',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC08',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC09',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC10',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC12',   'YPC0680' from sysIbm.sysDummy1
  union all select 'PC13',   'YPCLOCA' from sysIbm.sysDummy1
  union all select 'PC13',   'YPC0680' from sysIbm.sysDummy1
)
select bType, char(bQualifier, 8) cr, char(bName, 12) tb, count(*)
    from sysibm.syspackdep d
    where dLocation = ''
      and (dCollid, dName) in (select * from p)
    group by bType, bQualifier, bName
    order by bType, bQualifier, bName,1,2,3
;;
select bType, char(bQualifier, 8) cr, char(bName, 12) tb,
       dType, substr(dCollid, 1, 8) col,
              substr(dName  , 1, 8) pkg, d.*
    from sysibm.syspackdep d
    where (dCollid, dName) in (select * from p)
    order by bType, bQualifier, bName,1,2,3
;;
}¢--- A540769.WK.SQL(CATPKGIX) cre=2010-02-19 mod=2010-11-30-13.33.36 A540769 ---
                   -- index Zugriffe pro Package auf TMF150A1

with v as          -- packages die unsere Tabelle benutzen
(                  -- mit neuestem PreCompile pro Package
select dLocation loc, dCollid col, dName pkg,
       substr(max(char(p.pcTimeStamp) || p.version), 27) ver
    from sysibm.syspackdep d
        left join sysibm.sysPackage p
        on                   p.location = d.dLocation
                         and p.Collid = d.dCollid
                         and p.name = d.dName
                         and p.conToken = d.dConToken
                         and p.owner = 'CMNBATCH'
    where -- bType in ('P', 'R')
            bQualifier = 'OA1T' and bName = 'TMF150A1'
      group by dLocation, dCollid, dName
)
, b as             -- neusten bind pro package
(
select v.*, (select max(e.bind_time)
                 from cmnbatch.plan_table e
                 where  e.COLLID    = v.col
                    and e.PROGNAME  = v.pkg
                    and e. VERSION   = v.ver
            ) biTi
    from v
)
                   -- explain rows dieser pacakges MIT unserer tabelle
                   -- groupiert pro index
select substr(col, 1, 8) col, substr(pkg, 1, 8) pkg,
       substr(ver, 1, 20) vers,
       TYPE,   ACCESS,  INDEX,
       min(mc_o) MC_O, max(mc_o) MC_O, count(*) count,
       biTi bindTime
    from b
        left join cmnBatch.plan_view1 v
        on      COLLID    = col
            and PROGNAME  = pkg
            and VERSION   = ver
            and BIND_TIME = biTi
            and table     = 'TMF150A1'
    group by loc, col, pkg, ver, biTi, TYPE,   ACCESS,  INDEX
    order by loc, col, pkg, ver, biTi, TYPE,   ACCESS,  INDEX
    with ur
;;;
-- neuer Versuch, ohne group mit fetch first
select substr(strip(location) || '.' || strip(collid)
           || '.' || strip(name) || ':' || strip(version), 1, 30),
           pcTimestamp, p.*
    from sysibm.sysPackage p
    where (name like 'MF%' or name like 'YMF%' or name like 'YYMF%')
    and (collid, contoken) in
        ( select collid, contoken
              from sysibm.sysPackage c
              where c.location = p.location
                and c.name     = p.name
              order by pcTimestamp desc, pcTimestamp desc,
                       collid asc
              fetch first row only
        )
    order by location, collid, name, version
;,
}¢--- A540769.WK.SQL(CATPKGLI) cre=2012-01-30 mod=2012-02-03-17.10.33 A540769 ---
with l (pl, cx, new, old) as
(                 -- start
  select name, 0, varchar('', 500), varchar('', 500)
    from sysibm.sysPlan
    where name like 'NF5%'
  union all select l.pl, l.cx+1
      , l.new || case when collid like 'A1%' or collid like 'A2%'
                                    or collid like 'NTA%' then ''
  else ', '
      || case when p.location='' then '' else strip(location)||'.' end
      || strip(collid) || '.' || strip(name) end
      , l.old || ', '
      || case when p.location='' then '' else strip(location)||'.' end
      || strip(collid) || '.' || strip(name)
      from l
          join sysibm.sysPackList p
          on p.planName = l.pl and p.seqNo = cx+1
          where cx < 99999
)
select *
  from l a
    where cx=(select max(cx) from l r where a.pl = r.pl)
  order by pl
  with ur
;;;
select 'BIND PLAN('||strip(pl)||')'||
'   OWNER(S101869)        QUALIFIER(OA1T)+'
    ||' PKLIST('
    ||case when new = '' then '' else substr(new, 3) end new
   ,  ')+'
  from l a
    where cx=(select max(cx) from l r where a.pl = r.pl)
;;;
with s as
( select name
  , ( select count(*)
        from sysibm.sysPackList l
        where l.planName = p.name
            and (collid like 'A1%' or collid like 'A2%')
    ) a12
    from sysibm.sysplan p
)
select count(*)
      , sum(case when a12 > 0 then 1 else 0 end) "a12>0"
      , sum(case when a12 = 0 then 1 else 0 end) "a12=0"
      , sum(case when a12 = 1 then 1 else 0 end) "a12=1"
      , sum(case when a12 = 2 then 1 else 0 end) "a12=2"
      , sum(case when a12 = 3 then 1 else 0 end) "a12=3"
      , sum(case when a12 > 3 then 1 else 0 end) "a12>3"
    from s
    with ur
;;;
select collid, count(*)
    from sysibm.sysPackList
    where collid like 'A1%' or collid like 'A2%'
    group by collid
    order by collid
    with ur
;
select current server, count(*)
       , sum(case when collid = 'A1P' then 1 else 0 end) a1p
       , sum(case when collid = 'A2P' then 1 else 0 end) a2p
       , sum(case when collid = 'A1T' then 1 else 0 end) a1t
       , sum(case when collid = 'A2T' then 1 else 0 end) a2t
       , sum(case when collid = 'A1A' then 1 else 0 end) a1a
       , sum(case when collid = 'A2A' then 1 else 0 end) a2a
       , current timestamp
    from sysibm.sysPackList
    with ur
;;;
select planName, count(*)
       , max(case when collid <> 'A1P' then ''
             else substr(strip(char(seqNo)) || ': '
                      || strip(location) || '.' || strip(collid) || '.'
                      || strip(name), 1, 20) end)
       , max(case when collid <> 'A2P' then ''
             else substr(strip(char(seqNo)) || ': '
                      || strip(location) || '.' || strip(collid) || '.'
                      || strip(name), 1, 20) end)
       , max(case when collid <> 'A1T' then ''
             else substr(strip(char(seqNo)) || ': '
                      || strip(location) || '.' || strip(collid) || '.'
                      || strip(name), 1, 20) end)
       , max(case when collid <> 'A2T' then ''
             else substr(strip(char(seqNo)) || ': '
                      || strip(location) || '.' || strip(collid) || '.'
                      || strip(name), 1, 20) end)
       , max(case when collid <> 'A1A' then ''
             else substr(strip(char(seqNo)) || ': '
                      || strip(location) || '.' || strip(collid) || '.'
                      || strip(name), 1, 20) end)
       , max(case when collid <> 'A2A' then ''
             else substr(strip(char(seqNo)) || ': '
                      || strip(location) || '.' || strip(collid) || '.'
                      || strip(name), 1, 20) end)
    from sysibm.sysPackList
    where collid in ('A1A', 'A2A', 'A1T', 'A2T', 'A1P', 'A2P')
    group by planName
    with ur
}¢--- A540769.WK.SQL(CATPKGMG) cre=2012-01-27 mod=2012-06-25-07.51.24 A540769 ---
select *
    from sysibm.sysPackage
    where name = 'YRMVER'
;
select *
    from sysibm.sysPackCopy
    where name = 'YRMVER'
;;
with dt as
(
select dLOCATION, dCollid, dName, dContoken
       ,  max(translate(dType, 's ', '  NTOP', ' ')) --' ' normal
       || max(translate(dType, 'N ', 'N NTOP', ' ')) --NativeSqlRoutine
       || max(translate(dType, 'T ', 'T NTOP', ' ')) --Trigger
       || max(translate(dType, 'O ', 'O NTOP', ' ')) --Original
       || max(translate(dType, 'P ', 'P NTOP', ' ')) --Previous
       || max(translate(dType, '  ', '  NTOP', ' ')) --any others?
          dTypes
    from sysibm.sysPackDep
 -- where dLocation = '' and dcollid = 'MF' and dname like 'MF5%'
    group by dLocation, dCollid, dName, dContoken
)
select  dTypes, count(*)
    from dt
 -- where dLocation = '' and dcollid = 'MF'
    group by dTypes
}¢--- A540769.WK.SQL(CATPKGST) cre=2008-07-15 mod=2008-07-15-13.11.04 F540769 ---
select CHAR(strip(a.location) || '.'
        || strip(a.collid) || '.' || strip(a.name) || '.'
        || HEX(a.CONTOKEN) || '.' || strip(a.VERSION) , 80),
        a.seqNo, a.stmtno, a.stmt
    from sysibm.syspackstmt a, sysibm.syspackdep d
    where       a.location = d.dLocation
            and a.collid   = d.dCollid
            and a.name     = d.dName
            and a.contoken = d.dConToken
  --  and  bQualifier = 'GDB9998'
      and  bName   like 'TRT%'
     ; --                  and contoken = x'17CAABC306F936E8'
                           and stmtno = 3679
;
select distinct
        char(strip(dCollid) || '.'  || strip(dName), 24) "package",
        pcTimeStamp "preCompile",
        hex(dConToken) "conToken"
    from sysibm.syspackdep
    left join sysibm.syspackage
        on dCollid = collid and dName = name and dConToken = conToken
    where bType in ('P', 'R')
        and bQualifier like 'BJA_0001'
    order by 1
    ;
    x
x
select * -- count(*), seqno, sectno
    from sysibm.syspackstmt
    where  location = ''
      and  collid = 'CZ'   and name = 'YCZTCOC'
                           and contoken = x'17CAABC306F936E8'
                           and stmtno = 3679
;
x
select count(*), location, collid, name, hex(contoken), stmtno
    from sysibm.syspackstmt
    group by location, collid, name, hex(contoken), stmtno
    order by 1 desc
    fetch first 100 rows only
    with ur
;
    where  seqno = 10 and sectno = 10
    -- order by 2, 3
select * -- count(*), seqno, sectno
    from sysibm.syspackstmt
    where  seqno = 10 and sectno = 10
    -- order by 2, 3
select * -- count(*), seqno, sectno
    from sysibm.syspackstmt
    where  seqno = 10 and sectno = 10
    -- order by 2, 3
}¢--- A540769.WK.SQL(CATPKGVE) cre=2008-11-17 mod=2008-12-04-11.00.30 F540769 ---
select distinct
       --  char(strip(collid), 8)   collid,
       --  char(strip(pkg), 8)     pkg,
           char(strip(version), 26) version,
       --  contoken,  -- vovie,
       --  char(strip(owner), 8)    owner,
           bindTime
from
(
select     collid, name pkg, version, hex(conToken) conToken,
           valid || operative || validate || isolation || explain vovie,
           owner, bindTime
    from sysibm.sysPackage
union all select
      collid, progname pkg, version, '-- plan tb --' conToken,
           '     ' vovie,
           '     ' owner, bind_Time bindTime
    from cmnbatch.plan_table
    group by collid, progname, version, bind_time
) j
where pkg = 'YNI601G'
-- order by collid, pkg, version, bindTime, conToken
order by 1, 2
}¢--- A540769.WK.SQL(CATPKG2) cre=2013-02-19 mod=2013-02-19-18.55.13 A540769 ---
select collid, count(*), max(lastUsed), max(bindtime)
    from sysibm.sysPackage
    where collid like 'NTA%'
    group by collid
}¢--- A540769.WK.SQL(CATPKHIN) cre=2016-07-27 mod=2016-07-27-13.28.14 A540769 ---
select substr(optHint, 1, 8) optHint, lastUsed
     , ( select count(*) from sysibm.sysPackage n
              where n.location = p.location
                  and n.collid = p.collid and n.name = p.name
                  and n.timestamp > p.timestamp) newer
     , strip(collid) || '.' || strip(name) || '#' || strip(version)
     , p.*
    from sysibm.sysPackage p
    where opthint <> ''
    order by 2 desc
}¢--- A540769.WK.SQL(CATPKL) cre=2014-12-17 mod=2014-12-17-12.09.47 A540769 ----
select *
     from sysibm.sysPackList
     where planname = 'AUO9PLN3'
}¢--- A540769.WK.SQL(CATPKLIS) cre=2011-11-18 mod=2013-02-20-08.59.25 A540769 ---
select collid, count(*)
    from sysibm.syspacklist
    where collid like 'NTA%'
    group by collid
    order by collid
; x;
select max(seqno), count(*), count(distinct planName)
    from sysibm.syspacklist
    with ur
}¢--- A540769.WK.SQL(CATPKSTI) cre=2014-10-16 mod=2014-10-16-10.31.46 A540769 ---
     -- show statement id in hex, as shown in SMF
select seqNo, stmtNo, sectNo -- , stmt_id
           , hex(stmt_id) stmtIdHex -- in mainView wird hex ||
           , substr(statement, 1, 200)
    from sysibm.sysPackStmt
    where  name = 'YWBIO'                       -- package name
           and conToken = x'199D6BB10728C4FA'   -- im Report in hex
        order by seqno
}¢--- A540769.WK.SQL(CATPKSYS) cre=2016-10-21 mod=2016-10-21-09.48.37 A540769 ---
select *
    from sysibm.syspksystem
    where name = 'MF0000'
}¢--- A540769.WK.SQL(CATPKVER) cre=2016-08-29 mod=2016-09-07-16.41.38 A540769 ---
select substr(strip(p.collid) || '.' || p.name, 1, 20)
       , substr(p.version, 1, 30) pVersion
       , substr(o.version, 1, 30) oVersion
       , days(timestamp(o.lastUsed)) - days(p.timestamp)
       , p.lastUsed pLast
       , o.lastUsed oLast
       , p.timestamp pTimestamp
       , o.timestamp oTimestamp
       , p.pctimestamp pPcTimestamp
       , o.pctimestamp oPcTimestamp
       , p.*, o.*
    from sysibm.sysPackage p
      join sysibm.sysPackage o
        on         o.location = p.location
               and o.collid =  p.collid
               and o.name   =  p.name
               and ((   o.timestamp < p.timestamp
                    or  o.pcTimestamp < p.pctimestamp
                    ) and o.lastUsed > date(p.timestamp) + 3 days
                   )
    where p.lastUsed > current date - 100 days
         and o.lastUsed > current date - 200 days
    order by 4 desc, p.collid, p.name, p.version, p.version
    fetch first 1000 rows only
    with ur
;x;
select ( select count(*)
           from sysibm.sysPackage o
           where o.location = p.location
               and o.collid =  p.collid
               and o.name   =  p.name
               and ((   o.timestamp < p.timestamp
                    or  o.pcTimestamp < p.pctimestamp
                    ) and o.lastUsed > date(p.timestamp)
                   )
       )  cOld
    from sysibm.sysPackage p
    where lastUsed > current date - 10 days
    order by cOld desc
    fetch first 100 rows only
;x;
    group by collid, name
    having count(*) > 1
               , count(distinct version) cVers
               , collid, name
               , min(version), max(version)
               , min(timestamp), max(timestamp)
               , min(pcTimestamp), max(pcTimestamp)
    from sysibm.sysPackage
    where lastUsed > current date - 10 days
    group by collid, name
    having count(*) > 1
    order by 1 desc, collid, name
    fetch first 100 rows only
    with ur
select count(*), count(distinct conToken) cCon
               , count(distinct version) cVers
               , collid, name
               , min(version), max(version)
               , min(timestamp), max(timestamp)
               , min(pcTimestamp), max(pcTimestamp)
    from sysibm.sysPackage
    where lastUsed > current date - 10 days
    group by collid, name
    having count(*) > 1
    order by 1 desc, collid, name
    fetch first 100 rows only
    with ur
set current application compatibility 'V11R1';
with c2 as
(
   select p.*
      , min(3
      , row_number() over(partition by location, collid, name
             order by timestamp desc)) tSeq
      , case when lastUsed > current date - 7 days  then '1week'
             when lastUsed > current date - 1 month then '2mon'
             when lastUsed > current date - 1 year  then '3year'
             else '4old' end lastUse
     from sysibm.sysPackage p
)
, cp as
(
  select lastUse, valid, operative, dbProtocol, tSeq
     , count(*) v
     from c2
     group by lastUse, valid, operative, lastUse, dbProtocol, tSeq
)
select substr(lastUse, 2), valid, operative
        , dbProtocol, tSeq
        , sum(v) cVers
    from cp
    group by cube(operative, lastUse, valid, dbProtocol, tSeq)
    with ur
;x;
set current application compatibility 'V11R1';
with c2 as
(
   select p.*
      , row_number() over(partition by location, collid, name
             order by timestamp desc) tSeq
      , case when lastUsed > current date - 7 days  then '1week'
             when lastUsed > current date - 1 month then '2mon'
             when lastUsed > current date - 1 year  then '3year'
             else '4old' end lastUse
     from sysibm.sysPackage p
)
select count(*)
    , sum(case when valid = 'Y' then 1 else 0 end)  valid
    , sum(case when valid <> 'N' then 1 else 0 end)  valNotN
    , sum(case when lastUsed > current date - 400 days
                     then 1 else 0 end) n400
    , sum(case when tSeq <= 2 then 1 else 0 end) tSe2
    , sum(case when valid <> 'N'
                and lastUsed > current date - 400 days
                     then 1 else 0 end) val400
    , sum(case when valid <> 'N'
                and lastUsed > current date - 400 days
                and tSeq <= 2
                     then 1 else 0 end) val400se2
  from c2
  with ur
;x;

set current application compatibility 'V11R1';
with c2 as
(
   select p.*
      , case when lastUsed > current date - 7 days  then '1week'
             when lastUsed > current date - 1 month then '2mon'
             when lastUsed > current date - 1 year  then '3year'
             else '4old' end lastUse
     from sysibm.sysPackage p
)
, cp as
(
  select lastUse, count(*) v
     from c2
     group by location, collid, name, lastUse
)
select v, substr(lastUse, 2), count(*) cp, sum(v) cVers
    from cp
    group by rollup(lastUse, v)
    with ur
;x;
$#out                                              20160907 16:40:54
COL1                                                                         ...
               PVERSION                                                      ...
                                          OVERSION                           ...
                                                                     COL4    ...
                                                                          PLA...
                                                                             ...
                                                                             ...
                                                                             ...
                                                                             ...
COL1           PVERSION                   OVERSION                   COL4 PLA...
BP.YBPSTAM     BPST0001265BF6605F         BPST00007158D24A24         2738 07....
FADB2.SQLPCRTN 2012-06-19-16.38.27.690246 2011-04-29-09.57.59.868239 1520 12....
YY.YYVP03I     VIP00000766423EA3B         VIP00000736305E67B         1206 07....
PV.A5PO352     2013-06-30-02.47.27.062357 2013-02-06-15.43.51.069288 1126 04....
PV.A5PO355     2013-06-30-02.47.33.131118 2013-02-06-15.44.12.092387 1126 04....
PV.A5PO357     2013-06-30-02.47.48.905716 2013-02-06-15.44.53.919417 1126 04....
PV.A5PO358     2013-06-30-02.47.52.591627 2013-02-06-15.45.00.825749 1126 04....
PV.A5PO356     2013-08-13-17.20.46.968322 2013-02-06-15.44.21.687396 1118 04....
PC.YPCTECH     IVN00001466526B28E         IVN00000795E820606         1035 07....
ID.ID6500      EOSP000129                 EOSP0000375A1B0EB3          818 07....
YY.YITRFTG     TABS00045066F41A3A         TABS0001735AA7E592          663 07....
OE.YOEP209     OE00000242681203CA         OE0000007959BFC8B0          469 07....
NF.YNFIB11     IB000001126859705C         IB0000010066FA8024          370 07....
NF.YNFIB16     IB0000011368597090         IB00000103673B2D92          370 07....
WP.YWPRCBX     DBH000029868534338         DBH000022361B86A4E          368 07....
NF.YNFIB15     IB000001126859706D         IB0000010066FA8157          362 06....
WP.YWPR7BX     DBH00002986853443F         DBH000022361B86A6F          354 07....
AV02.YAVVDPS   AIS000076267C73C55         AIS00006766575B5B4          344 07....
NF.YNFIB13     IB0000011268597067         IB00000100671E0F56          294 06....
WU.YWUPUT      TU0000041167F69F13         TU000001735C1B6EB6          280 07....
WP.YWPR7HX     DBH000030668DE4CA3         DBH000022361B86A73          270 06....
WP.YWPR1P2     DBH000030668DA822D         DBH00001825DF61E7A          251 07....
WP.YWPR2HX     DBH000030668DE4C58         DBH000025264999E2E          251 07....
WP.YWPR3HX     DBH000030668DE4C61         DBH000025264999E74          251 06....
WP.YWPR6PX     DBH000030668D3A9F1         DBH000020560DB5945          250 07....
SW.YSWDB2U     SWTL000106687FAE88         SWTL000084641B206E          215 07....
CT.YCTS200     CANA000141692319B9         CANA000112655B2FB0          193 07....
WP.YWPL2P2     DBH000030668DE4C0E         DBH00001825DF61620          179 07....
FADB2.SQLPCRTN 2015-12-18-13.29.05.917548 2011-04-29-09.57.59.868239  130 07....
FADB2.SQLPLRTN 2014-09-18-18.32.39.433616 2011-11-04-00.14.33.902781  130 07....
ER.YERDGET     EAMR00023169CE491E         EAMR00019267274EF2          126 07....
CI.YCIAA1      NUGN0000806915E64A         NUGN000074686E8194          124 07....
VV.YVVZZ05     VDSS00041369B29034         VDSS00036466E30063          123 07....
FADB2.SQLPCRTN 2015-12-18-13.29.05.917548 2012-06-19-16.38.27.690246  106 07....
NI.NI7995      SIR0000297                 ALIS000169                  104 09....
ZV.YZVESRT     BESR00001269A42A86         ZED000007262B46532          100 13....
AV.YAVX051     AIS00008476A049E28         AIS00008376A01B827           88 12....
AV.YAVX101     AIS00008476A049E88         AIS00008376A01EB2B           87 10....
AV.YAVX051     AIS00008376A01B827         AIS00008476A049E28           64 13....
CK.YCKDCBB     DCA000041169A83452         DCA0000413699C5679           57 07....
KX.YKXGFMB     HYPO0001716A4E07D6         TLBO0000636989DACE           36 12....
KS.YKSCIFE     EBVV0006006A4BCCF7         EBVV00055167ED2C1C           27 07....
RM.YRMORGP     PARS0003716A14725C         PARS00032565007918           27 07....
WP.YWPR1PX     DBH00003346A3417E0         DBH000030668D3A9D7           27 07....
WP.YWPR2HX     DBH00003346A34181D         DBH000030668DE4C58           27 07....
WP.YWPR6PX     DBH00003346A3418BD         DBH000030668D3A9F1           27 07....
WP.YWPR1QX     DBH00003346A3417F6         DBH000030668DA8237           26 07....
WP.YWPR2PX     DBH00003346A341831         DBH000030668D3A9DB           26 07....
WP.YWPR3HX     DBH00003346A34184F         DBH000030668DE4C61           26 07....
WP.YWPR7HX     DBH00003346A3418D7         DBH000030668DE4CA3           26 07....
WA.WA5800      VEGA000516                 VEGA000509                   12 10....
WI.YWIABV      WS8I0009546A33AC1E         WS8I00092468B59A0A            7 07....
WC.YWC0150     CSPS0001436A292498         CSPS0001396A21B6AD            4 11....
53 rows fetched: select substr(strip(p.collid) || '.' || p.name, 1, 20) , ...
fatal error in WSH: SQLCODE = -104: ILLEGAL SYMBOL "X". SOME SYMBOLS THAT MIGHT
    BE LEGAL ARE: <ERR_STMT> <WNG_STMT> GET SQL SAVEPOINT HOLD FREE
    ASSOCIATE
src x
  > <<<pos 1 of 1<<<
sql = x
sqlCode 0: rollback
$#out
}¢--- A540769.WK.SQL(CATPLACL) cre=2016-03-09 mod=2016-03-09-21.35.14 A540769 ---
set current application compatibility 'V11R1';
with p as
(
  select *
     from sysibm.sysPlan p
  -- where name like 'R%'
)
, li as
(
  select planName pl, case when location = '' then ''
                  else strip(location) || '.' end
       || strip(collid) || '.' || strip(name) col
      from sysibm.sysPackList pl
)
, lu (pl, lst, la, seq) as
(
  select name, varchar('', 9000), varchar('', 50), 0
      from p
  union all select pl, strip(lst || ' ' || la)
    , (select min(col)
      from li
      where lu.pl = li.pl and lu.la < li.col
      )
    , seq + 1
    from lu where la is not null and seq < 1000
)
, l as
(
  select count(*) cnt, max(seq) seq, lst
    from lu
    where la is null or seq >= 1000
    group by rollup(lst)
)
select cnt, seq, lst
    from l
    order by lst
}¢--- A540769.WK.SQL(CATPLAN) cre=2012-08-28 mod=2016-11-03-09.21.05 A540769 ---
$#@
$=dbSy=dbtf
call sqlConnect $dbSy
call sqlSel "select p.NAME, l.SEQNO, l.LOCATION, l.COLLID, l.NAME",
     "from sysibm.sysPlan p",
     "left join sysibm.sysPackList l",
     "on l.planName = p.name",
     "where p.name like 'M%'",
     "order by 1, 2"
$|
$$- $dbSy date('s')
call fmtFTab
$#out                                              20120828 17:13:03
dbtf 20120828
NAME     NO LOCATION         COLLID                   COL5
}¢--- A540769.WK.SQL(CATPLANA) cre=2013-05-24 mod=2013-05-24-20.35.43 A540769 ---
select count(*), CONCUR_ACC_RES,     min(name), max(name)
    from sysibm.sysPlan
    group by CONCUR_ACC_RES
    with ur
}¢--- A540769.WK.SQL(CATPLARB) cre=2013-05-24 mod=2013-05-26-16.10.39 A540769 ---
$=dbSys = dc0g
$;
$<~tmp.texv(rebind)
$@for ii $@¢
    parse value $ii with pl dt rb
    if pl <> 'A005DUM' then
        iterate
    rb = strip(rb)
    say plan pl date dt rebind rb
    rx = sqlDsn(st, $dbSys, rb, '*')
    if rx <> -99 then do /* output anzeigen */
        say 'rc='rx 'for rebind' pl
        do sx=1 to m.st.0
            say '.' m.st.sx
            end
        end
    $!
$#out                                              20130524 21:52:40
$#out                                              20130524 21:51:13
$#out                                              20130524 21:49:31
}¢--- A540769.WK.SQL(CATPLARE) cre=2013-05-24 mod=2013-05-27-08.22.13 A540769 ---
$#@
$=dbSys= DBTF
$=trg= DSN.TX.PLANRZZ(DE0GS2)
$=rz=- sysvar(sysnode)

if 1 then $@/fromDb2/                  $** read db2 catalog
call sqlConnect $dbSys
$;
$>.fEdit('dsn.tx.plan'$-$rz'('$-$dbSys') ::v')
$<#/sql/
with p as
(
  select *
     from sysibm.sysPlan p
  -- where name like 'M%'
)
, l1 (pl, ls, seq) as
(
  select name, varchar('', 9000), 0
      from p
  union all select pl,
    ls || ', ' || case when location = '' then ''
                       else strip(location) || '.' end
       || strip(collid) || '.' || strip(name), seq + 1
      from l1, sysibm.sysPackList pl
      where l1.pl = pl.planName and l1.seq+1 = pl.seqNo and l1.seq<1000
)
, cl as
(
  select pl, max(ls) ls , max(seq) seq from l1
         group by pl
)
select name, bindDate
     , 'rebind plan(' || strip(name)
     || ') owner(' || strip(creator)
     || ') qualifier(' || strip(qualifier)
     || case when ls = '' then ') noPkList '
                          else ') pkList('
                           || replace(substr(ls, 3), ' ') || ') ' end
     || case when DEFERPREP = 'Y' then ''
             when deferPrep = ' ' then 'NO'     /* default ???*/
             when deferPrep = 'N' then 'NO'
             else '???' || deferPrep end || 'DEFER(PREPARE'
     || ') ACQUIRE(' || case when acquire = 'A' then 'ALLOCATE'
                             when acquire = 'U' then 'USE'
                             else '???' || acquire end
     || ') CACHESIZE('|| strip(char(cachesize))
     || ') CURRENTDATA('|| case when EXPREDICATE = 'B' then 'NO'
                                when EXPREDICATE = 'C' then 'YES'
                                when EXPREDICATE = 'N' then 'NO'
                                else '???' || EXPREDICATE || '???' end
     || ') DEGREE(' || case when degree = '' then '1'
                                             else strip(degree) end
     || ') IMMEDWRITE(' || case when immedWrite = 'Y' then 'YES'
                                when immedWrite = 'N' then 'NO'
                                when immedWrite = ' ' then 'NO' /*def*/
                                else '???' || immedWrite end
     || ') ISOLATION(' || case when isolation = 'R' then 'RR'
                               when isolation = 'T' then 'RS'
                               when isolation = 'S' then 'CS'
                               when isolation = 'U' then 'UR'
                               else '???' || isolation end
     || ') RELEASE(' || case when release = 'C' then 'COMMIT'
                             when release = 'D' then 'DEALLOCATE'
                             else '???' || release end
     || ') VALIDATE(' || case when validate = 'B' then 'BIND'
                              when validate = 'R' then 'RUN'
                              else  '???' || validate end
     || ')' rebind
     from p left join cl on p.name = cl.pl
     order by p.name
   --order by cast('a' || p.name as varchar(24) ccsid unicode
   --                      for mixed data)
   --fetch first 1000 rows only
$/sql/
call sqlSel
$|
$$- 'plan     bindDa rebind' sysvar(sysNode) $dbSys date('s') time()
$@forWith ii $$- left($NAME, 8) $BINDDATE $REBIND
call sqlDisconnect
$/fromDb2/

M.cEbc = '_#@ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
M.cUni = '#0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_'
pLa = ''

if 1 then $@/selDate/           $** select dates + rz2
tIn = readNxBegin(tIn, $trg)
tPl = ''
tOu = jOpen(file('dsn.tx.plan'$rz'('$dbSys's2)'), '>')
tLi = readNx(tIn)
call jWrite tOu, strip(m.tLi) 'matching' $rz $dbSys date() time()
$<dsn.tx.plan$rz($dbSys)
$>dsn.tx.plan$rz(${dbSys}s1)
if \ ${>ii} then
   call err 'empty file'
$$ $ii
$@for ii $@¢
    parse value $ii with pl dt rb
    if        translate(pLa, m.cEbc, m.cUni) ,
          >>= translate(pl , m.cEbc, m.cUni) then do
        say 'unicode' pLa '>>=' pl'|'
        say '   tran' translate(pLa, m.cEbc, m.cUni) '>>=' ,
                      translate(pl, m.cEbc, m.cUni)
        end
    pLa = pl
    do while  translate(tPl, m.cEbc, m.cUni) ,
          << translate(pl , m.cEbc, m.cUni)
        tLi = readNx(tIn)
        if tLi == '' then
            tPl = 'ffff'x
        else
            tPl = word(m.tLi, 1)
    $** say 'pl' pl 'tPl' tPl (pl == tPl)
        end
    if 0 then do
        if dt = 130520 | dt = 130524 then do
            $$ $ii
            if pl = tPl then
                call jWrite tOu, m.tLi
            end
        end
    else if pl = tPl then do
        $$ $ii
        call jWrite tOu, m.tLi
        end
    $!
call jClose tOu
call readNxEnd tIn
$/selDate/

if 0 then $@/compare/           $** compare
tIn = readNxBegin(tIn, 'dsn.tx.plan'$rz'('${dbSys}'s2)')
tPl = ''
tLi = readNx(tIn)
$<dsn.tx.plan$rz(${dbSys}s1)
$>dsn.tx.plan$rz(${dbSys}s3)
if \ ${>ii} then
   call err 'empty file'
$$- 'compare s1 s2' date('s') time()
wasEq = 1
diOn = left('', 14, 'o')
diPl = left('', 14, '_')
diEq = left('', 14, '=')
$@for ii $@¢
    parse value $ii with pl dt rb
    do while  translate(tPl, m.cEbc, m.cUni) ,
          << translate(pl , m.cEbc, m.cUni)
        if \ wasEq then
            $$- 'dbof o' diOn strip(m.tLi, 't')
         wasEq = 0
        tLi = readNx(tIn)
        if tLi == '' then
            tPl = 'ffff'x
        else
            parse var m.tLi tPl tDt trb
        end
    wasEq = pl == tPl
    ii = strip($ii, 't')
    if \ wasEq then
        $$- 'DE0G o' diOn ii
    else do
        cx = compare(rb, trb)
        if rb = trb then
            $$- '======' diEq ii
        else do
            di = ''
            tr = ''
            fr = ''
            do wx=1 to max(words(rb), words(tRb))
                f1 = word(rb, wx)
                t1 = word(tRb, wx)
                cx = compare(f1, t1)
                if cx = 0 then do
                    di = di'='
                    fr = fr f1
                    tr = tr t1
                    end
                else do
                    if left(f1, 1) <> 'n' then
                        di = di || left(f1, 1)
                    else
                        di = di || left(t1, 1)
                    rl = max(length(f1), length(t1))+1-cx
                    fr = fr left(f1, cx-1)'\'substr(f1, cx, rl)
                    tr = tr left(t1, cx-1)'/'substr(t1, cx, rl)
                    end
                end
            $$- 'DE0G \' di   left(ii, 15)    || fr
            $$- 'DBOF /' diPl left(m.tli, 15) || tr
            end
        end
    $!
call readNxEnd tIn
$/compare/

if 0 then $@/pkList/
$<dsn.tx.plan$rz(${dbSys}s2)
$>dsn.tx.plan$rz(${dbSys}s4)
if \ ${>ii} then
   call err 'empty file'
$$- 'filter pkList' date('s') time() 'from' strip($ii)
pRem = 'A1.* A1A.* A1B.* A1L.* A1T.* A1P.* A1Z.*' ,
       'A2.* A2A.* A1B.* A2L.* A2T.* A2P.* A2Z.*' ,
       'NTA1A.* NTA1E.* NTA1I.* NTA1T.* NTA1U.* NTA1P.* NTA1Z.*',
       'NTA2A.* NTA2E.* NTA2I.* NTA2T.* NTA2U.* NTA2P.* NTA2Z.*',
       'NT2AA.* NT2AE.* NT2AI.* NT2AT.* NT2AU.* NT2AP.* NT2AZ.*',
       'NTA1G.* NTA1L.*',
       'NTA2G.* NTA2L.*',
       'NT2AG.* NT2AL.*',
       'NTA1.* NTA1E.* NTAIE.* NTAE1.* NTAIE.* NTAI1.* NTAIF.* NTAI1.*',
       'NTAE.*'
$@for ii $@¢
    li = strip($ii, 't')
    px = pos(' pkList(', li)
    if px < 1 then do
        if pos(' noPkList ', li) < 1 then
            call err 'no pkList in' li
        $$ $ii
        iterate
        end
    pkl = word(substr(li, px), 1)
    if right(pkl, 1) \== ')' | substr(pkL, 7, 1) \== '(' then
        call err 'bad pkList:' pkl
    old = translate(substr(pkl, 8, length(pkl)-8), ' ', ',')
    new = ''
    do ox=1 to words(old)
        o1 = word(old, ox)
        if \ ( wordPos(o1, pRem) > 0 ,
           | (abbrev(o1, '*.') & wordPos(substr(o1, 3), pRem) > 0))then
            new = new','word(old, ox)
        end
    if new = '' then do
        ln = left(li, px)'noPkList' substr(li, px + length(pkl) + 1)
        say 'warning' word(li, 1) 'got noPkList'
        end
    else
        ln = left(li, px+7)substr(new, 2)substr(li, px+length(pkl))
    $$- ln
    $!
$/pkList/
$#out                                              20130527 08:20:38
$#out                                              20130526 17:11:59
$#out                                              20130526 17:05:25
$#out                                              20130526 16:56:15
}¢--- A540769.WK.SQL(CATPLA2) cre=2013-02-19 mod=2013-02-19-12.40.53 A540769 ---
select name, binddate
    from sysibm.sysPlan
    order by binddate desc
    fetch first 100 rows only
;
}¢--- A540769.WK.SQL(CATRECOV) cre=2015-09-11 mod=2015-09-14-11.18.48 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 44  for
with two (i) as
(
  select 1 from sysibm.sysDummy1
  union all select 2 from sysibm.sysDummy1
)
, p2 as
(
  select s.dbName db, s.name ts, p.partition pa, two.i inst
      , p.space pSpc
      , case when s.instance = 1 and s.clone = 'N' then ''
             when s.clone = 'N' then '' || s.instance
             when s.instance = two.i then '' || two.i || 'base'
             else '' || two.i || 'clon' end clonI
      , ( select max( substr(char(timestamp), 1, 26) || char(icType, 1)
                          || right('    ' || dsNum, 5))
              || max(case when icType <> 'I'
                 then substr(char(timestamp), 1, 26) || char(icType, 1)
                          || right('    ' || dsNum, 5) else '' end )
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = p.partition
      --???     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                              ,'I')
                and (icType <> 'A' or sType = 'A')
        ) icPa
      , ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
                          || right('    ' || dsNum, 5))
             || max(case when icType <> 'I'
                  then substr(char(timestamp), 1, 26) ||char(icType, 1)
                          || right('    ' || dsNum, 5) else '' end )
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = 0 and p.partition <> 0
      --???     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                              ,'I')
                and (icType <> 'A' or sType = 'A')
        ) ic0
    from sysibm.sysTableSpace s
      join two on s.instance = two.i or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
)
, p3 as
(
  select db, ts, pa, inst, pSpc, clonI
      , max(value(substr(icPa, 33, 32), '1111-11-11-11.11.11.111111  ')
           ,value(substr(ic0 , 33, 32), '1111-11-11-11.11.11.111111  ')
           ) basTTP
      , max(value(substr(icPa,  1, 32), '1111-11-11-11.11.11.111111  ')
           ,value(substr(ic0 ,  1, 32), '1111-11-11-11.11.11.111111  ')
           ) incTTP
    from p2
)
, p4 as
(
  select p3.*
      , substr(basTTP, 27, 1) basTy
      , substr(basTTP, 28, 5) basPa
      , timestamp(substr(basTTP, 1, 26)) basTst
      , substr(incTTP, 27, 1) incTy
      , substr(incTTP, 28, 5) incPa
      , timestamp(substr(incTTP, 1, 26)) incTst
    from p3
)
, p as
(
  select p4.*
      , case when pSpc = -1 then 'okDefNo'
             when basTy not in ('A','C','F','R','X') then 'logDisc'
             when basTst < current timestamp - 23 days then 'tooOld'
             else 'okLog' end recov
      , basTy || case basTy
                     when ' ' then '=missing'
                     when 'A' then '=addPart'
                     when 'C' then '=create'
                     when 'F' then '=fulCopy'
                     when 'I' then '=incCopy'
                     when 'P' then '=recPIT'
                     when 'R' then '=LoaRpLog'
                     when 'S' then '=LoaRpLoNo'
                     when 'W' then '=ReorgLoNo'
                     when 'X' then '=ReorgLog'
                     when 'Y' then '=LoaRsLoNo'
                     else          '=???' end basTyTx
    from p4
)

select count(*), recov, basTyTx, incTy
    from p
    group by recov, basTyTx, incTy
;
explain plan set queryno = 66  for
with two (i) as
(
  select 1 from sysibm.sysDummy1
  union all select 2 from sysibm.sysDummy1
)
, p2 as
(
  select s.dbName db, s.name ts, p.partition pa, two.i inst
      , 0 pSpc -- p.space pSpc
      , case when s.instance = 1 and s.clone = 'N' then ''
             when s.clone = 'N' then '' || s.instance
             when s.instance = two.i then '' || two.i || 'base'
             else '' || two.i || 'clon' end clonI
      , ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
                     || right('    ' || dsNum, 5) )
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = p.partition
      --???     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y') -- logDiscontinu
                and (icType <> 'A' or sType = 'A')
          ) basPa
      , ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
                     || right('    ' || dsNum, 5))
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = p.partition
      --???     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                             , 'I')
                and (icType <> 'A' or sType = 'A')
          ) incPa
      , ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
                     || right('    ' || dsNum, 5) )
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = 0 and p.partition <> 0
      --???     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y') -- logDiscontinu
                and (icType <> 'A' or sType = 'A')
        ) bas0
      , ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
                     || right('    ' || dsNum, 5))
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = 0 and p.partition <> 0
      --???     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                             , 'I')
                and (icType <> 'A' or sType = 'A')
        ) inc0
    from sysibm.sysTableSpace s
      join two on s.instance = two.i or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
)
, p3 as
(
  select db, ts, pa, inst, pSpc, clonI
      , max( value(basPa, '1111-11-11-11.11.11.111111      ')
           , value(bas0 , '1111-11-11-11.11.11.111111      ')) basTTP
      , max( value(incPa, '1111-11-11-11.11.11.111111      ')
           , value(inc0 , '1111-11-11-11.11.11.111111      ')) incTTP
    from p2
)
, p4 as
(
  select p3.*
      , substr(basTTP, 27, 1) basTy
      , substr(basTTP, 28, 5) basPa
      , timestamp(substr(basTTP, 1, 26)) basTst
      , substr(incTTP, 27, 1) incTy
      , substr(incTTP, 28, 5) incPa
      , timestamp(substr(incTTP, 1, 26)) incTst
    from p3
)
, p as
(
  select p4.*
      , case when pSpc = -1 then 'okDefNo'
             when basTy not in ('A','C','F','R','X') then 'logDisc'
             when basTst < current timestamp - 21 days then 'tooOld'
             else 'okLog' end recov
      , basTy || case basTy
                     when ' ' then '=missing'
                     when 'A' then '=addPart'
                     when 'C' then '=create'
                     when 'F' then '=fulCopy'
                     when 'I' then '=incCopy'
                     when 'P' then '=recPIT'
                     when 'R' then '=LoaRpLog'
                     when 'S' then '=LoaRpLoNo'
                     when 'W' then '=ReorgLoNo'
                     when 'X' then '=ReorgLog'
                     when 'Y' then '=LoaRsLoNo'
                     else          '=???' end basTyTx
    from p4
)

select count(*), recov, basTyTx, incTy
    from p
    group by recov, basTyTx, incTy
;
explain plan set queryno = 55  for
with two (i) as
(
  select 1 from sysibm.sysDummy1
  union all select 2 from sysibm.sysDummy1
)
, c as
(
  select c.*
      , substr(char(timestamp), 1, 26)
              || char(icType, 1) || right('    ' || dsNum, 5) ttp
    from sysibm.sysCopy c
)
, p2 as
(
  select s.dbName db, s.name ts, p.partition pa, two.i inst
      , p.space pSpc
      , case when s.instance = 1 and s.clone = 'N' then ''
             when s.clone = 'N' then '' || s.instance
             when s.instance = two.i then '' || two.i || 'base'
             else '' || two.i || 'clon' end clonI
      , value((select substr(char(timestamp), 1, 26)
              || char(icType, 1) || right('    ' || dsNum, 5)
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = p.partition
      --???     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y') -- logDiscontinu
                and (icType <> 'A' or sType = 'A')
            order by timestamp desc
            fetch first 1 row only
          ), '') basPa
      , value((select substr(char(timestamp), 1, 26)
              || char(icType, 1) || right('    ' || dsNum, 5)
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = 0 and p.partition <> 0
        --???   and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y') -- logDiscontinu
                and (icType <> 'A' or sType = 'A')
            order by timestamp desc
            fetch first 1 row only
          ), '') bas0
    from sysibm.sysTableSpace s
      join two on s.instance = two.i or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
)
, p3 as
(
  select db, ts, pa, inst, pSpc, clonI
      , max(basPa, bas0, '1111-11-11-11.11.11.111111      ') basTTP
      , max(basPa, bas0, '1111-11-11-11.11.11.111111      ') incTTP
    from p2
)
, p4 as
(
  select p3.*
      , substr(basTTP, 27, 1) basTy
      , substr(basTTP, 28, 5) basPa
      , timestamp(substr(basTTP, 1, 27)) basTst
    from p3
)
, p as
(
  select p4.*
      , case when pSpc = -1 then 'okDefNo'
             when basTy not in ('A','C','F','R','X') then 'logDisc'
             when basTst < current timestamp - 21 days then 'tooOld'
             else 'okLog' end recov
      , basTy || case basTy
                     when ' ' then '=missing'
                     when 'A' then '=addPart'
                     when 'C' then '=create'
                     when 'F' then '=fulCopy'
                     when 'I' then '=incCopy'
                     when 'P' then '=recPIT'
                     when 'R' then '=LoaRpLog'
                     when 'S' then '=LoaRpLoNo'
                     when 'W' then '=ReorgLoNo'
                     when 'X' then '=ReorgLog'
                     when 'Y' then '=LoaRsLoNo'
                     else          '=???' end basTyTx
    from p4
)

select count(*), recov, basTyTx
    from p
    group by recov, basTyTx
--lect count(*), substr(basTyTx
--  from p
 -- group by recov, basTyTx
 ;
explain plan set queryno = 3   for
with two (i) as
(
  select 1 from sysibm.sysDummy1
  union all select 2 from sysibm.sysDummy1
)
, a as
(
  select s.dbName db, s.name ts, p.partition pa, two.i inst
      , case when s.instance = 1 and s.clone = 'N' then ''
             when s.clone = 'N' then '' || s.instance
             when s.instance = two.i then '' || two.i || 'base'
             else '' || two.i || 'clon' end clonI
      , value((select
          max(left(case when icType <> 'I'
                then substr(char(timestamp), 1, 26)
                    || char(icType, 1) || right('    ' || dsNum, 5)
                 else '' end, 32) )
        ||max(left(case when icType = 'I'
                then substr(char(timestamp), 1, 26)
                    || char(icType, 1) || right('    ' || dsNum, 5)
                 else '' end, 32) )
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = p.partition
      -- ??     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                              ,'I')
                and (icType <> 'A' or sType = 'A')
          ), '') icPa
      , value((select
          max(left(case when icType <> 'I'
                then substr(char(timestamp), 1, 26)
                    || char(icType, 1) || right('    ' || dsNum, 5)
                 else '' end, 32) )
        ||max(left(case when icType = 'I'
                then substr(char(timestamp), 1, 26)
                    || char(icType, 1) || right('    ' || dsNum, 5)
                 else '' end, 32) )
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = 0 and p.partition <> 0
        -- ??   and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                              ,'I')
                and (icType <> 'A' or sType = 'A')
          ), '') ic0
    from sysibm.sysTableSpace s
      join two on s.instance = two.i or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
)
, b as
(
  select db, ts, pa, inst, clonI
      , max(substr(icPa, 1, 32), substr(ic0, 1, 32)) icFul
      , max(substr(icPa, 33, 32), substr(ic0, 33, 32)) icInc
    from a
)
select count(*), substr(icFul, 27, 1), substr(icInc, 27, 1)
    from b
    group by substr(icFul, 27, 1), substr(icInc, 27, 1)
 ;
explain plan set queryno = 22  for
with two (i) as
(
  select 1 from sysibm.sysDummy1
  union all select 2 from sysibm.sysDummy1
)
, c as
(
  select c.*
      , substr(char(timestamp), 1, 26)
              || char(icType, 1) || right('    ' || dsNum, 5) ttp
      , 32 ttL
    from sysibm.sysCopy c
)
, a as
(
  select s.dbName db, s.name ts, p.partition pa, two.i inst
      , case when s.instance = 1 and s.clone = 'N' then ''
             when s.clone = 'N' then '' || s.instance
             when s.instance = two.i then '' || two.i || 'base'
             else '' || two.i || 'clon' end clonI
      , value((select
          max(case when icType <> 'I' then ttp else space(ttL) end)
        ||max(case when icType =  'I' then ttp else space(ttL) end)
            from c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = p.partition
      -- ??     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                              ,'I')
                and (icType <> 'A' or sType = 'A')
          ), '') icPa
      , value((select
          max(left(case when icType <> 'I'
                then substr(char(timestamp), 1, 26)
                    || char(icType, 1) || right('    ' || dsNum, 5)
                 else '' end, 32) )
        ||max(left(case when icType = 'I'
                then substr(char(timestamp), 1, 26)
                    || char(icType, 1) || right('    ' || dsNum, 5)
                 else '' end, 32) )
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = 0 and p.partition <> 0
        -- ??   and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                              ,'I')
                and (icType <> 'A' or sType = 'A')
          ), '') ic0
    from sysibm.sysTableSpace s
      join two on s.instance = two.i or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
)
, b as
(
  select db, ts, pa, inst, clonI
      , max(substr(icPa, 1, 32), substr(ic0, 1, 32)) icFul
      , max(substr(icPa, 33, 32), substr(ic0, 33, 32)) icInc
    from a
)
select count(*), substr(icFul, 27, 1), substr(icInc, 27, 1)
    from b
    group by substr(icFul, 27, 1), substr(icInc, 27, 1)
 ;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
;x
xith two (i) as
(
  select 1 from sysibm.sysDummy1
  union all select 2 from sysibm.sysDummy1
)
, a as
(
  select s.dbName db, s.name ts, p.partition pa, two.i inst
      , case when s.instance = 1 and s.clone = 'N' then ''
             when s.clone = 'N' then '' || s.instance
             when s.instance = two.i then '' || two.i || 'base'
             else '' || two.i || 'clon' end clonI
      , max(value(
        ( select max(substr(char(timestamp), 1, 26)
                    || char(icType, 1) || right('    ' || dsNum, 5))
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = p.partition
                and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                              ,'I')
                and (icType<>'A' or sType = 'A')
          ), ''), value(
        ( select max(substr(char(timestamp), 1, 26)
                    || char(icType, 1) || dsNum)
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = 0 and p.partition<> 0
                and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y') -- logDiscontinu
                and (icType<>'A' or sType = 'A')
        ), '') ) icFul
      , max(value(
        ( select max(substr(char(timestamp), 1, 26)
                    || char(icType, 1) || dsNum)
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = p.partition
                and c.instance = two.i
                and icType = 'I'
          ), ''), value(
        ( select max(substr(char(timestamp), 1, 26)
                    || char(icType, 1) || dsNum)
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = 0 and p.partition<> 0
                and c.instance = two.i
                and icType = 'I'
        ), '') ) icInc
    from sysibm.sysTableSpace s
      join two on s.instance = two.i or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
)
select count(*), substr(icFul, 27, 1)
    from a group by substr(icFul, 27, 1)
;
with two (i) as
(
  select 1 from sysibm.sysDummy1
  union all select 2 from sysibm.sysDummy1
)
, a as
(
  select s.dbName db, s.name ts, p.partition pa, two.i inst
      , case when s.instance = 1 and s.clone = 'N' then ''
             when s.clone = 'N' then '' || s.instance
             when s.instance = two.i then '' || two.i || 'base'
             else '' || two.i || 'clon' end clonI
      , ( select max(substr(char(timestamp), 1, 26)
                    || char(icType, 1) || dsNum)
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum in (0, p.partition)
                and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y') -- logDiscontinu
                and (icType<>'A' or sType = 'A')
        ) icFul
    from sysibm.sysTableSpace s
      join two on s.instance = two.i or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
)
select count(*), substr(icFul, 27, 1)
    from a
    where db = 'QZ01A1P'
    group by substr(icFul, 27, 1)
;x;
q = "select" al".*, 'fun' fun, 'recTx' recTx" ,
       ", 'f ' || char(current timestamp) recBase" ,
       ", 'unlTx' unlTx, current timestamp unlTst" ,
       ", 'unload' unload" ,
       ", current timestamp punch, 'punch' punch",
       ", case when instance = 1 and clone = 'N' then ''",
              "when clone = 'N' then '' || instance",
              "else 'base' || instance end cloneI" ,
       ", value((  select left(",
               "case when icType not in ('A','C','F','R','X')" ,
                         "then 'badCopy'" ,
                    "when timestamp < current timestamp-10 day"
                    "then 'oldCopy' else 'ok' end, 7)",
              "|| right('    '||dsNum, 4)||char(icType, 1)",
              "||substr(char(timestamp), 1, 26)",
              "/*-*/from sysibm.sysCopy c",
              "/*-*/where" al".dbName = c.dbName",
                   "and" al".tsName = c.tsName ",
                   "and c.dsNum in (0," al".partition)" ,
                   "and c.instance = s.instance" ,
                   "and icType in ('A','C','F','R','X'" ,
                       ",'P','S','W','Y') and (icType<>'A'",
                          "or sType = 'A')" ,
              "order by timestamp desc",
              "fetch first 1 row only)",
       ", 'nothing found in syscopy') recInfo",
     'from' m.tb.table ,
       'join sysibm.sysTablespace s' ,
         'on' al'.dbName = s.dbName and' al'.tsName = s.name' ,
       'where' m.tb.cond wh ,
       'order by'  if(ord == '', m.tb.order, ord)
}¢--- A540769.WK.SQL(CATRECUN) cre=2015-09-14 mod=2015-09-14-17.19.59 A540769 ---
$#=
$>. fEdit()
$=useLgRn = 0
$=isElar  = 0
with two (i) as
(
  select 1 from sysibm.sysDummy1
  union all select 2 from sysibm.sysDummy1
)
, p2 as
(
  select s.dbName db, s.name ts, p.partition pa, two.i inst
      , p.space pSpc, s.dbId, s.psId
      , case when s.instance = 1 and s.clone = 'N' then '1'
             when s.clone = 'N' then '' || s.instance || 'only'
             when s.instance = two.i then '' || two.i || 'base'
             else '' || two.i || 'clone' end insTxt
      , ( select max( substr(char(timestamp), 1, 26) || char(icType, 1)
                          || right('    ' || dsNum, 5))
              || max(case when icType <> 'I'
                 then substr(char(timestamp), 1, 26) || char(icType, 1)
                          || right('    ' || dsNum, 5) else '' end )
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = p.partition
      --???     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                              ,'I')
                and (icType <> 'A' or sType = 'A')
        ) icPa
      , ( select max(substr(char(timestamp), 1, 26) || char(icType, 1)
                          || right('    ' || dsNum, 5))
             || max(case when icType <> 'I'
                  then substr(char(timestamp), 1, 26) ||char(icType, 1)
                          || right('    ' || dsNum, 5) else '' end )
            from sysibm.sysCopy c
            where s.dbName = c.dbName
                and s.name = c.tsName
                and c.dsNum = 0 and p.partition <> 0
      --???     and c.instance = two.i
                and icType in ('A','C','F','R','X'      -- logBase
                                      ,'P','S','W','Y'  -- logDiscontinu
                              ,'I')
                and (icType <> 'A' or sType = 'A')
        ) ic0
    from sysibm.sysTableSpace s
      join two on s.instance = two.i or s.clone = 'Y'
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
)
, p3 as
(
  select db, ts, pa, inst, pSpc, insTxt, dbId, psId
      , max(value(substr(icPa, 33, 32), '1111-11-11-11.11.11.111111- ')
           ,value(substr(ic0 , 33, 32), '1111-11-11-11.11.11.111111- ')
           , '1111-11-11-11.11.11.111111- ') basTTP

      , max(value(substr(icPa,  1, 32), '1111-11-11-11.11.11.111111- ')
           ,value(substr(ic0 ,  1, 32), '1111-11-11-11.11.11.111111- ')
           , '1111-11-11-11.11.11.111111- ') incTTP
    from p2
)
, p4 as
(
  select p3.*
      , substr(basTTP, 27, 1) basTy
      , substr(basTTP, 28, 5) basPa
      , timestamp(substr(basTTP, 1, 26)) basTst
      , substr(incTTP, 27, 1) incTy
      , substr(incTTP, 28, 5) incPa
      , timestamp(substr(incTTP, 1, 26)) incTst
    from p3
)
, p as
(
  select p4.*
      , case when pSpc = -1 then 'okDefNo'
             when basTy not in ('A','C','F','R','X') then 'logDisc'
             when basTst < current timestamp - 23 days then 'tooOld'
             else 'okLog' end recov
      , basTy || case basTy
                     when '-' then '=missing'
                     when 'A' then '=addPart'
                     when 'C' then '=create'
                     when 'F' then '=fulCopy'
                     when 'I' then '=incCopy'
                     when 'P' then '=recPIT'
                     when 'R' then '=LoaRpLog'
                     when 'S' then '=LoaRpLoNo'
                     when 'W' then '=ReorgLoNo'
                     when 'X' then '=ReorgLog'
                     when 'Y' then '=LoaRsLoNo'
                     else          '=???' end basTyTx
    from p4
)
, u as
(
  select p.*
      , value(stage, '') stage
      , value(staUpd, '1111-11-11-11.11.11') staUpd
      , value(staTb, '') staTb
      , value(unlTst, '1111-11-11-11.11.11') unlTst
      , value(unl, '') unl
      , value(punTst, '1111-11-11-11.11.11') punTst
      , value(pun, '') pun
      , value(u.info, '') infoUnl
      , value(u.err, '') errUnl
    from p
      left join oa1p.tqz005TecSvUnload u
        on u.db = p.db and u.ts = p.ts and u.pa = p.pa
          and u.pa >= 0
)
, e2 as
(
  select u.*
      , case when recov = 'okDefNo' then ''
             when recov = 'tooOld' or ( left(recov, 2) = 'ok'
                     and basTst < current timestamp - 15 day)
                 then 'older15d' || ':' || basTyTx
             when left(recov, 2) = 'ok'
                     and basTst < current timestamp -8 day
                 then 'older8d' || ':' || basTyTx
             when left(recov, 2) = 'ok' then ''
             else recov || ':' || basTyTx
        end erReD
      , strip(case
             when unl = '' then 'noUnload'
             when unlTst < current timestamp-100 year
                 then 'unlTstNull'
             when r.dbName is null then 'noRTS'
             when r.lastDataChange > u.unlTst then 'dataChange>unl'
             when r.copyUpdatetime > unlTst then 'copyUpdate>unlTst'
             when BasTst > unlTst
$@ if \ $isElar then $@=¢
                   and (date(incTst) <> '18.05.2015' or basTy <> 'F')
$!
               then 'unlTst<ful='||basTyTx
           when incTy='I' and unlTst < incTst
$@ if \ $isElar then $@=¢
                   and date(incTst) <> '18.05.2015'
$!
               then 'unlTst<incCopy'
           when r.copyChanges <> 0 then 'copyChanges<>0'
           when r.copyUpdatedPages <> 0 then 'updatedPages<>0'
$*(
           when r.copyUpdatetime > BasTst and basTy = 'F'
               then 'copyUpdate>ful='||basTyTx
           when r.copyUpdatetime > incTst and incTy = 'I'
               then 'copyUpdate>incCopy'
$*)
           when r.copyUpdatetime is not null then 'copyUpdateNotNull'
           when r.lastDataChange > u.BasTst and u.basTy not in('A','-')
$@ if \ $isElar then $@=¢
                   and unlTst > '2015-09-12-12.00.00'
$!
               then 'dataChange>ful='||basTyTx
           when basTy <> 'F' then 'lastFul=' || basTyTx
           when incTy = 'I' and incTst > unlTst
$@ if \ $isElar then $@=¢
                   and date(incTst) <> '18.05.2015'
$!
               then 'incTst>unlTst'
           when r.lastDataChange is null and unlTst
                  < '2015-04-15-00.00.00' then 'dataChangeV11>unl'
           when lastDataChange is null
                  and u.incTst < '2015-04-15-00.00.00'
               then 'dataChangeV11>incCopy'
$@ if \ $isElar then $@=¢
           when incTy = 'I' and incTst > unlTst
                   and date(incTst) = '18.05.2015'
               then 'inc180515>unl'
$!
           else ''
$@ if $useLgRn then $@=¢
      end || case
           when unl = ''
                   or unlTst < current timestamp - 100 years then ''
           when lr.start > unlTst then ' lgRn>unl'
           when lr.start is null then ' lgRnNone'
           else ''
$!
      end) erReU
    from u
      left join sysibm.sysTableSpaceStats r
        on u.dbId = r.dbId and u.psId = r.psId
        and u.pa = r.partition and u.inst = r.instance
        and u.db = r.dbName and u.ts = r.name
$@ if $useLgRn then $@=¢
      left join oa1u.tqz004TecSvLgRn lr
      on u.db = lr.db and u.ts = lr.ts and u.pa = lr.pa
$!
)
, e as
(
  select e2.*
    , strip(case
          when stage = '' then recov || ':' || basTyTx
$@ if $isElar then $@=¢
          when ts in  -- gestoppte TS, im Loeschprozess
                     ( 'SF710141'
                     , 'SF710142'
                     , 'SF710143'
                     , 'SF71014H'
                     , 'SF760141'
                     , 'SF760142'
                     , 'SF760143'
                     , 'SF76014H'
                     ) then 'toDrop'
    --    when stage = '-w' then '-m'
          when stage in ('UL', 'DL', '-w') and erReU <> ''
              then erReU
          when stage in ('UL', 'DL', '-w') then ''
          when erReD <> '' then erReD
$! $@ else $@=¢
          when stage in ('IN', 'UL')
               and erReD <> '' and erReU <> ''
              then erReU || ' ' || erReD
          when stage = 'IN' and unl <> '' and
                         staUpd < current timestamp - 24 hour
              then 'stillUnlAft24h'
          when stage not in ('IN', 'UL') and erReD <> '' then erReD
$!
          else ''
      end ) erRec
    from e2
)
select count(*), stage
      , substr(strip(erRec || ' ' || errUnl), 1, 70)
  --  , min(err), max(err)
  --  , min(unl), max(unl)
     from e
     group by stage, strip(erRec || ' ' || errUnl)
     order by 2, 3
;
}¢--- A540769.WK.SQL(CATRI) cre=2008-07-14 mod=2012-06-12-13.13.03 A540769 -----
select *
    from sysibm.sysForeignKeys
    where relname = 'DP091$UU'
    order by colno, tbName
;
-- Relationen anzeigen
--
select char(relname, 12),
       char(strip(creator) ||'.'|| strip(tbName), 20) "child",
       char(strip(refTbCreator)||'.'||strip(refTbName), 20) "in parent",
       case when deleteRule = 'A' then 'no action'
            when deleteRule = 'C' then 'cascade'
            when deleteRule = 'N' then 'set null'
            when deleteRule = 'R' then 'restrict'
            else                       'rule ' || deleteRule end
    from sysibm.sysRels
    where (creator like 'OA1%' and tbName like 'TDP%' )
       or (refTbCreator like 'OA1%' and refTbName like 'TDP%' )
    order by 2
;
select *
    from sysIbm.sysForeignKeys
    where relName = 'XR101$RE'
;
}¢--- A540769.WK.SQL(CATRIR) cre=2009-11-13 mod=2009-11-13-19.06.21 A540769 ----
-- Table Abhängigkeiten über RI - referential integrity dependencies
--     dieses Query zeigt die Abhängigkeits-Levels
--                            einer Menge von Tables
--     die richtige LadeReihefolge (load sequenceist) von 0 aufwaerts
--     Tables mit zyklischen RI-Abhängigkeiten werden mit Level=999
--         angezeigt, für diese ist ein Check unumgänglich
--
--     wenn ein Table (parent) geladen wird,
--         werden alle abhängigen (children) checkpending
--         und müssten also NACHHER geladen werden
--
--     Tabellen die CheckPending werden, aber nicht in der
--         die CheckPending werden, aber nicht in der AnfangsSelektion
--         (auf SysTableSpace) waren, werden mit einem Plus '+' markiert
--
with ri (lev, cr, tb, paCr, paTb, rel) as
(                         -- RekursionsStart
   select 0, creator, name,
             nullif('',''), nullIf('',''), nullIf('','')
       from sysibm.sysTables s
                          -->>> hier gewünschte Tabellen auswählen <<<--
       where type = 'T'
        -- and dbName like 'CT02%'
           and creator = 'VDPS2' and
               name in ( 'XTRECORD'
                        ,'XTCUSTOMER'
            --          ,'XTREQUEST'
            --          ,'XTREQUESTDETAIL'
                        ,'XTVIEW'
            --          ,'XTVIEWATTRIBUTE'
            --          ,'XTRECORDATTRIBUTE'
                        ,'XTREFERENCEMODULE'
            --          ,'XTPROCESSINGSTEP'
                        ,'XTSEARCHATTRIBUTE'
                        ,'XTSEARCHSQL'
            --          ,'XTREQUESTFILTER'
                       )
                          -- RekursionsSchritt: join zu Children
   union all select alt.lev+1, neu.creator, neu.tbName,
             neu.refTbCreator, neu.refTbName, neu.relName
       from ri alt, sysibm.sysRels neu
                          -- vom parent zum child
       where          lev < 999
                      and neu.refTbCreator = alt.cr
                      and neu.refTbname = alt.tb
                          -- Zyklen der Länge 1 ignorieren
           and not (  neu.creator = neu.refTbCreator
                      and  neu.tbname = neu.refTbName)
)
                          -- bei Truncation (SQLCODE = 445)
                          --     Länge vergrössern
select smallint(max(lev)) "level",
       case when min(lev) > 0 then '+' else ' ' end "+",
       char(strip(cr) ||'.'|| strip(tb), 32) "child",
       smallInt(count(distinct paCr || '.' || paTb)) "#par",
       min(char(strip(paCr) ||'.'|| strip(paTb), 32)) "firstParent",
       max(char(strip(paCr) ||'.'|| strip(paTb), 32)) "lastParent"
    from ri
    group by cr, tb
    order by 1 asc, 3 asc
;
x
select char(strip(creator) || '.' || strip(tbName), 20) "child",
       char(strip(refTbCreator) || '.' || strip(refTbName), 20) "par",
       relName
    from sysibm.sysRels
    where                        creator = 'A218545'
;
}¢--- A540769.WK.SQL(CATRIRPA) cre=2007-07-31 mod=2009-11-13-19.08.13 A540769 ---
-- Table Abhängigkeiten über RI
--     dieses Query zeigt die Abhängigkeits-Levels
--                            einer Menge von Tables
--     die richtige LadeReihefolge ist vom höchsten Level nach 0
--     Tables mit zyklischen RI-Abhängigkeiten werden mit Level=999
--         angezeigt, für diese ist ein Check unumgänglich
--
--        --> hier gehen wir die Parents hoch, für LoadReihenfolge
--            für LoadReihenfolge besser Children runter --> sql(catRir)
--
with ri (lev, creator, tbName, refTbCreator, refTbName, relName) as
(                         -- RekursionsStart
   select 0, nullif('',''), nullIf('',''), Creator, Name, nullIf('','')
       from sysibm.sysTables s
                          -->>> hier gewünschte Tabellen auswählen <<<--
       where type = 'T'
        -- and dbName like 'CT02%'
           and creator = 'VDPS2' and
               name in ( 'XTRECORD'
                        ,'XTCUSTOMER'
                        ,'XTREQUEST'
                        ,'XTREQUESTDETAIL'
                        ,'XTVIEW'
                        ,'XTVIEWATTRIBUTE'
                        ,'XTRECORDATTRIBUTE'
                        ,'XTREFERENCEMODULE'
                        ,'XTPROCESSINGSTEP'
                        ,'XTSEARCHATTRIBUTE'
                        ,'XTSEARCHSQL'
                        ,'XTREQUESTFILTER'
                       )
                          -- RekursionsSchritt: zu Parents join n
   union all select alt.lev+1, neu.creator, neu.tbName,
             neu.refTbCreator, neu.refTbName, neu.relName
       from ri alt, sysibm.sysRels neu
                          -- vom child zum Parent
       where          neu.creator = alt.refTbCreator
                      and  neu.tbname = alt.refTbName
                          -- Zyklen der Länge 1 ignorieren
           and not (  neu.creator = neu.refTbCreator
                      and  neu.tbname = neu.refTbName)
           and lev < 999
)
                          -- bei Truncation (SQLCODE = 445)
                          --     Länge vergrössern
select smallint(max(lev)) "level",
       char(strip(refTbCreator) ||'.'|| strip(refTbName), 32) "parent",
       smallInt(count(distinct creator || tbName)) "#child",
       min(char(strip(creator) ||'.'|| strip(tbName), 32)) "firstChild",
       max(char(strip(creator) ||'.'|| strip(tbName), 32)) "lastChild"
    from ri
    group by refTbCreator, refTbName
    order by 1 desc, 2 asc
;
x
select char(strip(creator) || '.' || strip(tbName), 20) "child",
       char(strip(refTbCreator) || '.' || strip(refTbName), 20) "par",
       relName
    from sysibm.sysRels
    where                        creator = 'A218545'
;
}¢--- A540769.WK.SQL(CATRTS) cre=2011-07-29 mod=2016-11-04-11.01.05 A540769 ----
with r as
(
  select r.*, s.pgSize
 ,  case when r.nPages > 0  then 'p'
         when r.nPages = 0  then '0'
         when r.nPages < 0  then '-'
                            else '?' end
 || case when r.nPages < r.nActive then '<'
         when r.nPages = r.nActive then '='
         when r.nPages > r.nActive then '>'
                                   else '?' end
 || case when r.nActive > 0  then 'a'
         when r.nActive = 0  then '0'
         when r.nActive < 0  then '-'
                             else '?' end
 || case when r.nActive < r.space * s.pgSize then '<'
         when r.nActive = r.space * s.pgSize then '='
         when r.nActive > r.space * s.pgSize then '>'
                                             else '?' end
 || case when r.space   > 0  then 's'
         when r.space   = 0  then '0'
         when r.space   < 0  then '-'
                             else '?' end  txt
    from sysibm.sysTableSpaceStats r
         join sysibm.sysTableSpace s
           on r.dbid = s.dbid and r.psid = s.psid
)
select count(*), txt
     , sum(bigint(R.nPages)) nPag
     , sum(bigint(R.nActive)) nACt
     , sum(bigint(r.nPages)*pgSize) kPag
     , sum(bigint(r.nActive)*pgSize) kAct
     , sum(r.space) spc
     , min(strip(dbName) ||'.'|| strip(name) ||'#'|| partition) dbTsMin
     , max(strip(dbName) ||'.'|| strip(name) ||'#'|| partition) dbTsMax
    from r
    group by txt
    order by txt
    with ur
;x;
select count(*), DBID, psid, partition,instance, updatestatstime
     from sysibm.sysTableSpaceStats
     group by DBID, psid, partition,instance, updatestatstime
     order by 1 desc
     fetch first 100 rows only
     with ur
;x;;;;;
select  COPYUPDATEDPAGES ,
        COPYCHANGES ,
        COPYUPDATELRSN, timestamp(copyUpdateLrsn || x'0000') ,
        COPYUPDATETIME,
        r.*
    from sysibm.sysTableSpaceStats r
    where copyUpdateLrsn is not null
       or copyUpdateTime is not null
       or COPYUPDATEDPAGES <> 0
       or COPYCHANGES <> 0
    order by copyUpdateTime asc
    fetch first 1000 rows only
    with ur
;x;
select dbName, name, partition, totalrows, space
    from sysibm.sysTablespaceStats
    where dbName = 'WI02A1T' and name = 'A100H'
select dbName, name, partition, totalrows, space
    from sysibm.sysTablespaceStats
    where dbName = 'WI02A1T' and name = 'A100H'
;x;
select count(*), sum(r.space), count(r.space),
    min(pageSave), max(PageSave)
    from sysibm.sysTableSpaceStats r, sysibm.sysTablePart p
    where r.dbName = 'MF01A1P' and r.Name = 'A150A'
        and r.dbName = p.dbName and r.name = p.tsName
        and r.partition = p.partition
         and r.partition >= 133
    with ur
;
;elect substr(strip(r.dbName) || '.' || strip(r.indexSpace)
   || '+' ||  strip(r.creator) || '.' || strip(r.name)
   || '/' ||  strip(char(r.psid))  , 1, 50) "rts",

       substr(strip(i.dbName) || '.' || strip(i.indexSpace)
   || '+' ||  strip(i.creator) || '.' || strip(i.name)
   || '/' ||  strip(char(s.psid))  , 1, 50) "i",
    r.*
    from sysibm.sysIndexSpaceStats r,
         sysibm.sysIndexes i,
         sysibm.sysTables  t,
         sysibm.sysTableSpace s
    where r.dbId = i.dbid and r.isobid = i.isoBid
        and i.tbCreator = t.creator and i.tbName = t.name
        and t.dbName = s.dbName and t.tsName = s.name
         and (r.dbName <> i.dbName or r.indexSpace <> i.indexSpace
           or r.creator<> i.creator or r.name <> i.name
           or r.psid   <> s.psid)
    order by r.dbName, r.name
    with ur
;x;
select substr(strip(s.dbName) || '.' || strip(s.name), 1, 20) "sDbTs",
       substr(strip(r.dbName) || '.' || strip(r.name), 1, 20) "rtsDbTs",
    r.*
    from sysibm.sysTableSpaceStats r,
         sysibm.sysTableSpace s
    where r.dbId = s.dbid and r.psid = s.psId
         and (r.dbName <> s.dbName or r.name <> s.name)
    order by r.dbName, r.name
    with ur
;x;
select * from old   table (
delete
    from sysibm.sysTableSpaceStats r
    where        (strip(r.dbName) || '*' || strip(r.name))
       <> (select strip(s.dbName) || '*' || strip(s.name)
         from sysibm.sysTableSpace s
          where r.dbId = s.dbid and r.psid = s.psId)
)
    order by   dbName,   name
;
rollback;
;x;
         and (r.dbName <> s.dbName or r.name <> s.name)
    order by r.dbName, r.name
delete from sysibm.sysTableSpaceStats r
       substr(strip(r.dbName) || '.' || strip(r.name), 1, 20) "rtsDbTs",
    r.*
    from sysibm.sysTableSpaceStats r,
         sysibm.sysTableSpace s
    where r.dbId = s.dbid and r.psid = s.psId
         and (r.dbName <> s.dbName or r.name <> s.name)
    order by r.dbName, r.name
}¢--- A540769.WK.SQL(CATRTSCL) cre=2010-06-28 mod=2010-06-28-15.27.09 A540769 ---
------------------------------------------------------------------------
-- cleanup RTS ==> delete rts rows with bad names
------------------------------------------------------------------------
-- select table rts with bad names
--
select substr(strip(s.dbName) || '.' || strip(s.name), 1, 20) "sDbTs",
       substr(strip(r.dbName) || '.' || strip(r.name), 1, 20) "rtsDbTs",
    r.*
    from sysibm.sysTableSpaceStats r,
         sysibm.sysTableSpace s
    where r.dbId = s.dbid and r.psid = s.psId
         and (r.dbName <> s.dbName or r.name <> s.name)
    order by r.dbName, r.name
    with ur
;
------------------------------------------------------------------------
-- select index rts with bad names or psId
--
select substr(strip(r.dbName) || '.' || strip(r.indexSpace)
   || '+' ||  strip(r.creator) || '.' || strip(r.name)
   || '/' ||  strip(char(r.psid))  , 1, 50) "rts",

       substr(strip(i.dbName) || '.' || strip(i.indexSpace)
   || '+' ||  strip(i.creator) || '.' || strip(i.name)
   || '/' ||  strip(char(s.psid))  , 1, 50) "i",
    r.*
    from sysibm.sysIndexSpaceStats r,
         sysibm.sysIndexes i,
         sysibm.sysTables  t,
         sysibm.sysTableSpace s
    where r.dbId = i.dbid and r.isobid = i.isoBid
        and i.tbCreator = t.creator and i.tbName = t.name
        and t.dbName = s.dbName and t.tsName = s.name
         and (r.dbName <> i.dbName or r.indexSpace <> i.indexSpace
           or r.creator<> i.creator or r.name <> i.name
           or r.psid   <> s.psid)
    order by r.dbName, r.name
    with ur
;x;
------------------------------------------------------------------------
-- delete table rts with bad names
--
select * from old   table (
delete
    from sysibm.sysTableSpaceStats r
    where        (strip(r.dbName) || '*' || strip(r.name))
       <> (select strip(s.dbName) || '*' || strip(s.name)
         from sysibm.sysTableSpace s
          where r.dbId = s.dbid and r.psid = s.psId)
)
    order by   dbName,   name
;
rollback;
;
------------------------------------------------------------------------
-- delete index rts with bad names or psid
--
select * from old   table (
  delete
    from sysibm.sysIndexSpaceStats r
    where            strip(r.dbName) || '.' || strip(r.indexSpace)
          || '+' ||  strip(r.creator) || '.' || strip(r.name)
          || '/' ||  strip(char(r.psid))
        <> (select strip(i.dbName) || '.' || strip(i.indexSpace)
          || '+' ||  strip(i.creator) || '.' || strip(i.name)
          || '/' ||  strip(char(s.psid))
        from sysibm.sysIndexes i,
             sysibm.sysTables  t,
             sysibm.sysTableSpace s
        where r.dbId = i.dbid and r.isobid = i.isoBid
            and i.tbCreator = t.creator and i.tbName = t.name
            and t.dbName = s.dbName and t.tsName = s.name
        )
  )
    order by dbName, name, partition
;
rollback;
;
}¢--- A540769.WK.SQL(CATRTSMI) cre=2016-10-20 mod=2016-10-20-14.28.04 A540769 ---
-- find RTS with bad values
--        which reorg complains as missing
select *
     from sysibm.sysTableSpaceStats
     where nActive < 0 or nActive > 1e9
         or nPages  < 0 or nPages > 1e9
         or extents < 0 or extents > 1e3
         or totalRows < 0 or totalRows > 1e12
         or dataSize < 0 or dataSize > 1e12
}¢--- A540769.WK.SQL(CATRTSNO) cre=2014-12-22 mod=2014-12-22-09.40.54 A540769 ---
with i (i) as                                                           00001000
( select 1 from sysibm.sysDummy1                                        00002000
  union all select 2 from sysibm.sysDummy1                              00003000
)                                                                       00004000
, j as                                                                  00005000
(                                                                       00006000
  select case when s.dbName is null then '-' else 'c' end               00007000
      || case when r.dbName is null then '-' else 'r' end cr            00008000
    ,  value(s.dbName, r.dbName) db                                     00010000
    ,  value(s.name, r.Name) ts                                         00010100
    ,  value(p.partition, r.partition) part                             00011000
    ,  value(i.i, r.instance) inst                                      00012000
    ,  s.clone                                                          00012102
       || case when s.instance = i.i then 'b' else 'c' end cl           00012202
    ,  p.space pSpc                                                     00012300
    ,  value(s.dbId, r.dbId) dbid                                       00013000
    ,  value(s.psid, r.psid) psid                                       00014000
    from (sysibm.sysTableSpace s                                        00020000
      join i on s.instance = i or s.clone = 'Y'                         00030000
      join sysibm.sysTablePart p                                        00040000
          on s.dbName = p.dbName and s.name = p.tsName                  00050000
      ) full outer join sysibm.sysTableSpaceStats r                     00052000
       on s.dbName = r.dbName and s.name = r.name                       00053000
         and p.partition = r.partition                                  00053100
         and i.i = r.instance                                           00054000
)                                                                       00060000
select 'include tablespace ' || strip(db) || '.' || strip(ts)           00060102
         || ' partlevel ' || part                                       00060202
      , j.*                                                             00060302
    from j                                                              00060402
    where cr = 'c-'                                                     00060502
    order by cl, cr, db, ts, part                                       00060602
;x;                                                                     00060702
select count(*), cr, inst, cl                                           00061002
    from j                                                              00061102
    group by cr, inst, cl                                               00061202
;x;                                                                     00061302
select *                                                                00062000
    from j                                                              00062100
    where cr <> 'cr'                                                    00062200
    order by db, ts, part, inst                                         00062300
;x;                                                                     00062400
, s (cr, db, ts, inst, parts, pX, pV, pB, l) as                         00062502
(                                                                       00062602
  select cr, db, ts, inst, cast('' as varChar(500))                     00062702
         , min(part), -1, -1, 0                                         00062802
    from j                                                              00062902
    group by cr, db, ts, inst                                           00063002
  union all select cr, db, ts, inst, parts,                             00063102
    (select min(j.part) from j                                          00063202
       where j.cr = s.cr and j.db = s.db and j.ts = s.ts                00063302
           and j.part > s.pX                                            00063402
    ), pV, pB, l+1                                                      00063502
    from s                                                              00063602
    where l < 99 and pX is not null                                     00063702
)                                                                       00063802
select *                                                                00063902
    from s                                                              00064002
;x;                                                                     00064102
select count(*), cr                                                     00064200
  from j                                                                00064300
  group by cr                                                           00064400
;x;                                                                     00065000
select cr                                                               00070000
      || case when r.dbName is null then '-' else 'r' end cr            00080000
    , substr(value(c.db, r.dbName), 1, 8) db                            00090000
    , substr(value(c.ts, r.name), 1, 8) ts                              00100000
    , value(c.part, r.partition) part                                   00110000
    , value(c.i, r.instance) inst                                       00120000
     from c full outer join sysibm.sysTableSpaceStats r                 00130000
     on c.db = r.dbName and c.ts = r.name and c.part = r.partition      00140000
        and c.i = r.instance                                            00150000
, x as                                                                  00240000
(                                                                       00250000
  select case when c.db is null then '-' else 'c' end                   00260000
      || case when r.dbName is null then '-' else 'r' end cr            00270000
    , substr(value(c.db, r.dbName), 1, 8) db                            00280000
    , substr(value(c.ts, r.name), 1, 8) ts                              00290000
    , value(c.part, r.partition) part                                   00300000
    , value(c.i, r.instance) inst                                       00310000
     from c full outer join sysibm.sysTableSpaceStats r                 00320000
     on c.db = r.dbName and c.ts = r.name and c.part = r.partition      00330000
        and c.i = r.instance                                            00340000
)                                                                       00350000
}¢--- A540769.WK.SQL(CATRTSSZ) cre=2015-03-10 mod=2015-03-10-13.03.05 A540769 ---
with p as
(
   select *
     from sysibm.sysTablePart
     where dbName = 'QZ01A1P' and tsName = 'A006A'
)
select p.partition, r.totalRows, int(p.cardF + r.statsInserts) aRows
       , r.space rSpace
       , case when p.cardF < 100 then p.spaceF
              else p.spaceF * (p.cardF + r.statsInserts) / p.cardF end
             aSpace
    from p join sysibm.sysTableSpaceStats r
      on p.dbName = r.dbName and p.tsName = r.name
        and p.partition = r.partition
    order by p.dbName, p.tsName, p.partition
}¢--- A540769.WK.SQL(CATRTSUP) cre=2015-03-10 mod=2015-03-10-16.16.33 A540769 ---
$#@ $*( catRtsUpd
           create sql to update RTS,
               if RTS figures are smaller than runstats figures
    $*)

call sqlConnect dp4g
$=dltF = 1.1
$=dltS = 1000
$<>
$>. fEdit()
$<#¢
with p as
(
   select *
     from sysibm.sysTablePart
     where dbName = 'QZ01A1P' and tsName = 'A006A'
)
select p.dbName, p.tsName, p.partition
       , r.totalRows, int(p.cardF + r.statsInserts) aRows
       , r.space rSpace
       , int(case when p.cardF < 100 then p.spaceF
                  else p.spaceF * (p.cardF + r.statsInserts) / p.cardF
            end ) aSpace
    from p join sysibm.sysTableSpaceStats r
      on p.dbName = r.dbName and p.tsName = r.name
        and p.partition = r.partition
    order by p.dbName, p.tsName, p.partition
$! call sqlsel
$| $forWith x $@=¢
   $$ -- $DBNAME $TSNAME $PARTITION
   $$    -- rows $TOTALROWS * $AROWS, space $RSPACE * $ASPACE
   $@ if $TOTALROWS * $dltF + $dltS < $AROWS $*+
        |  $RSPACE * $dltF + $dltS < $ASPACE then $@=¢
   update sysibm.sysTableSpaceStats
       $=del = SET
       $@ if $TOTALROWS < $AROWS then $@=¢
           $del totalRows = $AROWS -- from $TOTALROWS
           $=del = $'  ,'
       $!
       $@ if $RSPACE < $ASPACE then $@=¢
           $del space = $ASPACE -- from $RSPACE
       $!
       where dbName = '$DBNAME' and name = '$TSNAME'
         and partition = $PARTITION
   ;
   $!
   $!
$#out                                              20150310 16:15:58
}¢--- A540769.WK.SQL(CATRUN) cre=2016-08-22 mod=2016-08-22-20.55.53 A540769 ----
$#@
$=dbSys = S25/DVBP
call sqlWshIni
call sqlConnect $dbSys, 'w'
$<>
$>. fEdit()
$<=/sql/
declare global temporary table session.s
    as (select creator cr, name tb, dbName db, tsName ts,
               statstime stats, cardf
           from sysibm.sysTables
       ) with no data on commit preserve rows
;
$<>
$<#¢
XBFCT001PS%
XBFCT002PS%
XBFCT003PS%
XBFCT004PS%
XBFCT005PS%
XBFCT006PS%
XBFCT007PS%
XBFCT008PS%
XBFCU001PS%
XBFCU002PS%
XBFCU003PS%
XBFCU004PS%
XBFCU005PS%
XBFCU006PS%
XBFCU007PS%
XBFCU008PS%
XBFEQ001PS%
XBFEQ002PS%
XBFEQ003PS%
XBFEQ004PS%
XBFEQ005PS%
XBFEQ006PS%
XBFQY001PS%
XBFQY002PS%
XBFQY003PS%
XBFQY004PS%
XBFQY005PS%
XBFQY006PS%
XBFQY007PS%
XBFCT001IT%
XBFCT002IT%
XBFCT003IT%
XBFCT004IT%
XBFCT005IT%
XBFCT006IT%
XBFCT008IT%
XBFCU001IT%
XBFCU002IT%
XBFCU003IT%
XBFCU004IT%
XBFCU005IT%
XBFCU006IT%
XBFCU007IT%
XBFCU008IT%
XBFEQ001IT%
XBFEQ002IT%
XBFEQ003IT%
XBFEQ004IT%
XBFEQ005IT%
XBFEQ006IT%
XBFQY001IT%
XBFQY002IT%
XBFQY003IT%
XBFQY004IT%
XBFQY005IT%
XBFQY006IT%
XBFQY007IT%
$!
$for i $@=¢
$= j =- strip($i)
insert into session.s
    select creator, name, dbName, tsName, statsTime, cardF
        from sysibm.sysTables
        where type = 'T'
            and creator = 'BUA'
            and name like '$j'
   $*(      and creator = 'OA1P'
            and name like 'TQZ006GBGR%'
   $*)  ;
$!
$<>
with u(cr, tb, db, ts, stats, cardF, delta) as
(
  select cr, tb, db, ts, stats, cardF, 0
    from session.s s
  union all select s.cr, s.tb, s.db, s.ts,
              tp.statsTime, tp.cardF, 0
    from session.s s  join sysibm.sysTablePart tp
         on s.db = tp.dbName and s.ts = tp.tsname
  union all select s.cr, s.tb, s.db, s.ts,
              r.statsLastTime, r.totalRows
       , case when statsMassDelete <> 0
                  then - abs(statsMassDelete)
                  else abs(statsInserts) + abs(statsUpdates)
                                        + abs(statsDeletes) end
    from session.s s
      join sysibm.sysTableSpace ts
        on s.db = ts.dbName and s.ts = ts.name
      join sysibm.sysTableSpaceStats r
        on ts.dbid = r.dbid and ts.psid = r.psid
          and s.db = r.dbName and s.ts = r.name
  union all select s.cr, s.tb, s.db, s.ts,
              i.statsTime, i.fullKeyCardF, 0
    from session.s s
      join sysibm.sysIndexes i
        on s.cr = i.tbCreator and s.tb = i.tbName
  union all select s.cr, s.tb, s.db, s.ts,
              r.statsLastTime, r.totalEntries
       , case when statsMassDelete <> 0
                  then - abs(statsMassDelete)
                  else abs(statsInserts) + abs(statsDeletes) end
    from session.s s
      join sysibm.sysIndexes i
        on s.cr = i.tbCreator and s.tb = i.tbName
      join sysibm.sysIndexSpaceStats r
        on i.creator = r.creator and i.name = r.name
)
, g as
(
  select cr, tb, db, ts
      , min(stats) statsMin, max(stats) statsMax
      , case when min(cardF) < 0 then ' noStatsC' else '' end
      ||case when min(stats) < '1900-01-01-00.00.00'
             then ' noStatsT' else '' end
      ||case when min(delta) < 0 then ' massDel' else '' end
      reason
      , max(case when delta <= 0 or cardF < 0 then 0
                 when cardF = 0 then 999999999
                 else int(round(min( 999999999, real(max(delta, cardf))
                             / min(delta, cardF) * 100))) end ) delta
      , days(max(stats))
          - min(case when stats < '1900-01-01-00.00.00' then 999999999
                     else days(stats) end)  statsD
    from u
    group by cr , tb, db, ts
)
, v as
(
  select cr, tb, db, ts
      , substr(reason
      || case when delta < 30 then ''
              else ' delta' || right('000' || min(delta, 9999), 4)
                   || '%' end
      || case when statsD < 30  then ''
              else ' statsInt' || right('000' || min(statsD, 9999), 4)
                   || 'd' end
      , 2) reason
      , statsMin, statsMax, delta, statsD
    fr?m g
)
select * from v
    where reason <> '' or reason is null
--  fetch first 1 rows only
$/sql/
call sqlStmts , 'w', , , 'os'
$| $=jn = 0
   $forWith i $@/fetch/
   if oKindOfString($i) then
      $$ string $i
   else $@=/job/
       $= jn  =- right($jn + 1, 4, 0)
       $= job =- XBRUNS || right($jn // 3, 2, 0)
//$job JOB (CP00,KE50),'DB2 run',
//             TIME=1440,REGION=0M,SCHENV=DB2ALL,CLASS=M1,
//             MSGCLASS=T,NOTIFY=&SYSUID
//*
//* xb runstats job$jn
//* table  $CR.$TB in $DB.$TS
//* reason $REASON
//*
//S$jn    EXEC PGM=DSNUTILB,TIME=1440,
//             PARM=($dbSys,'$job.RUNSTAT'),
//             REGION=0M
//SYSPRINT   DD SYSOUT=*
//SYSUDUMP   DD SYSOUT=*
//SYSTEMPL   DD DISP=SHR,DSN=$dbSys.DBAA.LISTDEF(TEMPL)
//UTPRINT    DD SYSOUT=*
//RNPRIN01   DD SYSOUT=*
//STPRIN01   DD SYSOUT=*
//INDUMMY    DD DUMMY
//SYSIN      DD *
-- OPTIONS PREVIEW
  LISTDEF TSLIST
    INCLUDE TABLESPACE $DB.$TS
---- runstats ----------------------------------------------------------
  RUNSTATS TABLESPACE LIST TSLIST
    SHRLEVEL CHANGE
    INDEX(ALL)
$/job/
$/fetch/
$#out                                              20160822 16:21:31
$#out                                              20160822 16:21:10
$#out                                              20160822 15:57:45
$#out                                              20160822 15:55:37
}¢--- A540769.WK.SQL(CATRUNPR) cre=2015-01-19 mod=2015-01-19-16.11.48 A540769 ---
select substr(profile_text, 1,2000)
    from SYSIBM.SYSTABLES_PROFILES
--  where tbName = 'TWK403P1'
; x;
update SYSIBM.SYSTABLES_PROFILES
   set profile_text = 'COLUMN(PAR2) INDEX (*) KEYCARD'
    where tbName = 'TWK403P1'
;
commit
;
rollback
;
}¢--- A540769.WK.SQL(CATRUPD) cre=2012-06-05 mod=2016-08-10-13.05.47 A540769 ---
$#@ $*( catRUpd
                   show or update/delete outdate runstats Statistics
                   wsh script
                       1) update parameters
                       2) modify insert into session.st
                       3) wsh
                   version 0.1, 20.6.12 Walter
               $*)


call sqlConnect dp4g                                           $** <<<<<
$=fun=a        $*(  a = show all                               $** <<<<<
                    o = show old only
                    d = delete old
               $*)
$=det= 1      $** 0 summary only, 1 all rows (only fun=d)
$=lim=5 hour   $** limit for stats older than newest

$=distKeys = type, colGroupColno, quantileno, colValue
$=updCnt=200

$<> $<=¢
declare global temporary table session.st
    as (select creator cr, name tb, dbName db, tsName ts,
               statstime lim
           from sysibm.sysTables
       ) with no data on commit preserve rows
;
insert into session.st
    select creator, name, dbName, tsName, '0001-01-01-00.00.00'
        from sysibm.sysTables
        where type = 'T'
            and creator = 'OA1P'                             $** <<<<<<
            and name =    'TQZ006GBGRTSSTATS'
  --        and name in  ('VTINSTRFLATSYMBOLS'
  --                     ,'VTCASHFLOW'
  --                     ,'VTINSTRUMENTEVENT'
  --                     )
        ;
$** no more changes in rest of script *********************************

update session.st st
   set lim  = ( select case when max(statstime) > '1900-01-01-00.00.00'
                       then max(statstime) - $lim
                       else timestamp('0001-01-01-00.00.00') end
                  from sysibm.sysColumns co
                  where co.tbCreator = st.cr and co.tbName = st.tb)
;
declare global temporary table session.sx
    as (select creator cr, name ix, tbCreator tbCr, tbName tb,
           statstime lim
           from sysibm.sysIndexes
       ) with no data on commit preserve rows
;
insert into session.sx
    select creator, name, tbCreator, tbName, lim
        from sysibm.sysIndexes ix join session.st st
        on ix.tbCreator = st.cr and ix.tbName = st.tb
;
-- select * from session.st;
-- select * from session.sx;
$! call sqlStmts
$;
if $fun == 'a' then $@¢ $<=¢
with t (tb, ct, tst) as
( select tb, 'table', statstime
     from sysibm.sysTables tb join session.st st
       on tb.creator = st.cr and tb.name = st.tb
  union all select tb, 'columns',
         case when statstime > '1900-01-01-00.00.00'
              then statstime else null end
     from sysibm.sysColumns co join session.st st
       on co.tbCreator = st.cr and co.tbName = st.tb
  union all select tb, 'colDist', statstime
    from sysibm.sysColDist cd join session.st st
       on cd.tbOwner = st.cr and cd.tbName = st.tb
  union all select tb, 'colDistStats', statstime
    from sysibm.sysColDistStats cds join session.st st
       on cds.tbOwner = st.cr and cds.tbName = st.tb
  union all select tb, 'colStats', statstime
    from sysibm.sysColStats cs join session.st st
       on cs.tbOwner = st.cr and cs.tbName = st.tb
  union all select tb, 'tabStats', statstime
    from sysibm.sysTabStats tbs join session.st st
       on tbs.owner = st.cr and tbs.name = st.tb
  union all select tb, 'tbSpace', statstime
    from sysibm.sysTableSpace ts join session.st st
       on ts.dbName = st.db and ts.name = st.ts
  union all select tb, 'tbPart', statstime
    from sysibm.sysTablePart ts join session.st st
       on ts.dbName = st.db and ts.tsName = st.ts
  union all select tb, 'indexes', statstime
    from sysibm.sysIndexes ix join session.st st
       on ix.tbCreator = st.cr and ix.tbName = st.tb
  union all select tb, 'ixPart', statstime
    from sysibm.sysIndexPart ip join session.sx sx
       on ip.ixCreator = sx.cr and ip.ixName = sx.ix
  union all select tb, 'ixStats', statstime
    from sysibm.sysIndexStats is join session.sx sx
       on is.owner = sx.cr and is.name = sx.ix
  union all select tb, 'keyTarget', statstime
    from sysibm.sysKeyTargets kt join session.sx sx
       on kt.ixSchema = sx.cr and kt.ixname = sx.ix
  union all select tb, 'keyTgtStats', statstime
    from sysibm.sysKeyTargetStats ks join session.sx sx
       on ks.ixSchema = sx.cr and ks.ixname = sx.ix
  union all select tb, 'keyTgtDist', statstime
    from sysibm.sysKeyTgtDist kt join session.sx sx
       on kt.ixSchema = sx.cr and kt.ixname = sx.ix
  union all select tb, 'keyTgtDiSta', statstime
    from sysibm.sysKeyTgtDistStats kts join session.sx sx
       on kts.ixSchema = sx.cr and kts.ixname = sx.ix
 )
select tb, ct, count(*) cnt,
    left(char(min(tst)), 19) "statsTimeMin",
    left(char(max(tst)), 19) "statsTimeMax"
    from t
    group by tb, ct
;
$! call sqlStmts
$!
$;
if $fun == 'o' then $@/old/
$<=¢
with t (tb, ct, nm, tst) as
( select tb, 'columns', name, statstime
              from sysibm.sysColumns co join session.st st
                on co.tbCreator = st.cr and co.tbName = st.tb
                and statsTime < lim
                and statsTime > '0001-01-01-00.00.00.00000'
  union all select tb, 'colDist',
      case when length(colGroupColNo) <= 2 then name
      else hex(COLGROUPCOLNO) end ,
      statsTime
              from sysibm.sysColDist cd join session.st st
                on cd.tbOwner = st.cr and cd.tbName = st.tb
                  and cd.statstime < lim
  union all select tb, 'colDistStats',
      case when length(colGroupColNo) <= 2 then name
      else hex(COLGROUPCOLNO) end
      || right('     ' || strip(char(partition)), 5), statsTime
              from sysibm.sysColDistStats cds join session.st st
                on cds.tbOwner = st.cr and cds.tbName = st.tb
                  and statstime < lim
  union all select tb, 'colStats',
      name || ' '
      || right('     ' || strip(char(partition)), 5), statsTime
              from sysibm.sysColStats cs join session.st st
                on cs.tbOwner = st.cr and cs.tbName = st.tb
                  and statstime < lim
 )
$@¢
if $det then $@=¢
select tb, ct, left(char(tst), 19) "statsTime", nm
    from t
    order by tb, ct, nm
$! else $@=¢
select tb, ct, count(*) cnt,
    left(char(min(tst)), 19) "statsTimeMin",
    left(char(max(tst)), 19) "statsTimeMax"
    from t
    group by tb, ct
    order by tb, ct
$!
$!
;
$! call sqlStmts
$/old/
$;
if $fun == 'd' then $@/delete/
$<=¢
update sysibm.sysColumns co set
       statstime = '0001-01-01-00.00.00.00000'
     , colCardf = -1
    where (tbCreator, tbName, name) in
          ( select cr, tb, name
              from sysibm.sysColumns co join session.st st
                on co.tbCreator = st.cr and co.tbName = st.tb
                and statsTime < lim
                and statsTime > '0001-01-01-00.00.00.00000'
            fetch first $updCnt rows only
          )
$! $$- sqlUpdComLoop(scanSqlIn2Stmt( , 0))
$;
$<=¢
delete
    from sysibm.sysColDist d
    where (tbOwner, tbName, name, $distKeys)
    in    ( select cr, tb, name, $distKeys
              from sysibm.sysColDist cd join session.st st
                on cd.tbOwner = st.cr and cd.tbName = st.tb
                  and cd.statstime < lim
              fetch first $updCnt rows only
          )
$! $$- sqlUpdComLoop(scanSqlIn2Stmt( , 0))
$;
$<=¢
delete
    from sysibm.sysColDistStats
    where (tbOwner, tbName, name, partition, $distKeys)
    in    ( select cr, tb, name, partition, $distKeys
              from sysibm.sysColDistStats cds join session.st st
                on cds.tbOwner = st.cr and cds.tbName = st.tb
                  and statstime < lim
              fetch first $updCnt rows only
          )
$! $$- sqlUpdComLoop(scanSqlIn2Stmt( , 0))
$;
$<=¢
delete
    from sysibm.sysColStats
    where (tbOwner, tbName, name, partition)
    in    ( select cr, tb, name, partition
              from sysibm.sysColStats cs join session.st st
                on cs.tbOwner = st.cr and cs.tbName = st.tb
                  and statstime < lim
              fetch first $updCnt rows only
          )
$! $$- sqlUpdComLoop(scanSqlIn2Stmt( , 0))
$/delete/
$#out                                              20150907 15:35:52
}¢--- A540769.WK.SQL(CATRUPD0) cre=2010-12-13 mod=2012-01-20-15.54.38 A540769 ---
       -- show runstats values
       -- delete / update if necessary
set current path = OA1A     ;
with c as            --colGroupColNo is concat of smallint(colNo)
(                    --   but empty if only 1 column
                     --thus, make similar group for 1 column
                     --   and select last column name
  select
        case when length(colGroupColNo) > 1 then hex(colGroupColNo)
             else ( select hex(smallint(c.colNo))
                        from sysibm.sysColumns c
                        where c.tbCreator = b.tbOwner
                           and c.tbName   = b.tbName
                           and c.name     = b.name
             ) end cg,   -- colGroup in hex also for single column
        case when length(colGroupColNo) < 3 then name
             else ( select name
                        from sysibm.sysColumns c
                        where c.tbCreator = b.tbOwner
                            and c.tbName  = b.tbName
                            and hex(smallint(c.colNo))
                                = hex(right(b.colGroupColNo, 2))
             ) end cLa,  -- last column name
        tbOwner, tbName, name, colGroupColNo, type,
        count(*) cnt, max(cardf) card, max(frequencyF) freq,
        min(statsTime) minTst, max(statsTime) maxTst
    from sysibm.sysColDist b
    where tbOwner = 'OA1A' and tbName = 'TWM005A1'
    group by tbOwner, tbName, name, colGroupColNo, type
)
select substr(cLa, 1, 16) || substr(cg, 1, 34) "lastColumn      group",
        type, smallint(cnt) cnt,
        substr(fosFmte7(card), 1, 7) "maxCard",
        substr(fosFmte7(freq), 1, 7) "maxFreq",
        minTst "min statsTime",
        maxTst "max statsTime"
    from c
    order by tbOwner, tbName, cg || x'0000', type
;
select colCardf, statstime, c.*
    from sysibm.sysColumns c
    where tbCreator = 'OA1A' and tbName = 'TWM005A1'
;
select *
    from sysibm.sysColDist
    where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
select *
    from sysibm.sysColStats
    where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
select *
    from sysibm.sysColDistStats
    where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
select statstime, cardf, nPagesF, spacef, avgrowlen
    from sysibm.sysTables c
    where creator = 'OA1A' and name = 'TWM005A1'
;
select *
    from sysibm.sysTabStats
    where owner   = 'OA1A' and name = 'TWM005A1'
;;;;;
update sysibm.sysColumns set
       statstime = '0001-01-01-00.00.00.00000'
     , colCardf = -1
    where tbCreator = 'OA1A' and tbName = 'TWM005A1'
;
delete
    from sysibm.sysColStats
    where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
delete
    from sysibm.sysColDist d
    where tbOwner = 'OA1A' and tbName = 'TWM005A1'
;
select *
    from sysibm.sysColDist d
    where tbOwner = 'OA1A' and tbName = 'TWM005A1'
    order by type, frequencyf desc
;
rollback;
;;;
commit;
select date(statstime), count(*)
    from sysibm.sysTables
    where creator = 'OA1A'
    group by date(statstime)
    order by 1 desc
    ;;;;
}¢--- A540769.WK.SQL(CATRUPD3) cre=2012-06-12 mod=2012-06-12-17.24.59 A540769 ---
declare global temporary table session.st
    as (select creator cr, name tb, tbName db, tsName ts,
               statstime lim
           from sysibm.sysTables
       ) with no data on commit preserve rows
;
declare global temporary table session.sx
    as (select creator cr, name ix, tbCreator tbCr, tbName tb,
           statstime lim
           from sysibm.sysIndexes
       ) with no data on commit preserve rows
;
insert into session.st
    select creator, name, dbName, tsName, '0001-01-01-00.00.00'
        from sysibm.sysTables
        where dbName like 'M%'
;
update session.st st
   set lim  = ( select max('0002-01-01-00.00.00',
                          max(statstime)) - 169 hours
                  from sysibm.sysColumns co
                  where co.tbCreator = st.cr and co.tbName = st.tb)
;
insert into session.sx
    select creator, name, tbCreator, tbName, lim
        from sysibm.sysIndexes ix join session.st st
        on ix.tbCreator = st.cr and ix.tbName = st.tb
;
with old (tb, cat, stats) as
(
select tb, 'columns', statstime
              from sysibm.sysColumns co join session.st st
                on co.tbCreator = st.cr and co.tbName = st.tb
                and statsTime < lim
                and statsTime > '0001-01-01-00.00.00.00000'
union all select tb, 'colDist', statstime
              from sysibm.sysColDist cd join session.st st
                on cd.tbOwner = st.cr and cd.tbName = st.tb
                  and cd.statstime < lim
union all select tb, 'colDistStats', statstime
              from sysibm.sysColDistStats cds join session.st st
                on cds.tbOwner = st.cr and cds.tbName = st.tb
                  and statstime < lim
)
select tb, cat, count(*), min(stats),  max(stats)
    from old
    group by tb, cat
    order by tb, cat
;;;
}¢--- A540769.WK.SQL(CATSIMPL) cre=2008-05-26 mod=2008-05-26-15.45.58 F540769 ---
select char(strip(t.creator) || '.' || strip(t.name), 40) ,
        partitions, segSize, s.dbName, s.name
    from sysibm.sysTables t, sysibm.systablespace s
    where t.type = 'T' and t.dbName = s.dbName and t.tsName = s.name
          and t.name = 'ZINSFREQUENZ'
;
x
select * from
( select char(t.name, 30) tb, count(*)cnt , sum(case
        when partitions = 0 and segSize = 0 then 1 else 0 end) simp

    from sysibm.sysTables t, sysibm.systablespace s
    where t.dbName = s.dbName and t.tsName = s.name and s.type <> 'O'
         and t.dbName like 'DG%' and t.type = 'T'
    group by t.name
) si
where simp > 0 and cnt > 1
    order by 3 desc
;
xelect t.name, count(*), sum(
    from sysibm.systablespace
    where partitions = 0 and segSize = 0 and type <> 'O'
    order by name, dbname
}¢--- A540769.WK.SQL(CATSPACE) cre=2009-09-15 mod=2012-11-22-12.39.29 A540769 ---
-- Space Auswertung für ein ganzes Subsystem:
--     zeigt das Total und die 20 grössten DBs
--       index und TS separiert
--       runstats und RTS Daten
--       tot ist die Summe der Maxima(runstats, RTS) von TS und IX
--       % Zahlen geben TS-Run, TS-RTS, IX-Run und IX-RTS in% von tot
--
--     requires fosfmtE8
set current path = oa1P;
with spTs as
(
select dbName db, sum(max(spaceF, 0) * 1024) sp,
       count(*) objs, sum(max(1, partitions)) parts
    from sysibm.sysTablespace
    group by dbName
) , spTsRts as
(
select dbName db, sum(float(max(space, 0)) * 1024) sp,
           sum(case when partition <= 1 then 1 else 0 end) objs,
           count(*) parts
    from sysibm.sysTablespaceStats
    group by dbName
) , spIx as
(
select dbName db, sum(max(spaceF, 0) * 1024) sp,
           count(*) objs,  case when 1=1 then null else 1    end   parts
    from sysibm.sysIndexes
    group by dbName
) , spIxRts as
(
select dbName db, sum(float(max(space, 0)) * 1024) sp,
           sum(case when partition <= 1 then 1 else 0 end) objs,
           count(*) parts
    from sysibm.sysIndexspaceStats
    group by dbName
) , sp2 (db, spTs, spTsRts, tsObjs, tsParts,
             spIx, spIxRts, ixObjs, ixParts) as
(
select spTs.db,
    spTs.sp spTs, coalesce(spTsRts.sp, 0) spTsRts,
        spTs.objs tsObjs, spTs.parts tsParts,
    coalesce(spIx.sp, 0) spIx, coalesce(spIxRts.sp, 0) spIxRts,
        coalesce(spIx.objs, 0) ixObjs, coalesce(spIxRts.parts, 0)ixParts
    from spTs
       left join spTsRts
           on spTs.db = spTsRts.db
       left join spIx
           on spTs.db = spIx.db
       left join spIxRts
           on spTs.db = spIxRts.db
) , sp3 (db, spTs, spTsRts, tsObjs, tsParts,
             spIx, spIxRts, ixObjs, ixParts) as
(
select * from sp2
union  all select
       ' * ', sum(spTs), sum(spTsRts), sum(tsObjs), sum(tsParts)
            , sum(spIx), sum(spIxRts), sum(ixObjs), sum(ixParts)
    from sp2
) , sp  (sp, db, spTs, spTsRts, tsObjs, tsParts,
                 spIx, spIxRts, ixObjs, ixParts) as
(
select max(max(spTs,spTsRts)+max(spIx, spIxRts), 1), sp3.*
    from sp3
)
select char(db, 8)
    , char(fosfmte8(sp), 8) "tot"
        , dec(tsObjs, 7, 0) "tsObjs", dec(tsParts, 7, 0) "tsParts"
        , dec(ixObjs, 7, 0) "ixObjs", dec(ixParts, 7, 0) "ixParts"
    , right('   '||strip(char(int(round(spTs/sp*100   , 0)))), 4)
    ||right('   '||strip(char(int(round(spTsRts/sp*100, 0)))), 4)
    ||right('   '||strip(char(int(round(spIx/sp*100   , 0)))), 4)
    ||right('   '||strip(char(int(round(spIxRts/sp*100, 0)))), 4)
           "% TS rts  IX rts"
    , dec(spTsRts/sp*100, 3, 0) "tsRts%"
    , dec(spIx/sp*100, 3, 0) "ixRun%"
    , dec(spIxRts/sp*100, 3, 0) "ixRts%"
    from sp
--  where         db in ('XBDL1001', 'XBDPK001', 'XBDPL001'
--                      ,'XBD2R001', 'XBDM3001', 'XBDL0001')
    order by (max(spTs,spTsRts)+max(spIx, spIxRts)) desc
    fetch first 21 rows only
;
}¢--- A540769.WK.SQL(CATSPACS) cre=2009-09-24 mod=2009-09-24-14.42.17 A540769 ---
-- Space Auswertung für ein ganzes Subsystem:
--     zeigt das Total und die 20 grössten DBs
--       index und TS separiert
--       runstats und RTS Daten
--       tot ist die Summe der Maxima(runstats, RTS) von TS und IX
--       % Zahlen geben TS-Run, TS-RTS, IX-Run und IX-RTS in% von tot
--
--     requires fmtE8
set current path = oa1x;
with sp as
(
select s.dbName db, s.name ts,  max(s.spaceF, 0) * 1024 spS
          ,  1 obS, max(1, s.partitions) paS
          ,  r.spR, r.obR, r.paR
          ,  i.spI, i.obI
          ,  i.spJ, i.obJ, i.paJ
    from sysibm.sysTablespace s
    left join
      ( select dbName db, name ts, sum(float(space) * 1024) spR,
                 1 obR, count(*) paR, dbid, psid
            from sysibm.sysTablespaceStats
            group by dbid, psId, dbName, name
      ) r
    on s.dbid = r.dbId and s.psid = r.psid
           and s.dbName = r.db and s.name = r.ts
    left join
      ( select t.dbName db, t.tsName ts, count(*) obI
                , sum(i.spacef * 1024) spI
                , sum(spJ) spJ, sum(obJ) obJ, sum(paJ) paJ
            from sysibm.sysTables t
                join sysibm.sysIndexes i
                on t.creator = i.tbCreator and t.name = i.tbName
                    and t.dbName = i.dbName
                left join
                  (  select creator, name -- , dbid, isobid,
                          , sum(float(space) * 1024) spJ
                          , 1 obJ, count(*) paJ
                         from sysibm.sysIndexSpaceStats
                         group by creator, name
                  ) j
                on i.creator = j.creator and i.name = j.name
            group by t.dbName, t.tsName
      ) i
    on s.dbName = i.db and s.name = i.ts
)
select * from sp where db like 'DGDB9998%'
;
) , spTsRts as
(
select dbName db, sum(float(space) * 1024) sp,
           sum(case when partition <= 1 then 1 else 0 end) objs,
           count(*) parts
    from sysibm.sysTablespaceStats
    group by dbName
) , spIx as
(
select dbName db, sum(spaceF * 1024) sp,
           count(*) objs,  case when 1=1 then null else 1    end   parts
    from sysibm.sysIndexes
    group by dbName
) , spIxRts as
(
select dbName db, sum(float(space) * 1024) sp,
           sum(case when partition <= 1 then 1 else 0 end) objs,
           count(*) parts
    from sysibm.sysIndexspaceStats
    group by dbName
) , sp2 (db, spTs, spTsRts, tsObjs, tsParts,
             spIx, spIxRts, ixObjs, ixParts) as
(
select spTs.db,
    spTs.sp spTs, coalesce(spTsRts.sp, 0) spTsRts,
        spTs.objs tsObjs, spTs.parts tsParts,
    coalesce(spIx.sp, 0) spIx, coalesce(spIxRts.sp, 0) spIxRts,
        coalesce(spIx.objs, 0) ixObjs, coalesce(spIxRts.parts, 0)ixParts
    from spTs
       left join spTsRts
           on spTs.db = spTsRts.db
       left join spIx
           on spTs.db = spIx.db
       left join spIxRts
           on spTs.db = spIxRts.db
    where    spTs.db like 'DGDB9998%'
) , sp3 (db, spTs, spTsRts, tsObjs, tsParts,
             spIx, spIxRts, ixObjs, ixParts) as
(
select * from sp2
union  all select
       ' * ', sum(spTs), sum(spTsRts), sum(tsObjs), sum(tsParts)
            , sum(spIx), sum(spIxRts), sum(ixObjs), sum(ixParts)
    from sp2
) , sp  (sp, db, spTs, spTsRts, tsObjs, tsParts,
                 spIx, spIxRts, ixObjs, ixParts) as
(
select max(spTs,spTsRts)+max(spIx, spIxRts), sp3.*
    from sp3
)
select char(db, 8)
    , char(fmte8(sp), 8) "tot"
        , dec(tsObjs, 7, 0) "tsObjs", dec(tsParts, 7, 0) "tsParts"
        , dec(ixObjs, 7, 0) "ixObjs", dec(ixParts, 7, 0) "ixParts"
    , right('   '||strip(char(int(round(spTs/sp*100   , 0)))), 4)
    ||right('   '||strip(char(int(round(spTsRts/sp*100, 0)))), 4)
    ||right('   '||strip(char(int(round(spIx/sp*100   , 0)))), 4)
    ||right('   '||strip(char(int(round(spIxRts/sp*100, 0)))), 4)
           "% TS rts  IX rts"
    , dec(spTsRts/sp*100, 3, 0) "tsRts%"
    , dec(spIx/sp*100, 3, 0) "ixRun%"
    , dec(spIxRts/sp*100, 3, 0) "ixRts%"
    from sp
    where sp >= 1
    and   db     like 'DGDB9998%'
    order by (max(spTs,spTsRts)+max(spIx, spIxRts)) desc
    fetch first 21 rows only
;
with sp (db, ty, sp, objs, parts) as
}¢--- A540769.WK.SQL(CATSPAC1) cre=2012-05-03 mod=2012-06-06-16.55.14 A540769 ---
--- Space Auswertung für einzelne Objekte einer DB
--     zeigt das Total und die 20 grössten DBs
--       index und TS separiert
--       runstats und RTS Daten
--       tot ist die Summe der Maxima(runstats, RTS) von TS und IX
--       % Zahlen geben TS-Run, TS-RTS, IX-Run und IX-RTS in% von tot
--
--     requires fosfmtE8
set current path = oa1p;
with ts as
(
select dbName db, name ts, sum(spaceF * 1024) sp,
       count(*) objs, sum(max(1, partitions)) parts
    from sysibm.sysTablespace
    group by dbName, name
) , tsR as
(
select dbName db, name ts, sum(float(space) * 1024) sp,
           sum(case when partition <= 1 then 1 else 0 end) objs,
           count(*) parts
    from sysibm.sysTablespaceStats
    group by dbName, name
) , ix as
(
select t.dbName db, t.tsName ts,
        sum(i.spaceF * 1024) sp,
           count(*) objs,  case when 1=1 then null else 1 end parts
    from sysibm.sysIndexes i
        join sysibm.sysTables t
          on t.creator = i.tbCreator and t.name = i.tbName
    group by t.dbName, t.tsName
) , ixR as
(
select t.dbName db, t.tsName ts,
      sum(float(r.space) * 1024) sp,
           sum(case when r.partition <= 1 then 1 else 0 end) objs,
           count(*) parts
    from sysibm.sysIndexspaceStats r
        join sysibm.sysIndexes i
          on r.creator = i.creator and r.name = i.name
        join sysibm.sysTables t
          on t.creator = i.tbCreator and t.name = i.tbName
    group by t.dbName, t.tsName
) , sp1 (db, ts, spTs, spTsRts, tsObjs, tsParts,
                 spIx, spIxRts, ixObjs, ixParts) as
(
select ts.db, ts.ts,
    ts.sp spTs, coalesce(tsR.sp, 0), ts.objs, ts.parts,
    coalesce(ix.sp, 0), coalesce(ixR.sp, 0),
    coalesce(ix.objs, 0), coalesce(ixR.parts, 0)
    from ts
       left join tsR
           on ts.db = TsR.db and ts.ts = tsR.ts
       left join ix
           on ts.db = ix.db and ts.ts = ix.ts
       left join ixR
           on ts.db = ixR.db and ts.ts = ixR.ts
    where ts.db =    'DCMN'
) , sp2 (db, ts, spTs, spTsRts, tsObjs, tsParts,
                 spIx, spIxRts, ixObjs, ixParts) as
(
select * from sp1
union  all select '*', '*'
            , sum(spTs), sum(spTsRts), sum(tsObjs), sum(tsParts)
            , sum(spIx), sum(spIxRts), sum(ixObjs), sum(ixParts)
    from sp1
) , sp as
(
select max(spTs,spTsRts)+max(spIx, spIxRts) sp, sp2.*
    from sp2
)
select char(db, 8) db, char(ts, 8) ts
    , char(fosfmte7(sp), 8) "tot"
        , dec(tsObjs, 7, 0) "tsObjs", dec(tsParts, 7, 0) "tsParts"
        , dec(ixObjs, 7, 0) "ixObjs", dec(ixParts, 7, 0) "ixParts"
    , right('   '||strip(char(int(round(spTs/sp*100   , 0)))), 4)
    ||right('   '||strip(char(int(round(spTsRts/sp*100, 0)))), 4)
    ||right('   '||strip(char(int(round(spIx/sp*100   , 0)))), 4)
    ||right('   '||strip(char(int(round(spIxRts/sp*100, 0)))), 4)
           "% TS rts  IX rts"
    , dec(spTsRts/sp*100, 3, 0) "tsRts%"
    , dec(spIx/sp*100, 3, 0) "ixRun%"
    , dec(spIxRts/sp*100, 3, 0) "ixRts%"
    from sp
    order by sp desc
    fetch first 21 rows only
;
}¢--- A540769.WK.SQL(CATSPAIX) cre=2013-01-25 mod=2013-01-25-08.02.50 A540769 ---
with i as
(
select creator cr, name ix, tbCreator tbCr, tbName tb,
        sum(i.spaceF * 1024) sp,
        sum(real(i.firstKeyCard)) fiKC,
        sum(real(i.fullKeyCard)) fuKC,
        avg(avgKeyLen) avgKey
    from sysibm.sysIndexes i
    group by creator, name, tbCreator, tbName
)
, ip as
(
select ixcreator cr, ixname ix,
        sum(spaceF * 1024) sp,
        sum(cardF) card,
        avg(avgKeyLen) AvgKey
    from sysibm.sysIndexPart
    group by ixcreator, ixname
)
, ir as
(
select creator cr, name ix,
        sum(real(space) * 1024) sp,
        sum(real(totalEntries)) card
    from sysibm.sysIndexSpaceStats
    group by creator, name
)
select substr(i.tbCr, 1, 6) tbCr
     , substr(i.tb  , 1, 12) tbCr
     , substr(i.cr  , 1, 6) Cr
     , substr(i.ix  , 1, 16) ix
     , i.sp, ip.sp ipSp, ir.sp irSp
           , ip.card ipCard, ir.card irCard
     , i.fiKC, i.fuKC
     , i.avgKey iAvgKey, ip.avgKey ipAvgKey
from i
   left join ip on i.cr = ip.cr and i.ix = ip.ix
   left join ir on i.cr = ir.cr and i.ix = ir.ix
   where tbCr = 'OA1A' and tb = 'TMF150A1'
;;;;  x;
    where tbName =
    group by t.dbName, t.tsName
) , ixR as
--- Space Auswertung für einzelne Objekte einer DB
--     zeigt das Total und die 20 grössten DBs
--       index und TS separiert
--       runstats und RTS Daten
--       tot ist die Summe der Maxima(runstats, RTS) von TS und IX
--       % Zahlen geben TS-Run, TS-RTS, IX-Run und IX-RTS in% von tot
--
--     requires fosfmtE8
set current path = oa1p;
with ts as
(
select dbName db, name ts, sum(spaceF * 1024) sp,
       count(*) objs, sum(max(1, partitions)) parts
    from sysibm.sysTablespace
    group by dbName, name
) , tsR as
(
select dbName db, name ts, sum(float(space) * 1024) sp,
           sum(case when partition <= 1 then 1 else 0 end) objs,
           count(*) parts
    from sysibm.sysTablespaceStats
    group by dbName, name
) , ix as
(
select t.dbName db, t.tsName ts,
        sum(i.spaceF * 1024) sp,
           count(*) objs,  case when 1=1 then null else 1 end parts
    from sysibm.sysIndexes i
        join sysibm.sysTables t
          on t.creator = i.tbCreator and t.name = i.tbName
    group by t.dbName, t.tsName
) , ixR as
(
select t.dbName db, t.tsName ts,
      sum(float(r.space) * 1024) sp,
           sum(case when r.partition <= 1 then 1 else 0 end) objs,
           count(*) parts
    from sysibm.sysIndexspaceStats r
        join sysibm.sysIndexes i
          on r.creator = i.creator and r.name = i.name
        join sysibm.sysTables t
          on t.creator = i.tbCreator and t.name = i.tbName
    group by t.dbName, t.tsName
) , sp1 (db, ts, spTs, spTsRts, tsObjs, tsParts,
                 spIx, spIxRts, ixObjs, ixParts) as
(
select ts.db, ts.ts,
    ts.sp spTs, coalesce(tsR.sp, 0), ts.objs, ts.parts,
    coalesce(ix.sp, 0), coalesce(ixR.sp, 0),
    coalesce(ix.objs, 0), coalesce(ixR.parts, 0)
    from ts
       left join tsR
           on ts.db = TsR.db and ts.ts = tsR.ts
       left join ix
           on ts.db = ix.db and ts.ts = ix.ts
       left join ixR
           on ts.db = ixR.db and ts.ts = ixR.ts
    where ts.db =    'DCMN'
) , sp2 (db, ts, spTs, spTsRts, tsObjs, tsParts,
                 spIx, spIxRts, ixObjs, ixParts) as
(
select * from sp1
union  all select '*', '*'
            , sum(spTs), sum(spTsRts), sum(tsObjs), sum(tsParts)
            , sum(spIx), sum(spIxRts), sum(ixObjs), sum(ixParts)
    from sp1
) , sp as
(
select max(spTs,spTsRts)+max(spIx, spIxRts) sp, sp2.*
    from sp2
)
select char(db, 8) db, char(ts, 8) ts
    , char(fosfmte7(sp), 8) "tot"
        , dec(tsObjs, 7, 0) "tsObjs", dec(tsParts, 7, 0) "tsParts"
        , dec(ixObjs, 7, 0) "ixObjs", dec(ixParts, 7, 0) "ixParts"
    , right('   '||strip(char(int(round(spTs/sp*100   , 0)))), 4)
    ||right('   '||strip(char(int(round(spTsRts/sp*100, 0)))), 4)
    ||right('   '||strip(char(int(round(spIx/sp*100   , 0)))), 4)
    ||right('   '||strip(char(int(round(spIxRts/sp*100, 0)))), 4)
           "% TS rts  IX rts"
    , dec(spTsRts/sp*100, 3, 0) "tsRts%"
    , dec(spIx/sp*100, 3, 0) "ixRun%"
    , dec(spIxRts/sp*100, 3, 0) "ixRts%"
    from sp
    order by sp desc
    fetch first 21 rows only
;
}¢--- A540769.WK.SQL(CATSPKEY) cre=2010-09-29 mod=2010-09-29-16.57.56 A540769 ---
select substr(limitkey, 1, 30) limitKey,
       length(limitKey_internal) intLen,
       hex(limitkey_internal) int, p.*
    from sysibm.systablepart  p
    where dbName = 'DGDB0376'
        and tsName = 'A719A'
}¢--- A540769.WK.SQL(CATSTATS) cre=2009-05-11 mod=2009-05-11-09.23.43 F540769 ---
select p.dbName, p.tsname, p.partition
    from sysibm.sysTablePart p, sysibm.sysTableSpace s
    where p.dbName = s.dbName and p.tsName = s.name
    and not exists (select 0 from sysibm.sysTableSpaceStats r
        where r.dbName = s.dbName and r.name = s.Name
           and r.dbid = s.dbid and r.psid = s.psid
         and r.partition = p.partition
         )
--  and   s.dbName Like 'M%'
}¢--- A540769.WK.SQL(CATSTMT) cre=2010-02-10 mod=2010-02-10-16.34.15 A540769 ---
-- view to extract sql statement text from sysPackStmt
--     concatenate statement texts if split in multiple junks
--          (up to 29000 bytes)
--     convert from utf8 to ebcdic if necessary
--          (we simply check first character for >='a')
-- attention:
--     where clause cannot be moved from  recursive tableExpr stT
--         because optimizer doesn't optimize it as needed|
--     DSNTIAUL gets an error on this view, and
--     SPUFI does not handle so long characters,
--     thus, use WSH catStmtW in a DSN with very long recSize
--
set current sqlid = 'S100447';
set current path = 'OA1A';
drop   view A540769.CATSTMT;
create view A540769.CATSTMT as



with stG as
( --     stG groups sysPackStmt rows into statments
  --          each stmt has a range of seqNo, neither gaps nor overlaps
  --     stmtNo and stmtNoI are often equal, but not always||
  select location, collid, name, contoken, stmtNo, stmtNoI,
        min(seqNo) seqMin, max(seqNo) seqMax
    from sysibm.sysPackStmt
          -- if all 0 internal (pseudo) statements => ignore
    where (seqno <> 0 or stmtNo <> 0 or stmtNoI <> 0)
          -- select here |
        and location = '' and collid = 'MF'
    group by location, collid, name, contoken,
             stmtNo, stmtNoI
)
-- now use recursive stT to concatenate text junks up to 29000 chars
, stT (lv, sq, sLen, tLen, tx,
       location, collid, name, contoken, stmtNo, stmtNoI,
       seqMin, seqMax, explainable
) as
( -- now use recursive table to concatenate text junks up to 29000 chars
  -- recursion seed: first stmt junk contains lengths
select  0, s.seqNo sq, fosC2I4(substr(stmt, 1, 4)) sLen, -- total len
                      fosC2I4(substr(stmt, 5, 4)) tLen, -- textlen
        varchar(substr(stmt, 9, min(length(stmt)-8,
              int(fosC2I4(substr(stmt, 5, 4))))), 29000) tx,
        g.*, s.explainable
    from stG g, sysibm.sysPackStmt s
    where s.location = g.location and s.collid = g.collid
        and s.name = g.name and s.contoken = g.contoken
        and s.seqNo = g.seqMin
union all
  -- recursion step: join next junk
    select lv+1,
           s.seqNo, sLen, tLen,
           varchar(tx || substr(stmt, 1, int(min(length(stmt),
                 t.tLen-length(tx), 29000-length(tx)))),  29000),
           t.location, t.collid, t.name, t.contoken,
           t.stmtNo, t.stmtNoI,
           t.seqMin, t.seqMax,
           t.explainable
    from stT t, sysibm.sysPackStmt s
    where s.location = t.location and s.collid = t.collid
        and s.name = t.name and s.contoken = t.contoken
        and s.seqNo = t.sq+1
           -- abbruch Bedingung: keinen Junks mehr
        and t.sq < t.seqMax and t.lv < 100000
           -- abbruch Bedingung: Länge erreicht

        and length(t.tx) < t.tLen and length(t.tx) < 29000
)
select  location, collid, name, contoken, stmtNo, stmtNoI,
        CASE WHEN left(tx, 1) >=  'a' then tx
             else  cast(CAST(tx AS VARCHAR(29000) CCSID 1208)
                     AS VARCHAR(29000) CCSID EBCDIC)
        end tc,
        lv, sq, sLen, tLen,
        seqMin, seqMax,
        explainable , substr(tx, 1, 1) t1
    from stT
   -- use only longest (final) tupel of each statement
    where length(tx) in (tLen, 29000)
;
select * from A540769.CATSTMT
    where     seqMax - seqMin > 1
    order by location, collid, name, contoken, sq
;
}¢--- A540769.WK.SQL(CATSTMTA) cre=2012-03-07 mod=2012-04-11-15.02.39 A540769 ---
$#@
call sqlConnect dbof
$;
$>.fEdit(':v')
$<=¢
--     extract sql statement text from sysPackStmt
--     concatenate statement texts if split in multiple junks
--          (up to 29000 bytes)
--     convert from utf8 to ebcdic if necessary
--          (we simply check first character for >='a')
-- attention:
--     where clause cannot be moved from  recursive tableExpr stT
--         because optimizer doesn't optimize it as needed|
--     DSNTIAUL gets an error on this view, and
--     SPUFI does not handle so long characters,
--     thus, use WSH catStmtW in a DSN with very long recSize
--
set current sqlid = 'S100447';
set current path = 'OA1P';
with p as
( -- select newest packages --------------------------------------------
  select location, collid, name, contoken
      from sysibm.sysPackage n
          -- select here |
      where location = '' and name in ('YCDSGET'
                                      ,'YCDX011'
                                      ,'YCDX031'
                                      ,'YCIG600'
                                      ,'YDIEURE'
                                      ,'YDIT001'
                                      ,'YDIT002'
                                      ,'YDIT003'
                                      ,'YDIT004'
                                      ,'YGMSTEU'
                                      ,'YGMTXIO'
                                      ,'YOE2BU '
                                      ,'YOE2GET'
                                      ,'YOOAIE3'
                                      ,'YSVEUTV'
                                      ,'YSVG502'
                                      ,'YSVIDAT'
                                      ,'YVVSQLE'
                                      ,'YWPRCBX'
                                      ,'YWPR1B2'
                                      ,'YWPR2D1'
                                      ,'YWPR7HX'
                                      ,'YWUPARM'
                                      ,'YWUPUT '
                                      ,'YWUSTEU'
                                      ,'YYCRCXE'

                                      )
          and pcTimestamp = (select max(pcTimestamp)
                   from sysibm.sysPackage a
                   where a.location = n.location
                       and a.collid = n.collid and a.name = n.name
                   )
)
, g as
( --     g groups sysPackStmt rows into statments ----------------------
  --          each stmt has a range of seqNo, neither gaps nor overlaps
  --     stmtNo and stmtNoI are often equal, but not always||
  select location, collid, name, contoken, stmtNo, stmtNoI,
        min(seqNo) seqMin, max(seqNo) seqMax
    from sysibm.sysPackStmt
          -- if all 0 internal (pseudo) statements => ignore
    where (seqno <> 0 or stmtNo <> 0 or stmtNoI <> 0)
        and (location, collid, name, contoken) in
            (select * from p)
    group by location, collid, name, contoken,
             stmtNo, stmtNoI
)
, stT (lv, sq, sLen, tLen, tx,
       location, collid, name, contoken, stmtNo, stmtNoI,
       seqMin, seqMax, explainable
) as
( -- recursion do concatenate stmt text --------------------------------
  -- use recursive table to concatenate text junks up to 29000 chars
  -- recursion seed: first stmt junk contains lengths
select  0, s.seqNo sq, fosC2I4(substr(stmt, 1, 4)) sLen, -- total len
                      fosC2I4(substr(stmt, 5, 4)) tLen, -- textlen
        varchar(substr(stmt, 9, min(length(stmt)-8,
              int(fosC2I4(substr(stmt, 5, 4))))), 29000) tx,
        g.*, s.explainable
    from g, sysibm.sysPackStmt s
    where s.location = g.location and s.collid = g.collid
        and s.name = g.name and s.contoken = g.contoken
        and s.seqNo = g.seqMin
union all
  -- recursion step: join next junk
    select lv+1,
           s.seqNo, sLen, tLen,
           varchar(tx || substr(stmt, 1, int(min(length(stmt),
                 t.tLen-length(tx), 29000-length(tx)))),  29000),
           t.location, t.collid, t.name, t.contoken,
           t.stmtNo, t.stmtNoI,
           t.seqMin, t.seqMax,
           t.explainable
    from stT t, sysibm.sysPackStmt s
    where s.location = t.location and s.collid = t.collid
        and s.name = t.name and s.contoken = t.contoken
        and s.seqNo = t.sq+1
           -- abbruch Bedingung: keinen Junks mehr
        and t.sq < t.seqMax and t.lv < 100000
           -- abbruch Bedingung: Länge erreicht

        and length(t.tx) < t.tLen and length(t.tx) < 29000
)
select  location, collid, name, contoken, stmtNo, stmtNoI,
        CASE WHEN left(tx, 1) >=  'a' then tx
             else  cast(CAST(tx AS VARCHAR(29000) CCSID 1208)
                     AS VARCHAR(29000) CCSID EBCDIC)
        end tc,
        lv, sq, sLen, tLen,
        seqMin, seqMax,
        explainable , substr(tx, 1, 1) t1
    from stT
   -- use only longest (final) tupel of each statement
    where length(tx) in (tLen, 29000)
    order by location, collid, name, contoken, stmtNo, stmtNoI
$! call sqlStmts
$#out                                              20120411 14:05:03
$#out                                              20120411 14:04:49
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
    COMPATIBLE ARGUMENTS WAS FOUND
stmt =  execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
     from :src = with p as
$#out                                              20120411 14:04:41
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(V b) lrecl(32756) block(32760) mgmt
$#out                                              20120411 13:44:11
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(V b) lrecl(32756) block(32760) mgmt
$#out                                              20120411 13:44:04
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
    COMPATIBLE ARGUMENTS WAS FOUND
stmt =  execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
     from :src = with p as
$#out                                              20120411 13:43:48
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
    0000000C, 00F30006
stmt =  connect DBXF
$#out                                              20120411 13:43:45
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
    0000000C, 00F30006
stmt =  connect DBXF
$#out                                              20120411 13:40:34
$#out                                              20120411 13:40:26
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(V b) lrecl(32756) block(32760) mgmt
$#out                                              20120411 13:40:08
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
    COMPATIBLE ARGUMENTS WAS FOUND
stmt =  execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
     from :src = with p as
$#out                                              20120411 13:39:58
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(V b) lrecl(32756) block(32760) mgmt
$#out                                              20120411 13:39:51
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
    COMPATIBLE ARGUMENTS WAS FOUND
stmt =  execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
     from :src = with p as
$#out                                              20120307 13:38:24
$#out                                              20120307 13:35:51
$#out                                              20120307 13:31:10
$#out                                              20120307 13:30:58
}¢--- A540769.WK.SQL(CATSTMTB) cre=2010-02-10 mod=2010-02-10-16.46.17 A540769 ---
-- view catStmTb: extract sql statement text from sysPackStmt
--     for newest Package (pcTimestamp from sysPackage)
--     for all packages using a table (as of sysPackDep)
--
-- attention see catStmt, use WSH catStmtC
--
set current sqlid = 'S100447';
set current path = 'OA1A';
drop   view A540769.catStmTb;
create view A540769.catStmTb as
with dg as
(     -- group all packages using our tables,
      -- and select newest pcTimeSt
 select dLocation, dCollid, dName,
         max(char(pcTimeStamp) || dContoken) tc
     from sysibm.syspackdep
     left join sysibm.syspackage
         on dLocation = location
         and dCollid = collid and dName = name and dConToken = conToken
     where -- bType in ('P', 'R')
             bQualifier = 'OA1A'
             and bName in ('TMF150A1', 'TMF150H1')
       group by dLocation, dCollid, dName
 )
 , dn as
 (    -- extrace pcTimeStamp and conToken
 select dLocation, dCollid, dName,
        substr(tc, 27) dconToken,
        timestamp(left(tc, 26)) pcTimestamp
     from dg
)
--     group statemets of the selected packages
--          and find range of seqNo for each stmt
--
--            attention: where clause cannot be moved from
--                             seed of recursive view stT,
--                because optimizer doesn't optimize it as needed|
--
--     stG groups sysPackStmt rows into statments
--          each stmt has a range of seqNo, neither gaps nor overlaps
--     stmtNo and stmtNoI are often equal, but not always||
, stG as
( select location, collid, name, contoken, stmtNo, stmtNoI, pcTimestamp,
        min(seqNo) seqMin, max(seqNo) seqMax
    from sysibm.sysPackStmt, dn
          -- if all 0 internal (pseudo) statements => ignore
    where (seqno <> 0 or stmtNo <> 0 or stmtNoI <> 0)
          -- select here |
        and location = dLocation and collid = dCollid
        and name = dName and conToken = dContoken
    group by location, collid, name, contoken, pcTimeStamp,
             stmtNo, stmtNoI
)
-- now use recursive stT to concatenate text junks up to 29000 chars
, stT (lv, sq, sLen, tLen, tx,
       location, collid, name, contoken, stmtNo, stmtNoI,
       pcTimeStamp, seqMin, seqMax, explainable
) as
(     -- recursion seed are selected statements with first text chunk
select  0, s.seqNo sq, fosC2I4(substr(stmt, 1, 4)) sLen,
                      fosC2I4(substr(stmt, 5, 4)) tLen,
        varchar(substr(stmt, 9, min(length(stmt)-8,
              int(fosC2I4(substr(stmt, 5, 4))))), 29000) tx,
        g.*, s.explainable
    from stG g, sysibm.sysPackStmt s
    where s.location = g.location and s.collid = g.collid
        and s.name = g.name and s.contoken = g.contoken
        and s.seqNo = g.seqMin
union all  -- concatenate next text junk
    select lv+1,
           s.seqNo, sLen, tLen, varchar(tx || substr(stmt, 1,
            int(min(length(stmt), t.tLen-length(tx), 29000-length(tx)
         ))),  29000),
         t.location, t.collid, t.name, t.contoken,
         t.stmtNo, t.stmtNoI, t.pcTimeStamp,
         t.seqMin, t.seqMax,
                        t.explainable
    from stT t, sysibm.sysPackStmt s
    where s.location = t.location and s.collid = t.collid
        and s.name = t.name and s.contoken = t.contoken
        and s.seqNo = t.sq+1
        and t.sq < t.seqMax and t.lv < 100000
        and length(t.tx) < t.tLen and length(t.tx) < 29000
)
select  location, collid, name, contoken, pcTimestamp,
        stmtNo, stmtNoI,
        CASE WHEN left(tx, 1) >=  'a' then tx
             else  cast(CAST(tx AS VARCHAR(29000) CCSID 1208)
                     AS VARCHAR(29000) CCSID EBCDIC)
        end tc,
        lv, sq, sLen, tLen,
        seqMin, seqMax,
        explainable , substr(tx, 1, 1) t1
    from stT
-- use only longest text of each statement
    where length(tx) in (tLen, 29000)
;
select * from A540769.catStmTb
--  where     seqMax - seqMin > 1
    order by location, collid, name, contoken, sq
;
}¢--- A540769.WK.SQL(CATSTMTC) cre=2010-02-10 mod=2010-02-10-16.48.02 A540769 ---
call sqlConnect DBAF
tc = left('', 30000, 'a')
call sqlPreOpen 1, 'select length(tc), c.* from a540769.catStmtB c' ,
      "where explainable = 'Y'",
      'order by location, collid, name, contoken, sq' ,
      'with ur'
do while sqlFetchInto(1, ':le,' ,
               ':loc, :coll, :name, :conto, :pc, :stmtNo, :stmtNoI,',
               ':tc, :lv, :sq, :sLen, :tLen,' ,
               ':seqMin, :seqMax, :exp, :t1')
    $$- left(strip(loc)'.'strip(coll)'.'strip(name), 20)       $*+
        c2x(conTo) pc right(stmtNo, 5) right(stmtNoI, 5)   $*+
    $*+ right(sq, 5) right(seqMin,5)'-'right(seqMax,5) right(lv, 5)$*+
    $*+ right(sLen, 5)'/'right(tLen, 5) right(seqMin,5) exp t1     $*+
        right(length(tc), 5)'/'right(tLen,5) tc
    end
call sqlDisconnect
$#out                                              20100210 16:47:58
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   497   497  31
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   583   583
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   792   792
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   841   841
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   891   891
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   934   934
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   976   976
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699  1230  1230   2
.CG.CG9999           18303AF9162F8A55 2007-11-16-16.10.25.225321   338   338   2
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1599  1599
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1620  1620
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1641  1641
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1672  1672
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1694  1694
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1716  1716
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1763  1763   1
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1797  1797
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1825  1825
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   206   206   2
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   214   214   2
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   220   220   1
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   225   225   1
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   232   232   1
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   509   509
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   517   517
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   550   550
.MF.MF0001           1831F54D07918B4A 2007-11-27-16.01.53.809005   476   476   2
.MF.MF0001           1831F54D07918B4A 2007-11-27-16.01.53.809005   490   490   2
.MF.MF0001           1831F54D07918B4A 2007-11-27-16.01.53.809005   504   504   2
.MF.MF5010           189E0AD716F1FD3F 2009-10-15-09.33.19.524340   745   745
.MF.MF5010           189E0AD716F1FD3F 2009-10-15-09.33.19.524340   823   823
.MF.MF5010           189E0AD716F1FD3F 2009-10-15-09.33.19.524340   893   893   5
.MF.MF5010           189E0AD716F1FD3F 2009-10-15-09.33.19.524340   916   916
.MF.MF7025           189B64730BFAB8DF 2009-09-28-12.52.43.875555  1904  1904
.MF.MF7025           189B64730BFAB8DF 2009-09-28-12.52.43.875555  1937  1937
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439   487   487   1
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1150  1150   2
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1187  1187   3
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1214  1214   2
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1240  1240   2
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1268  1268   3
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1294  1294   3
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1810  1810   1
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1832  1832
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1908  1908   1
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1971  1971
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  2001  2001
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  2034  2034
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  2067  2067
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  2103  2103
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  1237  1237  12
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  1271  1271   3
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  5975  5975   5
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6050  6050   4
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6121  6121   4
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6192  6192   4
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6808  6808
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6845  6845
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  7667  7667   2
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  7742  7742
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  7908  7908  16
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8079  8079  15
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8140  8140   3
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8188  8188   1
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8411  8411   5
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8461  8461   1
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8538  8538   3
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8598  8598   1
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8647  8647
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8676  8676   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011   686   686   2
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011   814   814   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011   830   830   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011   901   901   4
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1051  1051
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1218  1218   4
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1411  1411   2
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1574  1574   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1775  1775   5
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1821  1821   5
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1872  1872
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1904  1904
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1945  1945   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1986  1986   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2046  2046   2
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2098  2098   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2136  2136   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2166  2166
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2457  2457
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2507  2507
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   497   497  31
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   583   583
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   792   792
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   841   841
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   891   891
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   934   934
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   976   976
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107  1230  1230   2
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   352   352   3
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   370   370   3
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   855   855
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   882   882
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   923   923
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   952   952
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778  1252  1252   1
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778  1304  1304
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   296   296   1
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   312   312   3
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   538   538   2
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   607   607   2
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   668   668   3
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   727   727   3
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852  1009  1009   2
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852  1032  1032
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852  1057  1057   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   284   284   2
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   294   294   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   303   303   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   314   314   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   324   324   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   335   335   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   345   345   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   355   355   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   788   788
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   817   817
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   872   872   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   981   981   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   994   994
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   650   650   1
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   720   720
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   754   754   1
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   899   899
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   920   920
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   478   478
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   499   499
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   520   520   1
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   531   531   1
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   622   622
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   626   626   1
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   696   696
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   736   736   1
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   885   885
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   906   906
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1572  1572
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1601  1601
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1630  1630
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1661  1661
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1691  1691
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1721  1721
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1768  1768   1
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1802  1802
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1830  1830   1
.MF.MF7290           189B6887175A0569 2009-09-28-15.18.44.563477   198   198   5
.MF.MF7290           189B6887175A0569 2009-09-28-15.18.44.563477   268   268
.MF.MF7290           189B6887175A0569 2009-09-28-15.18.44.563477   593   593   2
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   793   793   3
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   814   814   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   835   835   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   856   856   4
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   882   882   7
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   917   917  10
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   944   944   6
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   971   971   6
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   987   987   4
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1365  1365
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1378  1378
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1402  1402
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1412  1412
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1716  1716
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1743  1743
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1829  1829   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1850  1850   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1892  1892   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1921  1921   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1942  1942   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1984  1984   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2013  2013   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2034  2034   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2076  2076   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2105  2105   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2126  2126   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2168  2168   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2197  2197   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2218  2218   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2260  2260   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2289  2289   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2310  2310   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2352  2352   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2381  2381   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2402  2402   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2444  2444   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2473  2473   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2494  2494   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2536  2536   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2565  2565   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2586  2586   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2628  2628   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2657  2657   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2678  2678   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2720  2720   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2749  2749   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2770  2770   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2812  2812   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2841  2841   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2862  2862   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2904  2904   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2933  2933   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2954  2954   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2996  2996   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3025  3025   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3046  3046   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3088  3088   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3117  3117   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3138  3138   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3180  3180   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3209  3209   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3230  3230   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3272  3272   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3301  3301   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3322  3322   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3364  3364   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3393  3393   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3414  3414   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3456  3456   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3485  3485   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3506  3506   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3548  3548   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3611  3611
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3640  3640
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3673  3673
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3702  3702
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3734  3734
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3763  3763
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3795  3795
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3824  3824
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3849  3849
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3873  3873
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3921  3921
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3940  3940
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3962  3962
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3987  3987
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4021  4021   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4051  4051   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4074  4074
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4088  4088
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4110  4110   2
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4193  4193   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4224  4224   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4255  4255   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4285  4285   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4318  4318   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4337  4337   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4379  4379   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4412  4412   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  5439  5439
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  5454  5454
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  5465  5465
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  5480  5480
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  7099  7099
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  7132  7132   2
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  7165  7165   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643   717   717  20
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1059  1059
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1083  1083
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1093  1093
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1340  1340
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1361  1361
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1383  1383
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1408  1408
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1430  1430
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1455  1455
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1477  1477
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1498  1498
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1515  1515
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1534  1534
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1553  1553
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1568  1568
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1591  1591   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1658  1658   4
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1682  1682
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1765  1765  21
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1858  1858  21
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1949  1949  21
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2033  2033  19
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2110  2110   3
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2136  2136   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2161  2161   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2186  2186   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2212  2212   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2240  2240   2
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2271  2271   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2294  2294
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2322  2322   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3283  3283   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3321  3321   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3578  3578   2
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3611  3611   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3672  3672
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1098  1098   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1111  1111   2
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1134  1134   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1157  1157   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1194  1194   7
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1211  1211   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1228  1228   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1257  1257   7
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1684  1684   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1713  1713   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1744  1744   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  2588  2588   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3120  3120   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3457  3457   2
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3488  3488   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3584  3584   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3631  3631   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3670  3670
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3714  3714   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3726  3726   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3771  3771   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3853  3853
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3961  3961   2
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3978  3978
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   703   703   4
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   754   754  14
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   776   776   4
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   817   817   9
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   833   833   2
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   854   854   5
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   885   885
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  1649  1649   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  1681  1681   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  2872  2872   7
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  2931  2931
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  2941  2941
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  2957  2957
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3016  3016   2
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3055  3055   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3084  3084   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3113  3113   2
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3146  3146   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3168  3168   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3211  3211   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3361  3361
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  4077  4077
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   190   190   2
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   197   197   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   205   205   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   214   214   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   223   223   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   364   364
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   476   476   3
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   541   541
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   551   551
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   562   562   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   767   767   5
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   853   853   1
.MF.MF7730           189B68B60B7BA0FC 2009-09-28-15.25.15.716739   202   202  11
.MF.MF7730           189B68B60B7BA0FC 2009-09-28-15.25.15.716739   276   276   1
.MF.MF7730           189B68B60B7BA0FC 2009-09-28-15.25.15.716739   475   475
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   228   228  20
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   241   241   2
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   323   323   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   459   459   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   474   474   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   488   488   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   504   504   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   561   561   8
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   698   698
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   825   825
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   270   270   9
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   320   320
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   325   325
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   347   347   1
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   596   596   1
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   625   625   1
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   646   646   1
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   660   660   1
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   212   212   7
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   222   222   1
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   290   290
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   307   307   2
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   342   342
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   354   354   1
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   400   400   2
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   626   626   1
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   650   650   4
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   681   681   4
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   670   670
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   886   886   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   906   906   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   926   926   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   946   946   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   966   966   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   986   986   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286  1076  1076   3
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286  1417  1417   1
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628   500   500   7
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628   905   905
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628   984   984
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1222  1222
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1368  1368
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1376  1376   1
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1412  1412   1
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1464  1464   4
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1530  1530   4
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1590  1590   4
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1649  1649   4
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1749  1749
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888   484   484   1
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1140  1140   2
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1177  1177   3
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1204  1204   2
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1230  1230   2
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1258  1258   3
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1284  1284   3
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1800  1800   1
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1822  1822
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1898  1898   1
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1961  1961
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1991  1991
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  2024  2024
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  2057  2057
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  2093  2093
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491   856   856   3
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491   896   896   4
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  1880  1880   2
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  1936  1936   3
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  1991  1991   3
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  2036  2036   1
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  2293  2293
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  2350  2350   2
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  2839  2839   1
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  3082  3082   2
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  3115  3115
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  3338  3338   1
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  3391  3391   2
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   652   652   4
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   700   700  14
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   731   731   6
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   762   762   8
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   797   797
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  1373  1373   2
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  1404  1404   2
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2324  2324
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2362  2362   7
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2423  2423
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2432  2432
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2445  2445
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2498  2498   2
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2535  2535   1
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2551  2551   1
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2592  2592
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2617  2617
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2642  2642
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2671  2671   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530   166   166   2
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530   190   190   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530   871   871   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530   914   914   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1045  1045
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1082  1082
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1389  1389   2
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1494  1494
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1528  1528
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1564  1564
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1777  1777   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1812  1812
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   180   180   2
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   709   709   1
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   752   752   1
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   876   876
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   913   913
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1130  1130   2
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1167  1167
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1205  1205
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1239  1239
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1431  1431   1
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1468  1468
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   245   245   6
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   352   352  12
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   460   460  12
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   705   705
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   716   716
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  1624  1624   1
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  1671  1671   2
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2310  2310   4
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2390  2390   4
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2462  2462   4
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2534  2534   4
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2643  2643   2
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2689  2689   2
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2810  2810   5
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2860  2860   2
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2914  2914   1
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2994  2994   3
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969   233   233   3
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969   875   875   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969   918   918   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1043  1043
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1080  1080
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1322  1322   2
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1372  1372   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1439  1439   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1478  1478   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1674  1674   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1711  1711
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1736  1736
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   165   165   1
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   733   733   1
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   776   776   1
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   907   907
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   945   945
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1156  1156   2
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1254  1254
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1288  1288
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1324  1324
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1537  1537   1
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1572  1572
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   176   176   2
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   705   705   1
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   748   748   1
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   872   872
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   909   909
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1126  1126   2
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1163  1163
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1201  1201
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1235  1235
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1427  1427   1
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1464  1464
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220   200   200   5
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220   844   844   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220   887   887   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1012  1012   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1049  1049   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1086  1086   2
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1280  1280   2
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1330  1330   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1397  1397   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1436  1436   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1632  1632   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1669  1669
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1694  1694
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   164   164   3
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   720   720   1
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   758   758   1
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   796   796   2
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   959   959   2
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373  1001  1001
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373  1035  1035
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   243   243  22
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   257   257   2
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   339   339   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   475   475   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   490   490   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   504   504   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   520   520   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   577   577   8
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   714   714
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   804   804
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   241   241  21
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   254   254   2
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   336   336   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   376   376   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   506   506   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   521   521   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   535   535   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   551   551   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   608   608   8
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   745   745
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   835   835
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   357   357   8
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   636   636   1
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   674   674   1
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   695   695
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   721   721   1
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   743   743
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   761   761   2
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   846   846
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   883   883
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   917   917   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   284   284  17
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   366   366   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   446   446  19
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   528   528   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   603   603   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   618   618   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   632   632   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   648   648   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   732   732
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   254   254  19
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   268   268   3
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   350   350   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   431   431  19
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   564   564   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   579   579   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   593   593   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   609   609   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   666   666   8
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   808   808
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   936   936
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   329   329  40
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   401   401
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   406   406
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   429   429   1
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   449   449   1
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   465   465
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   491   491   1
.MF.MF9100           187BAA26126527AA 2009-03-10-16.44.17.445534   557   557   2
.MF.MF9100           187BAA26126527AA 2009-03-10-16.44.17.445534   621   621   1
.MF.MF9100           187BAA26126527AA 2009-03-10-16.44.17.445534   649   649   2
.MF.MF9100           187BAA26126527AA 2009-03-10-16.44.17.445534   738   738
.MF.MF9100A          18545D92076F77C4 2008-07-03-15.22.08.559647   560   560
.MF.MF9100A          18545D92076F77C4 2008-07-03-15.22.08.559647   583   583   2
.MF.MF9100A          18545D92076F77C4 2008-07-03-15.22.08.559647   594   594   2
.MF.MF9100A          18545D92076F77C4 2008-07-03-15.22.08.559647   681   681   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   365   365   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   378   378   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   390   390   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   434   434
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   999   999  11
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1053  1053  11
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1090  1090   2
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1148  1148   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1205  1205   3
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1553  1553   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1592  1592
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1636  1636   2
.MF.MF9999           188952C2008BD2B3 2009-06-05-14.32.44.222794   551   551   2
.MF.MF9999           188952C2008BD2B3 2009-06-05-14.32.44.222794   595   595
.MF.MF9999           188952C2008BD2B3 2009-06-05-14.32.44.222794   663   663   2
.MF.MF9999           188952C2008BD2B3 2009-06-05-14.32.44.222794   708   708
.MF.MFTEST           187A9023049B4AA1 2009-03-03-15.30.38.276394   162   162   5
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330   513   513   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330   537   537
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330   977   977   4
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1013  1013   2
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1051  1051   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1099  1099   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1151  1151   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1225  1225   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1271  1271   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1469  1469   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1558  1558   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2515  2515
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2549  2549
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2590  2590
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2631  2631   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2710  2710   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2752  2752   2
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2886  2886   2
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  3134  3134   2
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  3169  3169   2
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550   421   421   1
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550   433   433   1
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550   474   474
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550   964   964  11
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1017  1017  11
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1051  1051   2
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1108  1108   1
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1164  1164   3
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1490  1490   1
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1575  1575   2
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   529   529   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   553   553
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   718   718   4
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   752   752   2
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   789   789   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   834   834   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   883   883   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   952   952   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   995   995   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  1242  1242   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  1329  1329   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2093  2093
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2124  2124
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2163  2163
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2201  2201   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2278  2278   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2317  2317   2
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2447  2447   2
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006   422   422   1
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006   434   434   1
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006   476   476
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006   966   966  11
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1019  1019  11
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1053  1053   2
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1110  1110   1
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1166  1166   3
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1492  1492   1
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1577  1577   2
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   460   460   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   472   472   2
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   562   562  15
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   611   611  15
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   664   664  16
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   690   690   6
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   717   717   6
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   748   748   8
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   775   775   6
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   800   800   6
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   829   829   7
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   844   844   2
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   871   871
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  1448  1448   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  1587  1587   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  1878  1878   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2398  2398   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2435  2435   2
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2473  2473   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2511  2511   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2893  2893   2
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265   396   396  15
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265   909   909   1
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265   943   943   1
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265   977   977   3
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265  1095  1095   2
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   329   329
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   492   492
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   829   829  15
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   867   867  15
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   905   905  15
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   930   930   3
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   962   962   2
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1041  1041  14
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1110  1110  14
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1140  1140   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1174  1174   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1200  1200
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1228  1228
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1315  1315   4
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1352  1352   3
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1382  1382   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1408  1408
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1442  1442   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1472  1472   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1659  1659   2
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   296   296   3
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   315   315   3
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   333   333   3
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   389   389
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   982   982
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279  1016  1016
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279  1159  1159   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378   286   286   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378   311   311   4
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1014  1014
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1105  1105   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1242  1242   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1293  1293   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1329  1329   4
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1378  1378   2
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076   427   427   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076   439   439   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076   451   451   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076   493   493
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1048  1048  11
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1101  1101  11
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1135  1135   2
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1192  1192   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1248  1248   3
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1659  1659   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1698  1698
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1933  1933   2
$#out                                              20100210 16:46:56
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   497   497  31
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   583   583
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   792   792
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   841   841
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   891   891
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   934   934
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699   976   976
.A2.A267280T         18983996167C8EC0 2009-09-08-10.10.50.992699  1230  1230   2
.CG.CG9999           18303AF9162F8A55 2007-11-16-16.10.25.225321   338   338   2
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1599  1599
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1620  1620
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1641  1641
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1672  1672
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1694  1694
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1716  1716
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1763  1763   1
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1797  1797
.HG.HG7280           17DC1CFB124A6CF8 2006-05-30-11.38.48.105459  1825  1825
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   206   206   2
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   214   214   2
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   220   220   1
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   225   225   1
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   232   232   1
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   509   509
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   517   517
.MF.MF0000           189B646805E37915 2009-09-28-12.51.10.004196   550   550
.MF.MF0001           1831F54D07918B4A 2007-11-27-16.01.53.809005   476   476   2
.MF.MF0001           1831F54D07918B4A 2007-11-27-16.01.53.809005   490   490   2
.MF.MF0001           1831F54D07918B4A 2007-11-27-16.01.53.809005   504   504   2
.MF.MF5010           189E0AD716F1FD3F 2009-10-15-09.33.19.524340   745   745
.MF.MF5010           189E0AD716F1FD3F 2009-10-15-09.33.19.524340   823   823
.MF.MF5010           189E0AD716F1FD3F 2009-10-15-09.33.19.524340   893   893   5
.MF.MF5010           189E0AD716F1FD3F 2009-10-15-09.33.19.524340   916   916
.MF.MF7025           189B64730BFAB8DF 2009-09-28-12.52.43.875555  1904  1904
.MF.MF7025           189B64730BFAB8DF 2009-09-28-12.52.43.875555  1937  1937
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439   487   487   1
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1150  1150   2
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1187  1187   3
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1214  1214   2
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1240  1240   2
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1268  1268   3
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1294  1294   3
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1810  1810   1
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1832  1832
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1908  1908   1
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  1971  1971
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  2001  2001
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  2034  2034
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  2067  2067
.MF.MF7200           18AB222818C721D5 2010-01-06-16.41.37.186439  2103  2103
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  1237  1237  12
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  1271  1271   3
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  5975  5975   5
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6050  6050   4
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6121  6121   4
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6192  6192   4
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6808  6808
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  6845  6845
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  7667  7667   2
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  7742  7742
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  7908  7908  16
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8079  8079  15
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8140  8140   3
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8188  8188   1
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8411  8411   5
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8461  8461   1
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8538  8538   3
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8598  8598   1
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8647  8647
.MF.MF7230           189BB3CD1B45F652 2009-09-30-12.12.54.067673  8676  8676   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011   686   686   2
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011   814   814   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011   830   830   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011   901   901   4
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1051  1051
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1218  1218   4
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1411  1411   2
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1574  1574   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1775  1775   5
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1821  1821   5
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1872  1872
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1904  1904
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1945  1945   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  1986  1986   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2046  2046   2
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2098  2098   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2136  2136   1
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2166  2166
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2457  2457
.MF.MF7235           18A896440B50E2D0 2009-12-21-11.49.29.200011  2507  2507
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   497   497  31
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   583   583
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   792   792
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   841   841
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   891   891
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   934   934
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107   976   976
.MF.MF7240           189B687E1C1DD8DA 2009-09-28-15.17.30.315107  1230  1230   2
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   352   352   3
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   370   370   3
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   855   855
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   882   882
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   923   923
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778   952   952
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778  1252  1252   1
.MF.MF7250           189B688010DB7A8E 2009-09-28-15.17.44.140778  1304  1304
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   296   296   1
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   312   312   3
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   538   538   2
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   607   607   2
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   668   668   3
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852   727   727   3
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852  1009  1009   2
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852  1032  1032
.MF.MF7260           18A77F5418E26D38 2009-12-14-13.25.59.036852  1057  1057   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   284   284   2
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   294   294   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   303   303   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   314   314   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   324   324   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   335   335   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   345   345   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   355   355   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   788   788
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   817   817
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   872   872   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   981   981   1
.MF.MF7270           18A7FB001A1199D2 2009-12-17-15.12.22.676583   994   994
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   650   650   1
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   720   720
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   754   754   1
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   899   899
.MF.MF7275           189B68860693AB8F 2009-09-28-15.18.31.777454   920   920
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   478   478
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   499   499
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   520   520   1
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   531   531   1
.MF.MF7275A          185487870A2E9FB3 2008-07-04-16.23.51.318206   622   622
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   626   626   1
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   696   696
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   736   736   1
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   885   885
.MF.MF7275B          185BEB8E1AF4E63E 2008-08-20-17.02.13.497816   906   906
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1572  1572
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1601  1601
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1630  1630
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1661  1661
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1691  1691
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1721  1721
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1768  1768   1
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1802  1802
.MF.MF7280           1827451E1237094D 2007-09-20-16.50.07.074405  1830  1830   1
.MF.MF7290           189B6887175A0569 2009-09-28-15.18.44.563477   198   198   5
.MF.MF7290           189B6887175A0569 2009-09-28-15.18.44.563477   268   268
.MF.MF7290           189B6887175A0569 2009-09-28-15.18.44.563477   593   593   2
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   793   793   3
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   814   814   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   835   835   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   856   856   4
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   882   882   7
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   917   917  10
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   944   944   6
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   971   971   6
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408   987   987   4
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1365  1365
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1378  1378
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1402  1402
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1412  1412
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1716  1716
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1743  1743
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1829  1829   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1850  1850   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1892  1892   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1921  1921   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1942  1942   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  1984  1984   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2013  2013   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2034  2034   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2076  2076   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2105  2105   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2126  2126   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2168  2168   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2197  2197   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2218  2218   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2260  2260   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2289  2289   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2310  2310   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2352  2352   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2381  2381   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2402  2402   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2444  2444   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2473  2473   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2494  2494   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2536  2536   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2565  2565   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2586  2586   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2628  2628   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2657  2657   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2678  2678   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2720  2720   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2749  2749   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2770  2770   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2812  2812   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2841  2841   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2862  2862   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2904  2904   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2933  2933   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2954  2954   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  2996  2996   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3025  3025   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3046  3046   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3088  3088   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3117  3117   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3138  3138   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3180  3180   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3209  3209   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3230  3230   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3272  3272   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3301  3301   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3322  3322   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3364  3364   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3393  3393   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3414  3414   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3456  3456   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3485  3485   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3506  3506   5
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3548  3548   8
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3611  3611
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3640  3640
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3673  3673
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3702  3702
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3734  3734
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3763  3763
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3795  3795
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3824  3824
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3849  3849
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3873  3873
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3921  3921
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3940  3940
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3962  3962
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  3987  3987
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4021  4021   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4051  4051   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4074  4074
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4088  4088
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4110  4110   2
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4193  4193   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4224  4224   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4255  4255   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4285  4285   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4318  4318   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4337  4337   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4379  4379   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  4412  4412   1
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  5439  5439
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  5454  5454
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  5465  5465
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  5480  5480
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  7099  7099
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  7132  7132   2
.MF.MF7310           189B688C05C6E40F 2009-09-28-15.19.21.899408  7165  7165   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643   717   717  20
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1059  1059
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1083  1083
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1093  1093
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1340  1340
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1361  1361
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1383  1383
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1408  1408
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1430  1430
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1455  1455
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1477  1477
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1498  1498
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1515  1515
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1534  1534
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1553  1553
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1568  1568
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1591  1591   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1658  1658   4
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1682  1682
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1765  1765  21
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1858  1858  21
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  1949  1949  21
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2033  2033  19
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2110  2110   3
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2136  2136   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2161  2161   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2186  2186   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2212  2212   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2240  2240   2
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2271  2271   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2294  2294
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  2322  2322   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3283  3283   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3321  3321   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3578  3578   2
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3611  3611   1
.MF.MF7320           189B688E10AA04E0 2009-09-28-15.19.41.530643  3672  3672
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1098  1098   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1111  1111   2
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1134  1134   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1157  1157   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1194  1194   7
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1211  1211   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1228  1228   4
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1257  1257   7
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1684  1684   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1713  1713   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  1744  1744   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  2588  2588   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3120  3120   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3457  3457   2
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3488  3488   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3584  3584   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3631  3631   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3670  3670
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3714  3714   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3726  3726   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3771  3771   1
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3853  3853
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3961  3961   2
.MF.MF7380           189B68951192127A 2009-09-28-15.20.40.488521  3978  3978
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   703   703   4
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   754   754  14
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   776   776   4
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   817   817   9
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   833   833   2
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   854   854   5
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388   885   885
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  1649  1649   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  1681  1681   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  2872  2872   7
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  2931  2931
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  2941  2941
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  2957  2957
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3016  3016   2
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3055  3055   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3084  3084   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3113  3113   2
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3146  3146   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3168  3168   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3211  3211   1
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  3361  3361
.MF.MF7500           189B689A157AE10F 2009-09-28-15.21.23.456388  4077  4077
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   190   190   2
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   197   197   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   205   205   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   214   214   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   223   223   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   364   364
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   476   476   3
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   541   541
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   551   551
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   562   562   1
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   767   767   5
.MF.MF7550           189B68A7085A22EF 2009-09-28-15.23.09.066891   853   853   1
.MF.MF7730           189B68B60B7BA0FC 2009-09-28-15.25.15.716739   202   202  11
.MF.MF7730           189B68B60B7BA0FC 2009-09-28-15.25.15.716739   276   276   1
.MF.MF7730           189B68B60B7BA0FC 2009-09-28-15.25.15.716739   475   475
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   228   228  20
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   241   241   2
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   323   323   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   459   459   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   474   474   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   488   488   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   504   504   1
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   561   561   8
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   698   698
.MF.MF7770           189B68BA1DF928D3 2009-09-28-15.25.54.118307   825   825
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   270   270   9
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   320   320
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   325   325
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   347   347   1
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   596   596   1
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   625   625   1
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   646   646   1
.MF.MF7790           189B68C61FB17F80 2009-09-28-15.27.35.232510   660   660   1
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   212   212   7
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   222   222   1
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   290   290
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   307   307   2
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   342   342
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   354   354   1
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   400   400   2
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   626   626   1
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   650   650   4
.MF.MF7801           189CF51D0604AB49 2009-10-08-11.53.01.835437   681   681   4
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   670   670
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   886   886   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   906   906   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   926   926   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   946   946   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   966   966   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286   986   986   1
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286  1076  1076   3
.MF.MF7930           189B68D4076DD7A1 2009-09-28-15.29.26.312286  1417  1417   1
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628   500   500   7
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628   905   905
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628   984   984
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1222  1222
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1368  1368
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1376  1376   1
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1412  1412   1
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1464  1464   4
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1530  1530   4
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1590  1590   4
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1649  1649   4
.MF.MF7990           189B68D6074EB718 2009-09-28-15.29.43.057628  1749  1749
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888   484   484   1
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1140  1140   2
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1177  1177   3
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1204  1204   2
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1230  1230   2
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1258  1258   3
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1284  1284   3
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1800  1800   1
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1822  1822
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1898  1898   1
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1961  1961
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  1991  1991
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  2024  2024
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  2057  2057
.MF.MF8200           18AB22250F0C3002 2010-01-06-16.41.09.469888  2093  2093
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491   856   856   3
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491   896   896   4
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  1880  1880   2
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  1936  1936   3
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  1991  1991   3
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  2036  2036   1
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  2293  2293
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  2350  2350   2
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  2839  2839   1
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  3082  3082   2
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  3115  3115
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  3338  3338   1
.MF.MF8210           18AEBADA0D1798D2 2010-01-29-13.54.32.251491  3391  3391   2
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   652   652   4
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   700   700  14
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   731   731   6
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   762   762   8
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091   797   797
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  1373  1373   2
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  1404  1404   2
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2324  2324
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2362  2362   7
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2423  2423
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2432  2432
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2445  2445
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2498  2498   2
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2535  2535   1
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2551  2551   1
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2592  2592
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2617  2617
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2642  2642
.MF.MF8500           187F167F0F75FAC6 2009-04-01-11.29.58.938091  2671  2671   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530   166   166   2
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530   190   190   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530   871   871   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530   914   914   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1045  1045
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1082  1082
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1389  1389   2
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1494  1494
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1528  1528
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1564  1564
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1777  1777   1
.MF.MF8600           189B68EB1F459C95 2009-09-28-15.32.45.500530  1812  1812
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   180   180   2
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   709   709   1
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   752   752   1
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   876   876
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199   913   913
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1130  1130   2
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1167  1167
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1205  1205
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1239  1239
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1431  1431   1
.MF.MF8610           189B68ED003AC9EE 2009-09-28-15.32.54.140199  1468  1468
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   245   245   6
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   352   352  12
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   460   460  12
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   705   705
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574   716   716
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  1624  1624   1
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  1671  1671   2
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2310  2310   4
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2390  2390   4
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2462  2462   4
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2534  2534   4
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2643  2643   2
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2689  2689   2
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2810  2810   5
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2860  2860   2
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2914  2914   1
.MF.MF8620           189B68EE02913180 2009-09-28-15.33.03.141574  2994  2994   3
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969   233   233   3
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969   875   875   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969   918   918   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1043  1043
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1080  1080
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1322  1322   2
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1372  1372   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1439  1439   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1478  1478   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1674  1674   1
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1711  1711
.MF.MF8630           187F168B15C4CE4A 2009-04-01-11.31.41.254969  1736  1736
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   165   165   1
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   733   733   1
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   776   776   1
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   907   907
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736   945   945
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1156  1156   2
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1254  1254
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1288  1288
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1324  1324
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1537  1537   1
.MF.MF8640           189B68F00AF49A2A 2009-09-28-15.33.22.117736  1572  1572
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   176   176   2
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   705   705   1
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   748   748   1
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   872   872
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523   909   909
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1126  1126   2
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1163  1163
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1201  1201
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1235  1235
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1427  1427   1
.MF.MF8650           189B68F10EC16EC0 2009-09-28-15.33.31.502523  1464  1464
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220   200   200   5
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220   844   844   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220   887   887   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1012  1012   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1049  1049   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1086  1086   2
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1280  1280   2
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1330  1330   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1397  1397   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1436  1436   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1632  1632   1
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1669  1669
.MF.MF8660           187F169106553F32 2009-04-01-11.32.27.540220  1694  1694
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   164   164   3
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   720   720   1
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   758   758   1
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   796   796   2
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373   959   959   2
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373  1001  1001
.MF.MF8670           189B68F2105EC140 2009-09-28-15.33.40.314373  1035  1035
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   243   243  22
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   257   257   2
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   339   339   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   475   475   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   490   490   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   504   504   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   520   520   1
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   577   577   8
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   714   714
.MF.MF8800           189B690A1F38CB74 2009-09-28-15.37.05.534253   804   804
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   241   241  21
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   254   254   2
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   336   336   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   376   376   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   506   506   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   521   521   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   535   535   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   551   551   1
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   608   608   8
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   745   745
.MF.MF8810           189B690C105CBE3E 2009-09-28-15.37.18.416120   835   835
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   357   357   8
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   636   636   1
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   674   674   1
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   695   695
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   721   721   1
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   743   743
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   761   761   2
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   846   846
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   883   883
.MF.MF8910           189B690E1D237C1C 2009-09-28-15.37.38.542576   917   917   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   284   284  17
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   366   366   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   446   446  19
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   528   528   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   603   603   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   618   618   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   632   632   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   648   648   1
.MF.MF8940           189B691500940FD6 2009-09-28-15.38.29.775935   732   732
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   254   254  19
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   268   268   3
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   350   350   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   431   431  19
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   564   564   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   579   579   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   593   593   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   609   609   1
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   666   666   8
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   808   808
.MF.MF8950           18A391B617161E36 2009-11-19-13.33.32.099192   936   936
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   329   329  40
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   401   401
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   406   406
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   429   429   1
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   449   449   1
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   465   465
.MF.MF8960           189B691A13D718C4 2009-09-28-15.39.16.768355   491   491   1
.MF.MF9100           187BAA26126527AA 2009-03-10-16.44.17.445534   557   557   2
.MF.MF9100           187BAA26126527AA 2009-03-10-16.44.17.445534   621   621   1
.MF.MF9100           187BAA26126527AA 2009-03-10-16.44.17.445534   649   649   2
.MF.MF9100           187BAA26126527AA 2009-03-10-16.44.17.445534   738   738
.MF.MF9100A          18545D92076F77C4 2008-07-03-15.22.08.559647   560   560
.MF.MF9100A          18545D92076F77C4 2008-07-03-15.22.08.559647   583   583   2
.MF.MF9100A          18545D92076F77C4 2008-07-03-15.22.08.559647   594   594   2
.MF.MF9100A          18545D92076F77C4 2008-07-03-15.22.08.559647   681   681   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   365   365   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   378   378   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   390   390   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   434   434
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950   999   999  11
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1053  1053  11
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1090  1090   2
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1148  1148   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1205  1205   3
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1553  1553   1
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1592  1592
.MF.MF913@I          18B0705018ACF7AF 2010-02-09-10.51.55.497950  1636  1636   2
.MF.MF9999           188952C2008BD2B3 2009-06-05-14.32.44.222794   551   551   2
.MF.MF9999           188952C2008BD2B3 2009-06-05-14.32.44.222794   595   595
.MF.MF9999           188952C2008BD2B3 2009-06-05-14.32.44.222794   663   663   2
.MF.MF9999           188952C2008BD2B3 2009-06-05-14.32.44.222794   708   708
.MF.MFTEST           187A9023049B4AA1 2009-03-03-15.30.38.276394   162   162   5
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330   513   513   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330   537   537
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330   977   977   4
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1013  1013   2
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1051  1051   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1099  1099   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1151  1151   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1225  1225   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1271  1271   1
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1469  1469   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  1558  1558   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2515  2515
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2549  2549
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2590  2590
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2631  2631   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2710  2710   3
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2752  2752   2
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  2886  2886   2
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  3134  3134   2
.MF.YMFC001          18622FBF0BAC22A2 2008-09-29-12.58.24.304330  3169  3169   2
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550   421   421   1
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550   433   433   1
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550   474   474
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550   964   964  11
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1017  1017  11
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1051  1051   2
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1108  1108   1
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1164  1164   3
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1490  1490   1
.MF.YMFC004          18AB22740B5F658A 2010-01-06-16.52.11.206550  1575  1575   2
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   529   529   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   553   553
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   718   718   4
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   752   752   2
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   789   789   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   834   834   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   883   883   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   952   952   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799   995   995   1
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  1242  1242   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  1329  1329   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2093  2093
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2124  2124
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2163  2163
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2201  2201   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2278  2278   3
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2317  2317   2
.MF.YMFC101          18A9D74307D4AFFA 2009-12-29-11.18.22.148799  2447  2447   2
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006   422   422   1
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006   434   434   1
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006   476   476
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006   966   966  11
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1019  1019  11
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1053  1053   2
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1110  1110   1
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1166  1166   3
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1492  1492   1
.MF.YMFC104          18A9D7460DA45DB0 2009-12-29-11.18.48.838006  1577  1577   2
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   460   460   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   472   472   2
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   562   562  15
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   611   611  15
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   664   664  16
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   690   690   6
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   717   717   6
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   748   748   8
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   775   775   6
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   800   800   6
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   829   829   7
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   844   844   2
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969   871   871
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  1448  1448   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  1587  1587   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  1878  1878   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2398  2398   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2435  2435   2
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2473  2473   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2511  2511   1
.MF.YMFC112          188C01F016BE787B 2009-06-22-16.27.57.183969  2893  2893   2
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265   396   396  15
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265   909   909   1
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265   943   943   1
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265   977   977   3
.MF.YMFC118          18A9D76B132C2640 2009-12-29-11.24.00.666265  1095  1095   2
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   329   329
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   492   492
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   829   829  15
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   867   867  15
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   905   905  15
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   930   930   3
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203   962   962   2
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1041  1041  14
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1110  1110  14
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1140  1140   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1174  1174   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1200  1200
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1228  1228
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1315  1315   4
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1352  1352   3
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1382  1382   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1408  1408
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1442  1442   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1472  1472   1
.MF.YMFC119          18A9D76E1E4802C6 2009-12-29-11.24.28.744203  1659  1659   2
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   296   296   3
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   315   315   3
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   333   333   3
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   389   389
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279   982   982
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279  1016  1016
.MF.YMFC155          18A9D77E12E455F0 2009-12-29-11.26.39.976279  1159  1159   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378   286   286   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378   311   311   4
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1014  1014
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1105  1105   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1242  1242   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1293  1293   2
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1329  1329   4
.MF.YMFC203          18A81BBD06A70AA0 2009-12-18-10.44.02.510378  1378  1378   2
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076   427   427   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076   439   439   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076   451   451   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076   493   493
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1048  1048  11
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1101  1101  11
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1135  1135   2
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1192  1192   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1248  1248   3
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1659  1659   1
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1698  1698
.MF.YMFC204          18A9D78003D85D0A 2009-12-29-11.26.52.809076  1933  1933   2
$#out                                              20100210 15:49:55
}¢--- A540769.WK.SQL(CATSTMTQ) cre=2010-02-10 mod=2010-02-10-17.12.02 A540769 ---
select count(*), nn from
(
select case when stmtNo = stmtNoI then '='
            when stmtNo <> 0      then 'o'
            when stmtNoI <> 0      then 'i'
            else                   '|'
            end nn
       from sysibm.sysPackstmt
) nn
group by nn
       with ur
}¢--- A540769.WK.SQL(CATSTMTW) cre=2010-02-10 mod=2010-02-10-16.36.40 A540769 ---
$**    pretty print catStmt --> use very long recSize|

call sqlConnect DBAF
tc = left('', 30000, 'a')
call sqlPreOpen 1, 'select length(tc), c.* from a540769.catStmt c' ,
      "where explainable = 'Y' and seqMax - seqMin > 1",
      'order by location, collid, name, contoken, sq' /* ,
      'fetch first 100 rows only'                        */
do while sqlFetchInto(1, ':le,' ,
               ':loc, :coll, :name, :conto, :stmtNo, :stmtNoI,',
               ':tc, :lv, :sq, :i1, :i2,' ,
               ':seqMin, :seqMax, :exp, :t1')
    $$- left(strip(loc)'.'strip(coll)'.'strip(name)':'c2x(conTo),40)$*+
        right(stmtNo, 5) right(stmtNoI, 5)                         $*+
        right(sq, 5) right(seqMin,5)'-'right(seqMax,5) right(lv, 5)$*+
        right(i1, 5)'/'right(i2, 5) right(seqMin,5) exp t1         $*+
        right(length(tc), 5) tc
    end
call sqlDisconnect
$#out                                              20100210 16:35:58
.MF.MF7300:1870A53C074E0A8B               1026  1026    21    18-   21     3 130
.MF.MF7300:1870A53C074E0A8B               1680  1680    31    27-   32     4 192
.MF.MF7300:18823BDE05922702               1027  1027    21    18-   21     3 130
.MF.MF7300:18823BDE05922702               1681  1681    31    27-   32     4 192
.MF.MF7300:189B688A11448374               1027  1027    21    18-   21     3 130
.MF.MF7300:189B688A11448374               1681  1681    31    27-   32     4 192
.MF.MF7340:1870A547128765C4               1314  1314    29    28-   30     1  72
.MF.MF7340:187F164C035D050A               1314  1314    29    28-   30     1  72
.MF.MF7340:189B689104A51119               1314  1314    29    28-   30     1  72
.MF.MF7360:187F164F0B7D2143               1401  1401    25    23-   26     2 114
.MF.MF7360:1885FBBE18568138               1402  1402    25    23-   26     2 114
.MF.MF7360:189B68931AEEB97B               1402  1402    25    23-   26     2 114
.MF.MF8132:16220FBB0F7A91C6               6161     0    32    31-   33     1   7
.MF.MF8133:165C328D11EE39A1               6333     0    33    32-   35     1   8
.MF.MF8133:166D01F706A93017               6343     0    33    32-   35     1   8
.MF.MF8171:16346DB214C3E00A               4760     0    31    30-   33     1  10
.MF.MF8701:17DF9D2D1EC3A426               1277  1277    76    73-   76     3   8
.MF.MFHF01:17E1A52613F3FFAF                450   450    11    10-   15     1  14
.MF.MFHF01:17E1A52613F3FFAF                457   457    17    16-   21     1  14
.MF.YMFC119:184FEC0A15A63EAC               173   173     1     1-    3     0  27
.MF.YMFC202:17DAD9280BA326F3              4412  4412    67    66-   68     1   5
.MF.YMFC203:17DAD9431401230E              3458  3458    36    35-   37     1   5
.MF.YMFC203:17DAD9431401230E              4182  4182    42    42-   44     0   6
.MF.YMFC203:17DAD9431401230E              4317  4317    45    45-   47     0   6
.MF.YMFC203:17DAD9431401230E              4360  4360    49    48-   50     1   5
.MF.YMFC209:17DADA44116B5998              3705  3705    40    39-   41     1   6
.MF.YMFC209:17DADA44116B5998              3726  3726    45    42-   46     3  12
.MF.YMFC209:17DADA44116B5998              3763  3763    48    47-   49     1   6
.MF.YMFC209:17DADA44116B5998              3785  3785    51    50-   52     1   6
.MF.YMFC209:17DADA44116B5998              3807  3807    54    53-   55     1   6
.MF.YMFC209:17DADA44116B5998              3829  3829    58    56-   59     2   9
.MF.YMFC209:17DADA44116B5998              3860  3860    62    60-   62     2   7
.MF.YMFC209:17DADA44116B5998              3883  3883    64    63-   65     1   6
.MF.YMFC209:17DADA44116B5998              3906  3906    68    66-   68     2   7
.MF.YMFC209:17DADA44116B5998              4519  4519    98    98-  100     0   5
.MF.YMFC209:17DADA44116B5998              4760  4760   104   103-  105     1   7
.MF.YMFC209:17DADA44116B5998              4781  4781   109   106-  111     3  13
.MF.YMFC209:17DADA44116B5998              4822  4822   114   112-  115     2   7
.MF.YMFC209:17DADA44116B5998              4844  4844   118   116-  119     2   7
.MF.YMFC209:17DADA44116B5998              4866  4866   122   120-  123     2   7
.MF.YMFC209:17DADA44116B5998              4888  4888   126   124-  127     2   9
.MF.YMFC209:17DADA44116B5998              4919  4919   130   128-  131     2   7
.MF.YMFC209:17DADA44116B5998              4942  4942   134   132-  135     2   8
.MF.YMFC209:17DADA44116B5998              4967  4967   138   136-  139     2   7
.MF.YMFC209:17DADA44116B5998              5022  5022   141   140-  142     1   5
.MF.YMFC211:17DAD94E0524B94E              4007  4007    48    47-   49     1   6
.MF.YMFC211:17DAD94E0524B94E              4024  4024    51    50-   52     1   6
.MF.YMFC211:17DAD94E0524B94E              4044  4044    54    53-   55     1   6
.MF.YMFC211:17DAD94E0524B94E              5610  5610    86    85-   87     1   6
.MF.YMFC211:17DAD94E0524B94E              5623  5623    89    88-   90     1   6
.MF.YMFC211:17DAD94E0524B94E              5637  5637    91    91-   93     0   5
.MF.YMFC211:17DAD94E0524B94E              5681  5681    95    94-   96     1   5
.MF.YMFC217:17DADBCF0A368F93              4214  4214    55    53-   56     2   7
.MF.YMFC217:17DADBCF0A368F93              4236  4236    59    57-   59     2   7
.MF.YMFC217:17DADBCF0A368F93              4258  4258    62    60-   62     2   7
.MF.YMFC217:17DADBCF0A368F93              4281  4281    67    63-   68     4  14
.MF.YMFC217:17DADBCF0A368F93              4322  4322    72    69-   72     3   9
.MF.YMFC217:17DADBCF0A368F93              4352  4352    75    73-   76     2   8
.MF.YMFC217:17DADBCF0A368F93              4374  4374    79    77-   80     2   7
.MF.YMFC217:17DADBCF0A368F93              4397  4397    83    81-   84     2   8
.MF.YMFC217:17DADBCF0A368F93              5669  5669   124   123-  125     1   5
.MF.YMFC219:17CBCBA51BBB7632              3937  3937    67    66-   68     1   5
.MF.YMFC220:17CBCC4601A8601C              3233  3233    40    39-   41     1   6
.MF.YMFC220:17CBCC4601A8601C              3254  3254    45    42-   46     3  12
.MF.YMFC220:17CBCC4601A8601C              3291  3291    48    47-   49     1   6
.MF.YMFC220:17CBCC4601A8601C              3313  3313    51    50-   52     1   6
.MF.YMFC220:17CBCC4601A8601C              3335  3335    54    53-   55     1   6
.MF.YMFC220:17CBCC4601A8601C              3357  3357    58    56-   59     2   9
.MF.YMFC220:17CBCC4601A8601C              3388  3388    62    60-   62     2   7
.MF.YMFC220:17CBCC4601A8601C              3411  3411    64    63-   65     1   6
.MF.YMFC220:17CBCC4601A8601C              3434  3434    68    66-   68     2   7
.MF.YMFC220:17CBCC4601A8601C              4054  4054    98    98-  100     0   5
.MF.YMFC220:17CBCC4601A8601C              4295  4295   104   103-  105     1   7
.MF.YMFC220:17CBCC4601A8601C              4316  4316   109   106-  111     3  13
.MF.YMFC220:17CBCC4601A8601C              4357  4357   113   112-  115     1   7
.MF.YMFC220:17CBCC4601A8601C              4379  4379   117   116-  119     1   7
.MF.YMFC220:17CBCC4601A8601C              4401  4401   121   120-  123     1   7
.MF.YMFC220:17CBCC4601A8601C              4423  4423   126   124-  127     2   9
.MF.YMFC220:17CBCC4601A8601C              4454  4454   130   128-  131     2   8
.MF.YMFC220:17CBCC4601A8601C              4477  4477   134   132-  135     2   8
.MF.YMFC220:17CBCC4601A8601C              4502  4502   138   136-  139     2   7
.MF.YMFC220:17CBCC4601A8601C              4557  4557   141   140-  142     1   5
.MF.YMFGEPU:163ED25B0B0D8340              1379     0    15    12-   17     3  13
.MF.YMFGEPU:163ED25B0B0D8340              1441     0    19    18-   20     1   5
.MF.YMFINFO:17B4CF1006234E55               505   505     9     8-   10     1   5
.MF.YMFINFO:17B4CF1006234E55              1108  1108    13    12-   16     1  11
.MF.YMFINFO:17B4CF1006234E55              1722  1722    17    17-   19     0   5
.MF.YMFINFO:17B4CF1006234E55              1765  1765    20    20-   22     0   5
.MF.YMFINFO:17B4CF1006234E55              1794  1794    23    23-   25     0   5
.MF.YMFINFO:17B4CF1006234E55              1833  1833    26    26-   28     0   5
.MF.YMFINFO:17B4CF1006234E55              1911  1911    30    29-   31     1   7
.MF.YMFINFO:17B4CF1006234E55              1962  1962    33    32-   34     1   5
.MF.YMFINFO:17B4CF1006234E55              2243  2243    42    41-   43     1   7
.MF.YMFINFO:17B4CF1015EB934D               505   505     9     8-   10     1   5
.MF.YMFINFO:17B4CF1015EB934D              1101  1101    13    12-   16     1  11
.MF.YMFINFO:17B4CF1015EB934D              1715  1715    17    17-   19     0   5
.MF.YMFINFO:17B4CF1015EB934D              1758  1758    20    20-   22     0   5
.MF.YMFINFO:17B4CF1015EB934D              1787  1787    23    23-   25     0   5
.MF.YMFINFO:17B4CF1015EB934D              1826  1826    26    26-   28     0   5
.MF.YMFINFO:17B4CF1015EB934D              1904  1904    30    29-   31     1   7
.MF.YMFINFO:17B4CF1015EB934D              1955  1955    33    32-   34     1   5
.MF.YMFINFO:17B4CF1015EB934D              2236  2236    42    41-   43     1   7
$#out                                              20100210 14:32:45
}¢--- A540769.WK.SQL(CATSTMT0) cre=2010-02-10 mod=2010-02-10-16.38.52 A540769 ---
-- test view for catStmt: show more debug infos
--
set current sqlid = 'S100447';
set current path = 'OA1A';
drop   view A540769.CATSTMT;
create view A540769.CATSTMT as
--     stG groups sysPackStmt rows into statments
--          each stmt has a range of seqNo, neither gaps nor overlaps
--     stmtNo and stmtNoI are often equal, but not always||
with stG as
( select location, collid, name, contoken, stmtNo, stmtNoI,
        min(seqNo) seqMin, max(seqNo) seqMax
    from sysibm.sysPackStmt
          -- if all 0 internal (pseudo) statements => ignore
    where (seqno <> 0 or stmtNo <> 0 or stmtNoI <> 0)
          -- select here |
        and location = '' and collid = 'MF'
    group by location, collid, name, contoken,
             stmtNo, stmtNoI
)
-- now use recursive stT to concatenate text junks up to 29000 chars
, stT (lv, sq, sLen, tLen, tx,
       location, collid, name, contoken, stmtNo, stmtNoI,
       seqMin, seqMax, explainable
) as
(
select  0, s.seqNo sq, fosC2I4(substr(stmt, 1, 4)) sLen,
                      fosC2I4(substr(stmt, 5, 4)) tLen,
        varchar(substr(stmt, 9, min(length(stmt)-8,
              int(fosC2I4(substr(stmt, 5, 4))))), 29000) tx,
        g.*, s.explainable
    from stG g, sysibm.sysPackStmt s
    where s.location = g.location and s.collid = g.collid
        and s.name = g.name and s.contoken = g.contoken
        and s.seqNo = g.seqMin
union all
    select lv+1,
           s.seqNo, sLen, tLen, varchar(tx || substr(stmt, 1,
            int(min(length(stmt), t.tLen-length(tx), 29000-length(tx)
         ))),  29000),
         t.location, t.collid, t.name, t.contoken,
         t.stmtNo, t.stmtNoI,
         t.seqMin, t.seqMax,
         t.explainable
    from stT t, sysibm.sysPackStmt s
    where s.location = t.location and s.collid = t.collid
        and s.name = t.name and s.contoken = t.contoken
        and s.seqNo = t.sq+1
        and t.sq < t.seqMax and t.lv < 100000
        and length(t.tx) < t.tLen and length(t.tx) < 29000
)
select  location, collid, name, contoken, stmtNo, stmtNoI,
        CASE WHEN left(tx, 1) >=  'a' then tx
             else  cast(CAST(tx AS VARCHAR(29000) CCSID 1208)
                     AS VARCHAR(29000) CCSID EBCDIC)
        end tc,
        lv, sq, sLen, tLen,
        seqMin, seqMax,
        explainable , substr(tx, 1, 1) t1
    from stT
-- use only longest text of each statement
    where length(tx) in (tLen, 29000)
;
select * from A540769.CATSTMT
    where     seqMax - seqMin > 1
    order by location, collid, name, contoken, sq
;
}¢--- A540769.WK.SQL(CATSTOGR) cre=2010-10-01 mod=2010-11-16-10.08.51 A540769 ---
select substr(stgroup,1, 10), count(*) "#DBs",
         min(createdTs) "creation", max(createdTS)
    from sysibm.sysDatabase
    group by stGroup
    order by stGroup
    with ur
;
select substr(storName, 1, 10), count(*) "#tbParts",
         min(createdTs) "creation", max(createdTS)
    from sysibm.sysTablePart
    group by storName
    order by storName
    with ur
;
select substr(storName, 1, 10), count(*) "#ixParts",
         min(createdTs) "creation", max(createdTS)
    from sysibm.sysIndexPart
    group by storName
    order by storName
    with ur
;                    x
select count(*), storname
    from sysibm.systablePart
    group by storName
    with ur
}¢--- A540769.WK.SQL(CATSTOR) cre=2010-02-02 mod=2010-02-02-12.48.57 A540769 ---
  select char('<' || storName || '>', 10), count(*)
    from sysIbm.sysTablePart
    group by length(storName), storName
    WITH UR
;
  select char('<' || storName || '>', 10), count(*)
    from sysIbm.sysTablePart
    group by char('<' || storName || '>', 10)
    WITH UR
;
  select char('<' || storName || '>', 10), count(*)
    from sysIbm.sysTablePart
    group by storName
    WITH UR
;
select substr('<' || storName || '>', 1, 10), count(*)--length(storName)
    from sysIbm.sysTablePart
    group by '<' || storName || '>'
    with ur
;
X
select sg, count(*)
from
( select substr('<' || storName || '>', 1, 10) sg
    from sysIbm.sysTablePart
) SG
    group by sg
    with ur
;
X
}¢--- A540769.WK.SQL(CATSYN) cre=2012-04-16 mod=2016-11-03-09.19.58 A540769 ----
select 'set current sqlid = ''' || strip(creator) || '''; '
        || 'drop synonym ' || strip(name)
        || '; --> ' || strip(tbcreator) || '.' || strip(tbname)
        || ' ' || char(createdts)
    from sysibm.syssynonyms
    where tbName like 'TAV%'
union all select 'set current sqlid = ''S100447'';'
    from sysibm.sysDummy1
union all select 'drop alias ' || strip(creator) || '.' || strip(name)
        || '; --> ' || strip(tbcreator) || '.' || strip(tbname)
        || ' ' || char(createdts)
    from sysibm.sysTables
    where type = 'A'
        and tbName like 'TAV%'  and creator not like 'OA1%'
union all select 'drop view ' || strip(creator) || '.' || strip(name)
        || '; --' || char(createdts)
    from sysibm.sysTables
    where type = 'V'
        and name like 'V11'
$#out                                              20120418 10:05:00
COL1
set current sqlid = 'S100447';
1 rows fetched: select 'set current sqlid = ''' || strip(creator) || '''; ...
$#out                                              20120418 10:04:38
sqlCode 0: set current sqlid = 'A467700'
sqlCode 0: drop synonym TAV001A1
}¢--- A540769.WK.SQL(CATTAB) cre=2006-08-04 mod=2007-04-23-16.36.44 F540769 ----
select  char(strip(creator) || '.'  || strip(Name), 24) "table",
        char(strip(dbName) || '.'  || strip(tsName), 17) "db.tablspace",
        cardf "rows"
    from sysibm.sysTables
    where type = 'T' and dbName like 'BJA_0001'
    order by 1
    ;
x
select left(dbname, 10)|| strip(creator) || '.' || strip(name)
    from sysibm.systables
    where type = 'T' and dbName like 'RP%'
    order by dbname asc, creator asc, name asc
    ;
group by l
select s.l, count(*)
from
    (
    select length(strip(name)) l
    from sysibm.systables
    where type = 'T' and creator like 'OA1%'
    ) s
group by l
}¢--- A540769.WK.SQL(CATTABDU) cre=2006-06-28 mod=2006-06-28-10.49.44 F540769 ---
SELECT STRIP(NAME), COUNT(*), MIN(STRIP(CREATOR)), MAX(STRIP(CREATOR))
    FROM SYSIBM.SYSTABLES
    WHERE TYPE   LIKE 'T'
    GROUP BY NAME
    HAVING COUNT(*) > 1
    ORDER BY NAME
}¢--- A540769.WK.SQL(CATTABHI) cre=2006-09-26 mod=2006-09-26-09.19.44 F540769 ---
select *
    from sysibm.systables
    where name = 'VEXDA002'
    order by name, statstime desc
}¢--- A540769.WK.SQL(CATTABLE) cre=2006-05-24 mod=2006-07-07-10.14.23 F540769 ---
SELECT            LENGTH(CREATOR),    LENGTH(NAME),
                  STRIP(CREATOR) || '.' || STRIP(NAME)
                  || ' ' || TYPE
    FROM SYSIBM.SYSTABLES
    WHERE NAME LIKE 'VSV01%'
    ORDER BY CREATOR ASC, NAME ASC
;
XELECT 'UNION SELECT COUNT(*), '
       || '''' || STRIP(CREATOR) || '.' || STRIP(NAME) || ''''
       || ' FROM ' || STRIP(CREATOR) || '.' || STRIP(NAME)
    FROM SYSIBM.SYSTABLES
    WHERE DBNAME LIKE 'DDI0%'
    ORDER BY CREATOR ASC, NAME ASC
}¢--- A540769.WK.SQL(CATTABS) cre=2006-09-04 mod=2006-09-04-17.57.56 F540769 ---
select name, creator, tsName, dbname
    from sysibm.systables
--  where dbName = 'DA540769'
    where type = 'T' and name = 'TRE525A1' and creator = 'OA1A'
}¢--- A540769.WK.SQL(CATTABXX) cre=2006-06-28 mod=2006-06-28-15.29.32 F540769 ---
SELECT LEFT(CREATOR, 8),LEFT(NAME, 12), LEFT(TSNAME, 8), LEFT(DBNAME, 8)
    FROM SYSIBM.SYSTABLES
    WHERE TYPE   =    'T'
    AND DBNAME IN (
                     'BP01A1L',
                     'BS01A1L',
                     'CD01A1L',
                     'CE01A1L',
                     'ED02A1L',
                     'ED05A1L',
                     'ED06A1L',
                     'EV01A1L',
                     'FA01A1L',
                     'FF01A1L',
                     'GE01A1L',
                     'GE02A1L',
                     'GE03A1L',
                     'GE04A1L',
                     'GM01A1L',
                     'HP04A1L',
                     'KS01A1L',
                     'KS03A1L',
                     'KS05A1L',
                     'KS06A1L',
                     'KS07A1L',
                     'KS08A1L',
                     'NF01A1L',
                     'NF02A1L',
                     'NF03A1L',
                     'NH01A1L',
                     'NP01A1L',
                     'OE01A1L',
                     'OS01A1L',
                     'OS58A1L',
                     'OS59A1L',
                     'OS70A1L',
                     'PT02A1L',
                     'PX01A1L',
                     'PX02A1L',
                     'PX06A1L',
                     'PX99A1L',
                     'RE01A1L',
                     'RP01A1L',
                     'RP02A1L',
                     'RP03A1L',
                     'RP04A1L',
                     'RP09A1L',
                     'RR01A1L',
                     'RT01A1L',
                     'RT03A1L',
                     'RT04A1L',
                     'SA02A1L',
                     'SA03A1L',
                     'SA04A1L',
                     'SE02A1L',
                     'SF01A1L',
                     'SI01A1L',
                     'SM10A1L',
                     'SY01A1L',
                     'TA01A1L',
                     'UD01A1L',
                     'UF01A1L',
                     'VT01A1L',
                     'VT03A1L',
                     'WB01A1L',
                     'WB02A1L',
                     'WB03A1L',
                     'WB04A1L',
                     'WL06A1L',
                     'ZV01')
    ORDER BY NAME, DBNAME
}¢--- A540769.WK.SQL(CATTB) cre=2010-08-26 mod=2013-09-19-16.38.56 A540769 -----
select length(name), name || 'x', t.*
    from sysibm.systables t
    where name = 'VNI250A101A'
; ;
select length(tbName), tbName || 'x'
    from sysibm.sysIndexes
    where tbname = 'TWU101A1'
    ;
}¢--- A540769.WK.SQL(CATTBCLU) cre=2011-07-19 mod=2011-07-19-15.47.15 A540769 ---
select substr(strip(t.creator) || '.' || strip(t.name), 1, 20),
      i.*
    from sysibm.sysTables t
    left join ( select count(*) "ixCnt",
           sum(case when clustering = 'Y' then 1 else 0 end) "cluCnt",
           sum(case when clustering = 'N' then 1 else 0 end) "NoClCnt",
           max(case when clustering <> 'Y' then ''
               else  substr(strip(j.creator) || '.' || strip(j.name)
               , 1, 20) end) "cluIx",
           tbCreator, tbName
           from sysibm.sysIndexes j
           group by tbcreator, tbname
    ) i
    on i.tbCreator = t.creator and i.tbName = t.name
    where t.dbName like 'VV%' and t.type = 'T'
    with ur
}¢--- A540769.WK.SQL(CATTBCNT) cre=2008-06-16 mod=2011-12-23-11.50.52 A540769 ---
set current sqlid = 's100447';                                          00000114
CREATE VIEW T.T AS SELECT 1 #a# from sysibm.sysDummy1;                  00000213
rollback;;;                                                             00000312
select left(dbName, 1), count(distinct dbName) dbs,                     00000411
                        count(*) tbs                                    00000511
    from sysibm.sysTables                                               00000611
    group by left(dbName, 1)                                            00000711
    order by 1                                                          00000811
    with ur                                                             00000911
;;;                                                                     00001011
select *                                                                00001104
from                                                                    00002004
(                                                                       00003004
select s.dbName, s.name, s.type, min(s.nTables) mi, max(s.nTables) ma,  00010008
         count(*) cnt,                                                  00010104
         sum(case when t.name is null then 0 else 1 end) tbs            00011004
    from sysibm.sysTablespace s                                         00020003
        left join sysibm.systables t                                    00021003
        on t.dbName = s.dbName and t.tsName = s.name                    00030003
              and t.type in ('T', 'M')                                  00031010
    group by s.dbName, s.name, s.type                                   00050009
 ) c                                                                    00060005
     where (mi <> ma or mi <> tbs)                                      00080007
}¢--- A540769.WK.SQL(CATTBCS) cre=2011-06-10 mod=2011-06-10-15.26.16 A540769 ---
-- rows and space per table                                             00010000
set current path oa1t;                                                  00020004
select substr(fosFmte7(cardf), 1, 7) rows,                              00030005
       substr(fosFmte7(spacef*1024), 1, 7) bytes,                       00040005
       smallInt(recLength) recLen,                                      00050004
       smallInt(avgRowLen) avgLen,                                      00060004
       substr(strip(creator) || '.' || strip(name), 1, 20) "cr.tb",     00070004
       substr(strip(dbname) || '.' || strip(tsName), 1, 16) "db.ts",    00080004
       statstime                                                        00090004
from sysibm.systables                                                   00100001
    where type = 'T' and dbName like 'NI%'                              00110006
order by creator, name                                                  00120001
;                                                                       00130001
select s.dbName, s.name, s.type, min(s.nTables) mi, max(s.nTables) ma,  00140000
         count(*) cnt,                                                  00150000
         sum(case when t.name is null then 0 else 1 end) tbs            00160000
    from sysibm.sysTablespace s                                         00170000
        left join sysibm.systables t                                    00180000
        on t.dbName = s.dbName and t.tsName = s.name                    00190000
              and t.type in ('T', 'M')                                  00200000
    group by s.dbName, s.name, s.type                                   00210000
 ) c                                                                    00220000
     where (mi <> ma or mi <> tbs)                                      00230000
}¢--- A540769.WK.SQL(CATTBIX) cre=2011-01-24 mod=2011-01-24-13.59.07 A540769 ---
with a as
(
select count(all uniqueRule) cIx,
        max(case when uniqueRule = 'C' then uniqueRule else  ' ' end)
     || max(case when uniqueRule = 'D' then uniqueRule else  ' ' end)
     || max(case when uniqueRule = 'G' then uniqueRule else  ' ' end)
     || max(case when uniqueRule = 'P' then uniqueRule else  ' ' end)
     || max(case when uniqueRule = 'U' then uniqueRule else  ' ' end)
     || max(case when uniqueRule = 'R' then uniqueRule else  ' ' end)
     || max(case when uniqueRule = 'X' then uniqueRule else  ' ' end) u,
        max(case when uniqueRule in ('C','D','G','P','U','R','X')
                 then '' else UniqueRule end) other
    from sysibm.sysTables t
    left Join sysibm.sysIndexes i
    on i.tbCreator = t.creator and i.tbName = t.name
    where t.type = 'T'
    group by t.creator, t.name
)
select count(*) tbs, sum(cIx) ixs, u, other
    from a
    group by u, other
    order by 1 desc
    with ur
;;;
with a as
(
select count(all uniqueRule) cIx, t.dbName
    from sysibm.sysTables t
    left Join sysibm.sysIndexes i
    on i.tbCreator = t.creator and i.tbName = t.name
    where t.type = 'T'
    group by t.creator, t.name, t.dbName
)
select count(*), dbName
    from a where cIx = 0
    group by dbName
    order by 1 desc
;;;
}¢--- A540769.WK.SQL(CATTBIXP) cre=2015-11-26 mod=2015-11-26-10.34.23 A540769 ---
-- count tables space types incl. tb/ix partition muli Tabel ... ------
set current application compatibility 'V11R1';
with x as
( select s.*
    , value ( ( select max(t.partKeyCOLNUM)
                from sysibm.sysTables t
                where t.dbName = s.dbname and t.tsName = s.name
                     and t.type not in ('A', 'V')
            ) , 0) partKeyCol
    from sysibm.sysTablespace s
)
, t as
( select case when partitions = 0 and segsize = 0 then 'simple'
              when partitions = 0                 then 'segmented'
              else type  end
      || case when partitions = 0 or maxPartitions > 0  then ''
              when partKeyCol = 0 then ' ixPart'
                                   else ' tbPart' end
      || case when nTables = 1 then ''
              when nTables < 1 then ' noTb'
              else ' multiTb' end ty
    , x.*
    from x
 )
 select count(*), ty, sum(nTables) nTables
    , min(substr(strip(dbName) || '.' || name, 1, 30)), min(type)
    , max(strip(dbName) || '.' || name)
    from t
    group by rollup(ty)
 ;
-- list of ix base tables, including parititoning index ---------------
with t as
( select t.*
      , ( select strip(i.creator) || '.' || i.name
            from sysibm.sysIndexes i
              join sysibm.sysIndexPart p
                on i.creator = p.ixcreator and i.name = p.ixname
                  and p.partition = 1
             where t.creator = i.tbCreator and t.name = i.tbName
        ) ix
    from sysibm.sysTables t join sysibm.sysTablespace s
      on t.dbName = s.dbName and t.tsName = s.name
    where t.type not in ('A', 'V')
        and s.type in (' ', 'L') and partitions > 0
        and t.partKeyCOLNUM <= 0
)
select char(strip(creator) || '.' || name, 40) tb, ix, t.*
  from t
  order by creator, name
;x;
}¢--- A540769.WK.SQL(CATTBIXR) cre=2011-09-06 mod=2011-09-06-17.46.28 A540769 ---
set current path oa1t;
with ti (cr, nm, ty, tbCr, tb, spc, rows, parts ) as
(
select t.creator, t.name, 't', t.creator, t.name,
        sum(float(r.space)) * 1024, sum(r.totalRows), count(*)
    from sysibm.systables t
      join sysibm.sysTablespace s
        on  s.dbName = t.dbName and s.name = t.tsName
      left join sysibm.sysTablespaceStats r
        on  r.dbName = t.dbName and r.name = t.tsName
            and r.dbId = s.dbId and r.psId = s.psId
    group by t.creator, t.name
union all select i.creator, i.name, 'i', tbCreator, tbName,
         sum(float(r.space)) * 1024, sum(r.totalEntries), count(*)
    from sysibm.sysIndexes i
      left join sysibm.sysIndexspaceStats r
        on  r.creator = i.creator and r.name = i.name
    group by i.creator, i.name, tbCreator, tbName
)
select substr(strip(cr) || '.' || strip(nm), 1, 16), ty,
      substr(fosFmte7(spc), 1, 7) bytes,
      substr(fosFmte7(rows), 1, 7) rows,
      parts, tbCr, tb
    from ti where tb like 'TBE%'
             and (tb like 'TBE009%'
               or tb like 'TBE01%'
               or tb like 'TBE11%')
    order by tbCr, tb, ty desc, cr, nm
}¢--- A540769.WK.SQL(CATTBKE) cre=2012-10-11 mod=2012-10-11-17.43.04 A540769 ---
--  simple Kennzahlen pro Table aus sysTables
--
set current path = OA1P;
select substr(strip(creator) || '.' || name, 1, 20),
       substr(fosFmtE7(spacef*1024), 1, 7) "bytes",
       substr(fosFmtE7(cardf),1, 7) "rows",
       smallInt(recLength) "maxRowLen",
       smallInt(avgRowLen) "avgRowLen"
    from sysibm.sysTables
    where creator = 'OA1P' and name like 'TNI%'
    order by name
    with ur
}¢--- A540769.WK.SQL(CATTBL) cre=2010-06-25 mod=2010-06-25-12.23.01 A540769 ----
select t.status, t.tableStatus, t.*
    from sysibm.sysTables t
    where name = 'TRP143A1'
}¢--- A540769.WK.SQL(CATTBMRW) cre=2013-09-12 mod=2013-09-12-09.13.49 A540769 ---
select maxRows, pgSize, bPool, s.*
    from sysibm.systablespace s
    where maxRows not in (0,255)
    order by maxrows
}¢--- A540769.WK.SQL(CATTBPA) cre=2009-12-03 mod=2009-12-03-16.54.06 A540769 ---
select storName, length(storName), hex(storName),
       stortype, length(stortype), hex(stortype), p.*
    from sysibm.sysTablePart p
    where length(storName) > length(strip(storName))
    and dbName like 'VV%'
               and tsName in (
                                       'VDPS004'
                                      ,'VDPS078'
                                      ,'VDPS121'
                                      ,'VDPS168'
                                      ,'VDPS169'
                                      ,'VDPS185'
                                      ,'VDPS295'
                                      ,'VDPS296'
                                      ,'VDPS298'
                                      ,'VDPS321'
                                      ,'VDPS393'
                                      )
;
x
select storName, length(storName), hex(storName), p.*
    from sysibm.sysTablePart p
    where (dbName = 'DGDB0125' and tsName = 'A012A')
       or (dbName = 'DGDB9998' and tsName = 'A937A')
;
x
select storName, length(storName), hex(storName), p.*
    from sysibm.sysTablePart p
    where (dbName = 'TP01A1T' and tsName = 'A012A')
       or (dbName = 'DA540769' and tsName = 'A937A')
}¢--- A540769.WK.SQL(CATTBPAH) cre=2011-11-03 mod=2011-11-03-09.34.50 A540769 ---
select dbName db
     , count(*) tot
     , sum(case when year(statstime) = 2011 then 1 else 0 end) y11
     , sum(case when year(statstime) = 2010 then 1 else 0 end) y10
     , sum(case when year(statstime) = 2009 then 1 else 0 end) y09
     , sum(case when year(statstime) = 2008 then 1 else 0 end) y08
     , sum(case when year(statstime) = 2007 then 1 else 0 end) y07
     , sum(case when year(statstime) = 2006 then 1 else 0 end) y06
     , sum(case when year(statstime) < 2006 then 1 else 0 end) b05
     from sysibm.SYSTABLEPART_HIST
     group by dbName
     with ur
;;;
}¢--- A540769.WK.SQL(CATTBPR) cre=2014-11-17 mod=2014-11-17-15.41.12 A540769 ---
select length(profile_text), substr(profile_text,1, 2000)
    , p.*
    from SYSIBM.SYSTABLES_PROFILES p
;x
insert into SYSIBM.SYSTABLES_PROFILES (schema, tbName, profile_text,
    profile_type, profile_update
    )
   values ('A540769', 'F2PLAN_TABLE'       , 'profile text usw.'
, 'AUTO', current timestamp)
-- delete    from SYSIBM.SYSTABLES_PROFILES
;
commit
}¢--- A540769.WK.SQL(CATTBRST) cre=2011-05-31 mod=2011-05-31-16.51.10 A540769 ---
set current sqlid = 'S100447';
       -- generate sql for list of tables
       --      select count and max(column generated ...) from table
       --      alter table alter column restart 1;
with c as
(  select *
    from sysibm.sysColumns c
    where tbName like 'TSV31%' and tbCreator = 'OA1A'
         and default between 'D' and 'J'
)
select 'select count (*), max(' || strip(name) || ') from '
       || strip(tbCreator) || '.' || strip(tbName) || ';' , c.*
       from c
union all
select 'alter table ' || strip(tbCreator) || '.' || strip(tbName)
       || ' alter ' || strip(name) || ' restart with 1;', c.*
    from c
    order by 1
;
select count (*), max(BUSINESSUNITID) from OA1A.TSV310A1;
select count (*), max(FEEID) from OA1A.TSV319A1;
select count (*), max(MMINCOMEID) from OA1A.TSV316A1;
select count (*), max(MMPOSID) from OA1A.TSV315A1;
select count (*), max(SACID) from OA1A.TSV317A1;
select count (*), max(SACINCOMEID) from OA1A.TSV318A1;
select count (*), max(SECPOSID) from OA1A.TSV313A1;
select count (*), max(SECTXID) from OA1A.TSV314A1;
select count (*), max(SECURITYID) from OA1A.TSV312A1;
select count (*), max(TAXCLIENTID) from OA1A.TSV311A1;
;;;
alter table OA1A.TSV310A1 alter BUSINESSUNITID restart with 1;
alter table OA1A.TSV311A1 alter TAXCLIENTID restart with 1;
alter table OA1A.TSV312A1 alter SECURITYID restart with 1;
alter table OA1A.TSV313A1 alter SECPOSID restart with 1;
alter table OA1A.TSV314A1 alter SECTXID restart with 1;
alter table OA1A.TSV315A1 alter MMPOSID restart with 1;
alter table OA1A.TSV316A1 alter MMINCOMEID restart with 1;
alter table OA1A.TSV317A1 alter SACID restart with 1;
alter table OA1A.TSV318A1 alter SACINCOMEID restart with 1;
alter table OA1A.TSV319A1 alter FEEID restart with 1;
;;;
}¢--- A540769.WK.SQL(CATTBSTA) cre=2010-09-13 mod=2010-09-13-17.37.24 A540769 ---
select *
    from sysibm.sysTabStats
    where owner   = 'OA1A' and name = 'TMF150A1'
    order by statsTime desc
    with ur
}¢--- A540769.WK.SQL(CATTP) cre=2010-08-27 mod=2010-08-27-16.07.57 A540769 -----
select count(*), pageSave
    from sysibm.sysTablePart p
    where p.compress <> 'Y'
    group by pageSave
    with ur
}¢--- A540769.WK.SQL(CATTPART) cre=2014-08-19 mod=2014-08-19-12.51.46 A540769 ---
select vCatName, count(*)
        , sum(case when createdTs > current timestamp- 50 days
            then 1 else 0 end)
    from sysibm.sysTablePart
    group by vCatName
;
select vCatName, count(*)
        , sum(case when createdTs > current timestamp- 50 days
            then 1 else 0 end)
    from sysibm.sysIndexPart
    group by vCatName
;
}¢--- A540769.WK.SQL(CATTPDEN) cre=2013-10-04 mod=2013-10-04-15.18.27 A540769 ---
with p as
(
  select
    case when space > 0   then '>0' else strip(char(space)) end spc
  ,  case when spaceF > 0 then '>0' else strip(char(spaceF)) end spcF
  from sysibm.sysTablePart
)
select spc, spcF, count(*)
   from p
   group by spc, spcF
   with ur
}¢--- A540769.WK.SQL(CATTPDSN) cre=2010-07-20 mod=2010-07-21-15.42.21 A540769 ---
-- list all files of a tableSpacePartition:
--     iPrefix I000 or J000
--     partition OR dsnNum in last qualifier
--        if partition >= 1000 swap A TO BCDE in last qualif
--
--     NOT Done: hlq from storageGroup - hard coded, change manually
--
--  S100447.DSLOCATE(DSNAME) to check whether it is present
--
with n as
( select row_number() over () n
      from sysibm.sysColumns
      fetch first 1000 rows only
)
,    d as
(
select 'DBAF.DSNDBC.' || strip(dbName) || '.' || strip(tsName) || '.'
     || iPREFIX || '0001.'
     || translate(strip(char(partition/1000)), 'ABCDEF', '012345')
     || right('00' || strip(char(
            case when partition > 0 then partition
                 when n is not null then n
                 else 1 end)), 3) dsn
     , p.*
    from sysIbm.sysTablePart p left join n
    on n <= dsNum
)
select substr(S100447.DSLOCATE(char(DSN, 44)), 1, 10)
     , dbName, tsName, partition, iPrefix , storType, storName
    from d
    where dbName like 'DA54076%' -- 'VV28A1A%'
    order by dbName, tsName, partition
;; ------------------------------------------------------------------
; to find testCases:
select * from sysibm.sysTablespace
order by partitions desc
fetch first 100 rows only
with ur
;;
select * from sysibm.sysTablePart
order by dsNum      desc
fetch first 100 rows only
with ur
;;
}¢--- A540769.WK.SQL(CATTR) cre=2012-08-29 mod=2012-08-29-17.40.48 A540769 -----
select *
    from sysibm.sysTriggers
    where trigTime like 'I%'
}¢--- A540769.WK.SQL(CATTRIST) cre=2010-06-29 mod=2010-07-05-16.33.07 A540769 ---
$>A540769.WK.TEXV(CATTRIST)
call sqlConnect dbtf
call sqlPreOpen 1, "select",
      "strip(tbOwner) || '.' || strip(tbName),",
      "strip(schema) || '.' || strip(Name),",
      "trigTime || trigEvent || granularity, seqNo, text",
   "from sysibm.sysTriggers" ,
   "order by tbOwner, tbName, schema, name, seqno"
do while sqlFetchInto(1, ':tb, :tr, :teg, :sn, :tx')
    $$- left(tb, 30) left(tr, 40) teg sn tx
    end
call sqlDisconnect
$#end
;x;
select substr(strip(tbOwner) || '.' || strip(tbName), 1, 20) "tb",
       substr(strip(schema) || '.' || strip(Name), 1, 30) "tri",
       trigTime || trigEvent || granularity "tig", seqNo, strip(text)
    from sysibm.sysTriggers
    order by tbOwner, tbName, schema, name, seqno
;x;
select left(text, 6), count(*)
    from sysibm.sysTriggers
    group by left(text, 6)
;x;
$#out                                              20100705 16:32:57
$#out                                              20100629 10:12:16
$#out                                              20100629 10:10:57
A234579.TEXCEPTIONS_TS         DB2RTS.INS1                              BIR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_DEL04                           ADR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_INS00                           AIR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_INS01                           BIR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_INS06                           AIR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_INS08                           BIR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_INS10                           BIR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_INS11                           AIR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_UPD02                           BUR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_UPD03                           AUR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_UPD05                           AUR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_UPD07                           AUR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_UPD09                           AUR 1 CR
DB2PM.BATCHCONF                DB2PM.BC_UPD12                           AUR 1 CR
DB2PM.CONVERTCONF              DB2PM.CC_DEL04                           ADR 1 CR
DB2PM.CONVERTCONF              DB2PM.CC_INS00                           AIR 1 CR
DB2PM.CONVERTCONF              DB2PM.CC_INS01                           BIR 1 CR
DB2PM.CONVERTCONF              DB2PM.CC_INS06                           AIR 1 CR
DB2PM.CONVERTCONF              DB2PM.CC_INS08                           BIR 1 CR
DB2PM.CONVERTCONF              DB2PM.CC_UPD02                           BUR 1 CR
DB2PM.CONVERTCONF              DB2PM.CC_UPD03                           AUR 1 CR
DB2PM.CONVERTCONF              DB2PM.CC_UPD05                           AUR 1 CR
DB2PM.CONVERTCONF              DB2PM.CC_UPD07                           AUR 1 CR
DB2PM.CRDCONF                  DB2PM.CRD_DEL4                           ADR 1 CR
DB2PM.CRDCONF                  DB2PM.CRD_INS0                           AIR 1 CR
DB2PM.CRDCONF                  DB2PM.CRD_INS1                           BIR 1 CR
DB2PM.CRDCONF                  DB2PM.CRD_INS6                           BIR 1 CR
DB2PM.CRDCONF                  DB2PM.CRD_INS8                           BIR 1 CR
DB2PM.CRDCONF                  DB2PM.CRD_UPD2                           BUR 1 CR
DB2PM.CRDCONF                  DB2PM.CRD_UPD3                           AUR 1 CR
DB2PM.CRDCONF                  DB2PM.CRD_UPD5                           AUR 1 CR
DB2PM.CRDCONF                  DB2PM.CRD_UPD7                           AUR 1 CR
DB2PM.CRDCONFTRACE             DB2PM.CT_DEL01                           ADR 1 CR
DB2PM.CRDCONFTRACE             DB2PM.CT_UPD02                           AUR 1 CR
DB2PM.DSINDEX                  DB2PM.DI_DEL01                           BDR 1 CR
DB2PM.LOADCONF                 DB2PM.LC_DEL04                           ADR 1 CR
DB2PM.LOADCONF                 DB2PM.LC_INS00                           AIR 1 CR
DB2PM.LOADCONF                 DB2PM.LC_INS01                           BIR 1 CR
DB2PM.LOADCONF                 DB2PM.LC_INS06                           AIR 1 CR
DB2PM.LOADCONF                 DB2PM.LC_INS08                           BIR 1 CR
DB2PM.LOADCONF                 DB2PM.LC_UPD02                           BUR 1 CR
DB2PM.LOADCONF                 DB2PM.LC_UPD03                           AUR 1 CR
DB2PM.LOADCONF                 DB2PM.LC_UPD05                           AUR 1 CR
DB2PM.LOADCONF                 DB2PM.LC_UPD07                           AUR 1 CR
DB2PM.PROCESS                  DB2PM.P_DEL04                            ADR 1 CR
DB2PM.PROCESS                  DB2PM.P_INS00                            AIR 1 CR
DB2PM.PROCESS                  DB2PM.P_INS01                            BIR 1 CR
DB2PM.PROCESS                  DB2PM.P_INS11                            BIR 1 CR
DB2PM.PROCESS                  DB2PM.P_UPD02                            BUR 1 CR
DB2PM.PROCESS                  DB2PM.P_UPD03                            AUR 1 CR
DB2PM.PROCESS                  DB2PM.P_UPD05                            AUR 1 CR
DB2PM.PROCESS                  DB2PM.P_UPD06                            AUR 1 CR
DB2PM.PROCESS                  DB2PM.P_UPD07                            AUR 1 CR
DB2PM.PROCESS                  DB2PM.P_UPD08                            AUR 1 CR
DB2PM.PROCESS                  DB2PM.P_UPD09                            AUR 1 CR
DB2PM.PROCESS                  DB2PM.P_UPD10                            AUR 1 CR
DB2PM.PROCESSEVEXCP            DB2PM.PE_DEL03                           ADR 1 CR
DB2PM.PROCESSEVEXCP            DB2PM.PE_INS01                           BIR 1 CR
DB2PM.PROCESSEVEXCP            DB2PM.PE_INS05                           BIR 1 CR
DB2PM.PROCESSEVEXCP            DB2PM.PE_UPD02                           AUR 1 CR
DB2PM.PROCESSEVEXCP            DB2PM.PE_UPD04                           AUR 1 CR
DB2PM.PROCESSGROUP             DB2PM.PG_INS00                           BIR 1 CR
DB2PM.PROCESSGROUP             DB2PM.PG_INS01                           BIR 1 CR
DB2PM.PROCESSGROUP             DB2PM.PG_UPD02                           BUR 1 CR
DB2PM.PROCESSGROUP             DB2PM.PG_UPD03                           AUR 1 CR
DB2PM.PROCESSLOG               DB2PM.PL_DEL01                           ADR 1 CR
DB2PM.PROCESSLOG               DB2PM.PL_INS02                           BIR 1 CR
DB2PM.PROCESSLOG               DB2PM.PL_UPD03                           AUR 1 CR
DB2PM.PROCESSLOG               DB2PM.PL_UPD04                           AUR 1 CR
DB2PM.QRY_GROUP                DB2PM.QG_INS01                           BIR 1 CR
DB2PM.QRY_GROUP                DB2PM.QG_UPD02                           BUR 1 CR
DB2PM.QRY_GROUP                DB2PM.QG_UPD03                           AUR 1 CR
DB2PM.QRY_QUERY                DB2PM.Q_INS01                            BIR 1 CR
DB2PM.QRY_QUERY                DB2PM.Q_UPD02                            BUR 1 CR
DB2PM.QRY_QUERY                DB2PM.Q_UPD03                            AUR 1 CR
DB2PM.ROT_CLUSTER              DB2PM.RC_INS01                           BIR 1 CR
DB2PM.ROT_CLUSTER              DB2PM.RC_UPD02                           BUR 1 CR
DB2PM.ROT_CLUSTER              DB2PM.RC_UPD03                           AUR 1 CR
DB2PM.ROT_GROUP                DB2PM.RG_INS01                           BIR 1 CR
DB2PM.ROT_GROUP                DB2PM.RG_UPD02                           BUR 1 CR
DB2PM.ROT_GROUP                DB2PM.RG_UPD03                           AUR 1 CR
DB2PM.ROT_ROT                  DB2PM.RR_INS01                           BIR 1 CR
DB2PM.ROT_ROT                  DB2PM.RR_UPD02                           BUR 1 CR
DB2PM.ROT_ROT                  DB2PM.RR_UPD03                           AUR 1 CR
DB2PM.SQLPACONF                DB2PM.PA_INS1                            BIR 1 CR
DB2PM.SQLPACONF                DB2PM.PA_INS2                            AIR 1 CR
DB2PM.SQLPACONF                DB2PM.PA_UPD1                            BUR 1 CR
DB2PM.SQLPACONF                DB2PM.PA_UPD2                            AUR 1 CR
DB2PM.STEP                     DB2PM.S_DEL04                            ADR 1 CR
DB2PM.STEP                     DB2PM.S_INS00                            AIR 1 CR
DB2PM.STEP                     DB2PM.S_INS01                            BIR 1 CR
DB2PM.STEP                     DB2PM.S_INS06                            BIR 1 CR
DB2PM.STEP                     DB2PM.S_INS07                            BIR 1 CR
DB2PM.STEP                     DB2PM.S_INS09                            BIR 1 CR
DB2PM.STEP                     DB2PM.S_UPD02                            BUR 1 CR
DB2PM.STEP                     DB2PM.S_UPD03                            AUR 1 CR
DB2PM.STEP                     DB2PM.S_UPD05                            AUR 1 CR
DB2PM.STEP                     DB2PM.S_UPD08                            BUR 1 CR
DB2PM.STEP                     DB2PM.S_UPD10                            BUR 1 CR
DB2PM.STEP                     DB2PM.S_UPD11                            AUR 1 CR
DB2PM.STEPLOG                  DB2PM.SL_INS01                           BIR 1 CR
DB2PM.STEPLOG                  DB2PM.SL_UPD02                           AUR 1 CR
DB2PM.STEPLOG                  DB2PM.SL_UPD03                           AUR 1 CR
DB2PM.STEPLOG                  DB2PM.SL_UPD04                           AUR 1 CR
OA1T.TAV171A1                  OA1T.AV171AAI                            BIR 1 CR
OA1T.TAV171A1                  OA1T.AV171AAU                            BUR 1 CR
OA1T.TAV172A1                  OA1T.AV172AAI                            BIR 1 CR
OA1T.TAV172A1                  OA1T.AV172AAU                            BUR 1 CR
OA1T.TDI040A1                  OA1T.DI040ABI                            BIR 1
OA1T.TDI040A1                  OA1T.DI040DBD                            BDR 1
OA1T.TDI040A1                  OA1T.DI040DBI                            BIR 1
OA1T.TDI040A1                  OA1T.DI040EBD                            BDR 1
OA1T.TDI040A1                  OA1T.DI040LBD                            BDR 1
OA1T.TDI041A1                  OA1T.DI041ABI                            BIR 1
OA1T.TDI041A1                  OA1T.DI041BBI                            BIR 1
OA1T.TDI041A1                  OA1T.DI041KBD                            BDR 1
OA1T.TDI041A1                  OA1T.DI041KBI                            BIR 1
OA1T.TDI041A1                  OA1T.DI041LBI                            BIR 1
OA1T.TDI041A1                  OA1T.DI041MBI                            BIR 1
OA1T.TDI041A1                  OA1T.DI041PBD                            BDR 1
OA1T.TDI042A1                  OA1T.DI042ABI                            BIR 1
OA1T.TDI042A1                  OA1T.DI042PBI                            BIR 1
OA1T.TDI043A1                  OA1T.DI043ABI                            BIR 1 CR
OA1T.TDI043A1                  OA1T.DI043GBI                            BIR 1
OA1T.TDI043A1                  OA1T.DI043MBD                            BDR 1
OA1T.TDI043A1                  OA1T.DI043NBD                            BDR 1
OA1T.TDI043A1                  OA1T.DI043OBD                            BDR 1
OA1T.TDI045A1                  OA1T.DI045CBI                            BIR 1
OA1T.TDI045A1                  OA1T.DI045OBI                            BIR 1
OA1T.TDI045A1                  OA1T.DI045RBI                            BIR 1
OA1T.TDI049A1                  OA1T.DI049ABI                            BIR 1
OA1T.TDI049A1                  OA1T.DI049QBI                            BIR 1
OA1T.TDI050A1                  OA1T.DI050ABI                            BIR 1
OA1T.TDI050A1                  OA1T.DI050NBI                            BIR 1
OA1T.TDI050A1                  OA1T.DI050QBD                            BDR 1
OA1T.TDI050A1                  OA1T.DI050RBD                            BDR 1
OA1T.TDI052A1                  OA1T.DI052ABI                            BIR 1
OA1T.TDI053A1                  OA1T.DI053ABI                            BIR 1
OA1T.TDI054A1                  OA1T.DI054ABI                            BIR 1
OA1T.TDI054A1                  OA1T.DI054EBI                            BIR 1
OA1T.TDI056A1                  DI05A1A.DI056ABI                         BIR 1 CR
OA1T.TDT011A1                  OA1T.DT011ABI                            BIR 1 CR
OA1T.TDT011A1                  OA1T.DT011ABU                            BUR 1 CR
OA1T.TKD001A1                  OA1T.KD001A1BI1                          BIR 1
OA1T.TKD001A1                  OA1T.KD001A1BI3                          BUR 1
OA1T.TKD100A1                  OA1T.KD100HAD                            ADR 1 CR
OA1T.TKD100A1                  OA1T.KD100HAU                            AUR 1 CR
OA1T.TKD101A1                  OA1T.KD101HAD                            ADR 1 CR
OA1T.TKD101A1                  OA1T.KD101HAU                            AUR 1 CR
OA1T.TKD102A1                  OA1T.KD102HAD                            ADR 1 CR
OA1T.TKD102A1                  OA1T.KD102HAU                            AUR 1 CR
OA1T.TKD103A1                  OA1T.KD103HAD                            ADR 1 CR
OA1T.TKD103A1                  OA1T.KD103HAU                            AUR 1 CR
OA1T.TKD104A1                  OA1T.KD104HAD                            ADR 1 CR
OA1T.TKD104A1                  OA1T.KD104HAU                            AUR 1 CR
OA1T.TKD105A1                  OA1T.KD105HAD                            ADR 1 CR
OA1T.TKD105A1                  OA1T.KD105HAU                            AUR 1 CR
OA1T.TNI130A101A               OA1T.NI132AAI                            AIR 1 CR
OA1T.TNI130A101A               OA1T.NI132AAU                            AIR 1 CR
OA1T.TNI140A101A               OA1T.NI142AAI                            AIR 1 CR
OA1T.TNI140A101A               OA1T.NI142AAU                            AIR 1 CR
OA1T.TNI300A101A               OA1T.NI300HAD                            ADR 1 CR
OA1T.TNI300A101A               OA1T.NI300HAU                            AUR 1 CR
OA1T.TNI613A101A               OA1T.NI613HAD                            ADS 1 CR
OA1T.TNI613A101A               OA1T.NI613HAU                            AUS 1 CR
OA1T.TNI660A101A               OA1T.NI660AAI                            AIR 1 CR
OA1T.TNI702A1                  OA1T.NI702AAI                            BIR 1 CR
OA1T.TNI702A1                  OA1T.NI702AAU                            BUR 1 CR
OA1T.TNI702A1                  OA1T.NI702ABI                            BIR 1 CR
OA1T.TNI702A1                  OA1T.NI702ABU                            BUR 1 CR
OA1T.TNI702A1                  OA1T.NI702ACI                            BIR 1 CR
OA1T.TNI702A1                  OA1T.NI702ACU                            BUR 1 CR
OA1T.TNI702A1                  OA1T.NI702ADI                            BIR 1 CR
OA1T.TNI702A1                  OA1T.NI702ADU                            BUR 1 CR
OA1T.TNI710A1                  OA1T.NI710AAI                            BIR 1 CR
OA1T.TNI710A1                  OA1T.NI710AAU                            BUR 1 CR
OA1T.TNI711A1                  OA1T.NI711AAI                            BIR 1 CR
OA1T.TNI711A1                  OA1T.NI711AAU                            BUR 1 CR
OA1T.TNI712A1                  OA1T.NI712AAI                            BIR 1 CR
OA1T.TNI712A1                  OA1T.NI712AAU                            BUR 1 CR
OA1T.TNI720A1                  OA1T.NI720AAI                            BIR 1 CR
OA1T.TNI720A1                  OA1T.NI720AAU                            BUR 1 CR
OA1T.TNI740A1                  OA1T.NI740AAI                            BIR 1 CR
OA1T.TNI740A1                  OA1T.NI740AAU                            BUR 1 CR
OA1T.TNI740A1                  OA1T.NI740ABI                            BIR 1 CR
OA1T.TNI740A1                  OA1T.NI740ABU                            BUR 1 CR
OA1T.TNI740A1                  OA1T.NI740ACI                            BIR 1 CR
OA1T.TNI740A1                  OA1T.NI740ACU                            BUR 1 CR
OA1T.TNI740A1                  OA1T.NI740ADI                            BIR 1 CR
OA1T.TNI740A1                  OA1T.NI740ADU                            BUR 1 CR
OA1T.TNI740A1                  OA1T.NI740AEI                            BIR 1 CR
OA1T.TNI740A1                  OA1T.NI740AEU                            BUR 1 CR
OA1T.TNI742A1                  OA1T.NI742AAI                            BIR 1 CR
OA1T.TNI742A1                  OA1T.NI742AAU                            BUR 1 CR
OA1T.TNI744A1                  OA1T.NI744AAI                            BIR 1 CR
OA1T.TNI744A1                  OA1T.NI744AAU                            BUR 1 CR
OA1T.TNI744A1                  OA1T.NI744ABI                            BIR 1 CR
OA1T.TNI744A1                  OA1T.NI744ABU                            BUR 1 CR
OA1T.TNI745A1                  OA1T.NI745AAI                            BIR 1 CR
OA1T.TNI745A1                  OA1T.NI745AAU                            BUR 1 CR
OA1T.TNI746A1                  OA1T.NI746AAI                            BIR 1 CR
OA1T.TNI746A1                  OA1T.NI746AAU                            BUR 1 CR
OA1T.TNI746A1                  OA1T.NI746ABI                            BIR 1 CR
OA1T.TNI746A1                  OA1T.NI746ABU                            BUR 1 CR
OA1T.TNI747A1                  OA1T.NI747AAI                            BIR 1 CR
OA1T.TNI747A1                  OA1T.NI747AAU                            BUR 1 CR
OA1T.TNI747A1                  OA1T.NI747ABI                            BIR 1 CR
OA1T.TNI747A1                  OA1T.NI747ABU                            BUR 1 CR
OA1T.TNI748A1                  OA1T.NI748AAI                            BIR 1 CR
OA1T.TNI748A1                  OA1T.NI748AAU                            BUR 1 CR
OA1T.TNI748A1                  OA1T.NI748ABI                            BIR 1 CR
OA1T.TNI748A1                  OA1T.NI748ABU                            BUR 1 CR
OA1T.TNI749A1                  OA1T.NI749AAI                            BIR 1 CR
OA1T.TNI749A1                  OA1T.NI749AAU                            BUR 1 CR
OA1T.TNI760A1                  OA1T.NI760AAI                            BIR 1 CR
OA1T.TNI760A1                  OA1T.NI760AAU                            BUR 1 CR
OA1T.TNI770A1                  OA1T.NI770AAI                            BIR 1 CR
OA1T.TNI770A1                  OA1T.NI770AAU                            BUR 1 CR
OA1T.TNI770A1                  OA1T.NI770ABI                            BIR 1 CR
OA1T.TNI770A1                  OA1T.NI770ABU                            BUR 1 CR
OA1T.TWB550A1                  OA1T.TT550FFIS                           BIR 1 CR
OA1T.TWB550A1                  OA1T.TT550FFUP                           BUR 1 CR
OA1T.TWB551A1                  OA1T.TT551FFIS                           BIR 1 CR
OA1T.TWB551A1                  OA1T.TT551FFUP                           BUR 1 CR
OA1T.TWB555A1                  OA1T.TT555FFIS                           BIR 1 CR
OA1T.TWB555A1                  OA1T.TT555FFUP                           BUR 1 CR
OA1T.TWB563A1                  OA1T.TT563FFIS                           BIR 1 CR
OA1T.TWB563A1                  OA1T.TT563FFUP                           BUR 1 CR
OA1T.TWB566A1                  OA1T.TT566FFIS                           BIR 1 CR
OA1T.TWB566A1                  OA1T.TT566FFUP                           BUR 1 CR
OA1T.TWB582A1                  OA1T.TT582FFIS                           BIR 1 CR
OA1T.TWB582A1                  OA1T.TT582FFUP                           BUR 1 CR
OA1T.TWB583A1                  OA1T.TT583FFIS                           BIR 1 CR
OA1T.TWB583A1                  OA1T.TT583FFUP                           BUR 1 CR
SAMJ.BASERS                    AU01A1T.BASERSI                          AIR 1 CR
SAMJ.BASERS                    AU01A1T.BASERSU                          AUR 1 CR
SAMJ.BASEUG                    AU01A1T.BASEUGI                          AIR 1 CR
SAMJ.BASEUG                    AU01A1T.BASEUGU                          AUR 1 CR
SAMJ.BASEUS                    AU01A1T.BASEUSI                          AIR 1 CR
SAMJ.BASEUS                    AU01A1T.BASEUSU                          AUR 1 CR
SAMJ.BASEUSTS                  AU01A1T.BASEUSTI                         AIR 1 CR
SAMJ.BASEUSTS                  AU01A1T.BASEUSTU                         AUR 1 CR
SAMJ.TECHDSP                   AU01A1T.TECHDSPI                         AIR 1 CR
SAMJ.TECHDSP                   AU01A1T.TECHDSPU                         AUR 1 CR
SAMJUP.BASERS                  SAMJUP.BASERSI                           AIR 1 CR
SAMJUP.BASERS                  SAMJUP.BASERSU                           AUR 1 CR
SAMJUP.BASETAB                 SAMJUP.BASETABI                          AIR 1 CR
SAMJUP.BASETAB                 SAMJUP.BASETABU                          AUR 1 CR
SAMJUP.BASEUG                  SAMJUP.BASEUGI                           AIR 1 CR
SAMJUP.BASEUG                  SAMJUP.BASEUGU                           AUR 1 CR
SAMJUP.BASEUS                  SAMJUP.BASEUSI                           AIR 1 CR
SAMJUP.BASEUS                  SAMJUP.BASEUSU                           AUR 1 CR
SAMJUP.BASEUSTS                SAMJUP.BASEUSTI                          AIR 1 CR
SAMJUP.BASEUSTS                SAMJUP.BASEUSTU                          AUR 1 CR
SAMJUP.TECHDSP                 SAMJUP.TECHDSPI                          AIR 1 CR
SAMJUP.TECHDSP                 SAMJUP.TECHDSPU                          AUR 1 CR
SYSIBMTS.SYSTEXTCONNECTINFO    DSNIBMTS.CONNECTINFOCONSTRAINT           BIR 1 CR
TSTRTS.TRTSREOIXEXCEPTION      TSTRTS.TRTSREOIXEXCEPTIONAFTDELST        ADR 1 CR
TSTRTS.TRTSREOIXEXCEPTION      TSTRTS.TRTSREOIXEXCEPTIONAFTINS          AIS 1 CR
TSTRTS.TRTSREOIXEXCEPTION      TSTRTS.TRTSREOIXEXCEPTIONAFTUPD          AUS 1 CR
TSTRTS.TRTSREOIXEXCEPTION      TSTRTS.TRTSREOIXEXCEPTIONAFTUPDST        AUR 1 CR
TSTRTS.TRTSREOIXEXCEPTION      TSTRTS.TRTSREOIXEXCEPTIONBEFINS          BIR 1 CR
TSTRTS.TRTSREOIXEXCEPTION      TSTRTS.TRTSREOIXEXCEPTIONBEFUPD          BUR 1 CR
TSTRTS.TRTSREOJOBEXCEPTION     TSTRTS.TRTSREOJOBEXCEPTIONAFTDELST       ADR 1 CR
TSTRTS.TRTSREOJOBEXCEPTION     TSTRTS.TRTSREOJOBEXCEPTIONAFTINS         AIS 1 CR
TSTRTS.TRTSREOJOBEXCEPTION     TSTRTS.TRTSREOJOBEXCEPTIONAFTUPD         AUS 1 CR
TSTRTS.TRTSREOJOBEXCEPTION     TSTRTS.TRTSREOJOBEXCEPTIONAFTUPDST       AUR 1 CR
TSTRTS.TRTSREOJOBEXCEPTION     TSTRTS.TRTSREOJOBEXCEPTIONBEFINS         BIR 1 CR
TSTRTS.TRTSREOJOBEXCEPTION     TSTRTS.TRTSREOJOBEXCEPTIONBEFUPD         BUR 1 CR
TSTRTS.TRTSREOTSEXCEPTION      TSTRTS.TRTSREOTSEXCEPTIONAFTDELST        ADR 1 CR
TSTRTS.TRTSREOTSEXCEPTION      TSTRTS.TRTSREOTSEXCEPTIONAFTINS          AIS 1 CR
TSTRTS.TRTSREOTSEXCEPTION      TSTRTS.TRTSREOTSEXCEPTIONAFTUPD          AUS 1 CR
TSTRTS.TRTSREOTSEXCEPTION      TSTRTS.TRTSREOTSEXCEPTIONAFTUPDST        AUR 1 CR
TSTRTS.TRTSREOTSEXCEPTION      TSTRTS.TRTSREOTSEXCEPTIONBEFINS          BIR 1 CR
TSTRTS.TRTSREOTSEXCEPTION      TSTRTS.TRTSREOTSEXCEPTIONBEFUPD          BUR 1 CR
}¢--- A540769.WK.SQL(CATTS) cre=2007-05-11 mod=2016-04-14-14.22.00 A540769 -----
set current path oa1p;                                                  00000122
select count(*), fqzFmtBin7(sum(1024. * nPages * pgSize))               00000222
               , fqzFmtBin7(min(1024. * nPages * pgSize))               00000322
               , fqzFmtBin7(max(1024. * nPages * pgSize))               00000422
    from sysibm.systablespace s join sysibm.sysTablespaceStats r        00000522
         on s.dbid = r.dbid and s.psid = r.psid                         00000622
    where partitions = 0 and segsize > 0                                00000722
    group by floor(log(max(1024. * nPages * pgSize, 1024.)) / log(2))   00000822
    order by min(1024. * nPages * pgSize) desc                          00000922
    with ur                                                             00001022
;;                                                                      00001122
set current path oa1p;                                                  00001222
select count(*), fqzFmtBin7(sum(spaceF * 1024))                         00001322
               , fqzFmtBin7(min(spaceF * 1024))                         00001422
               , fqzFmtBin7(max(spaceF * 1024))                         00001522
    from sysibm.systablespace                                           00001622
    where partitions = 0 and segsize > 0                                00001722
    group by floor(log(max(spaceF, 1) * 1024) / log(2))                 00001822
    order by min(spaceF * 1024) desc                                    00001922
    with ur                                                             00002022
;;                                                                      00002122
select count(*), pgSize                                                 00002221
     from sysibm.sysTableSpace                                          00002321
     group by pgSize                                                    00002421
;x;                                                                     00002521
select count(*), SBCS_CCSID, DBCS_CCSID, MIXED_CCSID                    00002620
     from sysibm.sysTableSpace                                          00002720
     group by SBCS_CCSID, DBCS_CCSID, MIXED_CCSID                       00002820
     order by SBCS_CCSID, DBCS_CCSID, MIXED_CCSID                       00002920
     with ur                                                            00003020
;;                                                                      00003120
select count(*), partitions                                             00003219
     from sysibm.sysTableSpace                                          00003319
     group by partitions                                                00003419
     order by partitions                                                00004019
     with ur                                                            00005018
;;                                                                      00006018
select count(*), s.partitions, t.partkeycolnum                          00010016
    from sysibm.systablespace s, sysibm.systables t                     00010115
    where s.dbName = t.dbName and s.name = t.tsName                     00010215
    group by partitions, partkeycolnum                                  00010317
    order by 3 desc, 2 desc                                             00010414
;                                                                       00010514
select char(dbName, 8) "db", char(name, 12) "ts",                       00011014
           bPool, ntables, partitions, segSize, pgSize, nActive         00020001
    from sysibm.systablespace                                           00030000
    where     dbname in ('BJ01A1T', 'NF01A1T', 'NF02A1T', 'NF03A1T')    00040013
    order by 1, 2                                                       00050000
;                                                                       00051002
select char(s.dbName, 8) "db", char(s.name, 12) "ts", nTables,          00060005
           char(t.name, 12) "table"                                     00070003
    from sysibm.systablespace s                                         00080003
    left join sysibm.systables t                                        00081003
    on s.dbname = t.dbname and s.name = t.tsName                        00082003
    where s.ntables <> 1 and t.type = 'T'                               00090006
        and s.dbname in ('BJ01A1T', 'NF01A1T', 'NF02A1T', 'NF03A1T')    00090113
    order by 1, 2, 4                                                    00100005
}¢--- A540769.WK.SQL(CATTSBP) cre=2011-05-12 mod=2011-05-12-08.26.57 A540769 ---
select bPool, count(*),
       sum(case when dbName like 'DSNDB%' then 1 else 0 end)
    from sysibm.sysTableSpace
    group by bPool
    with ur
}¢--- A540769.WK.SQL(CATTSCLO) cre=2013-10-04 mod=2013-10-04-14.48.01 A540769 ---
select clone, instance, cln, inst, count(*)
    from sysibm.sysTablespace s
    left join
       (select           'N', 1, 1, '-' from sysibm.sysDummy1
        union all select 'Y', 1, 1, 'B' cl from sysibm.sysDummy1
        union all select 'Y', 1, 2, 'C' cl from sysibm.sysDummy1
        union all select 'Y', 2, 1, 'C' cl from sysibm.sysDummy1
        union all select 'Y', 2, 2, 'B' cl from sysibm.sysDummy1
       ) i (sC, sI, inst, cln)
       on s.clone = i.sC and s.instance =  sI
    group by clone, instance, cln, inst
}¢--- A540769.WK.SQL(CATTSCOM) cre=2009-09-15 mod=2009-09-15-13.04.20 A540769 ---
select min(pageSave), max(pageSave), count(*)
    , case when reorglastTime < current timestamp - 6 month
                  and (reorgInserts / max(1000, totalRows)) > .9
                  then 'r' else ' ' end
    , max(reorgLastTime)
    , sum(spacef * 1024) alloc
    , sum(spacef * percActive / 100 * 1024) active
    , sum(spacef * percActive * 1024 / (100-pageSave)) uncompressed
    , avg(percActive) meanActive
    , avg(pageSave) meanSave
    , sum(case when pageSave = 0 then 0 else 1 end) comprParts
  --  spacef, percActive, pageSave
    from sysibm.systablePart p,
         sysibm.systableSpaceStats r
         where p.dbName = r.dbName and p.tsName = r.Name
              and p.partition = r.partition
            --and p.dbName like 'BE%'
    group by case when pagesave<0 then -99
                  when pagesave=0 then   0
                  else max(1, trunc(pageSave/10, 0)) end
    , case when reorglastTime < current timestamp - 6 month
                  and (reorgInserts / max(1000, totalRows)) > .9
                  then 'r' else ' ' end
    order by 1, 4
    with ur
;
}¢--- A540769.WK.SQL(CATTSDS) cre=2013-05-23 mod=2013-05-23-15.18.52 A540769 ---
select dssize, case when partitions = 0 then 'not' else 'part' end
      , count(*)
    from sysibm.sysTablespace
    group by dssize, case when partitions = 0 then 'not' else 'part' end
}¢--- A540769.WK.SQL(CATTSDSS) cre=2013-06-18 mod=2013-06-20-08.59.17 A540769 ---
WITH D AS
( SELECT
    CASE S.DSSIZE
    WHEN 0 THEN
        CASE WHEN S.TYPE =  'G'  THEN 4194304
        WHEN S.TYPE =  'O'  THEN 4194304
        WHEN S.TYPE = 'P'  THEN 4194304
        WHEN S.TYPE =  'R'  THEN 4194304
        ELSE
            CASE WHEN S.PARTITIONS > 254 THEN
                CASE WHEN S.PGSIZE = 4 THEN 4194304
                WHEN S.PGSIZE = 8 THEN 8388608
                WHEN S.PGSIZE = 16 THEN 16777216
                WHEN S.PGSIZE = 32 THEN 33554432
                ELSE NULL
                END
            WHEN S.PARTITIONS > 64 THEN 4194304
            WHEN S.PARTITIONS > 32 THEN 1048576
            WHEN S.PARTITIONS > 16 THEN 2097152
            WHEN S.PARTITIONS > 0 THEN 4194304
            ELSE 2097152
            END
        END
    ELSE S.DSSIZE
    END DSSMAN
,   case
        when s.dssize <> 0 then s.dssize
        when s.type in ('G', 'O', 'P', 'R', 'L') then 4194304
        when S.partitions > 254 then 1048576 * s.pgSize
        when s.partitions > 64 then  4194304
        when s.partitions > 32 then  1048576
        when s.partitions > 16 then  2097152
        when s.partitions > 0 then   4194304
                              else   2097152
    end dssWk, s.*
    from sysibm.sysTablespace s
)
select count(*), dssMan, dssWk, min(type), max(type)
    from d
    group by dssMan, dssWk
--  where dssMan <> dssWk or dssMan is null or dssWk is null
;x;
select dssize, partitions, type, count(*)
    from sysibm.systablespace
    where type = 'L'
    group by dssize, partitions, type
;x;:
}¢--- A540769.WK.SQL(CATTSID) cre=2006-12-05 mod=2006-12-05-14.22.32 F540769 ---
select dbid, dbName, name, psid, obid
    from sysibm.systablespace
    where dbid in (403, 1606, 1600)
          and psid in ( 559, 558, 566, 4, 12, 23)
;
}¢--- A540769.WK.SQL(CATTSINF) cre=2012-07-15 mod=2012-07-15-11.42.08 A540769 ---
select *
    from sysibm.sysTables
    where dbName = 'WP04A1P' and tsName = 'A301A52'
;
select *
    from sysibm.sysTablespace
    where dbName = 'WP04A1P' and name = 'A301A52'
;
select *
    from sysibm.sysTablePart
    where dbName = 'WP04A1P' and tsName = 'A301A52'
;
select *
    from sysibm.sysTableSpaceStats
    where dbName = 'WP04A1P' and name = 'A301A52'
;
select i.*
    from sysibm.sysTables t
      join sysibm.sysIndexes i
        on i.tbCreator = t.creator and i.tbName = t.name
    where t.dbName = 'WP04A1P' and t.tsName = 'A301A52'
;
select p.*
    from sysibm.sysTables t
      join sysibm.sysIndexes i
        on i.tbCreator = t.creator and i.tbName = t.name
      join sysibm.sysIndexPart p
        on i.creator = p.ixcreator and i.Name = p.ixname
    where t.dbName = 'WP04A1P' and t.tsName = 'A301A52'
;
select r.*
    from sysibm.sysTables t
      join sysibm.sysIndexes i
        on i.tbCreator = t.creator and i.tbName = t.name
      join sysibm.sysIndexSpaceStats r
        on i.creator = r.creator and i.Name = r.name
    where t.dbName = 'WP04A1P' and t.tsName = 'A301A52'
;
}¢--- A540769.WK.SQL(CATTSIX) cre=2008-04-14 mod=2008-04-14-10.55.20 F540769 ---
select s.name, char(strip(i.creator) || '.' || strip (i.name), 30),
       i.indexSpace, s.dbName
    from sysibm.sysIndexes i, sysIbm.sysTables t, sysIbm.sysTablespace s
    where    i.dbName = t.dbName and i.tbName = t.name
        and  t.dbName = s.dbName and t.tsName = s.name
        and  s.dbName = 'SAMT2' and s.name like 'SAM%'
    order by 1, 2
}¢--- A540769.WK.SQL(CATTSPA) cre=2010-04-17 mod=2010-04-17-13.15.12 A540769 ---
select 'when MF150013 <= ''' || strip(limitKey) || ''' then '
             || right('     ' || strip(char(partition)), 5) ,
                        partition, limitkey, limitkey_internal,
                        hex(limitkey_internal)
    from sysibm.systablePart
    where dbName = 'MF01A1P' and tsName = 'A150A'
    order by partition
}¢--- A540769.WK.SQL(CATTSPLU) cre=2014-06-18 mod=2014-06-19-12.19.57 A540769 ---
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
, tsPlus2 as
(
  select s.*
      , char(value(case
            when type <> ' ' then type
            when partitions > 0 and segsize = 0 then 'p' -- classic part
            when partitions = 0 and segsize = 0 then 'i' -- simple
            when partitions = 0 and segsize > 0 then 's' -- segmented
            else raise_error(70101, 'unknown ts type='||type
                || ' partitions=' || strip(char(partitions))
                || ' segsize=' || strip(char(segsize))
                || ' db.ts=' || strip(dbName) ||'.'||name)
        end, '?'), 1) tsTy
      , real(value(case
            when dssize <> 0 then real(dssize) / 1048576
            when type in ('G', 'O', 'P', 'R', 'L') then 4
            when partitions = 0     then  64
            when partitions > 254 then    pgSize
            when partitions > 64    then   4
            when partitions > 32    then   1
            when partitions > 16    then   2
                                    else   4
        end, -99)) dsGB
      from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
      , smallInt(case when tsTy = 'G' or partitions = 0
                      then 0 else 1 end) limPart
      , real(value(case when tsTy = 'G' then dsGB * maxPartitions
             when tsTy = 'O' then dsGB * 254
             else dsGb end, -99)) limGB
      from tsPlus2 s
)
-- copy catTsPlu end
}¢--- A540769.WK.SQL(CATTSPLV) cre=2014-06-19 mod=2014-06-19-08.10.28 A540769 ---
-- test cattsPlu versus old gbGr
with dummy as(select * from sysibm.sysDummy1 )
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
, tsPlus2 as
(
  select s.*
      , case
            when type <> ' ' then type
            when partitions > 0 and segsize = 0 then 'p' -- classic part
            when partitions = 0 and segsize = 0 then 'i' -- simple
            when partitions = 0 and segsize > 0 then 's' -- segmented
            else raise_error(70101, 'unknown ts type='||type
                || ' partitions=' || strip(char(partitions))
                || ' segsize=' || strip(char(segsize))
                || ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
      , case
            when dssize <> 0 then real(dssize) / 1048576
            when type in ('G', 'O', 'P', 'R', 'L') then 4
            when partitions = 0     then  64
            when partitions > 254 then    pgSize
            when partitions > 64    then   4
            when partitions > 32    then   1
            when partitions > 16    then   2
                                    else   4
        end dsGB
      from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
      , case when tsTy = 'G' or partitions = 0
             then 0 else 1 end partScope
      , case when tsTy = 'G' then dsGB * maxPartitions
             when tsTy = 'O' then dsGB * 254
             else dsGb end limGB
      from tsPlus2 s
)
-- copy catTsPlu end
, t0 as
(
  select dbname db, name ts, pgSize
      , partitions parts, maxPartitions maxParts, dsSize
      , case
            when type <> ' ' then type
            when partitions > 0 and segsize = 0 then 'p' -- classic part
            when partitions = 0 and segsize = 0 then 'i' -- simple
            when partitions = 0 and segsize > 0 then 's' -- segmented
            else raise_error(70101, 'unknown ts type='||type
                || ' partitions=' || strip(char(partitions))
                || ' segsize=' || strip(char(segsize))
                || ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
      , case
            when dssize <> 0 then int(dssize / 1048576)
            when type in ('G', 'O', 'P', 'R', 'L') then 4
            when partitions = 0     then  64
            when partitions > 254 then    pgSize
            when partitions > 64    then   4
            when partitions > 32    then   1
            when partitions > 16    then   2
                                    else   4
        end dsGB
      , dbid, psid
      from sysibm.sysTablespace
)
, ts as
( select t0.*
      , case when tsTy = 'G' or parts = 0 then 0 else 9999 end scope
      , case when tsTy = 'G' then dsGB * maxparts
             when tsTy = 'O' then dsGB * 254
             else dsGb end limGB
      from t0
)
select n.tsTy, o.tsTy, n.limGb, o.limGb, n.partScope, o.scope, n.*
    from tsPlus n
      full outer join ts o
        on n.dbName = o.db and n.name = o.ts
    where n.dbName is null or o.db is null
        or n.tsTy <> o.tsTy or n.limGb <> o.limGb
        or n.partScope * 9999 <> o.scope
    fetch first 1000 rows only
}¢--- A540769.WK.SQL(CATTSSPA) cre=2009-09-08 mod=2013-06-05-18.57.28 A540769 ---
set current path oa1p;
with s as (
select dbName, name, count(*) parts, sum(real(totalRows)) rows
    from sysibm.systableSpaceStats
    group by dbName, name
)
select count(*) ts, sum(parts) parts,
    fosFmtE7(min(rows)) min,
    fosFmtE7(max(rows)) max,
    fosFmtE7(sum(rows)) sub
    from s
 -- where dbName like 'MF%'
    group by floor(log10(max(1, rows)) * 3)
    order by min(rows) desc
;x;
set current path oa1p;
with s as (
select dbName, name, count(*) parts, sum(space) spc
    from sysibm.systableSpaceStats
    group by dbName, name
)
select count(*) ts, sum(parts) parts,
    fosFmtE7(min(spc)) min,
    fosFmtE7(max(spc)) max,
    fosFmtE7(sum(spc)) sub
    from s
 -- where dbName like 'MF%'
    group by floor(log10(spc) * 3))
    order by min(spc) desc
;x;
select min(partition), max(partition)
    , min(char(limitKey,10)) ,max(char(limitKey,10))
    , sum(spacef * 1024) alloc
    , sum(spacef * percActive / 100 * 1024) active
    , sum(spacef * percActive * 1024 / (100-pageSave)) uncompressed
    , avg(percActive) meanActive
    , avg(pageSave) meanSave
    , sum(case when pageSave = 0 then 0 else 1 end) comprParts
  --  spacef, percActive, pageSave
    from sysibm.systablePart
    where dbName = 'MF01A1P' and tsName = 'A150A'
    and partition between  80 and 179
    group by trunc(partition/5, 0)
    order by 1
    with ur
;
}¢--- A540769.WK.SQL(CATTSTYC) cre=2015-11-23 mod=2015-11-24-11.36.05 A540769 ---
-- count index/table based partitioned ts -----------------------------
set current application compatibility 'V11R1';
with x as
( select s.*
    , value ( ( select max(t.partKeyCOLNUM)
                from sysibm.sysTables t
                where t.dbName = s.dbname and t.tsName = s.name
            ) , 0) partKeyCol
    from sysibm.sysTablespace s
)
, t as
( select case when partitions = 0 and segsize = 0 then 'simple'
              when partitions = 0                 then 'segmented'
              else type  end
      || case when partitions = 0 or maxPartitions > 0  then ''
              when partKeyCol = 0 then ' ixPart'
                                   else ' tbPart' end
      || case when nTables = 1 then ''
              when nTables < 1 then ' noTb'
              else ' multiTb' end ty
    , x.*
    from x
 )
 select count(*), ty, sum(nTables) nTables
    from t
    group by rollup(ty)
 ;x;
with x as
( select case when s.partitions = 0 and s.segsize = 0 then 'simple'
              when s.partitions = 0                   then 'segmented'
              when t.partKeyCOLNUM < 1 then s.type || ' ixPart'
              else                          s.type || ' tbPart' end ty
    , strip(t.creator) || '.' || t.name tb
    from sysibm.sysTables t join sysibm.sysTablespace s
      on t.dbName = s.dbname and t.tsName = s.name
    where t.type not in ('V', 'A')
 )
select count(*), ty, substr(min(tb), 1, 30), max(tb)
    from x
    group by rollup(ty /*, left(tb, 8) */)
}¢--- A540769.WK.SQL(CATTSTYP) cre=2015-02-03 mod=2015-02-03-07.23.16 A540769 ---
set current path oa1p;
-- copy catTsPlu begin
-- tsPlus: sysIbm.sysTableSpace plus missing infos
with
ti as
(
  select dbName db, tsName ts, sum(colCount) cols
       , min(partKeyColNum) partKeyMin
       , max(partKeyColNum) partKeyMax
    from sysibm.SysTables
    where type not in ('A', 'V')
    group by dbName, tsName
)
, tsPlus2 as
(
  select s.*
      , char(value(case
            when type <> ' ' then type
            when partitions > 0 and segsize = 0 then 'p' -- classic part
            when partitions = 0 and segsize = 0 then 'i' -- simple
            when partitions = 0 and segsize > 0 then 's' -- segmented
            else raise_error(70101, 'unknown ts type='||type
                || ' partitions=' || strip(char(partitions))
                || ' segsize=' || strip(char(segsize))
                || ' db.ts=' || strip(dbName) ||'.'||name)
        end, '?'), 1) tsTy
      , real(value(case
            when dssize <> 0 then real(dssize) / 1048576
            when type in ('G', 'O', 'P', 'R', 'L') then 4
            when partitions = 0     then  64
            when partitions > 254 then    pgSize
            when partitions > 64    then   4
            when partitions > 32    then   1
            when partitions > 16    then   2
                                    else   4
        end, -99)) dsGB
      from sysibm.sysTablespace s
)
, tsPlus as
( select s.*
      , smallInt(case when tsTy = 'G' or partitions = 0
                      then 0 else 1 end) limPart
      , real(value(case when tsTy = 'G' then dsGB * maxPartitions
             when tsTy = 'O' then dsGB * 254
             else dsGb end, -99)) limGB
      from tsPlus2 s
)
, tsTy as
(
  select
      s.*
     , case when t.db is null then 'noTab'
            when partKeyMin is null or partKeyMax is null
            then 'partKey Null'
            when partKeyMin <> partKeyMax then 'partKey'
               ||partKeyMin || '<>' || partKeyMax
            when s.partitions = 0 then ''
            when partKeyMin = 0 then 'ixPart'
            when partKeyMin > 0 then 'tbPart'
            else 'partKey ' || partKeyMin
            end partTy
     , t.cols
     , (select sum(real(r.nActive))
         from sysibm.sysTableSpaceStats r
         where s.dbName = r.dbName and s.name = r.name
             and s.dbid = r.dbid and s.psid = r.psid ) * 1024 * s.pgSize
            actB
     from tsPlus2 s
       left join ti t
         on s.dbName = t.db and s.name = t.ts
)
, o1 as
(
  select count(*) ts
  , sum(max(partitions, 1)) parts
  , sum(cols) cols
  , sum(actB) actB
  , tsTy, partTy
  from tsTy
  group by tsTy, partTy
)
, o2 as
(
  select sum(ts) ts
  , sum(parts) parts
  , sum(cols) cols
  , sum(actB) actB
  , '*' tsTy, '*' partTy
  from o1
  union all select * from o1
)
select ts, parts, cols, substr(fosFmte7(actB), 1 ,7) actB
  , tsTy, partTy
from o2
order by tsTy, partTy
;x;
-- copy catTsPlu end
select strip(dbName) || '.' || strip(name), s.*
from tsTy s where partTy = 'noTab';xc;
}¢--- A540769.WK.SQL(CATTSU) cre=2012-08-27 mod=2012-08-27-08.26.02 A540769 ----
select *
    from sysibm.systablespace
    where partitions > 0 -- and segsize = 0
    and dbName = 'DA540769'
    order by createdts desc
}¢--- A540769.WK.SQL(CATUL) cre= mod= ------------------------------------------
select     char(c.name,20) ,
           c.creator,                                char(' '),
           c.dbname,                                 char(' '),
           c.tsname,                                 char(' '),
           char(c.p_part) ,                          char(' '),
           char(c.p_limit) ,                         char(' '),
           char(count(all tid150tst)) tst_all,       char(' '),
           char(count(distinct tid150tst)) tst_dist, char(' '),
           char(coalesce(
             char(min(tid150md)) || ' '||
             char(max(tid150md)) || ' ' ||
             char(max(tid150md)) || ' ' ||
             char(min(tid150tst)) || ' ' ||
             char(max(tid150tst))
             , '<<null>>'))
  from
    ( select
         t.name, t.creator, t.dbname, t.tsname,
         p.partition p_part, int(p.limitKey) p_limit,
         q.partition q_part, int(q.limitKey) q_limNu,
         case when q.limitKey is null then -9999 else int(q.limitKey)
              end q_limit
      from sysibm.systables t
        join sysibm.systablePart p
          on t.tsname = p.tsname and t.dbname = p.dbname
        left join sysibm.systablePart q
          on p.tsname = q.tsname and p.dbname = q.dbname
             and p.partition - 1 = q.partition
      where t.name = 'TID150A1' and t.creator = 'OA1A' ) c
    left join OA1A.tid150a1 d
      on d.tid150md > c.q_limit and d.tid150md <= c.p_limit
  group by c.name, c.creator, c.dbname, c.tsname, p_part, p_limit
           ;
}¢--- A540769.WK.SQL(CATULDA) cre= mod= ----------------------------------------
select     dt,                                          char(' '),
           char(count(all tid150tst)) tst_all,          char(' '),
           char(count(distinct tid150tst)) tst_dist,    char(' '),
           char(coalesce(
             char(min(tid150md))                     || ' ' ||
             char(max(tid150md))                     || ' ' ||
             char(min(tid150tst))                    || ' ' ||
             char(max(tid150tst))
             , '<<null>>'))
  from (
    select DATE(tiD150tst) dt, tid150tst, tid150md

      from OA1A.tid150a1
    ) d
    group by dt order by dt
           ;
}¢--- A540769.WK.SQL(CATUNLOA) cre=2014-09-05 mod=2014-09-07-11.41.55 A540769 ---
select ', ' || strip(c.name) || ' '
      || case when c.colType in ('DATE', 'TIME', 'TIMESTAMP')
                  then strip(c.colType) || ' EXTERNAL'
                  else strip(c.colType) end
      , c.colNo, c.coltype, c.Name col
      , t.dbName db, t.tsName ts, t.name tb, t.type
    from sysibm.sysTables t
      join sysibm.sysColumns c
        on t.creator = c.tbCreator and t.name = c.tbName
        and t.dbName = 'CSQDP2G'
        and t.name   = 'ADMIN_B_MESSAGES'
    where t.type = 'T'
    order by t.dbName, t.tsName, t.name
           , case when strip(c.colType) like '_LOB'
                       or c.colType = 'XML' then 1 else 0 end
           , c.colNo
}¢--- A540769.WK.SQL(CATUPD) cre=2007-11-29 mod=2009-09-28-12.23.34 A540769 ----
update sysibm.systablespace
    set nActive = nActive + 1,
        nActiveF = nActiveF + 1,
        spaceF = spaceF + 1
    where dbName = 'DGDB9998' and name = 'A600A199'
;
commit
;
x
select count(*), max(alteredTS) altered, min(alteredTS),
                 max(createdTS) created, min(createdTS)
    from sysibm.systables
    where dbname = 'DGDB0397'
}¢--- A540769.WK.SQL(CATUSED) cre=2013-09-16 mod=2013-10-02-10.02.16 A540769 ---
with ts as
(
  select dbName db, name ts, createdTS cre , alteredTS alt
        ,dbid, psid
    from sysibm.sysTablespace
    where dbName = 'MF01A1P'
)
, tb as
(
  select case when type = 'A' then 'al'
              when type = 'V' then 'vw'
                              else 'tb' end ty
        , creator cr, name tb, createdTS cre , alteredTS alt
    from sysIbm.sysTables
    where (dbName, tsName) in (select db, ts from ts)
)
, r0 as
(
   select *
     from sysibm.sysTableSpaceStats
     where (dbName, name, dbid, psid) in
           (select db, ts, dbid, psid  from ts)
)
, rt (ty, cnt, alt) as
(
  select 'rt', count(*), max(updateStatsTime)
    from r0
    where updateStatsTime is not null
  union all select 'rt copyUpd', count(*), max(COPYUPDATETIME)
    from r0
    where copyUpdateTime is not null
  union all select 'rt loadRep', count(*), max(LOADRLASTTIME)
    from r0
    where LOADRLASTTIME is not null
  union all select 'rt reoUpd', count(*)
         , max(max(value(LOADRLASTTIME, REORGLASTTIME)
             ,value(REORGLASTTIME, LOADRLASTTIME)))
    from r0
    where REORGINSERTS > 0 or REORGDELETES >0
       or REORGUPDATES > 0 or REORGMASSDELETE > 0
)
, ix as
( select creator cr, name ix, createdTS cre , alteredTS alt
    from sysibm.sysIndexes
    where (tbCreator, tbName) in
          (select cr, tb from tb where ty = 'tb')
)
, i0 as
(
   select *
     from sysibm.sysIndexSpaceStats
     where (creator, name)
         in (select cr, ix from ix)
)
,ri (ty, cnt, alt) as
(
   select 'ri', count(*), max(updateStatsTime)
     from i0
   union all select 'ri lastUse', count(*), timestamp(max(lastUsed))
     from i0
     where lastUsed is not null
)
, pk as
(
  select lastUsed, Timestamp, bindTime, pcTimestamp, collid, name
    from sysIbm.sysPackage pk
    where  (location, collid, name, conToken)
        in ( select dLocation, dCollid, dName, dConToken
               from sysIbm.sysPackDep
               where bType in ('T', 'A', 'G', 'M', 'V')
                   and (bQualifier, bName)
                   in (select cr, tb from tb)
             union all select dLocation, dCollid, dName, dConToken
               from sysIbm.sysPackDep
               where bType in ('P', 'R')
                   and (bQualifier, bName)
                   in (select db, ts from ts)
           )
)
, u (type, count, altered, created) as
(
  select 'ts', count(*), max(alt), max(cre)
    from ts
  union all select ty, count(*), max(alt), max(cre)
    from tb
    group by ty
  union all select ty, cnt, alt, cast(null as timestamp)
    from rt
  union all select 'ix', count(*), max(alt), max(cre)
    from ix
  union all select ty, cnt, alt, cast(null as timestamp)
    from ri
  union all select 'pk bind/cr', count(*), max(bindTime), max(timestamp)
    from pk
  union all select 'pk preComp', count(*), max(pcTimestamp)
       , cast(null as timestamp)
    from pk
    where pcTimestamp > '1000-01-01-00.00.00'
  union all select 'pk lastUse', count(*), timestamp(max(lastUsed))
       , cast(null as timestamp)
    from pk
    where lastUsed > '01.01.1000'
)
, v (type, count, altered, created) as
(
  select type
         , substr(right('           ' || count, 8), 1, 8)
         , altered, created
    from u
  union all ( select 'pk newest', substr(name, 1, 8)
           , timestamp(max(lastUsed)), max(pcTimestamp)
    from pk
    where lastUsed > current date - 90 days
    group by name
    order by 3 desc, 2
    fetch first 15 rows only )
)
select * from v
}¢--- A540769.WK.SQL(CATVCAT) cre=2011-04-21 mod=2011-04-21-22.56.31 A540769 ---
select count(*), vCatName
    from sysibm.sysTablePart
    group by vCatName
    with ur
    ;
select count(*), vCatName
    from sysibm.sysIndexPart
    group by vCatName
    with ur
}¢--- A540769.WK.SQL(CATVDEP) cre=2013-05-13 mod=2013-05-13-16.57.37 A540769 ---
select *
    from sysibm.sysViewDep d
  --where dCreator = 'GDB9998' and dName like 'WK948%'
    where                          bName like 'VVV_%'
;x;
with u (cr, nm, ty, lv) as
(
--select 'GDB9998', 'WK948NULL', 'V', 0
  select 'VDPS2', varchar('VTINSTRFLATDATA', 128), 'V', 0
    from sysibm.sysDummyU
  union all select dCreator, dName, dType, lv+1
    from u join sysibm.sysViewDep d
      on d.bCreator = u.cr and d.bName = u.nm
    where lv < 1000
)

select * from u

}¢--- A540769.WK.SQL(CATVIEW) cre=2009-08-18 mod=2014-08-27-12.43.00 A540769 ---
select substr(strip(creator)|| '.'|| strip(name),1,25)
     , length(statement)
     , substr(statement, 1, 2000)
    from sysibm.sysviews v
    where creator = 'OA1P'
        and name like 'VQZ%'
    order by 1
}¢--- A540769.WK.SQL(CATVIEWS) cre=2008-03-10 mod=2008-03-10-11.20.31 F540769 ---
select char(strip(creator) || '.' || strip(name), 20), seqNo,
    pathSchemas
    from sysibm.sysviews
    where creator = 'GDB9998'
}¢--- A540769.WK.SQL(CATVW) cre=2008-06-19 mod=2016-03-11-14.12.35 A540769 -----
select * from sysibm.sysViews
    where creator = 'QZ91CRS'
    and name = 'VWK401A1'
    order by creator, name, seqno
}¢--- A540769.WK.SQL(CATVWDEP) cre=2008-08-19 mod=2008-08-19-16.16.57 F540769 ---
with pa (cre, nam, typ, lev) as
  ( select bCreator, bName, bType, 1
        from sysibm.sysViewDep
        where dType = 'V'
              and dCreator = 'GDB9998' and dName = 'VWK210A2'
    union all select d.bCreator, d.bName, d.bType, p.lev+1
        from sysibm.sysViewDep d, pa p
        where d.dcreator = p.cre and d.dName = p.nam
             and d.dType = p.Typ and p.lev < 1000
    )
select typ, lev, strip(cre) || '.' || strip(Nam)
    from pa
    order by 2, 3
;
    where seqNo > 5   --reator = 'A540769' and name like 'VWK210%'
    order by creator, name, seqno
}¢--- A540769.WK.SQL(CATVWLST) cre=2014-10-14 mod=2014-10-14-14.47.01 A540769 ---
$#@
call sqlConnect dbof
$<>
$>. fedit('::v')
$<#¢
select    -- createdTs,
         colCount, strip(creator) || '.' || name
     from sysibm.sysTables
     where type = 'V'
         and (name like 'VVV%' or dbName like 'VV%'
               or creator like 'VDPS%'
             )
     order by creator, name
$!
call sqlStmts
}¢--- A540769.WK.SQL(CATV9NES) cre=2008-10-20 mod=2008-10-24-13.31.49 F540769 ---
set current sqlid = 'A540769';
select * from s100447.db2v9ts
    where dbName = 'DGDB9998' and v9 <> ''
;
delete from plan_table where queryno = 222;
-- explain plan set queryno = 222 for
select tp, char(left(nm, 40), 40), v9 from s100447.db2v9
    where v9 <> ''
      and (    ( cr = 'GDB9998' and tb = 'TWK573A1' )
            or ( cr = 'GDB9998' and tb = 'TWK574A1' )
            or ( cr = 'GDB9998' and tb = 'TWK575A1' )
            or ( cr = 'GDB9998' and tb = 'TWK576A1' )
            or ( cr = 'GDB9998' and tb = 'TWK135A1' )
            or ( cr = 'GDB9998' and tb = 'TWK145A1' )
          )
    order by cr, tb, cl
;

select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
where (dbName = 'CT02A1A' and name = 'TCT170A1')
  or  (dbName=  'RP01A1A' and name in ('TRP161A1',
                            'TRP162A1',
                            'TRP163A1')
      )
;
x
selectdeclare global temporary table session.gtt1
from s100447.db2v9 v
    where v9 <> ''   --and db = 'DGDB9998'
    order by cr, tb, cl
;
x
select tp, char(nm, 30), v9 from s100447.db2v9ts where v9 <> '';
select tp, char(nm, 30), v9 from s100447.db2v9tb where v9 <> '';
select tp, char(nm, 30), v9 from s100447.db2v9cl where v9 <> '';
select tp, char(nm, 30), v9 from s100447.db2v9ix where v9 <> '';
}¢--- A540769.WK.SQL(CATV9NET) cre=2008-10-23 mod=2008-10-24-12.56.22 F540769 ---
set current sqlid = 'A540769';
delete from plan_table where queryno = 111
;
--explain plan set queryno = 111 for
select tp, char(left(nm, 40), 40), v9, v.*
    from s100447.db2v9 v
    where (    ( cr = 'GDB9998' and tb = 'TWK573A1' )
            or ( cr = 'GDB9998' and tb = 'TWK574A1' )
            or ( cr = 'GDB9998' and tb = 'TWK575A1' )
            or ( cr = 'GDB9998' and tb = 'TWK576A1' )
            or ( cr = 'GDB9998' and tb = 'TWK135A1' )
            or ( cr = 'GDB9998' and tb = 'TWK145A1' )
            or ( cr = 'GDB9998' and tb = 'TWK145A1' )
            or ( cr = 'GDB9998' and tb = 'TWK145A1' )
            or ( cr = 'GDB9998' and tb = 'TWK145A1' )
            or ( cr = 'GDB9998' and tb = 'TWK145A1' )
            or ( cr = 'GDB9998' and tb = 'TWK145A1' )
          )
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(CATV9NEU) cre=2008-10-21 mod=2008-10-21-11.55.16 F540769 ---
select dbname, name,
    case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
 || case when partitions > 0 and segSize > 0
        then 'universal ' else '' end
 || case when log <> 'Y' then 'notLogged ' else '' end
    from sysibm.systablespace
    where dbname = 'DGDB9998' and name like 'A5%'
;
select char(strip(creator) || '.' || strip(name), 20),
    case when append <> 'N' then 'append ' else '' end
    from sysibm.systables
    where creator = 'GDB9998' and name like 'TWK5%'
;
select char(strip(tbCreator) || '.' || strip(tbName)
                           || '.' || strip(name), 30),
      case when hidden <> 'N' then 'hidden ' else '' end
   || case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
          , 'XML') then strip(colType) || ' ' else '' end
   || case when default in ('E','F') then 'eachRowOnUpdate ' else '' end
      , c.*
    from sysibm.sysColumns  c
    where tbCreator = 'GDB9998' and tbName like 'TWK5%'
;
select char(strip(creator) || '.' || strip(name), 20) ,
      case when compress <> 'N' then 'compress ' else '' end
   || case when ix_extension_type <> '' then 'expression ' else '' end
     ,  x.*
    from sysibm.sysIndexes  x
    where creator = 'GDB9998' and name like 'IWK5%'
;
 -- TS    partition by growth
 --       universal
 --       log no
 -- table append
 --       partition by size                  xxx für ts by growth
 --       implicitly hidden
 --       bigInt
 --       binary
 --       varBinary
 --       decFloat
 --       row change timestamp
 --       xml
 -- index compress
 --       on expression
 -- trigger instead of
 -- procedures: native sql
 -- cat sysibm.sysenvironment (für native sql Proc + index on Expr)
}¢--- A540769.WK.SQL(CATV9NEV) cre=2008-10-20 mod=2009-08-24-13.04.47 A540769 ---
set current sqlid = 'S100447'
;
drop   view s100447.db2v9ts ;
drop   view s100447.db2v9tb ;
drop   view s100447.db2v9cl ;
drop   view s100447.db2v9ix ;
-- drop   view s100447.db2ixPart;
-- drop   view s100447.db2v9 ;

create view s100447.db2v9ts as
select 'ts' tp, strip(dbName) || '.' || strip(name) nm,
    case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
  || case when partitions > 0 and segSize > 0
        then 'universal ' else '' end
  || case when log <> 'Y' then 'notLogged ' else '' end v9,
  ts.*
from sysibm.systablespace ts
;
create view s100447.db2v9tb as
select 'tb' TP, strip(creator) || '.' || strip(name) nm,
    case when append <> 'N' then 'append ' else '' end v9,
    tb.*
    from sysibm.systables tb
;
create view s100447.db2v9cl as
select 'cl' TP, strip(tbCreator) || '.' || strip(tbName)
                                 || '.' || strip(name) nm,
      case when hidden <> 'N' then 'hidden ' else '' end
   || case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
          , 'XML') then strip(colType) || ' ' else '' end
   || case when default in ('E','F') then 'onUpdate ' else '' end v9
      , cl.*
    from sysibm.sysColumns  cl
;
create view s100447.db2v9ix as
select 'ix' tp, strip(creator) || '.' || strip(name) nm,
      case when compress <> 'N' then 'compress ' else '' end
  || case when ix_extension_type <>'' then 'expression ' else '' end v9
     ,  ix.*
    from sysibm.sysIndexes ix
;
create view s100447.db2ixPart as
select 'tb' TP, strip(t.creator) || '.' || strip(t.name) nm,
    case when s.partitions > 0 and t.partKeyCOLNUM < 1
         then 'indexBased partitioning' else '' end v9,
    t.*
    from sysibm.systables t, sysibm.sysTablespace s
    where t.dbName = s.dbName and t.tsName = s.name
        and t.type = 'T'
;
create view s100447.db2v9   (tp, nm, v9, cr, tb, cl) as
select
    tp, nm, v9, tb.creator, tb.name, ' -- 1 ts'
    from s100447.db2V9ts ts join sysibm.sysTables tb
    on ts.dbName = tb.dbName and ts.name = tb.tsName
union all select
    tp, nm, v9, creator, name, ' -- 2 tb'
    from s100447.db2V9tb tb
union all select
    tp, nm, v9, ix.tbCreator,ix.tbName, ' -- 3 ix'
    from s100447.db2V9ix ix
union all select
    tp, nm, v9, cl.tbCreator, cl.tbName, cl.name
    from s100447.db2V9cl cl
union all select
    tp, nm, v9, creator, name, ' -- 4 ip'
    from s100447.db2ixPart
;
commit
;
select tp, char(left(nm, 40), 40), v9, v.*
from s100447.db2v9 v
    where v9 <> ''  and cr in ('GDB9998', 'A540769')
    order by cr, tb, cl
;
}¢--- A540769.WK.SQL(CATV9NEW) cre=2008-10-20 mod=2008-10-24-13.16.54 F540769 ---
set current sqlid = 'A540769'
;
delete from plan_table where queryno = 111
;
explain plan set queryno = 111 for

with v9ts as
(
select 'ts' tp, strip(dbName) || '.' || strip(name) nm,
    case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
  || case when partitions > 0 and segSize > 0
        then 'universal ' else '' end
  || case when log <> 'Y' then 'notLogged ' else '' end v9,
  ts.dbName db, ts.name ts
from sysibm.systablespace ts
), v9tb as
(
select 'tb' TP, strip(creator) || '.' || strip(name) nm,
    case when append <> 'N' then 'append ' else '' end v9,
    tb.dbName db, tb.tsName ts, tb.tbCreator cr, tb.tbName tb
    from sysibm.systables tb
), v9cl as
(
select 'cl' TP, strip(tbCreator) || '.' || strip(tbName)
                                 || '.' || strip(name) nm,
      case when hidden <> 'N' then 'hidden ' else '' end
   || case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
          , 'XML') then strip(colType) || ' ' else '' end
   || case when default in ('E','F') then 'onUpdate ' else '' end v9
      , cl.tbCreator cr, cl.tbName tb, cl.name cl
    from sysibm.sysColumns  cl
), v9ix as
(
select 'ix' tp, strip(creator) || '.' || strip(name) nm,
      case when compress <> 'N' then 'compress ' else '' end
  || case when ix_extension_type <>'' then 'expression ' else '' end v9,
    ix.tbCreator cr, ix.tbName tb
    from sysibm.sysIndexes ix
), v9 (tp, nm, v9, cr, tb, cl) as
(
select
    tp, nm, v9,                 cr     , tb  , ' -- 2 tb'
    from            V9tb tb
union     select
    tp, nm, v9, ix.cr       ,ix.tb,
    ' -- 3 ix'
    from            V9ix ix -- ysibm.sysTables tb
 --   where ix.tbCreator = tb.creator and ix.tbName = tb.name
union     select
    tp, nm, v9, cl.cr       , cl.tb    , cl.cl
    from            V9cl cl -- , sysibm.sysTables tb
 --   where cl.tbCreator = tb.creator and cl.tbName = tb.name
)
select tp, char(left(nm, 40), 40), v9, v.*
from v9 v
    where  v9 <> ''
     -- and cr = 'GDB9998'
        and       (    ( cr = 'GDB9998' and tb = 'TWK573A1' )
                    or ( cr = 'GDB9998' and tb = 'TWK574A1' )
                    or ( cr = 'GDB9998' and tb = 'TWK575A1' )
                    or ( cr = 'GDB9998' and tb = 'TWK576A1' )
                    or ( cr = 'GDB9998' and tb = 'TWK135A1' )
                    or ( cr = 'GDB9998' and tb = 'TWK145A1' )
                  )
    order by cr, tb, cl
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
commit;
    tp, nm, v9,
        ifNull(tb.creator, ''), ifNull(tb.name, ''), ' -- 1 ts'
    from            V9ts ts left join sysibm.sysTables tb
    on ts.db     = tb.dbName and ts.ts = tb.tsName
union all select
}¢--- A540769.WK.SQL(CATV9NEX) cre=2008-10-24 mod=2008-10-24-12.30.10 F540769 ---
set current sqlid = 'A540769'
;
delete from plan_table where queryno = 111
;
   explain plan set queryno = 111 for

with tstb as
(
select ts.dbName db, ts.name ts, tb.creator cr, tb.name tb
    from sysibm.systablespace ts
        full outer join sysibm.systables tb
        on ts.dbName = tb.dbName and ts.name = tb.tsName
) select * from tstb
      where (    ( cr = 'GDB9998' and tb = 'TWK573A1' )
              or ( cr = 'GDB9998' and tb = 'TWK574A1' )
              or ( cr = 'GDB9998' and tb = 'TWK575A1' )
              or ( cr = 'GDB9998' and tb = 'TWK576A1' )
              or ( cr = 'GDB9998' and tb = 'TWK135A1' )
              or ( cr = 'GDB9998' and tb = 'TWK145A1' )
            )
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
with v9ts as
(
select 'ts' tp, strip(dbName) || '.' || strip(name) nm,
    case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
  || case when partitions > 0 and segSize > 0
        then 'universal ' else '' end
  || case when log <> 'Y' then 'notLogged ' else '' end v9,
  ts.dbName db, ts.name ts
from sysibm.systablespace ts
), v9tb as
(
select 'tb' TP, strip(creator) || '.' || strip(name) nm,
    case when append <> 'N' then 'append ' else '' end v9,
    tb.dbName db, tb.tsName ts, tb.tbCreator cr, tb.tbName tb
    from sysibm.systables tb
), v9cl as
(
select 'cl' TP, strip(tbCreator) || '.' || strip(tbName)
                                 || '.' || strip(name) nm,
      case when hidden <> 'N' then 'hidden ' else '' end
   || case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
          , 'XML') then strip(colType) || ' ' else '' end
   || case when default in ('E','F') then 'onUpdate ' else '' end v9
      , cl.tbCreator cr, cl.tbName tb, cl.name cl
    from sysibm.sysColumns  cl
), v9ix as
(
select 'ix' tp, strip(creator) || '.' || strip(name) nm,
      case when compress <> 'N' then 'compress ' else '' end
  || case when ix_extension_type <>'' then 'expression ' else '' end v9,
    ix.tbCreator cr, ix.tbName tb
    from sysibm.sysIndexes ix
) , tstb as
(
select ts.dbName db, ts.name ts, tb.creator cr, tb.name tb
    from sysibm.systablespace ts
        full outer join sysibm.systables tb
        on ts.dbName = tb.dbName and ts.name = tb.tsName
), v9 (tp, nm, v9, db, ts, cr, tb, cl) as
(
select
    tp, nm, v9, tt.*, ' -- 1 ts'
    from V9ts ts, tstb tt
    where ts.db = tt.db and ts.ts = tt.ts
union all select
    tp, nm, v9, tt.*, ' -- 2 tb'
    from V9tb tb, tstb tt
    where tb.cr = tt.cr and tb.tb = tt.tb
union all select
    tp, nm, v9, tt.*, ' -- 3 ix'
    from V9ix ix, tstb tt
    where ix.cr = tt.cr and ix.tb = tt.tb
union all select
    tp, nm, v9, tt.*, cl.cl
    from V9cl cl, tstb tt
    where cl.cr = tt.cr and cl.tb = tt.tb
)
select tp, char(left(nm, 40), 40), v9, v.*
from v9 v
    where  v9 <> ''
      --and cr = 'GDB9998'
        and (    ( cr = 'GDB9998' and tb = 'TWK573A1' )
              or ( cr = 'GDB9998' and tb = 'TWK574A1' )
              or ( cr = 'GDB9998' and tb = 'TWK575A1' )
            )
    order by cr, tb, cl
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(CATV9NEY) cre=2008-10-24 mod=2008-10-24-11.55.29 F540769 ---
set current sqlid = 'A540769'
;
delete from plan_table where queryno = 111
;
-- explain plan set queryno = 111 for

with v9ts as
(
select 'ts' tp, strip(dbName) || '.' || strip(name) nm,
    case when maxPartitions > 0 then 'partitionByGrowth ' else '' end
  || case when partitions > 0 and segSize > 0
        then 'universal ' else '' end
  || case when log <> 'Y' then 'notLogged ' else '' end v9,
  ts.dbName db, ts.name ts
from sysibm.systablespace ts
), v9tb as
(
select 'tb' TP, strip(creator) || '.' || strip(name) nm,
    case when append <> 'N' then 'append ' else '' end v9,
    tb.dbName db, tb.tsName ts, tb.tbCreator cr, tb.tbName tb
    from sysibm.systables tb
), v9cl as
(
select 'cl' TP, strip(tbCreator) || '.' || strip(tbName)
                                 || '.' || strip(name) nm,
      case when hidden <> 'N' then 'hidden ' else '' end
   || case when coltype in('BIGINT', 'BINARY', 'VARBIN', 'DECFLOAT'
          , 'XML') then strip(colType) || ' ' else '' end
   || case when default in ('E','F') then 'onUpdate ' else '' end v9
      , cl.tbCreator cr, cl.tbName tb, cl.name cl
    from sysibm.sysColumns  cl
), v9ix as
(
select 'ix' tp, strip(creator) || '.' || strip(name) nm,
      case when compress <> 'N' then 'compress ' else '' end
  || case when ix_extension_type <>'' then 'expression ' else '' end v9,
    ix.tbCreator cr, ix.tbName tb
    from sysibm.sysIndexes ix
), v9 (tp, nm, v9, cr, tb, cl) as
(
select
    tp, nm, v9,
               tb.creator,             tb.name,      ' -- 1 ts'
    from            V9ts ts      join sysibm.sysTables tb
    on ts.db     = tb.dbName and ts.ts = tb.tsName
union all select
    tp, nm, v9,                 cr     , tb  , ' -- 2 tb'
    from            V9tb tb
union all select
    tp, nm, v9, ix.cr       ,ix.tb,
    ' -- 3 ix'
    from            V9ix ix -- ysibm.sysTables tb
 --   where ix.tbCreator = tb.creator and ix.tbName = tb.name
union all select
    tp, nm, v9, cl.cr       , cl.tb    , cl.cl
    from            V9cl cl -- , sysibm.sysTables tb
 --   where cl.tbCreator = tb.creator and cl.tbName = tb.name
)
select tp, char(left(nm, 40), 40), v9, v.*
from v9 v
    where  v9 <> ''
     --   and cr = 'GDB9998'
      --  and (    ( cr = 'GDB9998' and tb = 'TWK573A1' )
      --        or ( cr = 'GDB9998' and tb = 'TWK574A1' )
      --        or ( cr = 'GDB9998' and tb = 'TWK575A1' )
          and (cr, tb) in (
                     select 'GDB9998', 'TWK573A1' from sysIbm.sysDummy1
               union select 'GDB9998', 'TWK574A1' from sysIbm.sysDummy1
               union select 'GDB9998', 'TWK575A1' from sysIbm.sysDummy1
              )
    order by cr, tb, cl
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(CATV9NEZ) cre=2008-10-24 mod=2008-10-24-12.49.20 F540769 ---
select tp, char(left(nm, 40), 40), v9
   from s100447.db2v9 v9
 -- ( select creator cr, name tb from sysibm.systables

 --             ) gt
   where    v9.v9 <> ''
         -- v9.cr = gt.cr and v9.tb = gt.tb
         and  (    ( v9.cr   = 'GDB9998' and v9.tb= 'TWK573A1' )
                or ( v9.cr   = 'GDB9998' and v9.tb= 'TWK574A1' )
                or ( v9.cr   = 'GDB9998' and v9.tb= 'TWK575A1' )
              )
;
x
set current sqlid = 'A540769'
;
declare global temporary table session.gtt1
    (cr char(24), tb char(24));
insert into session.gtt1
    ( select creator, name from sysibm.systables

      where   (    ( creator = 'GDB9998' and name = 'TWK573A1' )
                or ( creator = 'GDB9998' and name = 'TWK574A1' )
                or ( creator = 'GDB9998' and name = 'TWK575A1' )
              ) )
;
select * from session.gtt1
;
select tp, char(left(nm, 40), 40), v9
   from s100447.db2v9 v9, session.gtt1 gt
   where v9.cr = gt.cr and v9.tb = gt.tb
}¢--- A540769.WK.SQL(CATXXX) cre=2012-03-16 mod=2012-03-16-17.09.45 A540769 ----
select count(*), dbname
     from sysibm.sysIndexes
     group by dbname
     order by 1 desc
}¢--- A540769.WK.SQL(CHARSET) cre=2006-11-06 mod=2008-05-22-18.02.12 F540769 ---
select
          'x 00 - 0F = œ    †—Ž
'   ,
          'x 10 - 1F = 
‡’'   ,
          'x 20 - 2F = €‚ƒ„…ˆ‰Š‹Œ'   ,
          'x 30 - 3F = ‘“”•–˜™š›ž'   ,
          'x 40 - 4F =   âäàáãåçñ¢.<(+|'   ,
          'x 50 - 5F = &éêëèíîïìß!$*);^'   ,
          'x 60 - 6F = -/ÂÄÀÁÃÅÇѦ,%_>?'   ,
          'x 70 - 7F = øÉÊËÈÍÎÏÌ`:#@''="'  ,
          'x 80 - 8F = Øabcdefghi«»ðýþ±'   ,
          'x 90 - 9F = °jklmnopqrªºæ¸Æ¤'   ,
          'x A0 - AF = µ~stuvwxyz¡¿Ð[Þ®'   ,
          'x B0 - BF = ¬£¥·©§¶¼½¾Ý¨¯]´×'   ,
          'x C0 - CF = {ABCDEFGHI­ôöòóõ'   ,
          'x D0 - DF = }JKLMNOPQR¹ûüùúÿ'   ,
          'x E0 - EF = \÷STUVWXYZ²ÔÖÒÓÕ'   ,
          'x F0 - FF = 0123456789³ÛÜÙÚ '
    from sysibm.sysDummy1
;
x
set    current locale lc_ctype = 'It_CH' ;
select current locale lc_ctype from sysibm.sysdummy1;
select chr, upper(chr), int, hex(chr), hex(upper(chr))
from A540769.twk005a
     order by chr asc
;
x
delete  from  A540769.TWK005A;
insert into A540769.TWK005A values(x'00',   0);
insert into A540769.TWK005A values(x'01',   1);
insert into A540769.TWK005A values(x'02',   2);
insert into A540769.TWK005A values(x'03',   3);
insert into A540769.TWK005A values(x'04',   4);
insert into A540769.TWK005A values(x'05',   5);
insert into A540769.TWK005A values(x'06',   6);
insert into A540769.TWK005A values(x'07',   7);
insert into A540769.TWK005A values(x'08',   8);
insert into A540769.TWK005A values(x'09',   9);
insert into A540769.TWK005A values(x'0A',  10);
insert into A540769.TWK005A values(x'0B',  11);
insert into A540769.TWK005A values(x'0C',  12);
insert into A540769.TWK005A values(x'0D',  13);
insert into A540769.TWK005A values(x'0E',  14);
insert into A540769.TWK005A values(x'0F',  15);
insert into A540769.TWK005A values(x'10', 016);
insert into A540769.TWK005A values(x'11', 017);
insert into A540769.TWK005A values(x'12', 018);
insert into A540769.TWK005A values(x'13', 019);
insert into A540769.TWK005A values(x'14', 020);
insert into A540769.TWK005A values(x'15', 021);
insert into A540769.TWK005A values(x'16', 022);
insert into A540769.TWK005A values(x'17', 023);
insert into A540769.TWK005A values(x'18', 024);
insert into A540769.TWK005A values(x'19', 025);
insert into A540769.TWK005A values(x'1A', 026);
insert into A540769.TWK005A values(x'1B', 027);
insert into A540769.TWK005A values(x'1C', 028);
insert into A540769.TWK005A values(x'1D', 029);
insert into A540769.TWK005A values(x'1E', 030);
insert into A540769.TWK005A values(x'1F', 031);
insert into A540769.TWK005A values(x'20', 032);
insert into A540769.TWK005A values(x'21', 033);
insert into A540769.TWK005A values(x'22', 034);
insert into A540769.TWK005A values(x'23', 035);
insert into A540769.TWK005A values(x'24', 036);
insert into A540769.TWK005A values(x'25', 037);
insert into A540769.TWK005A values(x'26', 038);
insert into A540769.TWK005A values(x'27', 039);
insert into A540769.TWK005A values(x'28', 040);
insert into A540769.TWK005A values(x'29', 041);
insert into A540769.TWK005A values(x'2A', 042);
insert into A540769.TWK005A values(x'2B', 043);
insert into A540769.TWK005A values(x'2C', 044);
insert into A540769.TWK005A values(x'2D', 045);
insert into A540769.TWK005A values(x'2E', 046);
insert into A540769.TWK005A values(x'2F', 047);
insert into A540769.TWK005A values(x'30', 048);
insert into A540769.TWK005A values(x'31', 049);
insert into A540769.TWK005A values(x'32', 050);
insert into A540769.TWK005A values(x'33', 051);
insert into A540769.TWK005A values(x'34', 052);
insert into A540769.TWK005A values(x'35', 053);
insert into A540769.TWK005A values(x'36', 054);
insert into A540769.TWK005A values(x'37', 055);
insert into A540769.TWK005A values(x'38', 056);
insert into A540769.TWK005A values(x'39', 057);
insert into A540769.TWK005A values(x'3A', 058);
insert into A540769.TWK005A values(x'3B', 059);
insert into A540769.TWK005A values(x'3C', 060);
insert into A540769.TWK005A values(x'3D', 061);
insert into A540769.TWK005A values(x'3E', 062);
insert into A540769.TWK005A values(x'3F', 063);
insert into A540769.TWK005A values(x'40', 064);
insert into A540769.TWK005A values(x'41', 065);
insert into A540769.TWK005A values(x'42', 066);
insert into A540769.TWK005A values(x'43', 067);
insert into A540769.TWK005A values(x'44', 068);
insert into A540769.TWK005A values(x'45', 069);
insert into A540769.TWK005A values(x'46', 070);
insert into A540769.TWK005A values(x'47', 071);
insert into A540769.TWK005A values(x'48', 072);
insert into A540769.TWK005A values(x'49', 073);
insert into A540769.TWK005A values(x'4A', 074);
insert into A540769.TWK005A values(x'4B', 075);
insert into A540769.TWK005A values(x'4C', 076);
insert into A540769.TWK005A values(x'4D', 077);
insert into A540769.TWK005A values(x'4E', 078);
insert into A540769.TWK005A values(x'4F', 079);
insert into A540769.TWK005A values(x'50', 080);
insert into A540769.TWK005A values(x'51', 081);
insert into A540769.TWK005A values(x'52', 082);
insert into A540769.TWK005A values(x'53', 083);
insert into A540769.TWK005A values(x'54', 084);
insert into A540769.TWK005A values(x'55', 085);
insert into A540769.TWK005A values(x'56', 086);
insert into A540769.TWK005A values(x'57', 087);
insert into A540769.TWK005A values(x'58', 088);
insert into A540769.TWK005A values(x'59', 089);
insert into A540769.TWK005A values(x'5A', 090);
insert into A540769.TWK005A values(x'5B', 091);
insert into A540769.TWK005A values(x'5C', 092);
insert into A540769.TWK005A values(x'5D', 093);
insert into A540769.TWK005A values(x'5E', 094);
insert into A540769.TWK005A values(x'5F', 095);
insert into A540769.TWK005A values(x'60', 096);
insert into A540769.TWK005A values(x'61', 097);
insert into A540769.TWK005A values(x'62', 098);
insert into A540769.TWK005A values(x'63', 099);
insert into A540769.TWK005A values(x'64', 100);
insert into A540769.TWK005A values(x'65', 101);
insert into A540769.TWK005A values(x'66', 102);
insert into A540769.TWK005A values(x'67', 103);
insert into A540769.TWK005A values(x'68', 104);
insert into A540769.TWK005A values(x'69', 105);
insert into A540769.TWK005A values(x'6A', 106);
insert into A540769.TWK005A values(x'6B', 107);
insert into A540769.TWK005A values(x'6C', 108);
insert into A540769.TWK005A values(x'6D', 109);
insert into A540769.TWK005A values(x'6E', 110);
insert into A540769.TWK005A values(x'6F', 111);
insert into A540769.TWK005A values(x'70', 112);
insert into A540769.TWK005A values(x'71', 113);
insert into A540769.TWK005A values(x'72', 114);
insert into A540769.TWK005A values(x'73', 115);
insert into A540769.TWK005A values(x'74', 116);
insert into A540769.TWK005A values(x'75', 117);
insert into A540769.TWK005A values(x'76', 118);
insert into A540769.TWK005A values(x'77', 119);
insert into A540769.TWK005A values(x'78', 120);
insert into A540769.TWK005A values(x'79', 121);
insert into A540769.TWK005A values(x'7A', 122);
insert into A540769.TWK005A values(x'7B', 123);
insert into A540769.TWK005A values(x'7C', 124);
insert into A540769.TWK005A values(x'7D', 125);
insert into A540769.TWK005A values(x'7E', 126);
insert into A540769.TWK005A values(x'7F', 127);
insert into A540769.TWK005A values(x'80', 128);
insert into A540769.TWK005A values(x'81', 129);
insert into A540769.TWK005A values(x'82', 130);
insert into A540769.TWK005A values(x'83', 131);
insert into A540769.TWK005A values(x'84', 132);
insert into A540769.TWK005A values(x'85', 133);
insert into A540769.TWK005A values(x'86', 134);
insert into A540769.TWK005A values(x'87', 135);
insert into A540769.TWK005A values(x'88', 136);
insert into A540769.TWK005A values(x'89', 137);
insert into A540769.TWK005A values(x'8A', 138);
insert into A540769.TWK005A values(x'8B', 139);
insert into A540769.TWK005A values(x'8C', 140);
insert into A540769.TWK005A values(x'8D', 141);
insert into A540769.TWK005A values(x'8E', 142);
insert into A540769.TWK005A values(x'8F', 143);
insert into A540769.TWK005A values(x'90', 144);
insert into A540769.TWK005A values(x'91', 145);
insert into A540769.TWK005A values(x'92', 146);
insert into A540769.TWK005A values(x'93', 147);
insert into A540769.TWK005A values(x'94', 148);
insert into A540769.TWK005A values(x'95', 149);
insert into A540769.TWK005A values(x'96', 150);
insert into A540769.TWK005A values(x'97', 151);
insert into A540769.TWK005A values(x'98', 152);
insert into A540769.TWK005A values(x'99', 153);
insert into A540769.TWK005A values(x'9A', 154);
insert into A540769.TWK005A values(x'9B', 155);
insert into A540769.TWK005A values(x'9C', 156);
insert into A540769.TWK005A values(x'9D', 157);
insert into A540769.TWK005A values(x'9E', 158);
insert into A540769.TWK005A values(x'9F', 159);
insert into A540769.TWK005A values(x'A0', 160);
insert into A540769.TWK005A values(x'A1', 161);
insert into A540769.TWK005A values(x'A2', 162);
insert into A540769.TWK005A values(x'A3', 163);
insert into A540769.TWK005A values(x'A4', 164);
insert into A540769.TWK005A values(x'A5', 165);
insert into A540769.TWK005A values(x'A6', 166);
insert into A540769.TWK005A values(x'A7', 167);
insert into A540769.TWK005A values(x'A8', 168);
insert into A540769.TWK005A values(x'A9', 169);
insert into A540769.TWK005A values(x'AA', 170);
insert into A540769.TWK005A values(x'AB', 171);
insert into A540769.TWK005A values(x'AC', 172);
insert into A540769.TWK005A values(x'AD', 173);
insert into A540769.TWK005A values(x'AE', 174);
insert into A540769.TWK005A values(x'AF', 175);
insert into A540769.TWK005A values(x'B0', 176);
insert into A540769.TWK005A values(x'B1', 177);
insert into A540769.TWK005A values(x'B2', 178);
insert into A540769.TWK005A values(x'B3', 179);
insert into A540769.TWK005A values(x'B4', 180);
insert into A540769.TWK005A values(x'B5', 181);
insert into A540769.TWK005A values(x'B6', 182);
insert into A540769.TWK005A values(x'B7', 183);
insert into A540769.TWK005A values(x'B8', 184);
insert into A540769.TWK005A values(x'B9', 185);
insert into A540769.TWK005A values(x'BA', 186);
insert into A540769.TWK005A values(x'BB', 187);
insert into A540769.TWK005A values(x'BC', 188);
insert into A540769.TWK005A values(x'BD', 189);
insert into A540769.TWK005A values(x'BE', 190);
insert into A540769.TWK005A values(x'BF', 191);
insert into A540769.TWK005A values(x'C0', 192);
insert into A540769.TWK005A values(x'C1', 193);
insert into A540769.TWK005A values(x'C2', 194);
insert into A540769.TWK005A values(x'C3', 195);
insert into A540769.TWK005A values(x'C4', 196);
insert into A540769.TWK005A values(x'C5', 197);
insert into A540769.TWK005A values(x'C6', 198);
insert into A540769.TWK005A values(x'C7', 199);
insert into A540769.TWK005A values(x'C8', 200);
insert into A540769.TWK005A values(x'C9', 201);
insert into A540769.TWK005A values(x'CA', 202);
insert into A540769.TWK005A values(x'CB', 203);
insert into A540769.TWK005A values(x'CC', 204);
insert into A540769.TWK005A values(x'CD', 205);
insert into A540769.TWK005A values(x'CE', 206);
insert into A540769.TWK005A values(x'CF', 207);
insert into A540769.TWK005A values(x'D0', 208);
insert into A540769.TWK005A values(x'D1', 209);
insert into A540769.TWK005A values(x'D2', 210);
insert into A540769.TWK005A values(x'D3', 211);
insert into A540769.TWK005A values(x'D4', 212);
insert into A540769.TWK005A values(x'D5', 213);
insert into A540769.TWK005A values(x'D6', 214);
insert into A540769.TWK005A values(x'D7', 215);
insert into A540769.TWK005A values(x'D8', 216);
insert into A540769.TWK005A values(x'D9', 217);
insert into A540769.TWK005A values(x'DA', 218);
insert into A540769.TWK005A values(x'DB', 219);
insert into A540769.TWK005A values(x'DC', 220);
insert into A540769.TWK005A values(x'DD', 221);
insert into A540769.TWK005A values(x'DE', 222);
insert into A540769.TWK005A values(x'DF', 223);
insert into A540769.TWK005A values(x'E0', 224);
insert into A540769.TWK005A values(x'E1', 225);
insert into A540769.TWK005A values(x'E2', 226);
insert into A540769.TWK005A values(x'E3', 227);
insert into A540769.TWK005A values(x'E4', 228);
insert into A540769.TWK005A values(x'E5', 229);
insert into A540769.TWK005A values(x'E6', 230);
insert into A540769.TWK005A values(x'E7', 231);
insert into A540769.TWK005A values(x'E8', 232);
insert into A540769.TWK005A values(x'E9', 233);
insert into A540769.TWK005A values(x'EA', 234);
insert into A540769.TWK005A values(x'EB', 235);
insert into A540769.TWK005A values(x'EC', 236);
insert into A540769.TWK005A values(x'ED', 237);
insert into A540769.TWK005A values(x'EE', 238);
insert into A540769.TWK005A values(x'EF', 239);
insert into A540769.TWK005A values(x'F0', 240);
insert into A540769.TWK005A values(x'F1', 241);
insert into A540769.TWK005A values(x'F2', 242);
insert into A540769.TWK005A values(x'F3', 243);
insert into A540769.TWK005A values(x'F4', 244);
insert into A540769.TWK005A values(x'F5', 245);
insert into A540769.TWK005A values(x'F6', 246);
insert into A540769.TWK005A values(x'F7', 247);
insert into A540769.TWK005A values(x'F8', 248);
insert into A540769.TWK005A values(x'F9', 249);
insert into A540769.TWK005A values(x'FA', 250);
insert into A540769.TWK005A values(x'FB', 251);
insert into A540769.TWK005A values(x'FC', 252);
insert into A540769.TWK005A values(x'FD', 253);
insert into A540769.TWK005A values(x'FE', 254);
insert into A540769.TWK005A values(x'FF', 255);
commit;
x
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-11-06 12:28 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A005A In Database DA540769    --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769   Stogroup=GSMS
-- Tablespace=DA540769.A005A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A005A
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 99;
--
------------------------------------------------------------------------
--    Table=A540769.TWK005A In DA540769.A005A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.TWK005A
     (chr                  CHAR(1) FOR SBCS DATA NOT NULL,
      int                  integer not null
     )
    IN DA540769.A005A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE A540769.TWK005A IS 'charset';
--
}¢--- A540769.WK.SQL(CHECKRTA) cre=2010-06-28 mod=2010-07-12-08.00.58 A540769 ---
------------------------------------------------------------------
--  analysis 1:
--     show reorg history and current reorgimportance&Reason
--     for TS partitions with many reorgs
with u as
( select db, sp ts, part, p.tst, reoTst, reason,
       reorgLastTime, totalRows,
       reorgInserts, reorgUpdates, reorgDeletes
    from tstRts.tRtsReoRunPart p, tstRts.tRtsReoRunTsStats s
    where p.ty = 't' and p.reoTst is not null
        and p.tst = s.tst and p.rng = s.rng and p.part = s.partition
        and p.tst > current timestamp - 1 month
  union all select db, ts, part, updateStatsTime tst,
       cast('9999-12-31-23.59.59' as timestamp) reoTst,
       strip(char(importance)) || ' ' || reason reason,
       reorgLastTime, totalRows,
       reorgInserts, reorgUpdates, reorgDeletes
    from tstRts.vRtsReoTS
            where importance > 0
), d as
(
select count(*) cnt, db, ts, part
    from u
    group by db, ts, part
 -- having count(*) > 1
    having max(reoTst) = '9999-12-31-23.59.59'
        and max(case when reoTst <= current timestamp
                         then reotst
                         else '1000-12-31-23.59.59'
                end) > current timestamp - 40 hours
)
select d.cnt, u.*
    from u, d
    where u.db = d.db and u.ts = d.ts and u.part = d.part
    order by cnt desc, db, ts, part, tst desc
;
;x;
------------------------------------------------------------------
--  analysis 1 old:
--     show reorg history and current reorgimportance&Reason
--     for all partitions with many reorgs
with d as
(
select count(*) cnt, db, sp, part,
        min(p.ty) ty, min(dbid) dbid, min(spid) spid
    from tstRts.tRtsReoRunPart p
       , tstRts.tRtsReoRunJob  j
    where p.sta = 'r' and p.reoTst is not null
        and p.tst = j.tst
    group by db, sp, part
    having count(*) > 1 and min(job) not like 'A%'
)
, h (cnt, db, sp, part, cla, reason, tst) as
(
select d.cnt, d.db, d.sp, d.part, d.ty, p.reason, p.tst
    from d, tstRts.tRtsReoRunPart p
    where p.sta = 'r'
        and d.db = p.db and d.sp = p.sp and d.part = p.part
union all select d.cnt, d.db, d.sp, d.part,
        'T' || strip(char(importance)), r.reason, r.updateStatsTime
    from d, tstRts.vRtsReoTs r
    where d.ty = 't'
        and d.db = r.db and d.sp = r.ts and d.part = r.part
        and d.dbid = r.dbid and d.spid = r.psid and d.part = r.part
union all select d.cnt, d.db, d.sp, d.part,
        'I' || strip(char(importance)), r.reason, r.updateStatsTime
    from d, tstRts.vRtsReoIx r
    where d.ty = 'i'
        and d.db = r.db and d.sp = r.is and d.part = r.part
        and d.dbid = r.dbid and d.spid = r.isoBid and d.part = r.part
)
select * from h
 -- where db like 'A%'
    order by 1 desc, 2, 3, 4, 7 desc
;x;
------------------------------------------------------------------
--  analysis 2 TS:
--     show reorg history and current reorgImportance&Reason
--     for all partitions wich should be reorganized NOW
select r.db, r.ts, r.part,
        substr(strip(char(r.importance)) || ' ' || r.reason, 1, 30),
        substr(p.reason, 1, 30) "pReason", p.tst pTst, p.reoTst,
        r.lastBuilt
    from tstRts.tRtsReoRunPart p
       , tstRts.vRtsReoTS r
    where p.sta = 'r'
        and p.db = r.db and p.sp = r.ts and p.part = r.part
        and r.importance > 0
        and r.lastBuilt > p.tst
    order by importance, r.reason, db, ts, part
    with ur
;?;

------------------------------------------------------------------
--  analysis 3 TS:
--     show mismatch between reorgTst and realtime stats
--     ???????????titions wich should be reorganized NOW
select r.db, r.ts, r.part,
        substr(strip(char(r.importance)) || ' ' || r.reason, 1, 30),
        substr(p.reason, 1, 30) "pReason", p.tst pTst, p.reoTst,
        r.lastBuilt
    from tstRts.tRtsReoRunPart p
       , tstRts.tRtsReoRunJob  j
       , tstRts.vRtsReoTS r
    where p.sta = 'r'
        and p.db = r.db and p.sp = r.ts and p.part = r.part
        and p.tst = j.tst
        and ((r.lastBuilt > p.tst and r.lastBuilt < j.eoj
        and (p.reoTst is null or p.reoTime is null)
          or ((r.lastBuilt < p.tst or r.lastBuilt > j.eoj)
        and (p.reoTst is not null or p.reoTime is not null))))
    order by importance, r.reason, db, ts, part
    with ur
;?;
    having count(*) > 1 and min(job) not like 'A%'
)
, h (cnt, db, sp, part, cla, reason, tst) as
(
select d.cnt, d.db, d.sp, d.part, d.ty, p.reason, p.tst
    from d, tstRts.tRtsReoRunPart p
    where p.sta = 'r'
        and d.db = p.db and d.sp = p.sp and d.part = p.part
union all select d.cnt, d.db, d.sp, d.part,
        'T' || strip(char(importance)), r.reason, r.updateStatsTime
    from d, tstRts.vRtsReoTs r
    where d.ty = 't'
        and d.db = r.db and d.sp = r.ts and d.part = r.part
        and d.dbid = r.dbid and d.spid = r.psid and d.part = r.part
union all select d.cnt, d.db, d.sp, d.part,
        'I' || strip(char(importance)), r.reason, r.updateStatsTime
    from d, tstRts.vRtsReoIx r
    where d.ty = 'i'
        and d.db = r.db and d.sp = r.is and d.part = r.part
        and d.dbid = r.dbid and d.spid = r.isoBid and d.part = r.part
)
select * from h
 -- where db like 'A%'
    order by 1 desc, 2, 3, 4, 7 desc
;
select count(*), db, sp, part, min(p.tst), max(p.tst),
        min(job), max(job)
    from tstRts.tRtsReoRunPart p
       , tstRts.tRtsReoRunJob  j
    where p.sta = 'r'
        and p.tst = j.tst
    group by db, sp, part
    order by 1 desc, 2, 3, 4
;
x;
select count(*), ty, sta
    from tstRts.tRtsReoRunPart
    group by ty, sta
}¢--- A540769.WK.SQL(CHECKRTB) cre=2009-10-29 mod=2010-07-28-10.08.17 A540769 ---
select *
    from tstRts.tRtsReoRunTSStats
    where dbName = 'WI02A1P' and name = 'A101H'
         and partition = 17
    order by dbName, name, partition, tst desc
    with ur
;x;
select *
    from oa1p.tadm36a1
    where sta like '%A%'
;
select *
    from a540769.vrtsReoTs
    where dbName like 'MF%'
;
x
select bigInt(345345e5), bigInt(345345e5) /123
     , bigInt(199), round(real(bigInt(     199)) /100, 0)
    from sysibm.sysdummy1
;
x
}¢--- A540769.WK.SQL(CHECKRTC) cre=2010-07-08 mod=2010-07-09-15.04.29 A540769 ---
------------------------------------------------------------------
-- checkJob1: höchstens ein Job mit eoj Null
--
select count(*) cnt, count(*) - count(eoj) eojNull, job
    from tstRts.tRtsReoRunJob  j
    group by job
    order by 2 desc, 1 desc, job
    with ur
    fetch first 100 rows only
;
select *
    from tstRts.tRtsReoRunJob  j
    where eoj is null  -- and job = 'A540769'
    order by job, tst
    with ur
;
--  delete from tstRts.tRtsReoRunJob  j
--      where tst = '2010-04-01-00.00.00.000000' ;
--  commit;
------------------------------------------------------------------
-- checkJob2: eoj < next tst und eoj=null am schluss
--
with n as
( select (select count(*)
              from tstRts.tRtsReoRunJob  a
              where a.job = j.job and a.tst > j.tst ) nextCnt,
         (select min(tst)
              from tstRts.tRtsReoRunJob  a
              where a.job = j.job and a.tst > j.tst ) nextTst,
         j.*
    from tstRts.tRtsReoRunJob  j
)
select case when eoj is null and nextCnt > 0 then 'eoj null not last'
            when nextTst <= eoj              then 'eoj <= next'
            else '' end err,
            n.*
    from n
    order by 1 desc, job, tst
    with ur
    fetch first 100 rows only
;
--  delete from tstRts.tRtsReoRunJob  j
--      where tst in ('2010-06-17-18.15.52.749858'
--                   ,'2010-06-24-10.31.48.639515'
--                   ,'2010-06-24-10.36.04.847417'
--                   ,'2010-07-07-07.44.33.195139'
--                   ,'2010-07-07-07.45.28.484218'
--                   )
--  ; commit  ;
------------------------------------------------------------------
-- checkPart1: reoTst between tst and eoj
--
select p.*, j.*
    from tstRts.tRtsReoRunPart p, tstRts.tRtsReoRunJob  j
    where p.tst = j.tst
        and (p.reoTst <= j.tst or p.reoTst >= j.eoj)
    order by j.job, j.tst desc
    with ur
;
------------------------------------------------------------------
-- checkPart2: check reoTime and ranges
--
select case
        when p.paVon <> r.paVon then '97 paVon <>'
        when p.paBis <> r.paBis then '96 paBis <>'
        when p.part < r.paVon or p.part > r.paBis
            then '95 part outside von bis'
        when p.reoTime is not null and r.cnt <> r.cntReoTst
            then '85 reoTime with reoTst null'
        when p.reoTime is not null and p.part <> p.paVon
            then '84 reoTime part <> paVon'
        when p.reoTime <> r.rngTime
            then '83 reoTime <> rngTime'
        when p.reoTime is null and r.cnt = r.cntReoTst
                               and p.part = p.paVon
            then '05 reoTime can be set'
        else '' end err, p.*, r.*
    from tstRts.tRtsReoRunPart p, tstRts.vRtsReoRunRng r
    where p.tst = r.tst and p.rng = r.rng
    order by 1 desc, p.tst desc
    fetch first 100 rows only
;
??? ;
------------------------------------------------------------------
-- checkPart? ??? rnghstens ein Job mit eoj Null
--
;   fetch first 100 rows only
select count(*) cnt,
       sum(case when reoTst is null then 1 else 0 end) reoTstNull,
       sum(case when reoTime is null then 1 else 0 end) reoTimeNull,
       j.*
    from tstRts.tRtsReoRunPart j
    group by job
    order by 2 desc, 3 desc, 1 desc
    with ur
------------------------------------------------------------------
-- check 5 parts ==> reoTst between tst and eoj
--
  select r.reoTime,
        (select count(*) from tstRts.tRtsReoRunPart p
             where p.tst = r.tst and p.rng = r.rng
                   and r.reoTst is not null) "partsNN",
        (select count(*) from tstRts.tRtsReoRunPart p
             where p.tst = r.tst and p.rng = r.rng
                   and r.reoTst is     null) "partsNull",
        (select max(reoTst) from tstRts.tRtsReoRunPart p
             where p.tst = r.tst and p.rng = r.rng
                                           ) "partsReoTstMax",
        r.*, j.*
    from tstRts.tRtsReoRunJob  j, tstRts.tRtsReoRunPart r
    where j.tst = r.tst
        and r.part = r.paVon
    order by job, j.tst, r.rng, r.ty, r.sta
    with ur
    fetch first 100 rows only
;
------------------------------------------------------------------
-- check 4 parts ==> reoTst between tst and eoj
--
  select p.*, j.*
    from tstRts.tRtsReoRunJob  j, tstRts.tRtsReoRunPart p
    where j.tst = p.tst
        and (  p.reoTst <= j.tst
            or p.reoTst >= j.eoj)
    order by job, j.tst, p.rng, p.ty, p.sta
    with ur
    fetch first 100 rows only
;
------------------------------------------------------------------
-- check 3 parts ==> count statistics pro range and type
--
  select job, j.tst, p.rng, p.ty, p.sta,
         count(*) cntParts,
         sum(case when reoTst is null then 1 else 0 end) reoTstNull,
         min(reoTst) reoTstMin,
         max(reoTst) reoTstMax
    from tstRts.tRtsReoRunJob  j, tstRts.tRtsReoRunPart p
    where j.tst = p.tst
    group by job, j.tst, p.rng, p.ty, p.sta
    order by job, j.tst, p.rng, p.ty, p.sta
    with ur
    fetch first 100 rows only
;;
------------------------------------------------------------------
--  analysis 2 TS:
--     show reorg history and current reorgImportance&Reason
--     for all partitions wich should be reorganized NOW
select r.db, r.ts, r.part,
        substr(strip(char(r.importance)) || ' ' || r.reason, 1, 30),
        substr(p.reason, 1, 30) "pReason", p.tst pTst, p.reoTst,
        r.lastBuilt
    from tstRts.tRtsReoRunPart p
       , tstRts.vRtsReoTS r
    where p.sta = 'r'
        and p.db = r.db and p.sp = r.ts and p.part = r.part
        and r.importance > 0
        and r.lastBuilt > p.tst
    order by importance, r.reason, db, ts, part
    with ur
;?;

------------------------------------------------------------------
--  analysis 3 TS:
--     show mismatch between reorgTst and realtime stats
--     ???????????titions wich should be reorganized NOW
select r.db, r.ts, r.part,
        substr(strip(char(r.importance)) || ' ' || r.reason, 1, 30),
        substr(p.reason, 1, 30) "pReason", p.tst pTst, p.reoTst,
        r.lastBuilt
    from tstRts.tRtsReoRunPart p
       , tstRts.tRtsReoRunJob  j
       , tstRts.vRtsReoTS r
    where p.sta = 'r'
        and p.db = r.db and p.sp = r.ts and p.part = r.part
        and p.tst = j.tst
        and ((r.lastBuilt > p.tst and r.lastBuilt < j.eoj
        and (p.reoTst is null or p.reoTime is null)
          or ((r.lastBuilt < p.tst or r.lastBuilt > j.eoj)
        and (p.reoTst is not null or p.reoTime is not null))))
    order by importance, r.reason, db, ts, part
    with ur
;?;
    having count(*) > 1 and min(job) not like 'A%'
)
, h (cnt, db, sp, part, cla, reason, tst) as
(
select d.cnt, d.db, d.sp, d.part, d.ty, p.reason, p.tst
    from d, tstRts.tRtsReoRunPart p
    where p.sta = 'r'
        and d.db = p.db and d.sp = p.sp and d.part = p.part
union all select d.cnt, d.db, d.sp, d.part,
        'T' || strip(char(importance)), r.reason, r.updateStatsTime
    from d, tstRts.vRtsReoTs r
    where d.ty = 't'
        and d.db = r.db and d.sp = r.ts and d.part = r.part
        and d.dbid = r.dbid and d.spid = r.psid and d.part = r.part
union all select d.cnt, d.db, d.sp, d.part,
        'I' || strip(char(importance)), r.reason, r.updateStatsTime
    from d, tstRts.vRtsReoIx r
    where d.ty = 'i'
        and d.db = r.db and d.sp = r.is and d.part = r.part
        and d.dbid = r.dbid and d.spid = r.isoBid and d.part = r.part
)
select * from h
 -- where db like 'A%'
    order by 1 desc, 2, 3, 4, 7 desc
;
------------------------------------------------------------------
--  analysis 1:
--     show reorg history and current reorgimportance&Reason
--     for all partitions with many reorgs
with d as
(
select count(*) cnt, db, sp, part,
        min(p.ty) ty, min(dbid) dbid, min(spid) spid
    from tstRts.tRtsReoRunPart p
       , tstRts.tRtsReoRunJob  j
    where p.sta = 'r'
        and p.tst = j.tst
    group by db, sp, part
    having count(*) > 1 and min(job) not like 'A%'
)
, h (cnt, db, sp, part, cla, reason, tst) as
(
select d.cnt, d.db, d.sp, d.part, d.ty, p.reason, p.tst
    from d, tstRts.tRtsReoRunPart p
    where p.sta = 'r'
        and d.db = p.db and d.sp = p.sp and d.part = p.part
union all select d.cnt, d.db, d.sp, d.part,
        'T' || strip(char(importance)), r.reason, r.updateStatsTime
    from d, tstRts.vRtsReoTs r
    where d.ty = 't'
        and d.db = r.db and d.sp = r.ts and d.part = r.part
        and d.dbid = r.dbid and d.spid = r.psid and d.part = r.part
union all select d.cnt, d.db, d.sp, d.part,
        'I' || strip(char(importance)), r.reason, r.updateStatsTime
    from d, tstRts.vRtsReoIx r
    where d.ty = 'i'
        and d.db = r.db and d.sp = r.is and d.part = r.part
        and d.dbid = r.dbid and d.spid = r.isoBid and d.part = r.part
)
select * from h
 -- where db like 'A%'
    order by 1 desc, 2, 3, 4, 7 desc
;x;
select count(*), db, sp, part, min(p.tst), max(p.tst),
        min(job), max(job)
    from tstRts.tRtsReoRunPart p
       , tstRts.tRtsReoRunJob  j
    where p.sta = 'r'
        and p.tst = j.tst
    group by db, sp, part
    order by 1 desc, 2, 3, 4
;
x;
select count(*), ty, sta
    from tstRts.tRtsReoRunPart
    group by ty, sta
---------------------------------------------------------
-- fix: überlüssige parts löschen
update
       tstRts.tRtsReoRunPart p
    set rngI0 = -9876
    where sta = '0'
      and not exists (select 1 FROM tstRts.tRtsReoRunTSStats t
                         where t.tst = p.tst and t.rng = p.rng)
      and not exists (select 1 FROM tstRts.tRtsReoRunIxStats i
                         where i.tst = p.tst and i.rng = p.rng)
;
delete from tstRts.tRtsReoRunPart p
    where rngI0 = -9876
;
with c as
( select
      (select count(*) FROM tstRts.tRtsReoRunTSStats t
           where t.tst = p.tst and t.rng = p.rng) cntTs,
      (select count(*) FROM tstRts.tRtsReoRunIxStats i
           where i.tst = p.tst and i.rng = p.rng) cntIx,
      p.*
    from tstRts.tRtsReoRunPart p
)
select * from c
    where cntTs = 0 and cntIx = 0
;
commit;
;;  where not exists (
         select 1 from  tstRts.tRts
;
select ty, count(*)
    from tstRts.tRtsReoRunPart
    group by ty
;;
select *
    from tstRts.tRtsReoRunPart
    where not exists0-07-08-00.07.35.261954'
;
}¢--- A540769.WK.SQL(CHECKRTF) cre=2010-04-09 mod=2010-07-09-15.11.50 A540769 ---
set current path = 'OA1T';
---------------------------------------------------------------------
--  compare new and old vRtsReoTS
--
select count(*),
    substr(strip(char(n.importance)) || ' ' || n.reason, 1, 9) "new",
    fOsFmtE7(sum(n.reorgTime)) "reoTime",
    fOsFmtE7(sum(n.reorgTime * (sign(n.importance)
           + case when left(o.reason,3)='no ' then 0 else -1 end
           ))) "tiDiff",
    substr(o.reason, 1, 7) "old"
  from tstRts.vRtsReoTS n
       full outer join s100447.vRtsReoTs o
       on n.db = o.db and n.ts = o.ts and n.part = o.part
           and n.dbid = o.dbid and n.psid = o.psid
           and n.partition = o.partition
  --   where n.db like 'MF%'
  group by
            substr(strip(char(n.importance)) || ' ' || n.reason, 1, 9),
            substr(o.reason, 1, 7)
  order by 1 desc
  with ur
;
---------------------------------------------------------------------
--  compare new and old vRtsReoIX
--
select count(*),
    substr(strip(char(n.importance)) || ' ' || n.reason, 1, 9) "new",
    fOsFmtE7(sum(n.reorgTime)) "reoTime",
    fOsFmtE7(sum(n.reorgTime * (sign(n.importance)
           + case when left(o.reason,3)='no ' then 0 else -1 end
           ))) "tiDiff",
    substr(o.reason, 1, 7) "old"
  from tstRts.vRtsReoIX n
       full outer join s100447.vRtsReoIX o
       on n.db = o.db and n.ts = o.ts and n.is=o.is and n.part=o.part
           and n.dbid = o.dbid and n.isoBid = o.isoBid
           and n.partition = o.partition
  --   where n.db like 'MF%'
  group by
            substr(strip(char(n.importance)) || ' ' || n.reason, 1, 9),
            substr(o.reason, 1, 7)
  order by 1 desc
  with ur
;
}¢--- A540769.WK.SQL(CHECKRTZ) cre=2008-03-04 mod=2008-04-18-17.18.58 F540769 ---
select char(reason, 40), char(db, 8), char(ts, 8), partition
    from s100447.vRtsReoTS
    where db like 'CZ%' and ts like 'A202%'
    ;
    x
select *           KS09A1T.IKS835A6
    from s100447.vRtsReoTSSchwelle
    where db = 'CZ03G1T' and ts = 'A324A' and part = 1
    ;
select  DAYS(CURRENT TIMESTAMP) - DAYS(
       max(coalesce(reorgLastTime, createdTS),
           coalesce(loadrLastTime, createdTS))) ,
        DAYS(CURRENT TIMESTAMP) , DAYS(
       max(coalesce(reorgLastTime, createdTS),
           coalesce(loadrLastTime, createdTS))),
        DAYS(CURRENT TIMESTAMP- 5 hour)
    from sysibm.tableSpaceSTats r,
         sysibm.systablePart  p
    where r.dbName = p.dbName and r.name = p.tsname
           and r.partition = p.partition
     and r.dbName = 'CZ03G1T' and r.name = 'A324A' and r.partition = 1
    ;
    CZ03G1T.A364A:5
}¢--- A540769.WK.SQL(CIAMIRCO) cre=2010-07-02 mod=2010-07-02-13.24.08 A540769 ---
select count(*), c from
(
SELECT  case
     when FI02701A < 3200000                              then '<<<  '
     when FI02701A > 4500000                              then '>>>  '
     when FI02701A = 3200000 and FI02704A <= '31.12.2010' then '<=240'
     when FI02701A = 4500000 and FI02704A  > '31.01.2000' then '>=242'
     when                        FI02704A <= '31.01.2000' then '241 <='
     else                                                      '241 >'
     end c, t.*
  FROM F383353.TFI027A1 T
) c
  WHERE FI02701A BETWEEN 3000000 AND 4700000
  group by c
  WITH UR;
;x;
SELECT COUNT(*)
  FROM F383353.TFI027A1 T
  WHERE FI02701A BETWEEN 3200001 AND 4500000 AND FI02704A<='31.01.2000'
  WITH UR;
}¢--- A540769.WK.SQL(CIX) cre=2006-03-03 mod=2006-03-03-14.19.52 F540769 -------
create index gdb9998.iwk001a0 on table gdb9998.twk001a
         (wk001num);
}¢--- A540769.WK.SQL(CMNALA) cre=2011-07-29 mod=2011-07-29-13.12.29 A540769 ----
select *
    from SSXX28Q0.CMN_PARMS_C2100821
    where lat_urid in (
    select lat_urid
    from SSXX28Q0.CMN_PARMS_C2100821
    where parm_class = 'ALLOWERO'
      and parm_Key = '*'
      and parm_value = 'Y'
    )
    order by lat_lrsn desc
}¢--- A540769.WK.SQL(CMNBIDEF) cre=2008-04-15 mod=2008-04-15-18.00.12 F540769 ---
 INSERT INTO SSXX28Q0.DB2_BIND_PARMS (
       APPL,PGM,RZ,SSID, COLLID,LOCATION,
       OWNER,QUALIFIER,ISOLATION,EXPLAIN,CURRENTDATA,
       RELEASE,DBPROTOCOL,DEGREE,DYNAMICRULES,KEEPDYNAMIC,
       REOPT,OPTHINT,IMMEDWRITE,FLAG,PATH,VALIDATE,SQLERROR,
       DEFER )
     VALUES (
 'DEFAULT '                         , --APPL               CHAR(8)
 'DEFAULT '                         , --PGM                CHAR(8)
 'RZ2 '                             , --RZ                 CHAR(4)
 'DBOF    '                         , --SSID               CHAR(8)
 'DEFAULT           '               , --COLLID             CHAR(18)
 ' '                                , --LOCATION           CHAR(16)
 'S100447 '                         , --OWNER              CHAR(8)
 'OA1P    '                         , --QUALIFIER          CHAR(8)
 'CS'                               , --ISOLATION          CHAR(2)
 'YES '                             , --EXPLAIN            CHAR(4)
 'NO  '                             , --CURRENTDATA        CHAR(4)
 'COMMIT      '                     , --RELEASE            CHAR(12)
 '        '                         , --DBPROTOCOL         CHAR(8)
 '1   '                             , --DEGREE             CHAR(4)
 'RUN         '                     , --DYNAMICRULES       CHAR(12)
 'NO  '                             , --KEEPDYNAMIC        CHAR(4)
 'NOREOPT'                          , --REOPT              CHAR(8)
 '        '                         , --OPTHINT            CHAR(8)
 '    '                             , --IMMEDWRITE         CHAR(4)
 'I'                                , --FLAG               CHAR(1)
 '                                ' , --PATH               VARCHAR(256)
 'BIND'                             , --VALIDATE           CHAR(4)
 'NOPACKAGE   '                     , --SQLERROR           CHAR(12)
 'NODEFER '                           --DEFER              CHAR(8)
   );
}¢--- A540769.WK.SQL(CMNBIND) cre=2007-01-05 mod=2008-03-10-12.12.34 F540769 ---
------- neue table ----------------------------------------------------
select * from oa1p.bind_parameters
    where APPL LIKE 'PC%'
;
X
Xnsert into oa1p.BIND_parameters
      ( APPL
      , PGM
      , COLLID
      , INSTALLDATE
      , OWNER
      , QUALIFIER
      , ISOLATION
      , EXPLAIN
      , CURRENTDATA
      , RELEASE
      , DBPROTOCOL
      , DEGREE
      , DYNAMICRULES
      , KEEPDYNAMIC
      , REOPT
      , OPTHINT
      , IMMEDWRITE
      , FLAG
      , PATH
      , VALIDATE
      , SQLERROR
      , SQLRULES
      , DEFER
      , ENCODING
      , ROUNDING
     -- CREATEDTS
     -- ALTEREDTS
     -- ALTEREDBY
      )
SELECT  'IVN0' APPL
      , 'YPC0650'  PGM
      , COLLID
      , '08.02.2008'      INSTALLDATE
      , OWNER
      , QUALIFIER
      , ISOLATION
      , EXPLAIN
      , CURRENTDATA
      , RELEASE
      , DBPROTOCOL
      , DEGREE
      , DYNAMICRULES
      , KEEPDYNAMIC
      , REOPT
      , OPTHINT
      , IMMEDWRITE
      , FLAG
      , PATH
      , VALIDATE
      , SQLERROR
      , SQLRULES
      , DEFER
      , ENCODING
      , ROUNDING
     -- CREATEDTS
     -- ALTEREDTS
     -- ALTEREDBY
  FROM oa1p.bind_parameters
  WHERE
      pgm =  'YPC0650'
;
select * from oa1p.bind_parameters
    where pgm =  'YPC0580'
;
commit;
x------ alte table ----------------------------------------------------

SELECT  APPL
      , RZ
      , PGM
      , SSID
      , COLLID
      , LOCATION
      , OWNER
      , QUALIFIER
      , p.*
    FROM SSXX28Q0.DB2_BIND_PARMS p
    WHERE
        -- RZ = 'RZ1' AND SSID = 'DBAF'
        -- and collid between 'AV05' and 'AV08'
        pgm =  'YPC0610' --and pgm >= 'YBER02' and pgm <= 'YBER03'
    order by rz, ssid, pgm, collid
;
insert into SSXX28Q0.DB2_BIND_PARMS
      ( APPL
      , RZ
      , PGM
      , SSID
      , COLLID
      , LOCATION
      , OWNER
      , QUALIFIER
      , ISOLATION
      , EXPLAIN
      , CURRENTDATA
      , RELEASE
      , DBPROTOCOL
      , DEGREE
      , DYNAMICRULES
      , KEEPDYNAMIC
      , REOPT
      , OPTHINT
      , IMMEDWRITE
      , FLAG
      , PATH
      , VALIDATE
      , SQLERROR
      , DEFER
      )
SELECT APPL
      , RZ
      , 'YPC0650'   pgm
      , SSID
      , COLLID
      , LOCATION
      , OWNER
      , QUALIFIER    -- 'OA1P' || SUBSTR(QUALIFIER, 5) QUALIFIER
      , ISOLATION
      , EXPLAIN
      , CURRENTDATA
      , RELEASE
      , DBPROTOCOL
      , DEGREE
      , DYNAMICRULES
      , KEEPDYNAMIC
      , REOPT
      , OPTHINT
      , IMMEDWRITE
      , FLAG
      , PATH
      , VALIDATE
      , SQLERROR
      , DEFER
   -- , CREATEDTS
   -- , ALTEREDTS
    FROM SSXX28Q0.DB2_BIND_PARMS p
    WHERE
        pgm =  'YPC0610'
;
SELECT  APPL
      , RZ
      , PGM
      , SSID
      , COLLID
      , LOCATION
      , OWNER
      , QUALIFIER
      , p.*
    FROM SSXX28Q0.DB2_BIND_PARMS p
    WHERE
        -- RZ = 'RZ1' AND SSID = 'DBAF'
        -- and collid between 'AV05' and 'AV08'
        pgm = 'YPC0650'
    order by rz, ssid, pgm, collid
;
commit;
}¢--- A540769.WK.SQL(CMNJUEN) cre=2007-01-05 mod=2007-01-05-16.40.50 F540769 ---
insert
    into SSXX28Q0.DB2_BIND_PARMS
    (   APPL
      , RZ
      , PGM
      , SSID
      , COLLID
      , LOCATION
      , OWNER
      , QUALIFIER
      , ISOLATION
      , EXPLAIN
      , CURRENTDATA
      , RELEASE
      , DBPROTOCOL
      , DEGREE
      , DYNAMICRULES
      , KEEPDYNAMIC
      , REOPT
      , OPTHINT
      , IMMEDWRITE
      , FLAG
      , PATH
      , VALIDATE
      , SQLERROR
      , DEFER
    )
    SELECT  APPL
          , RZ
          , PGM
          , SSID
      --  , COLLID
          , case collid
               when 'AV05' then 'AV13'
               when 'AV06' then 'AV14'
               when 'AV07' then 'AV15'
               when 'AV08' then 'AV16'
            end
          , LOCATION
          , OWNER
      --  , QUALIFIER
          , case collid
               when 'AV05' then 'OA1A13'
               when 'AV06' then 'OA1A14'
               when 'AV07' then 'OA1A15'
               when 'AV08' then 'OA1A16'
            end
          , ISOLATION
          , EXPLAIN
          , CURRENTDATA
          , RELEASE
          , DBPROTOCOL
          , DEGREE
          , DYNAMICRULES
          , KEEPDYNAMIC
          , REOPT
          , OPTHINT
          , IMMEDWRITE
          , FLAG
          , PATH
          , VALIDATE
          , SQLERROR
          , DEFER
       -- , CREATEDTS
       -- , ALTEREDTS
        FROM SSXX28Q0.DB2_BIND_PARMS
        WHERE RZ = 'RZ1' AND SSID = 'DBAF'
            and collid between 'AV05' and 'AV08'
            and pgm in ('AV0070 ',
                        'AV5560 ',
                        'YAVAAAN',
                        'YAVAAVL',
                        'YAVANAN',
                        'YAVBDAN',
                        'YAVBDVL',
                        'YAVBELE',
                        'YAVBVG ',
                        'YAVCBET',
                        'YAVCBST',
                        'YAVCOAN',
                        'YAVCOBO',
                        'YAVCPID',
                        'YAVCUAN',
                        'YAVDUAN',
                        'YAVERAN',
                        'YAVERBA',
                        'YAVERTR',
                        'YAVERVL',
                        'YAVFNAN',
                        'YAVFSL ',
                        'YAVGDW ',
                        'YAVGMP ',
                        'YAVGPD ',
                        'YAVMAT ',
                        'YAVMAVL',
                        'YAVOVVW',
                        'YAVPFX ',
                        'YAVPOS1',
                        'YAVSTA ',
                        'YAV0062',
                        'YAV0065',
                        'YAV0066',
                        'YAV0067',
                        'YAV0096',
                        'YAV0098',
                        'YAV0099',
                        'YAV0101',
                        'YAV0102',
                        'YAV0112',
                        'YAV0113',
                        'YAV0114',
                        'YAV0115',
                        'YAV0116',
                        'YAV0117',
                        'YAV0119',
                        'YAV0123',
                        'YAV0124',
                        'YAV0126')
    ;
select pgm, collid, qualifier, p.*
        FROM SSXX28Q0.DB2_BIND_PARMS p
        WHERE RZ = 'RZ1' AND SSID = 'DBAF'
        --  and collid between 'AV05' and 'AV08'
            and pgm in ('AV0070 ',
                        'AV5560 ',
                        'YAVAAAN',
                        'YAVAAVL',
                        'YAVANAN',
                        'YAVBDAN',
                        'YAVBDVL',
                        'YAVBELE',
                        'YAVBVG ',
                        'YAVCBET',
                        'YAVCBST',
                        'YAVCOAN',
                        'YAVCOBO',
                        'YAVCPID',
                        'YAVCUAN',
                        'YAVDUAN',
                        'YAVERAN',
                        'YAVERBA',
                        'YAVERTR',
                        'YAVERVL',
                        'YAVFNAN',
                        'YAVFSL ',
                        'YAVGDW ',
                        'YAVGMP ',
                        'YAVGPD ',
                        'YAVMAT ',
                        'YAVMAVL',
                        'YAVOVVW',
                        'YAVPFX ',
                        'YAVPOS1',
                        'YAVSTA ',
                        'YAV0062',
                        'YAV0065',
                        'YAV0066',
                        'YAV0067',
                        'YAV0096',
                        'YAV0098',
                        'YAV0099',
                        'YAV0101',
                        'YAV0102',
                        'YAV0112',
                        'YAV0113',
                        'YAV0114',
                        'YAV0115',
                        'YAV0116',
                        'YAV0117',
                        'YAV0119',
                        'YAV0123',
                        'YAV0124',
                        'YAV0126')
    order by pgm, collid, qualifier
    ;
   rollback
   ;
}¢--- A540769.WK.SQL(CMNKELL) cre=2007-01-12 mod=2007-01-12-10.28.01 F540769 ---
update SSXX28Q0.DB2_BIND_PARMS
     set explain = 'YES' ,
         appl    = 'XBS'
    where pgm like 'YBER0%'
;
select *
    FROM SSXX28Q0.DB2_BIND_PARMS p
    WHERE -- RZ = 'RZ1' -- AND SSID = 'DBAF'
        -- and collid between 'AV05' and 'AV08'
            pgm like 'YBER0%' --and pgm >= 'YBER02' and pgm <= 'YBER03F'
    order by rz, ssid, pgm, collid
;
commit
;
x
delete   from SSXX28Q0.DB2_BIND_PARMS
    where ssid = 'DBOF' and pgm in ('YBER01', 'YBER04', 'YBER05',
                                    'YBER23')
--  order by ssid, pgm, collid
;
insert into SSXX28Q0.DB2_BIND_PARMS
      ( APPL
      , RZ
      , PGM
      , SSID
      , COLLID
      , LOCATION
      , OWNER
      , QUALIFIER
      , ISOLATION
      , EXPLAIN
      , CURRENTDATA
      , RELEASE
      , DBPROTOCOL
      , DEGREE
      , DYNAMICRULES
      , KEEPDYNAMIC
      , REOPT
      , OPTHINT
      , IMMEDWRITE
      , FLAG
      , PATH
      , VALIDATE
      , SQLERROR
      , DEFER
      )
SELECT 'XBS' APPL
      , 'RZ2' RZ
      , pgm
      , 'DBOF' SSID
      , COLLID
      , LOCATION
      , OWNER
   -- , QUALIFIER
      , case collid
           when 'BE01' then 'OA1P01'
           when 'BE02' then 'OA1P02'
           when 'BE03' then 'OA1P03'
           when 'BE04' then 'OA1P04'
        end
      , ISOLATION
      , EXPLAIN
      , CURRENTDATA
      , RELEASE
      , DBPROTOCOL
      , DEGREE
      , DYNAMICRULES
      , KEEPDYNAMIC
      , REOPT
      , OPTHINT
      , IMMEDWRITE
      , FLAG
      , PATH
      , VALIDATE
      , SQLERROR
      , DEFER
   -- , CREATEDTS
   -- , ALTEREDTS
    FROM SSXX28Q0.DB2_BIND_PARMS p
    WHERE RZ = 'RZ1' AND SSID = 'DBAF'
        -- and collid between 'AV05' and 'AV08'
        and pgm like 'YBER0%' and pgm in ('YBER02F', 'YBER03F')
;
;
x
select * from SSXX28Q0.DB2_BIND_PARMS
    where pgm like 'YBER%' and ssid = 'DBTF'
    order by ssid, pgm, collid
;
}¢--- A540769.WK.SQL(CMNPLAN) cre=2008-09-12 mod=2008-09-16-11.38.51 F540769 ---
$=appl   = AURA
$=coll   = AU
$=inst   = 01.01.2001
call sqlConnect DBOC
$;
$<<eof
   AU5070   l
   YAUADCC
   YAUADCE
   YAUCORC
   YAUCRCE
   YAU016D
   YAU016F
   YAU016I
   YAU016S
   YAU016U
   YAU018D
   YAU018F
   YAU018I
   YAU018S
   YAU018U
   YAU019D
   YAU019F
   YAU019I
   YAU019S
   YAU019U
   YAU030D  l
   YAU030F  l
   YAU030I  l
   YAU030S  l
   YAU030U  l
   YAU180D
   YAU180F
   YAU180I
   YAU180S
   YAU180U
   YAU181D
   YAU181F
   YAU181I
   YAU181S
   YAU181U
   YAU190D
   YAU190F
   YAU190I
   YAU190S
   YAU190U
   YAU191D
   YAU191F
   YAU191I
   YAU191S
   YAU191U
   YXAUECE
   YXAUENC
   YXAUEN2
   YXAUGED
   YXAUGOD
   YYAUATR
   YYAUAT0
eof $@for w $@{
    parse upper value $w with w opt .
    $$ pgm <$(w 'opt' opt$)>
    call sqlExec "insert into oa1p.bind_parameters" ,
        "(APPL,       pgm,       collid,       installdate, owner,"   ,
        " qualifier,  isolation, explain,      currentdata, release, ",
        " dbprotocol, degree,    dynamicrules, keepdynamic, reopt,"   ,
        " opthint,    immedwrite,flag,         path,        validate,",
        " sqlerror,   sqlrules,  defer,        encoding,    rounding)",
      "select" ,
        " '"$appl"', '"w"',     '"$coll"',     '"$inst"',   owner,"   ,
        " qualifier,  isolation, explain,      currentdata, release, ",
        " dbprotocol, degree,    dynamicrules, keepdynamic, reopt,"   ,
        " opthint,    immedwrite,flag,         path,        validate,",
        " sqlerror,   sqlrules,  defer,        encoding,    rounding ",
        " from oa1p.bind_parameters ",
        " where appl = 'DEFAULT' and pgm = 'DEFAULT'"
    $;
    $<<eof
       DBBA OA1A
       DBBA OA1A CHSKA000DBAF
       DVTB OA1T
       DVTB OA1T CHSKA000DBTF
       DVBP OA1P
       DVBP OA1P CHSKA000DBOF
eof $@for su $@{
        parse value $su with s q l .
        if l = '' | opt <> 'L' then $@{
            $$ subsys $(s$) qual $(q$) loc $(l$)|
            call sqlExec "insert into oa1p.bind_exceptions" ,
            "(APPL,       pgm,       collid,       installdate,"   ,
            " LOCATION,   ssid,      qualifier ) values " ,
            "('"$appl"', '"w"',     '"$coll"',     '"$inst"',"   ,
            " '"l"',     '"s"',     '"q"')"
            $}
        $}
    $;
    $** call sqlExec rollback
    call sqlCommit
    $}
$;
call sqlDisconnect
$***out            20080916 11:38:39
pgm <AU5070 opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAUADCC opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAUADCE opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAUCORC opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAUCRCE opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU016U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU018U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU019U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU030D opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU030F opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU030I opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU030S opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU030U opt L>
subsys DBBA qual OA1A loc |
subsys DVTB qual OA1T loc |
subsys DVBP qual OA1P loc |
pgm <YAU180D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU180F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU180I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU180S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU180U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU181U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU190U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191D opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191F opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191I opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191S opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YAU191U opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUECE opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUENC opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUEN2 opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUGED opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YXAUGOD opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YYAUATR opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
pgm <YYAUAT0 opt >
subsys DBBA qual OA1A loc |
subsys DBBA qual OA1A loc CHSKA000DBAF|
subsys DVTB qual OA1T loc |
subsys DVTB qual OA1T loc CHSKA000DBTF|
subsys DVBP qual OA1P loc |
subsys DVBP qual OA1P loc CHSKA000DBOF|
$***out            20080916 11:38:05
}¢--- A540769.WK.SQL(COLDIS) cre=2006-05-03 mod=2006-05-03-17.01.31 F540769 ----
select *
    FROM SYSIBM.SYSCOLdist
    where tbowner = 'DGDB9998' and tbname = 'TWK001A'
;
select *
    FROM SYSIBM.SYSCOLumns
    where tbcreator = 'DGDB9998' and tbname = 'TWK001A'
}¢--- A540769.WK.SQL(CONST) cre=2007-01-29 mod=2007-01-29-17.56.38 F540769 -----
SELECT 1, .2, 3., -.1E1
    FROM SYSIBM
                   .     "SYSDUMMY1   "
;
}¢--- A540769.WK.SQL(CONSTDEP) cre=2007-05-15 mod=2007-05-15-13.29.26 F540769 ---
select * from sysibm.syschecks c, sysibm.systables t
    where c.tbowner = t.creator and c.tbname = t.name
         and
         (t.dbname like 'BJAA_0001'
                    or t.dbname = 'DBJ01' or t.dbname like 'DNF%')
;
x
select
       char(strip(c.bSchema) ||'.'|| strip(c.bName), 20) "b",
       char(strip(dTbcreator) ||'.'|| strip(dTbName), 20) "d",
       char(dConstName, 30)
     from sysibm.sysConstDep c-- , sysIbm.sysTables t
  -- where
   --    (t.name = c.bName or t.name = c.dTbName)
   --    and
   --    (t.dbname like 'BJAA_0001'
   --               or t.dbname = 'DBJ01' or t.dbname like 'DNF%')
}¢--- A540769.WK.SQL(CONSUM) cre=2012-09-04 mod=2012-09-04-16.48.10 A540769 ----
-- ¢DBOF!
--               Control Summary SQL für RZ2/DBOF job QMW0008P
--               generiert am 12/07/18 11:06:10
--                  durch rz1/dsn.source.tecSv(conSumGe)
--                    ||| alle Aenderung dortdrin ||||||
--************************************************************
--?? fehlende IncrCopies Tablespaces, letzte 8 Tage:
--************************************************************
----  begin @proc missFUllcopies1: fehlende Fullcopies -----------------
with p as (
 SELECT PT.DBNAME, pt.tsName, pt.partition,
     (  SELECT char(timestamp) || icType
          FROM  SYSIBM.SYSCOPY CP
          WHERE PT.DBNAME = CP.DBNAME
            AND PT.TSNAME = CP.TSNAME
            AND cp.dsNum in (PT.PARTITION, 0)
            AND  CP.ICTYPE IN ('F','R','X')
            AND CP.TIMESTAMP > CURRENT TIMESTAMP - 7 days
          order by timestamp desc
          fetch first 1 row only
     ) laFull,
     r.nActive,
     COPYLASTTIME,
     COPYUPDATEDPAGES,
     COPYCHANGES,
     COPYUPDATETIME
----  end   @proc selIncrCopy: select fullcopy etc. --------------------
 FROM   SYSIBM.SYSDATABASE DB
   join SYSIBM.SYSTABLESPACE TS
     on DB.NAME = PT.DBNAME
   join SYSIBM.SYSTABLEPART PT
     on DB.NAME = TS.DBNAME
       AND TS.NAME = PT.TSNAME
   left join SYSIBM.SYSTABLESpaceStats r
      on r.dbid = db.dbid
        and r.psid = ts.psid
        and r.partition = pt.partition
 WHERE  0 = 0
----  end   @proc missFUllcopies1: fehlende Fullcopies -----------------

----  begin @proc exclude ----------------------------------------------
----- begin @proc exclGen: gemeinsame excludes -------------------------
   AND NOT (PT.DBNAME like 'DSNDB%')            -- DB2 CATALOG
   AND NOT (PT.DBNAME LIKE 'DSN8%')             -- IBM TEST DB
   AND NOT (PT.DBNAME LIKE 'WKDBD%')            -- DB2 WORK DATABASE
   AND NOT (PT.DBNAME = 'DSNTESQ')              -- DB2 CATALOG CLONE
   AND NOT (PT.DBNAME LIKE 'DB2MAPP%')          -- REORG MAPPING TABLES
   AND NOT (PT.DBNAME LIKE 'DB2PLAN%')          -- explain tables
   and not translate(PT.dbName, '999999999AAAAAA', '012345678FISWXY')
           = 'DA999999'                         -- user datenbanken
   AND NOT (PT.DBNAME LIKE 'DB2ALA%')           -- marec  generated
   AND NOT (PT.DBNAME LIKE '%MAREC%')           -- marec generated
   AND NOT (PT.DBNAME LIKE 'DACME%')            -- Mail Heinz Bühler
----  end   @proc exclGen: gemeinsame excludes -------------------------

   AND NOT (PT.DBNAME = 'XC01A1P'  AND PT.TSNAME LIKE 'A2%'  )
                                       -- EOS: Armin Breyer
   AND NOT (PT.DBNAME = 'XR01A1P'  AND PT.TSNAME LIKE 'A2%'  )
                                       -- ERET: Armin Breyer
   AND NOT (PT.DBNAME = 'CSQDBOF' AND PT.TSNAME like 'TSBLOB%' )
----  end   @proc exclude ----------------------------------------------

   AND DB.TYPE NOT IN ('T','W')
----  begin @proc missFUllcopies2: fehlende Fullcopies -----------------
   AND TS.NTABLES <> 0
   AND PT.SPACEF <> -1 -- attention space is sometimes wrong|
   AND NOT EXISTS (
----  begin @proc selIncrCopy: select fullcopy etc. --------------------
        SELECT ' '
          FROM  SYSIBM.SYSCOPY CP
          WHERE PT.DBNAME = CP.DBNAME
            AND PT.TSNAME = CP.TSNAME
            AND cp.dsNum in (PT.PARTITION, 0)
            AND (( CP.ICTYPE IN ('I', 'F','R','X')   -- copy or fullLog
                   AND CP.TIMESTAMP > CURRENT TIMESTAMP - 2 hours
                 ) or ((CP.ICTYPE = 'C'         -- created today
                                                -- part added today
                          or (CP.ICTYPE = 'A' and CP.sType = 'A')
                       ) and date(cp.timestamp) >= current date
                )      )
----  end   @proc selIncrCopy: select fullcopy etc. --------------------
     )
 )
, q as
(
select case when laFull < char(current timestamp - 172 hours)
                then 'full old'
            when copyUpdateTime > current timestamp - 7 hours
                then 'no newUpd'
            when nActive * 0.1 <= COPYUPDATEDPAGES then 'full upda'
            when COPYUPDATEDPAGES <> 0 or copyChanges <> 0 then 'inc'
            else 'no changes'
            end copy,
      p.*
    from p
)
select *
    from q
    where left(copy, 2) <> 'no'
       and dbName like 'AU%'
--   r.copyUpdateTime < current timestamp - 2 hours
 ORDER BY DBNAME, TSNAME, PARTITION
 WITH UR;
----  end   @proc missFUllcopies2: fehlende Fullcopies -----------------
;x;
select (select max(char(c.timestamp) || ' ' || char(c.dsNum)
           || icType || sType)
           from sysibm.sysCopy c
        where c.dbName = p.dbName and c.tsName = p.tsName
              and c.dsNum in (0, p.partition)
           AND C.ICTYPE IN ('I', 'F','R','X', 'C', 'A')
           and (c.icType <> 'A' or c.sType = 'A')
       )                                        -- part added today
select (select max(char(c.timestamp) || ' ' || char(c.dsNum)
           || icType || sType)
           from sysibm.sysCopy c
        where c.dbName = p.dbName and c.tsName = p.tsName
              and c.dsNum in (0, p.partition)
           AND C.ICTYPE IN ('I', 'F','R','X', 'C', 'A')
           and (c.icType <> 'A' or c.sType = 'A')
       )                                        -- part added today
    from sysibm.sysTablePart p
    where dbName = 'MF01A1P' and tsName = 'A150A'
    order by partition
    with ur;x;
----  end   @proc selIncrCopy: select fullcopy etc. --------------------
     )
              order by r.timestamp desc
              fetch first row only
          )
    ;x;
select p.partition, c.*
    from sysibm.sysTablePart p
    left join sysibm.sysCopy c
    on c.dbName = p.dbName and c.tsName = p.tsName
      and (c.timestamp, c.dsNum, c.icType) in
          (select r.timestamp, r.dsNum, r.icType
              from sysibm.sysCopy r
              where r.dbName = p.dbName and r.tsName = p.tsName
                   and r.dsNum in (0, p.partition)
              order by r.timestamp desc
              fetch first row only
          )
    where p.dbName = 'MF01A1P' and p.tsName = 'A150A'
    order by dbName, tsName, dsNum
    ;x;
selectcs as (
    select dbName, tsName, dsNum
        from sysibm.sysCopy  c

-- ¢DBOF!
--               Control Summary SQL für RZ2/DBOF job QMW0008P
--               generiert am 12/07/18 11:06:10
--                  durch rz1/dsn.source.tecSv(conSumGe)
--                    ||| alle Aenderung dortdrin ||||||
--************************************************************
--?? fehlende IncrCopies Tablespaces, letzte 8 Tage:
--************************************************************
----  begin @proc missFUllcopies1: fehlende Fullcopies -----------------
 SELECT PT.DBNAME, pt.tsName, pt.partition,
     (  SELECT icType || ' ' || char(timestamp)
          FROM  SYSIBM.SYSCOPY CP
          WHERE PT.DBNAME = CP.DBNAME
            AND PT.TSNAME = CP.TSNAME
            AND cp.dsNum in (PT.PARTITION, 0)
            AND  CP.ICTYPE IN ('F','R','X')
      --    AND CP.TIMESTAMP > CURRENT TIMESTAMP - 7 days
          order by timestamp desc
          fetch first 1 row only
     ) laFull
----  end   @proc selIncrCopy: select fullcopy etc. --------------------
 FROM   SYSIBM.SYSDATABASE DB
   join SYSIBM.SYSTABLESPACE TS
     on DB.NAME = PT.DBNAME
   join SYSIBM.SYSTABLEPART PT
     on DB.NAME = TS.DBNAME
       AND TS.NAME = PT.TSNAME
   join SYSIBM.SYSTABLESpaceStats r
      on r.dbid = db.dbid
        and r.psid = ts.psid
        and r.partition = pt.partition
 WHERE
   r.copyUpdateTime < current timestamp - 2 hours
----  end   @proc missFUllcopies1: fehlende Fullcopies -----------------

----  begin @proc exclude ----------------------------------------------
----- begin @proc exclGen: gemeinsame excludes -------------------------
   AND NOT (PT.DBNAME like 'DSNDB%')            -- DB2 CATALOG
   AND NOT (PT.DBNAME LIKE 'DSN8%')             -- IBM TEST DB
   AND NOT (PT.DBNAME LIKE 'WKDBD%')            -- DB2 WORK DATABASE
   AND NOT (PT.DBNAME = 'DSNTESQ')              -- DB2 CATALOG CLONE
   AND NOT (PT.DBNAME LIKE 'DB2MAPP%')          -- REORG MAPPING TABLES
   AND NOT (PT.DBNAME LIKE 'DB2PLAN%')          -- explain tables
   and not translate(PT.dbName, '999999999AAAAAA', '012345678FISWXY')
           = 'DA999999'                         -- user datenbanken
   AND NOT (PT.DBNAME LIKE 'DB2ALA%')           -- marec  generated
   AND NOT (PT.DBNAME LIKE '%MAREC%')           -- marec generated
   AND NOT (PT.DBNAME LIKE 'DACME%')            -- Mail Heinz Bühler
----  end   @proc exclGen: gemeinsame excludes -------------------------

   AND NOT (PT.DBNAME = 'XC01A1P'  AND PT.TSNAME LIKE 'A2%'  )
                                       -- EOS: Armin Breyer
   AND NOT (PT.DBNAME = 'XR01A1P'  AND PT.TSNAME LIKE 'A2%'  )
                                       -- ERET: Armin Breyer
   AND NOT (PT.DBNAME = 'CSQDBOF' AND PT.TSNAME like 'TSBLOB%' )
----  end   @proc exclude ----------------------------------------------

   AND DB.TYPE NOT IN ('T','W')
----  begin @proc missFUllcopies2: fehlende Fullcopies -----------------
   AND TS.NTABLES <> 0
   AND PT.SPACEF <> -1 -- attention space is sometimes wrong|
   AND NOT EXISTS (
----  begin @proc selIncrCopy: select fullcopy etc. --------------------
        SELECT ' '
          FROM  SYSIBM.SYSCOPY CP
          WHERE PT.DBNAME = CP.DBNAME
            AND PT.TSNAME = CP.TSNAME
            AND cp.dsNum in (PT.PARTITION, 0)
            AND (( CP.ICTYPE IN ('I', 'F','R','X')   -- copy or fullLog
                   AND CP.TIMESTAMP > CURRENT TIMESTAMP - 2 hours
                 ) or ((CP.ICTYPE = 'C'         -- created today
                                                -- part added today
                          or (CP.ICTYPE = 'A' and CP.sType = 'A')
                       ) and date(cp.timestamp) >= current date
                )      )
----  end   @proc selIncrCopy: select fullcopy etc. --------------------
     )
 ORDER BY DBNAME, TSNAME, PT.PARTITION
 WITH UR;
----  end   @proc missFUllcopies2: fehlende Fullcopies -----------------
;x;
select (select max(char(c.timestamp) || ' ' || char(c.dsNum)
           || icType || sType)
           from sysibm.sysCopy c
        where c.dbName = p.dbName and c.tsName = p.tsName
              and c.dsNum in (0, p.partition)
           AND C.ICTYPE IN ('I', 'F','R','X', 'C', 'A')
           and (c.icType <> 'A' or c.sType = 'A')
       )                                        -- part added today
select (select max(char(c.timestamp) || ' ' || char(c.dsNum)
           || icType || sType)
           from sysibm.sysCopy c
        where c.dbName = p.dbName and c.tsName = p.tsName
              and c.dsNum in (0, p.partition)
           AND C.ICTYPE IN ('I', 'F','R','X', 'C', 'A')
           and (c.icType <> 'A' or c.sType = 'A')
       )                                        -- part added today
    from sysibm.sysTablePart p
    where dbName = 'MF01A1P' and tsName = 'A150A'
    order by partition
    with ur;x;
----  end   @proc selIncrCopy: select fullcopy etc. --------------------
     )
              order by r.timestamp desc
              fetch first row only
          )
    ;x;
select p.partition, c.*
    from sysibm.sysTablePart p
    left join sysibm.sysCopy c
    on c.dbName = p.dbName and c.tsName = p.tsName
      and (c.timestamp, c.dsNum, c.icType) in
          (select r.timestamp, r.dsNum, r.icType
              from sysibm.sysCopy r
              where r.dbName = p.dbName and r.tsName = p.tsName
                   and r.dsNum in (0, p.partition)
              order by r.timestamp desc
              fetch first row only
          )
    where p.dbName = 'MF01A1P' and p.tsName = 'A150A'
    order by dbName, tsName, dsNum
    ;x;
selectcs as (
    select dbName, tsName, dsNum
        from sysibm.sysCopy  c

}¢--- A540769.WK.SQL(CPUSU) cre=2008-02-28 mod=2008-02-28-15.49.21 F540769 -----
select count(*) from s100447.DSN_STATEMNT_TABLE;
select count(*), procMs
    from s100447.DSN_STATEMNT_TABLE
    group by procMS
    order by procMs
;
select count(*), GROUP_MEMBER, decimal(real(procSu) / procMs, 4, 1)
    from s100447.DSN_STATEMNT_TABLE
    where procMs  > 100
    group by  GROUP_MEMBER, decimal(real(procSu) / procMs, 4, 1)
    order by  3 asc
}¢--- A540769.WK.SQL(CREAL) cre=2006-09-29 mod=2006-09-29-15.08.43 F540769 -----
set current sqlid = 'S100447';
drop   alias gdb9998.TWK003Al1;
create alias gdb9998.TWK003Al4 for gdb9998.TWK003Al3;
create alias gdb9998.TWK003Al3 for gdb9998.TWK003Al2;
create alias gdb9998.TWK003Al2 for gdb9998.TWK003Al1;
create alias gdb9998.TWK003Al1 for gdb9998.TWK003A;
}¢--- A540769.WK.SQL(CREDB) cre=2010-01-08 mod=2010-01-08-11.35.42 A540769 -----
SET CURRENT SQLID='S100447 ';
CREATE DATABASE DI017329
  BUFFERPOOL BP2 INDEXBP    BP1 CCSID      EBCDIC  STOGROUP   GSMS;
CREATE DATABASE DI017256
  BUFFERPOOL BP2 INDEXBP    BP1 CCSID      EBCDIC  STOGROUP   GSMS;
CREATE DATABASE DI017388
  BUFFERPOOL BP2 INDEXBP    BP1 CCSID      EBCDIC  STOGROUP   GSMS;
CREATE DATABASE DI017353
  BUFFERPOOL BP2 INDEXBP    BP1 CCSID      EBCDIC  STOGROUP   GSMS;
CREATE DATABASE DI017361
  BUFFERPOOL BP2 INDEXBP    BP1 CCSID      EBCDIC  STOGROUP   GSMS;
CREATE DATABASE DI017248
  BUFFERPOOL BP2 INDEXBP    BP1 CCSID      EBCDIC  STOGROUP   GSMS;
CREATE DATABASE DI017337
  BUFFERPOOL BP2 INDEXBP    BP1 CCSID      EBCDIC  STOGROUP   GSMS;



COMMIT;
CREATE DATABASE DI017183
  BUFFERPOOL BP2 INDEXBP    BP1 CCSID      EBCDIC  STOGROUP   GSMS;
}¢--- A540769.WK.SQL(CREDBQQ) cre=2006-09-21 mod=2006-09-21-15.57.42 F540769 ---
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-09-21 15:45 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Database DGDB9998                        --
--                                                                    --
------------------------------------------------------------------------
--
--
------------------------------------------------------------------------
-- Database=QQ01A1A   Stogroup=GSMS
------------------------------------------------------------------------
--
  drop   DATABASE qq99A1A;
  commit;
  CREATE DATABASE qq99A1A
    BUFFERPOOL BP2
    INDEXBP    BP1
    CCSID      EBCDIC
    STOGROUP   GSMS;
-- Tablespace=qq99A1A.A051A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A051A
    IN qq99A1A
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=OA1A.TQQ051A In qq99A1A.A051A
------------------------------------------------------------------------
--
  CREATE TABLE OA1A.TQQ051A
     (QQ051TXT             CHAR(20) FOR SBCS DATA WITH DEFAULT NULL,
      QQ051ID              CHAR(10) FOR SBCS DATA NOT NULL,
      QQ051FOR             CHAR(10) FOR SBCS DATA WITH DEFAULT NULL)
    IN qq99A1A.A051A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=qq99A1A
--    Index=OA1A.IQQ051A0 On OA1A.TQQ051A
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX OA1A.IQQ051A0
    ON OA1A.TQQ051A
     (QQ051ID               ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","s100447" ;
--
  CREATE VIEW OA1A.VQQ051V1 AS
    SELECT *
      FROM OA1A.TQQ051A ;
--
------------------------------------------------------------------------
--    View=OA1A.VQQ051V2
------------------------------------------------------------------------
--
--
  CREATE VIEW OA1A.VQQ051V2 AS
    SELECT *
      FROM OA1A.TQQ051A ;
--
  CREATE VIEW OA1A.VQQ051VA1 AS
    SELECT *
      FROM OA1A.TQQ051A ;
--
  CREATE VIEW OA1A.VQQ051VA2 AS
    SELECT *
      FROM OA1A.TQQ051A ;
}¢--- A540769.WK.SQL(CREDBQQ2) cre=2006-09-21 mod=2006-09-21-16.02.27 F540769 ---
  CREATE UNIQUE INDEX OA1A.IQQ051B1
    ON OA1A.TQQ051A
     (QQ051TXT             ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","s100447" ;
--
  CREATE VIEW OA1A.VQQ051VB1 AS
    SELECT *
      FROM OA1A.TQQ051A ;
--
  CREATE VIEW OA1A.VQQ051VB2 AS
    SELECT *
      FROM OA1A.TQQ051A ;
}¢--- A540769.WK.SQL(CREDUMMY) cre=2007-08-21 mod=2007-11-06-14.51.55 F540769 ---
  SET CURRENT SQLID='S100447';
  -- drop database db2dummy;
  commit;
  CREATE DATABASE DB2DUMMY
    BUFFERPOOL BP2
    INDEXBP    BP1
    CCSID      EBCDIC
    STOGROUP   GSMS;
  CREATE TABLESPACE DUMMY
    IN DB2DUMMY
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  COMMIT;
--
------------------------------------------------------------------------
--    Table=A540769.TWK001A In DA540769.A001A
------------------------------------------------------------------------
--

  CREATE TABLE DUMMY.DUMMY2
     (DUMMY                CHAR(1)
     )
    IN DB2DUMMY.DUMMY
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
  LABEL ON TABLE DUMMY.DUMMY2 IS 'dummy table - nicht droppen||';
  CREATE UNIQUE INDEX DUMMY.DUMMY2
    ON DUMMY.DUMMY2
     (DUMMY                 ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
  COMMIT;
}¢--- A540769.WK.SQL(CREFOR) cre=2006-07-25 mod=2006-07-25-13.37.33 F540769 ----
set current sqlid = 's100447';
drop         TABLESPACE             DA540769.a003a
;
commit
;
CREATE       TABLESPACE A003A    IN DA540769
       USING STOGROUP GSMS
             PRIQTY 48
             SECQTY 7200
             ERASE NO
             FREEPAGE   0
             PCTFREE 10
             COMPRESS YES
             GBPCACHE CHANGED
             TRACKMOD YES
       BUFFERPOOL BP2
       LOCKSIZE ANY
       LOCKMAX SYSTEM
       CCSID EBCDIC
       MAXROWS 255
       CLOSE YES
       SEGSIZE 64
                                                                      ;
CREATE TABLE    A540769.TWK003A
   (WK003ID CHAR(10)                             NOT NULL             ,
    WK003TXT CHAR(20)                                                 ,
    WK003FOR CHAR(10)                                                 ,
    WK003GEN DECIMAL(25)                         NOT NULL
     GENERATED BY DEFAULT
     AS IDENTITY
     ( START WITH -9999999999999999999999999         ,
       INCREMENT BY +1                               ,
       CACHE 20                                                       ,
       NO CYCLE                                                       ,
       MAXVALUE +9999999999999999999999999                            ,
       MINVALUE -9999999999999999999999999                            )
                                                                      ,
CONSTRAINT WK003PRIM            PRIMARY KEY (WK003ID             )    )
       IN DA540769.A003A
       AUDIT NONE
       CCSID EBCDIC
                                                                      ;
LABEL ON TABLE A540769.TWK003A
       IS 'table drei mit foreign key'
                                                                      ;
CREATE UNIQUE INDEX A540769.IWK003A0
       ON A540769.TWK003A
     ( WK003ID              ASC  )
       USING STOGROUP GSMS
             PRIQTY      48
             SECQTY    7200
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 2       G
       COPY NO
                                                                      ;
ALTER TABLE A540769.TWK003A                  FOREIGN KEY WK003FOR
      (WK003FOR                  )
       REFERENCES A540769.TWK003A
      (WK003ID                   )
       ON DELETE NO ACTION                                            ;

}¢--- A540769.WK.SQL(CREIX) cre=2006-03-03 mod=2006-03-03-17.31.19 F540769 -----
set current sqlid = 's100447' ;
-- drop   index A540769.iwk001a1;
commit;
-- create index A540769.iwk001a0 on       A540769.twk001a
--         (wk001num);
commit;
create unique index A540769.iwk001a1 on       A540769.twk001a
         (wk001name desc);
commit;
}¢--- A540769.WK.SQL(CREPART) cre= mod= ----------------------------------------

 DROP TABLESPACE             DGDB0211.A155A;
 COMMIT;

 CREATE TABLESPACE           A155A
 IN                          DGDB0211
 USING STOGROUP              GSMS
 PRIQTY                      72
 SECQTY                      720000
 ERASE                       NO
 FREEPAGE                    0
 PCTFREE                     15
 COMPRESS                    YES
 DSSIZE                      4 G
 NUMPARTS                    12
 BUFFERPOOL                  BP2
 LOCKSIZE                    ANY
 LOCKMAX                     SYSTEM
 CLOSE                       YES
 -- SEGSIZE                     64
 ;

 COMMIT;

 CREATE TABLE                DGDB0211.TID155A1
 (                           TID155MON         SMALLINT     NOT NULL,
                             TID155TST         TIMESTAMP    NOT NULL,
                             TID155UUI         CHAR(35)     NOT NULL,
                             TID155CHA         CHAR(3)      NOT NULL,
                             TID155LNR         CHAR(4)      NOT NULL,
                             TID155VRS         CHAR(4)      NOT NULL,
                             TID155CRE         CHAR(7)      NOT NULL,
                             TID155IDT         CHAR(2)      NOT NULL,
                             TID155IDE         CHAR(20)     NOT NULL,
                             TID155ADT         CHAR(2)      NOT NULL,
                             TID155ADR         CHAR(40)     NOT NULL,
                             TID155BU          CHAR(4)      NOT NULL,
                             TID155BKS         CHAR(4)      NOT NULL,
                             TID155ARE         CHAR(4)      NOT NULL,
                             TID155CBE         CHAR(8)      NOT NULL,
                             TID155INS         CHAR(8)      NOT NULL
 )
 IN                          DGDB0211.A155A
 ;

 CREATE TYPE 2 INDEX  DGDB0211.IID155A1
 ON                          DGDB0211.TID155A1
                            (TID155MON,
                             TID155TST )
 USING STOGROUP              GSMS
 PRIQTY                      72
 SECQTY                      72000
 ERASE                       NO
 FREEPAGE                    0
 PCTFREE                     15
 GBPCACHE                    ALL
 CLUSTER
     (
         PART 1 VALUES ( 1 ) ,
         PART 2 VALUES ( 2 ) ,
         PART 3 VALUES ( 3 ) ,
         PART 4 VALUES ( 4 ) ,
         PART 5 VALUES ( 5 ) ,
         PART 6 VALUES ( 6 ) ,
         PART 7 VALUES ( 7 ) ,
         PART 8 VALUES ( 8 ) ,
         PART 9 VALUES ( 9 ) ,
         PART 10 VALUES(10 ) ,
         PART 11 VALUES(11 ) ,
         PART 12 VALUES(12 )
     )
 BUFFERPOOL                  BP1
 CLOSE                       YES;

 CREATE TYPE 2 INDEX  DGDB0211.IID155A2
 ON                          DGDB0211.TID155A1
                            (TID155UUI)
 USING STOGROUP              GSMS
 PRIQTY                      72
 SECQTY                      72000
 ERASE                       NO
 FREEPAGE                    0
 PCTFREE                     15
 GBPCACHE                    ALL
 BUFFERPOOL                  BP1
 CLOSE                       YES;

 LABEL ON TABLE              DGDB0211.TID155A1
 IS                         'UUID Log';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155MON
 IS                         'Monat';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155TST
 IS                         'curr Timestampe';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155UUI
 IS                         'UUID';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155CHA
 IS                         'curr. Channel';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155LNR
 IS                         'Listen Nr. POV';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155VRS
 IS                         'Versions Nummer POV';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155CRE
 IS                         'Creation Date POV';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155IDT
 IS                         'Empfänger Identifikation Typ';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155IDE
 IS                         'Empfänger Identifikation';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155ADT
 IS                         'Empfänger Adresse Typ';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155ADR
 IS                         'Empfänger Adresse';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155BU
 IS                         'Business ID';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155BKS
 IS                         'Bankstelle';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155ARE
 IS                         'ARES Code';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155CBE
 IS                         'Mailt Betr';

 LABEL ON COLUMN             DGDB0211.TID155A1.TID155INS
 IS                         'Instradierung';

 COMMIT;
}¢--- A540769.WK.SQL(CREPROUT) cre=2008-01-08 mod=2008-07-10-10.36.26 F540769 ---
  SET CURRENT SQLID='A540769';
  SET CURRENT SQLID='S100447';
  DROP   PROCEDURE A540769.WKUTIL;
  CREATE PROCEDURE A540769.WKUTIL
     (IN CMDTEXT VARCHAR(254) FOR SBCS DATA CCSID EBCDIC ,
      OUT CMDRESULT VARCHAR(32704) FOR SBCS DATA CCSID EBCDIC )
    DYNAMIC RESULT SETS 1
    EXTERNAL NAME 'WKUTIL'
    LANGUAGE REXX  PARAMETER STYLE GENERAL  NOT DETERMINISTIC  FENCED
    CALLED ON NULL INPUT  MODIFIES SQL DATA  NO DBINFO
    -- COLLID DSNREXDE
    WLM ENVIRONMENT DB2DSNR  ASUTIME LIMIT 60000
    STAY RESIDENT NO  PROGRAM TYPE MAIN  SECURITY DEFINER
    INHERIT SPECIAL REGISTERS  STOP AFTER SYSTEM DEFAULT FAILURES
    RUN OPTIONS 'TRAP(ON)'  COMMIT ON RETURN NO ;
  COMMIT;
  X
  DROP   PROCEDURE A540769.WKUTILSUB;
  CREATE PROCEDURE A540769.WKUTILSUB
     (IN CMDTEXT VARCHAR(254) FOR SBCS DATA CCSID EBCDIC ,
      OUT CMDRESULT VARCHAR(32704) FOR SBCS DATA CCSID EBCDIC )
    EXTERNAL NAME 'WKUTISUB'
    LANGUAGE REXX  PARAMETER STYLE GENERAL      DETERMINISTIC  FENCED
                               CALLED ON NULL INPUT  MODIFIES SQL DATA
    NO DBINFO                  WLM ENVIRONMENT DB2DSNR
    ASUTIME LIMIT 60000 STAY RESIDENT NO  PROGRAM TYPE MAIN
    SECURITY USER    INHERIT SPECIAL REGISTERS
    STOP AFTER SYSTEM DEFAULT FAILURES  RUN OPTIONS 'TRAP(OFF)'
    COLLID DSNREXCS
    COMMIT ON RETURN NO ;
  COMMIT;
}¢--- A540769.WK.SQL(CRESTOPR) cre=2008-01-07 mod=2008-01-10-12.53.34 F540769 ---
SET CURRENT SQLID = 'S100447';                                          00010009
   -- DROP   PROCEDURE A540769.PUBUTIL ;                                00020013
   CREATE PROCEDURE A540769.PUBUTIL                                     00030013
     (IN  CMDTEXT VARCHAR(254),                                         00040009
      OUT CMDRESULT VARCHAR(32704))                                     00050009
     LANGUAGE REXX                                                      00060009
     EXTERNAL NAME WKUTIL                                               00070010
     COLLID DSNREXDE                                                    00080009
     ASUTIME    LIMIT 60                                                00090009
     PARAMETER STYLE GENERAL                                            00100009
     STAY RESIDENT NO                                                   00110009
     RUN OPTIONS 'TRAP(ON)'                                             00120009
     WLM ENVIRONMENT DB2DSNR                                            00130009
     SECURITY DB2                                                       00140009
     DYNAMIC RESULT SETS 1                                              00150009
     COMMIT ON RETURN NO                                                00160009
     ;                                                                  00170009
COMMIT;                                                                 00180012
     X                                                                  00190009
SET CURRENT SQLID = 'S100447';                                          00200002
   DROP   PROCEDURE A540769.WKUTIL ;                                    00210013
   CREATE PROCEDURE A540769.WKUTIL                                      00220013
     (IN  CMDTEXT VARCHAR(254),                                         00230001
      OUT CMDRESULT VARCHAR(32704))                                     00240001
     LANGUAGE REXX                                                      00250001
     EXTERNAL NAME WKUTIL                                               00260001
     COLLID DSNREXDE                                                    00270007
     ASUTIME    LIMIT 60                                                00280001
     PARAMETER STYLE GENERAL                                            00290001
     STAY RESIDENT NO                                                   00300001
     RUN OPTIONS 'TRAP(ON)'                                             00310001
     WLM ENVIRONMENT DB2DSNR                                            00320001
     SECURITY DB2                                                       00330008
     DYNAMIC RESULT SETS 1                                              00340004
     COMMIT ON RETURN NO                                                00350001
     ;                                                                  00360001
                                                                        00370001
                                                                        00380001
}¢--- A540769.WK.SQL(CRESYSMA) cre=2007-06-25 mod=2007-06-25-07.14.05 F540769 ---
SET CURRENT SQLID = 'S100447';
CREATE       TABLESPACE CHEROCL0 IN DB2MAPP
       USING STOGROUP GSMS
             PRIQTY 48
             SECQTY 7200
             ERASE NO
             FREEPAGE   0
             PCTFREE  5
             GBPCACHE CHANGED
             TRACKMOD YES
       BUFFERPOOL BP2
       LOCKSIZE ANY
       LOCKMAX SYSTEM
       CCSID EBCDIC
       MAXROWS 255
       CLOSE YES
       SEGSIZE 64
                                                                      ;
CREATE TABLE    S100447.CHEROCL0
   ("TYPE" CHAR(1)                               NOT NULL             ,
    SOURCE_RID CHAR(5)                           NOT NULL             ,
    TARGET_XRID CHAR(9)                          NOT NULL WITH DEFAULT,
    LRSN CHAR(6)                                 NOT NULL             )
       IN DB2MAPP.CHEROCL0
       AUDIT NONE
       CCSID EBCDIC
                                                                      ;
CREATE UNIQUE INDEX S100447.IX_CHEROCL0
       ON S100447.CHEROCL0
     ( SOURCE_RID           ASC  ,
       "TYPE"               ASC  ,
       TARGET_XRID          ASC  ,
       LRSN                 ASC  )
       USING STOGROUP GSMS
             PRIQTY     720
             SECQTY   14400
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 2       G
       COPY NO
                                                                      ;
COMMIT
;
CREATE       TABLESPACE CHEROCLT IN DB2MAPP
       USING STOGROUP GSMS
             PRIQTY 48
             SECQTY 7200
             ERASE NO
             FREEPAGE   0
             PCTFREE  5
             GBPCACHE CHANGED
             TRACKMOD YES
       BUFFERPOOL BP2
       LOCKSIZE ANY
       LOCKMAX SYSTEM
       CCSID EBCDIC
       MAXROWS 255
       CLOSE YES
       SEGSIZE 64
                                                                      ;
CREATE TABLE    S100447.CHEROCLT
   ("TYPE" CHAR(1)                               NOT NULL             ,
    SOURCE_RID CHAR(5)                           NOT NULL             ,
    TARGET_XRID CHAR(9)                          NOT NULL WITH DEFAULT,
    LRSN CHAR(6)                                 NOT NULL             )
       IN DB2MAPP.CHEROCLT
       AUDIT NONE
       CCSID EBCDIC
                                                                      ;
CREATE UNIQUE INDEX S100447.IX_CHEROCLT
       ON S100447.CHEROCLT
     ( SOURCE_RID           ASC  ,
       "TYPE"               ASC  ,
       TARGET_XRID          ASC  ,
       LRSN                 ASC  )
       USING STOGROUP GSMS
             PRIQTY     720
             SECQTY   14400
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 2       G
       COPY NO
                                                                      ;
COMMIT
;
CREATE       TABLESPACE CHEROCLS IN DB2MAPP
       USING STOGROUP GSMS
             PRIQTY 48
             SECQTY 7200
             ERASE NO
             FREEPAGE   0
             PCTFREE  5
             GBPCACHE CHANGED
             TRACKMOD YES
       BUFFERPOOL BP2
       LOCKSIZE ANY
       LOCKMAX SYSTEM
       CCSID EBCDIC
       MAXROWS 255
       CLOSE YES
       SEGSIZE 64
                                                                      ;
CREATE TABLE    S100447.CHEROCLS
   ("TYPE" CHAR(1)                               NOT NULL             ,
    SOURCE_RID CHAR(5)                           NOT NULL             ,
    TARGET_XRID CHAR(9)                          NOT NULL WITH DEFAULT,
    LRSN CHAR(6)                                 NOT NULL             )
       IN DB2MAPP.CHEROCLS
       AUDIT NONE
       CCSID EBCDIC
                                                                      ;
CREATE UNIQUE INDEX S100447.IX_CHEROCLS
       ON S100447.CHEROCLS
     ( SOURCE_RID           ASC  ,
       "TYPE"               ASC  ,
       TARGET_XRID          ASC  ,
       LRSN                 ASC  )
       USING STOGROUP GSMS
             PRIQTY     720
             SECQTY   14400
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 2       G
       COPY NO
                                                                      ;
COMMIT
;
CREATE       TABLESPACE CHEROCLY IN DB2MAPP
       USING STOGROUP GSMS
             PRIQTY 48
             SECQTY 7200
             ERASE NO
             FREEPAGE   0
             PCTFREE  5
             GBPCACHE CHANGED
             TRACKMOD YES
       BUFFERPOOL BP2
       LOCKSIZE ANY
       LOCKMAX SYSTEM
       CCSID EBCDIC
       MAXROWS 255
       CLOSE YES
       SEGSIZE 64
                                                                      ;
CREATE TABLE    S100447.CHEROCLY
   ("TYPE" CHAR(1)                               NOT NULL             ,
    SOURCE_RID CHAR(5)                           NOT NULL             ,
    TARGET_XRID CHAR(9)                          NOT NULL WITH DEFAULT,
    LRSN CHAR(6)                                 NOT NULL             )
       IN DB2MAPP.CHEROCLY
       AUDIT NONE
       CCSID EBCDIC
                                                                      ;
CREATE UNIQUE INDEX S100447.IX_CHEROCLY
       ON S100447.CHEROCLY
     ( SOURCE_RID           ASC  ,
       "TYPE"               ASC  ,
       TARGET_XRID          ASC  ,
       LRSN                 ASC  )
       USING STOGROUP GSMS
             PRIQTY     720
             SECQTY   14400
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 2       G
       COPY NO
                                                                      ;
COMMIT
;
CREATE       TABLESPACE CHEROCLZ IN DB2MAPP
       USING STOGROUP GSMS
             PRIQTY 48
             SECQTY 7200
             ERASE NO
             FREEPAGE   0
             PCTFREE  5
             GBPCACHE CHANGED
             TRACKMOD YES
       BUFFERPOOL BP2
       LOCKSIZE ANY
       LOCKMAX SYSTEM
       CCSID EBCDIC
       MAXROWS 255
       CLOSE YES
       SEGSIZE 64
                                                                      ;
CREATE TABLE    S100447.CHEROCLZ
   ("TYPE" CHAR(1)                               NOT NULL             ,
    SOURCE_RID CHAR(5)                           NOT NULL             ,
    TARGET_XRID CHAR(9)                          NOT NULL WITH DEFAULT,
    LRSN CHAR(6)                                 NOT NULL             )
       IN DB2MAPP.CHEROCLZ
       AUDIT NONE
       CCSID EBCDIC
                                                                      ;
CREATE UNIQUE INDEX S100447.IX_CHEROCLZ
       ON S100447.CHEROCLZ
     ( SOURCE_RID           ASC  ,
       "TYPE"               ASC  ,
       TARGET_XRID          ASC  ,
       LRSN                 ASC  )
       USING STOGROUP GSMS
             PRIQTY     720
             SECQTY   14400
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 2       G
       COPY NO
                                                                      ;
COMMIT
;
}¢--- A540769.WK.SQL(CRETAQQ) cre=2006-09-21 mod=2006-09-21-15.36.47 F540769 ---
  set current sqlid = 's100447';
  CREATE TABLESPACE A051A
    IN dgdb9998
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=gdb9998.TQQ051A In dgdb9998.A051A
------------------------------------------------------------------------
--
  CREATE TABLE gdb9998.TQQ051A
     (QQ051ID              CHAR(10) FOR SBCS DATA NOT NULL,
      QQ051TXT             CHAR(20) FOR SBCS DATA WITH DEFAULT NULL,
      QQ051FOR             CHAR(10) FOR SBCS DATA WITH DEFAULT NULL
     )
    IN dgdb9998.A051A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;

  CREATE view gdb9998.VQQ051V1 as select * from gdb9998.TQQ051A;
  CREATE view gdb9998.VQQ051V2 as select * from gdb9998.TQQ051A;
--
--
------------------------------------------------------------------------
-- Database=dgdb9998
--    Index=gdb9998.IQQ051A0 On gdb9998.TQQ051A
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX gdb9998.Iqq051A0
    ON gdb9998.Tqq051A
     (QQ051ID               ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
}¢--- A540769.WK.SQL(CRETAWK3) cre=2006-09-14 mod=2006-09-14-16.44.06 F540769 ---
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-09-14 16:43 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A003A In Database dgdb9998    --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=dgdb9998   Stogroup=GSMS
-- Tablespace=dgdb9998.A003A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A003A
    IN dgdb9998
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=gdb9998.TWK003A In dgdb9998.A003A
------------------------------------------------------------------------
--
  CREATE TABLE gdb9998.TWK003A
     (WK003ID              CHAR(10) FOR SBCS DATA NOT NULL,
      WK003TXT             CHAR(20) FOR SBCS DATA WITH DEFAULT NULL,
      WK003FOR             CHAR(10) FOR SBCS DATA WITH DEFAULT NULL,
      WK003GEN             DECIMAL(25, 0) NOT NULL
        GENERATED BY DEFAULT
        AS IDENTITY
          (START WITH -9999999999999999999999999, INCREMENT BY 1,
           CACHE 20, NO CYCLE, NO ORDER,
           MAXVALUE 9999999999999999999999999,
           MINVALUE -9999999999999999999999999),
      CONSTRAINT WK003PRIM
      PRIMARY KEY (WK003ID))
    IN dgdb9998.A003A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE gdb9998.TWK003A IS 'table drei mit foreign key';
--
------------------------------------------------------------------------
-- Database=dgdb9998
--    Index=gdb9998.IWK003A0 On gdb9998.TWK003A
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX gdb9998.IWK003A0
    ON gdb9998.TWK003A
     (WK003ID               ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  ALTER TABLE gdb9998.TWK003A FOREIGN KEY WK003FOR
     (WK003FOR)
    REFERENCES gdb9998.TWK003A
     (WK003ID)
    ON DELETE CASCADE ENFORCED ;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(CRETETA) cre=2006-09-05 mod=2006-09-05-17.36.12 F540769 ---
set current sqlid = 'A540769';
declare global temporary table session.gtt1
      (a5 char(5));
insert into session.gtt1 values('eins');
select * from session.gtt1;
create unique index session.itt1 on session.gtt1
   (a5);
insert into session.gtt1 values('eins');
commit;
select * from session.gtt1;
}¢--- A540769.WK.SQL(CRETRI) cre=2006-09-14 mod=2006-09-14-16.52.19 F540769 ----
SET CURRENT SQLID = 'S100447';
CREATE TRIGGER DGDB9998.WK003TRIG
  AFTER DELETE ON GDB9998.TWK003A
    REFERENCING OLD AS OLD
    FOR EACH ROW       MODE DB2SQL
    INSERT INTO GDB9998.TWK003A
      (WK003ID,
       WK003TXT,
       WK003FOR)
    VALUES (  OLD.WK003ID,
              'DELETETRIGGER',
              OLD.WK003FOR
           )
;
COMMIT;
}¢--- A540769.WK.SQL(CRETRIG) cre=2006-09-21 mod=2006-09-21-18.13.58 F540769 ---
CREATE TRIGGER GDB9998.QQ051TRIG2
  AFTER DELETE ON GDB9998.TQQ051A
  REFERENCING OLD AS OLD
  FOR EACH ROW MODE DB2SQL
    INSERT INTO GDB9998.TQQ051A(qq051ID, qq051TXT, qq051FOR)
      VALUES(OLD.qq051ID, 'deleteTriggerZwei', OLD.qq051FOR) ;
}¢--- A540769.WK.SQL(CRETRIPA) cre=2007-09-28 mod=2007-09-28-12.05.00 F540769 ---
  SET CURRENT SQLID='S100447';
  drop tablespace dgdb9998.a077a;
  commit;
  CREATE TABLESPACE A077A
    IN DGDB9998
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 100
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    NUMPARTS 3
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  CREATE TABLE GDB9998.TWK077A
     (WK077PART            SMALLINT NOT NULL with default,
      WK077KEY             INTEGER NOT NULL,
      WK077Txt             CHAR(20) not null with default)
    IN DGDB9998.a077A
    partition by (wk077part)
      (  partition 1 ending at (0),
         partition 2 ending at (1),
         partition 3 ending at (2)
      )
    ;
commit;
create trigger gdb9998.twk077a1Insert   no cascade before insert
    on gdb9998.twk077a  referencing New as New
    for each row mode db2sql
         set WK077PART = MOD(new.WK077KEY, 3)
;
create trigger gdb9998.twk077a1Update   no cascade before
               update of WK077PART, WK077KEY
    on gdb9998.twk077a  referencing New as New
    for each row mode db2sql
         set WK077PART = MOD(new.WK077KEY, 3)
;
insert into gdb9998.twk077a values (77, 30, 'dreissig');
insert into gdb9998.twk077a (wk077key, wk077txt)
                            values(31, 'einUndDreissig');
insert into gdb9998.twk077a values (77, 32, 'zweiUndDreissig');
select * from gdb9998.twk077a;
update gdb9998.twk077a set wk077Part = 99;
select * from gdb9998.twk077a;
insert into gdb9998.twk077a
      select wk077Key + 55, wk077Key + 10, '+zenh'
          from gdb9998.twk077a;
insert into gdb9998.twk077a
      select wk077Key + 55, wk077Key + 20, '+zwan'
          from gdb9998.twk077a;
insert into gdb9998.twk077a
      select wk077Key + 55, wk077Key + 55, '+ff'
          from gdb9998.twk077a;
select * from gdb9998.twk077a;
commit;
}¢--- A540769.WK.SQL(CRETRIPI) cre=2007-09-28 mod=2007-09-28-12.50.15 F540769 ---
select * from gdb9998.twk077a;
x
update gdb9998.twk077a set wk077key  = wk077key  + 1;
select * from gdb9998.twk077a;
commit;
   x
delete   from gdb9998.twk077a;
insert into gdb9998.twk077a values (77, 30, 'dreissig');
insert into gdb9998.twk077a (wk077key, wk077txt)
                            values(31, 'einUndDreissig');
insert into gdb9998.twk077a values (77, 32, 'zweiUndDreissig');
select * from gdb9998.twk077a;
update gdb9998.twk077a set wk077Part = 99;
select * from gdb9998.twk077a;
insert into gdb9998.twk077a
      select wk077Key + 55, wk077Key + 10, '+zenh'
          from gdb9998.twk077a;
insert into gdb9998.twk077a
      select wk077Key + 55, wk077Key + 20, '+zwan'
          from gdb9998.twk077a;
insert into gdb9998.twk077a
      select wk077Key + 55, wk077Key + 55, '+ff'
          from gdb9998.twk077a;
select * from gdb9998.twk077a;
commit;
}¢--- A540769.WK.SQL(CRETRIP2) cre=2007-09-28 mod=2007-09-28-11.57.15 F540769 ---
set current sqlid = 'S100447';
create trigger gdb9998.twk077a1Update   no cascade before
               update of WK077PART, WK077KEY
    on gdb9998.twk077a  referencing New as New
    for each row mode db2sql
         set WK077PART = MOD(new.WK077KEY, 3)
;
commit;
create trigger gdb9998.twk077a1Insert   no cascade before insert
    on gdb9998.twk077a  referencing New as New
    for each row mode db2sql
         set WK077PART = MOD(new.WK077KEY, 3)
;
}¢--- A540769.WK.SQL(CRETWKUP) cre=2007-03-20 mod=2007-03-20-17.39.08 F540769 ---
select * from A540769.TWK001A_UPD;
x
select current timestamp from sysibm.sysDummy1;
--#SET TERMINATOR ?
CREATE TRIGGER A540769.TWK001_upd_TRIG
  AFTER UPDATE ON A540769.TWK001A
    REFERENCING NEW       AS NEW
                OLD       AS OLD
    FOR EACH ROW  MODE DB2SQL
    begin atomic
    INSERT INTO A540769.TWK001A_UPD
      (FUN, KEY)
       values( 'U', new.wk001name);
    INSERT INTO A540769.TWK001A_UPD
      (FUN, KEY)
      (select 'O', old.wk001name from sysibm.sysDummy1
                   where old.wk001Name <> new.wk001Name
      )
      ;
     END
?
--#SET TERMINATOR ;
select current timestamp from sysibm.sysDummy1;
commit;
select current timestamp from sysibm.sysDummy1;
select * from A540769.TWK001A_UPD;
x
;
select current timestamp from sysibm.sysDummy1;
commit;
select current timestamp from sysibm.sysDummy1;
x
  select * from A540769.TWK001A;
  select * from A540769.TWK001A_UPD;
  INSERT INTO A540769.TWK001A  (WK001NAME, WK001NUM, wk001t1)
      VALUES ('drei', 3, 'a');
  INSERT INTO A540769.TWK001A  (WK001NAME, WK001NUM, wk001t1)
      VALUES ('vier', 4, 'a');
  select * from A540769.TWK001A;
  update      A540769.TWK001A set wk001Name = left(wk001Name,9) || 'x' ;
  delete from A540769.TWK001A where wk001Num in (3, 4);
  select * from A540769.TWK001A;
  select * from A540769.TWK001A_UPD;
cOMMIT;
  x
  INSERT INTO A540769.TWK001A_UPD  (FUN, KEY)
      VALUES ('t', 'keyEins');
  INSERT into A540769.TWK001A_UPD  (FUN, KEY)
      VALUES ('t', 'keyZwei');
  INSERT into A540769.TWK001A_UPD  (FUN, KEY)
    ( select fun, 'x' || left(key, 10)
         from A540769.TWK001A_UPD
    )
  ;
  select * from A540769.TWK001A_UPD
  ;
cOMMIT;
  x
  INSERT INTO A540769.TWK001A  (WK001NAME, WK001NUM, wk001t1)
      VALUES ('eins', 1, 'a');
  INSERT INTO A540769.TWK001A  (WK001NAME, WK001NUM, wk001t1)
      VALUES ('zwei', 2, 'a');
  SET CURRENT SQLID = 'S100447';
--
  CREATE TABLESPACE U001U
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY 12 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  COMMIT;
--
------------------------------------------------------------------------
--    Table=A540769.TWK001A In DA540769.A001A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.TWK001A_UPD
     (TST                  TIMESTAMP NOT NULL WITH DEFAULT,
      FUN                  CHAR(1) NOT NULL,
      KEY                  CHAR(20)
     )
    IN DA540769.U001U
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  drop          INDEX A540769.IWK001A_UPD ;
  commit;
  CREATE        iNDEX A540769.IWK001A_UPD
    ON A540769.TWK001A_UPD
     (TST                    ASC)
    USING STOGROUP GSMS
    PRIQTY 12 SECQTY 12
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
-- drop   TRIGGER A540769.TWK001_DEL_TRIG;
CREATE TRIGGER A540769.TWK001_DEL_TRIG
  AFTER DELETE ON A540769.TWK001A
    REFERENCING OLD_Table AS OLD
    FOR EACH ROW       MODE DB2SQL
    INSERT INTO A540769.TWK001A_UPD
      (FUN, KEY)
    ( select 'D', old.wk001name from old)
;
cOMMIT;
DROP   TRIGGER A540769.TWK001_INS_TRIG ;
CREATE TRIGGER A540769.TWK001_INS_TRIG
  AFTER INSERT ON A540769.TWK001A
    REFERENCING NEW_Table AS NEW
    FOR EACH statement  MODE DB2SQL
    INSERT INTO A540769.TWK001A_UPD
      (FUN, KEY)
    ( select 'I', new.wk001name from new)
--#SET TERMINATOR ?
CREATE TRIGGER A540769.TWK001_upd_TRIG
  AFTER UPDATE ON A540769.TWK001A
    REFERENCING NEW       AS NEW
                OLD       AS OLD
    FOR EACH ROW  MODE DB2SQL
    begin atomic
    INSERT INTO A540769.TWK001A_UPD
      (FUN, KEY)
       values( 'U', new.wk001name);
    INSERT INTO A540769.TWK001A_UPD
      (FUN, KEY)
      (select 'O', old.wk001name from sysibm.sysDummy1
                   where old.wk001Name <> new.wk001Name
      )
      ;
     END
?
--#SET TERMINATOR ;
commit;
}¢--- A540769.WK.SQL(CREUSR) cre=2006-06-09 mod=2006-06-09-14.04.22 F540769 ----
SET CURRENT SQLID  = 'S100447' ;
DROP   TABLE    GDB9998.TWKUSER ;
COMMIT
;
CREATE TABLE    GDB9998.TWKUSER
   (CH4 CHAR(4)                                  NOT NULL WITH DEFAULT,
    TST TIMESTAMP                                NOT NULL WITH DEFAULT,
    USR CHAR(8)        NOT NULL WITH DEFAULT USER,
    SQLID CHAR(8)     NOT NULL WITH DEFAULT CURRENT SQLID
   )
       IN DGDB9998.A001A
       AUDIT NONE
       CCSID EBCDIC
                                                                      ;
}¢--- A540769.WK.SQL(CREVW) cre=2006-09-29 mod=2006-10-19-12.57.15 F540769 -----
 SET CURRENT SQLID='S100447';
 -- drop view GDB9998.VQQ051V2R2 ;
 commit ;

 SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","s100447" ;
 CREATE VIEW GDB9998.VQQ051V2R2 AS
   SELECT *
     FROM GDB9998.VQQ051V2R1 ;
 COMMIT;
}¢--- A540769.WK.SQL(CSQDDL) cre=2014-09-07 mod=2014-09-07-12.26.44 A540769 ----
 SET CURRENT SQLID = 'S100447';


    ?ROP   DATABASE CSQDBOF ;
    COMMIT;
    ?ROP   DATABASE CSQDBOF$;
    COMMIT;
    ?REATE DATABASE CSQDBOF
           BUFFERPOOL BP2
           INDEXBP    BP1
           STOGROUP GSMS
           CCSID EBCDIC;




    CREATE TABLESPACE TSADMIN
           IN CSQDBOF
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP2
           CLOSE NO
           LOCKMAX SYSTEM
           SEGSIZE 64
           FREEPAGE 0
           PCTFREE 20
           GBPCACHE CHANGED
           DEFINE YES
           LOGGED
           TRACKMOD YES
           COMPRESS NO
           LOCKSIZE ANY
           MAXROWS 255
           CCSID EBCDIC;




    CREATE TABLE CSQ.ADMIN_B_QMGR
        (QMGRNAME CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,ACTSTATE CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT NULL
        ,DESCR CHARACTER(64) FOR SBCS DATA
  WITH DEFAULT NULL
        ,PLATFORM CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,IGQAUT CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CPILEVEL INTEGER
  WITH DEFAULT NULL
        ,CMDLEVEL INTEGER
  WITH DEFAULT NULL
        ,"CCSID" INTEGER
  WITH DEFAULT NULL
        ,MAXPRTY INTEGER
  WITH DEFAULT NULL
        ,MAXMSGL INTEGER
  WITH DEFAULT NULL
        ,SYNCPT CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,COMMANDQ CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,DEADQ CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,TRIGINT INTEGER
  WITH DEFAULT NULL
        ,MAXHANDS INTEGER
  WITH DEFAULT NULL
        ,AUTHOREV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,INHIBTEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,LOCALEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,REMOTEEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,STRSTPEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,PERFMEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CHAD CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CHADEXIT CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CLWLDATA CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CLWLEXIT CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,REPOS CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,REPOSNL CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,QMID CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,DEFXMITQ CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,MVERSIONL INTEGER
  WITH DEFAULT NULL
        ,MVERSIONH INTEGER
  WITH DEFAULT NULL
        ,QSGCREATE CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VSOBJECT VARCHAR(2560) FOR SBCS DATA
  WITH DEFAULT NULL
        ,BSDS_NAME1 CHARACTER(44) FOR SBCS DATA
  WITH DEFAULT ' '
        ,BSDS_NAME2 CHARACTER(44) FOR SBCS DATA
  WITH DEFAULT ' '
        ,BSDS_STATUS1 CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT X'00'
        ,BSDS_STATUS2 CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT X'00'
        ,CONFIGEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'DISABLED'
        ,MAXUMSGS INTEGER
  WITH DEFAULT 10000
        ,SSLTASKS INTEGER
  WITH DEFAULT 0
        ,SSLCRLNL CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT ' '
        ,SSLKEYR VARCHAR(256) FOR SBCS DATA
  WITH DEFAULT ' '
        ,EXPRYINT INTEGER
  WITH DEFAULT 0
        ,CONSTRAINT QMGRNAME PRIMARY KEY
        (QMGRNAME
        )
        )
        IN CSQDBOF.TSADMIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.ADMIN_QMGR
           ON CSQ.ADMIN_B_QMGR
          (QMGRNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.ADMIN_B_QSG
        (QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,ARRAY_QMGR CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT NULL
        ,ARRAY_STRUC CHARACTER(64) FOR SBCS DATA
  WITH DEFAULT NULL
        ,PRODLVL CHARACTER(3) FOR SBCS DATA
                                                        NOT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,RECON_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT X'00'
        ,RECON_QMGRNUM SMALLINT
  WITH DEFAULT 0
        ,CONSTRAINT QSGNAME PRIMARY KEY
        (QSGNAME
        )
        )
        IN CSQDBOF.TSADMIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.ADMIN_QSG
           ON CSQ.ADMIN_B_QSG
          (QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.ADMIN_B_STRBACKUP
        (STRUCNAME CHARACTER(12) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,QMGRNAME CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,STRUCNUM SMALLINT
  WITH DEFAULT NULL
        ,FAIL_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,BSTART_RBA CHARACTER(6) FOR SBCS DATA
  WITH DEFAULT NULL
        ,BEND_RBA CHARACTER(6) FOR SBCS DATA
  WITH DEFAULT NULL
        ,BSTART_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,BEND_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,MVERSION INTEGER
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,STRUC_INTRST VARCHAR(256) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CONSTRAINT STRUCNAME PRIMARY KEY
        (STRUCNAME
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSADMIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.ADMIN_STRBACKUP
           ON CSQ.ADMIN_B_STRBACKUP
          (STRUCNAME ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.ADMIN_B_STRUCTURE
        (STRUCNAME CHARACTER(12) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,LH_ARRAY CHARACTER(64) FOR SBCS DATA
  WITH DEFAULT NULL
        ,STRUC_INTRST CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT NULL
        ,STRUCNUM SMALLINT
  WITH DEFAULT NULL
        ,PRODLVL CHARACTER(3) FOR SBCS DATA
                                                        NOT NULL
        ,CFSTATUS CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,MVERSION INTEGER
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,RECOVER CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT 'N'
        ,DESCR CHARACTER(64) FOR SBCS DATA
  WITH DEFAULT ' '
        ,OFFLOAD CHARACTER(1) FOR BIT DATA
  WITH DEFAULT X'00'
        ,OFFLDUSE CHARACTER(1) FOR BIT DATA
  WITH DEFAULT X'00'
        ,OFFLD1TH INTEGER
  WITH DEFAULT 0
        ,OFFLD1SZ INTEGER
  WITH DEFAULT 0
        ,OFFLD2TH INTEGER
  WITH DEFAULT 0
        ,OFFLD2SZ INTEGER
  WITH DEFAULT 0
        ,OFFLD3TH INTEGER
  WITH DEFAULT 0
        ,OFFLD3SZ INTEGER
  WITH DEFAULT 0
        ,DSGROUP CHARACTER(44) FOR SBCS DATA
  WITH DEFAULT
        ,DSPREFIX_LENGTH SMALLINT
  WITH DEFAULT 0
        ,DSBLOCK_POWER SMALLINT
  WITH DEFAULT 0
        ,DEFAULT_DSBUFS INTEGER
  WITH DEFAULT 0
        ,DEFAULT_DSEXPAND CHARACTER(1) FOR BIT DATA
  WITH DEFAULT X'00'
        ,DEFAULT_DSACCESS CHARACTER(1) FOR BIT DATA
  WITH DEFAULT X'00'
        ,QMGR_LIST VARCHAR(1024) FOR BIT DATA
  WITH DEFAULT
        ,RECAUTO CHARACTER(1) FOR BIT DATA
  WITH DEFAULT X'00'
        ,CFCONLOS CHARACTER(1) FOR BIT DATA
  WITH DEFAULT X'00'
        ,CONSTRAINT STRUCNAME PRIMARY KEY
        (STRUCNAME
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSADMIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.ADMIN_STRUCTURE
           ON CSQ.ADMIN_B_STRUCTURE
          (STRUCNAME ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.EXTEND_B_QMGR
        (QMGRNAME CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,ACCTQ CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'ON'
        ,MONQ CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'OFF'
        ,CHLEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'ENABLED'
        ,BRIDGEEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'ENABLED'
        ,SSLEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'ENABLED'
        ,CMDEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'DISABLED'
        ,IPADDRV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'IPV4'
        ,ACTCHL INTEGER
  WITH DEFAULT 200
        ,ADOPTCHK CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'ALL'
        ,ADOPTMCA CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'NO'
        ,CHIADAPS INTEGER
  WITH DEFAULT 8
        ,CHIDISPS INTEGER
  WITH DEFAULT 5
        ,CHISERVP CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT X'00'
        ,DNSGROUP CHARACTER(18) FOR SBCS DATA
  WITH DEFAULT ' '
        ,DNSWLM CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'NO'
        ,LSTRTMR SMALLINT
  WITH DEFAULT 60
        ,LUGROUP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT ' '
        ,LUNAME CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT ' '
        ,LU62ARM CHARACTER(2) FOR SBCS DATA
  WITH DEFAULT ' '
        ,LU62CHL INTEGER
  WITH DEFAULT 200
        ,MAXCHL INTEGER
  WITH DEFAULT 200
        ,OPORTMIN INTEGER
  WITH DEFAULT 0
        ,OPORTMAX INTEGER
  WITH DEFAULT 0
        ,RCVTIME INTEGER
  WITH DEFAULT 0
        ,RCVTTYPE CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'MULTIPLY'
        ,RCVTMIN INTEGER
  WITH DEFAULT 0
        ,TCPCHL INTEGER
  WITH DEFAULT 200
        ,TCPKEEP CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'NO'
        ,TCPNAME CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT 'TCPIP'
        ,TCPSTACK CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'SINGLE'
        ,TRAXSTR CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'YES'
        ,TRAXTBL INTEGER
  WITH DEFAULT 2
        ,SSLRKEYC INTEGER
  WITH DEFAULT 0
        ,SQQMNAME CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'USE'
        ,MONACLS CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'QMGR'
        ,MONCHL CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'OFF'
        ,CLWLMRUC INTEGER
  WITH DEFAULT 999999999
        ,CLWLUSEQ CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'LOCAL'
        ,ROUTEREC CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'MSG'
        ,ACTIVREC CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'MSG'
        ,CONSTRAINT QMGRNAME PRIMARY KEY
        (QMGRNAME
        )
        )
        IN CSQDBOF.TSADMIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.EXTEND_QMGR
           ON CSQ.EXTEND_B_QMGR
          (QMGRNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.OBJ_B_AUTHINFO
        (AUTHINFO CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,AUTHTYPE CHARACTER(10) FOR SBCS DATA
                                                        NOT NULL
        ,DESCR CHARACTER(64) FOR SBCS DATA
  WITH DEFAULT NULL
        ,QSGDISP CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,MVERSION INTEGER
  WITH DEFAULT NULL
        ,LDAPPWD CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT NULL
        ,LDAPUSER VARCHAR(256) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CONNAME VARCHAR(264) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VSOBJECT VARCHAR(2560) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CONSTRAINT AUTHINFO PRIMARY KEY
        (AUTHINFO
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSADMIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.OBJ_AUTHINFO
           ON CSQ.OBJ_B_AUTHINFO
          (AUTHINFO ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.OBJ_B_PROCESS
        (PROCNAME CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,DESCR CHARACTER(64) FOR SBCS DATA
                                                        NOT NULL
        ,QSGDISP CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,APPLTYPE CHARACTER(4) FOR SBCS DATA
  WITH DEFAULT NULL
        ,APPLICID VARCHAR(256) FOR SBCS DATA
  WITH DEFAULT NULL
        ,ENVRDATA CHARACTER(128) FOR SBCS DATA
  WITH DEFAULT NULL
        ,USERDATA CHARACTER(128) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VSOBJECT VARCHAR(2560) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CONSTRAINT PROCNAME PRIMARY KEY
        (PROCNAME
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSADMIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.OBJ_PROCESS
           ON CSQ.OBJ_B_PROCESS
          (PROCNAME ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.OBJ_B_QUEUE
        (QNAME CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,QTYPE CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CFCACHE CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT NULL
        ,DELCOMMIT CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT NULL
        ,"CLUSTER" CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CLUSNL CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,DEFBIND CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,DEFPRTY INTEGER
  WITH DEFAULT NULL
        ,DEFPSIST CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,QSGDISP CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,DEFTYPE CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,DESCR CHARACTER(64) FOR SBCS DATA
  WITH DEFAULT NULL
        ,PUT CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,BOQNAME CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,BOTHRESH INTEGER
  WITH DEFAULT NULL
        ,DEFSOPT CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,"GET" CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,HARDENBO CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,INDXTYPE CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,INITQ CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,LHNUMBER SMALLINT
  WITH DEFAULT NULL
        ,MAXDEPTH INTEGER
  WITH DEFAULT NULL
        ,MAXMSGL INTEGER
  WITH DEFAULT NULL
        ,MSGDLVSQ CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,PROCESS CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,QDEPTHHI INTEGER
  WITH DEFAULT NULL
        ,QDEPTHLO INTEGER
  WITH DEFAULT NULL
        ,QDPHIEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,QDPLOEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,QDPMAXEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,QSVCIEV CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,QSVCINT INTEGER
  WITH DEFAULT NULL
        ,RETINTVL INTEGER
  WITH DEFAULT NULL
        ,RNAME CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,RQMNAME CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,SHARE CHARACTER(7) FOR SBCS DATA
  WITH DEFAULT NULL
        ,STGCLASS CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,STRUCNAME CHARACTER(12) FOR SBCS DATA
  WITH DEFAULT NULL
        ,STRUCNUM SMALLINT
  WITH DEFAULT NULL
        ,TARGQ CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,TRIGDATA CHARACTER(64) FOR SBCS DATA
  WITH DEFAULT NULL
        ,TRIGDPTH INTEGER
  WITH DEFAULT NULL
        ,"TRIGGER" CHARACTER(9) FOR SBCS DATA
  WITH DEFAULT NULL
        ,TRIGMPRI INTEGER
  WITH DEFAULT NULL
        ,TRIGTYPE CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,USAGE CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,XMITQ CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,MVERSION INTEGER
  WITH DEFAULT NULL
        ,STRUCSTAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VSOBJECT VARCHAR(2560) FOR SBCS DATA
  WITH DEFAULT NULL
        ,ACCTQ CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'ON'
        ,MONQ CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'QMGR'
        ,CLWLRANK INTEGER
  WITH DEFAULT 0
        ,CLWLPRTY INTEGER
  WITH DEFAULT 0
        ,CLWLUSEQ CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'QMGR'
        ,NPMCLASS CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'NORMAL'
        ,CONSTRAINT QNAME PRIMARY KEY
        (QNAME
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSADMIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.OBJ_QUEUE_IX1
           ON CSQ.OBJ_B_QUEUE
          (QNAME ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 10
           PCTFREE 20
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE INDEX CSQ.OBJ_QUEUE_IX2
           ON CSQ.OBJ_B_QUEUE
          (QSGNAME ASC
          ,QSGDISP ASC
          ,CREATE_STAMP ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 10
           PCTFREE 20
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.OBJ_B_STGCLASS
        (STGCNAME CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,DESCR CHARACTER(64) FOR SBCS DATA
                                                        NOT NULL
        ,QSGDISP CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,"PSID" INTEGER
  WITH DEFAULT NULL
        ,XCFGNAME CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,XCFMNAME CHARACTER(16) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VSOBJECT VARCHAR(2560) FOR SBCS DATA
  WITH DEFAULT NULL
        ,PASSTKTA CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT ' '
        ,CONSTRAINT STGCNAME PRIMARY KEY
        (STGCNAME
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSADMIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.OBJ_STGCLASS
           ON CSQ.OBJ_B_STGCLASS
          (STGCNAME ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLESPACE TSADMNBL
           IN CSQDBOF
           BUFFERPOOL BP2
           CLOSE NO
           LOCKMAX SYSTEM
           SEGSIZE 0
           DEFINE YES
           LOGGED
           LOCKSIZE ANY
           MAXROWS 255
           CCSID EBCDIC
           NUMPARTS 4
          (PARTITION 1
                     USING STOGROUP GSMS
                                    PRIQTY -1
                                    SECQTY -1
                                    ERASE NO
                     PCTFREE 5
                     FREEPAGE 0
                     GBPCACHE CHANGED
                     COMPRESS NO
                     TRACKMOD YES
          ,PARTITION 2
                     USING STOGROUP GSMS
                                    PRIQTY -1
                                    SECQTY -1
                                    ERASE NO
                     PCTFREE 5
                     FREEPAGE 0
                     GBPCACHE CHANGED
                     COMPRESS NO
                     TRACKMOD YES
          ,PARTITION 3
                     USING STOGROUP GSMS
                                    PRIQTY -1
                                    SECQTY -1
                                    ERASE NO
                     PCTFREE 5
                     FREEPAGE 0
                     GBPCACHE CHANGED
                     COMPRESS NO
                     TRACKMOD YES
          ,PARTITION 4
                     USING STOGROUP GSMS
                                    PRIQTY -1
                                    SECQTY -1
                                    ERASE NO
                     PCTFREE 5
                     FREEPAGE 0
                     GBPCACHE CHANGED
                     COMPRESS NO
                     TRACKMOD YES);




    CREATE TABLE CSQ.ADMIN_B_MESSAGES
        (LEID CHARACTER(12) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,SEGMENTNUM SMALLINT
                                                        NOT NULL
        ,MROWID ROWID
                                                        NOT NULL
  GENERATED ALWAYS
        ,STRUCNUM SMALLINT
  WITH DEFAULT NULL
        ,LHNUMBER SMALLINT
  WITH DEFAULT NULL
        ,MVERSION INTEGER
  WITH DEFAULT NULL
        ,BASEPART CHARACTER(2) FOR SBCS DATA
  WITH DEFAULT NULL
        ,MESSAGE BLOB(512K)
  WITH DEFAULT NULL
        ,DELCOMMIT CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT 'N'
        ,RECON_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT X'00'
        ,PERSISTENT CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT NULL
        ,MSG_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CONSTRAINT LEID PRIMARY KEY
        (LEID
        ,QSGNAME
        ,SEGMENTNUM
        )
        )
        IN CSQDBOF.TSADMNBL
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE INDEX CSQ.CLUS_INDEX
           ON CSQ.ADMIN_B_MESSAGES
          (BASEPART ASC
          )
           CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           PARTITION BY RANGE
          (PARTITION 1    ENDING AT(X'3FFF')
                     USING STOGROUP GSMS
                                    PRIQTY -1
                                    SECQTY -1
                                    ERASE NO
                     FREEPAGE 0
                     PCTFREE 10
                     GBPCACHE CHANGED
          ,PARTITION 2    ENDING AT(X'7FFF')
                     USING STOGROUP GSMS
                                    PRIQTY -1
                                    SECQTY -1
                                    ERASE NO
                     FREEPAGE 0
                     PCTFREE 10
                     GBPCACHE CHANGED
          ,PARTITION 3    ENDING AT(X'BFFF')
                     USING STOGROUP GSMS
                                    PRIQTY -1
                                    SECQTY -1
                                    ERASE NO
                     FREEPAGE 0
                     PCTFREE 10
                     GBPCACHE CHANGED
          ,PARTITION 4    ENDING AT(X'FFFF')
                     USING STOGROUP GSMS
                                    PRIQTY -1
                                    SECQTY -1
                                    ERASE NO
                     FREEPAGE 0
                     PCTFREE 10
                     GBPCACHE CHANGED);




    CREATE        UNIQUE INDEX CSQ.ADMIN_MESSAGES_IX1
           ON CSQ.ADMIN_B_MESSAGES
          (LEID ASC
          ,QSGNAME ASC
          ,SEGMENTNUM ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE LOB TABLESPACE TSBLOB1
           IN CSQDBOF
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP8
           DSSIZE 4G
           CLOSE NO
           LOCKMAX 0
           GBPCACHE SYSTEM
           DEFINE YES
           LOGGED
           LOCKSIZE LOB;




    CREATE AUXILIARY TABLE CSQ.ADMIN_MSGS_BAUX1
        IN CSQDBOF.TSBLOB1
        STORES CSQ.ADMIN_B_MESSAGES
        APPEND NO
        COLUMN MESSAGE PART 1;




    CREATE        UNIQUE INDEX CSQ.ADMIN_MSGS1
           ON CSQ.ADMIN_MSGS_BAUX1
           PADDED
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 4194304K;




    CREATE LOB TABLESPACE TSBLOB2
           IN CSQDBOF
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP8
           DSSIZE 4G
           CLOSE NO
           LOCKMAX 0
           GBPCACHE SYSTEM
           DEFINE YES
           LOGGED
           LOCKSIZE LOB;




    CREATE AUXILIARY TABLE CSQ.ADMIN_MSGS_BAUX2
        IN CSQDBOF.TSBLOB2
        STORES CSQ.ADMIN_B_MESSAGES
        APPEND NO
        COLUMN MESSAGE PART 2;




    CREATE        UNIQUE INDEX CSQ.ADMIN_MSGS2
           ON CSQ.ADMIN_MSGS_BAUX2
           PADDED
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 4194304K;




    CREATE LOB TABLESPACE TSBLOB3
           IN CSQDBOF
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP8
           DSSIZE 4G
           CLOSE NO
           LOCKMAX 0
           GBPCACHE SYSTEM
           DEFINE YES
           LOGGED
           LOCKSIZE LOB;




    CREATE AUXILIARY TABLE CSQ.ADMIN_MSGS_BAUX3
        IN CSQDBOF.TSBLOB3
        STORES CSQ.ADMIN_B_MESSAGES
        APPEND NO
        COLUMN MESSAGE PART 3;




    CREATE        UNIQUE INDEX CSQ.ADMIN_MSGS3
           ON CSQ.ADMIN_MSGS_BAUX3
           PADDED
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 4194304K;




    CREATE LOB TABLESPACE TSBLOB4
           IN CSQDBOF
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP8
           DSSIZE 4G
           CLOSE NO
           LOCKMAX 0
           GBPCACHE SYSTEM
           DEFINE YES
           LOGGED
           LOCKSIZE LOB;




    CREATE AUXILIARY TABLE CSQ.ADMIN_MSGS_BAUX4
        IN CSQDBOF.TSBLOB4
        STORES CSQ.ADMIN_B_MESSAGES
        APPEND NO
        COLUMN MESSAGE PART 4;




    CREATE        UNIQUE INDEX CSQ.ADMIN_MSGS4
           ON CSQ.ADMIN_MSGS_BAUX4
           PADDED
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 4194304K;




    CREATE TABLESPACE TSCHIN
           IN CSQDBOF
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP2
           CLOSE NO
           LOCKMAX SYSTEM
           SEGSIZE 64
           FREEPAGE 10
           PCTFREE 30
           GBPCACHE CHANGED
           DEFINE YES
           LOGGED
           TRACKMOD YES
           COMPRESS NO
           LOCKSIZE ANY
           MAXROWS 255
           CCSID EBCDIC;




    CREATE TABLE CSQ.ADMIN_B_SCST
        (CHLCRESTAMP CHARACTER(10) FOR SBCS DATA
                                                        NOT NULL
        ,CHLUPDSTAMP CHARACTER(10) FOR SBCS DATA
                                                        NOT NULL
        ,XMITQ CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,CHLNAME CHARACTER(20) FOR SBCS DATA
                                                        NOT NULL
        ,REMOTEQMGR CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,OWNINGQMGR CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,CHLTOKEN CHARACTER(20) FOR SBCS DATA
                                                        NOT NULL
        ,REMOTEMACH CHARACTER(20) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CHANNELSTATUS CHARACTER(1) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CHANNELTYPE INTEGER
  WITH DEFAULT NULL
        ,LONGRETRYCOUNT INTEGER
  WITH DEFAULT NULL
        ,SHORTRETRYCOUNT INTEGER
  WITH DEFAULT NULL
        ,NEXTRETRYTIME INTEGER
  WITH DEFAULT NULL
        ,"DATA" CHARACTER(4) FOR BIT DATA
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CONSTRAINT XMITQ PRIMARY KEY
        (XMITQ
        ,CHLNAME
        ,REMOTEQMGR
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSCHIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.ADMIN_SCST_IX1
           ON CSQ.ADMIN_B_SCST
          (XMITQ ASC
          ,CHLNAME ASC
          ,REMOTEQMGR ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 5
           PCTFREE 30
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE INDEX CSQ.ADMIN_SCST_IX4
           ON CSQ.ADMIN_B_SCST
          (QSGNAME ASC
          ,CHLCRESTAMP ASC
          ,CHLUPDSTAMP ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 5
           PCTFREE 30
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE INDEX CSQ.ADMIN_SCST_IX3
           ON CSQ.ADMIN_B_SCST
          (QSGNAME ASC
          ,CHLNAME ASC
          ,CHANNELSTATUS ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 5
           PCTFREE 30
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE        UNIQUE INDEX CSQ.ADMIN_SCST_IX2
           ON CSQ.ADMIN_B_SCST
          (CHLCRESTAMP ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 5
           PCTFREE 30
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE        UNIQUE INDEX CSQ.ADMIN_SCST_IX5
           ON CSQ.ADMIN_B_SCST
          (QSGNAME ASC
          ,CHLTOKEN ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 5
           PCTFREE 30
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.ADMIN_B_SSKT
        (XMITQ CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,CHLNAME CHARACTER(20) FOR SBCS DATA
                                                        NOT NULL
        ,REMOTEQMGR CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,"KEY" INTEGER
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CONSTRAINT XMITQ PRIMARY KEY
        (XMITQ
        ,CHLNAME
        ,REMOTEQMGR
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSCHIN
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.ADMIN_SSKT_IX1
           ON CSQ.ADMIN_B_SSKT
          (XMITQ ASC
          ,CHLNAME ASC
          ,REMOTEQMGR ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 5
           PCTFREE 30
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLESPACE TSNL32K
           IN CSQDBOF
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP32K
           CLOSE NO
           LOCKMAX SYSTEM
           SEGSIZE 4
           FREEPAGE 0
           PCTFREE 5
           GBPCACHE CHANGED
           DEFINE YES
           LOGGED
           TRACKMOD YES
           COMPRESS NO
           LOCKSIZE ANY
           MAXROWS 255
           CCSID EBCDIC;




    CREATE TABLE CSQ.OBJ_B_CHANNEL
        (CHLNAME CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,CHLTYPE CHARACTER(10) FOR SBCS DATA
                                                        NOT NULL
        ,DESCR CHARACTER(64) FOR SBCS DATA
                                                        NOT NULL
        ,QSGDISP CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,TRPTYPE CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,"CLUSTER" CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CLUSNL CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,XMITQ CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,BATCHINT INTEGER
  WITH DEFAULT NULL
        ,BATCHSZ INTEGER
  WITH DEFAULT NULL
        ,CONVERT CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,DISCINT INTEGER
  WITH DEFAULT NULL
        ,HBINT INTEGER
  WITH DEFAULT NULL
        ,LONGRTY INTEGER
  WITH DEFAULT NULL
        ,LONGTMR INTEGER
  WITH DEFAULT NULL
        ,MAXMSGL INTEGER
  WITH DEFAULT NULL
        ,MCANAME CHARACTER(20) FOR SBCS DATA
  WITH DEFAULT NULL
        ,MCAUSER CHARACTER(12) FOR SBCS DATA
  WITH DEFAULT NULL
        ,MODENAME CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,MSGDATA CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT NULL
        ,MSGEXIT CHARACTER(128) FOR SBCS DATA
  WITH DEFAULT NULL
        ,NETPRTY INTEGER
  WITH DEFAULT NULL
        ,NPMSPEED CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,PASSWORD CHARACTER(12) FOR SBCS DATA
  WITH DEFAULT NULL
        ,PUTAUT CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,QMNAME CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,RCVDATA CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT NULL
        ,RCVEXIT CHARACTER(128) FOR SBCS DATA
  WITH DEFAULT NULL
        ,SCYDATA CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT NULL
        ,SCYEXIT CHARACTER(128) FOR SBCS DATA
  WITH DEFAULT NULL
        ,SENDDATA CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT NULL
        ,SENDEXIT CHARACTER(128) FOR SBCS DATA
  WITH DEFAULT NULL
        ,SEQWRAP INTEGER
  WITH DEFAULT NULL
        ,SHORTRTY INTEGER
  WITH DEFAULT NULL
        ,SHORTTMR INTEGER
  WITH DEFAULT NULL
        ,TPNAME CHARACTER(64) FOR SBCS DATA
  WITH DEFAULT NULL
        ,USERID CHARACTER(12) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CONNAME VARCHAR(264) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VSOBJECT VARCHAR(8190) FOR SBCS DATA
  WITH DEFAULT NULL
        ,BATCHHB INTEGER
  WITH DEFAULT 0
        ,KAINT INTEGER
  WITH DEFAULT 120
        ,LOCLADDR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT ' '
        ,MSGEXITS VARCHAR(1024) FOR SBCS DATA
  WITH DEFAULT ' '
        ,MSGDATAS VARCHAR(256) FOR SBCS DATA
  WITH DEFAULT ' '
        ,SENDEXITS VARCHAR(1024) FOR SBCS DATA
  WITH DEFAULT ' '
        ,SENDDATAS VARCHAR(256) FOR SBCS DATA
  WITH DEFAULT ' '
        ,RCVEXITS VARCHAR(1024) FOR SBCS DATA
  WITH DEFAULT ' '
        ,RCVDATAS VARCHAR(256) FOR SBCS DATA
  WITH DEFAULT ' '
        ,SSLCAUTH CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'REQUIRED'
        ,SSLCIPH CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT ' '
        ,SSLPEER VARCHAR(256) FOR SBCS DATA
  WITH DEFAULT ' '
        ,MREXIT CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT ' '
        ,MRDATA CHARACTER(32) FOR SBCS DATA
  WITH DEFAULT ' '
        ,MRRTY INTEGER
  WITH DEFAULT 0
        ,MRTMR INTEGER
  WITH DEFAULT 1000
        ,COMPHDR CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'NONE'
        ,COMPMSG CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'NONE'
        ,MONCHL CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'QMGR'
        ,CLWLRANK INTEGER
  WITH DEFAULT 0
        ,CLWLPRTY INTEGER
  WITH DEFAULT 0
        ,CLWLWGHT INTEGER
  WITH DEFAULT 50
        ,CONSTRAINT CHLNAME PRIMARY KEY
        (CHLNAME
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSNL32K
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.OBJ_CHANNEL
           ON CSQ.OBJ_B_CHANNEL
          (CHLNAME ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE        UNIQUE INDEX CSQ.DEL_OBJ_CHANNEL
           ON CSQ.OBJ_B_CHANNEL
          (CHLNAME ASC
          ,CHLTYPE ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.OBJ_B_NAMELIST
        (NLNAME CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,DESCR CHARACTER(64) FOR SBCS DATA
                                                        NOT NULL
        ,QSGDISP CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VSOBJECT VARCHAR(2560) FOR SBCS DATA
  WITH DEFAULT NULL
        ,NAMES VARCHAR(12288) FOR SBCS DATA
  WITH DEFAULT NULL
        ,NLTYPE CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT 'NONE'
        ,CONSTRAINT NLNAME PRIMARY KEY
        (NLNAME
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSNL32K
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.OBJ_NAMELIST
           ON CSQ.OBJ_B_NAMELIST
          (NLNAME ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;




    CREATE TABLE CSQ.OBJ_B_TOPIC
        (TOPIC CHARACTER(48) FOR SBCS DATA
                                                        NOT NULL
        ,QSGNAME CHARACTER(4) FOR SBCS DATA
                                                        NOT NULL
        ,QSGDISP CHARACTER(10) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VERSIONCOUNT INTEGER
  WITH DEFAULT NULL
        ,UPDT_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,UPDT_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,UPDT_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGR CHARACTER(48) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CREATE_QMGRNUM SMALLINT
  WITH DEFAULT NULL
        ,CREATE_STAMP CHARACTER(8) FOR SBCS DATA
  WITH DEFAULT NULL
        ,VSOBJECT VARCHAR(14336) FOR SBCS DATA
  WITH DEFAULT NULL
        ,CONSTRAINT TOPIC PRIMARY KEY
        (TOPIC
        ,QSGNAME
        )
        )
        IN CSQDBOF.TSNL32K
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;




    CREATE        UNIQUE INDEX CSQ.OBJ_TOPIC
           ON CSQ.OBJ_B_TOPIC
          (TOPIC ASC
          ,QSGNAME ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;
}¢--- A540769.WK.SQL(CURRENT) cre=2008-03-17 mod=2008-03-17-09.04.18 F540769 ---
select current server, current member
    from sysibm.sysDummy1
}¢--- A540769.WK.SQL(CXEXP) cre=2015-09-16 mod=2015-09-16-09.37.38 A540769 -----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
select r.* from oa1p.vqz005RecovLoad r
   where (db = 'QZ01A1P' and ts in (?, ?, ?))
      or (db = ? and ts in (?, ?, ?))
      or (db = ? and ts in (?, ?, ?))
/* join (select unique dbName, tsName, partition
  from sysIbm.sysTablePart tp
  where  (tp.dbName, tp.tsName) in
  (select ts.dbName, ts.name
    from sysIbm.sysTableSpace ts
    where  (ts.dbName, ts.name) in
    (select t.dbName, t.tsName
      from sysIbm.sysTables t
      where t.type not in ('A', 'V') and  (t.creator, t.name) in
      (select vd.bCreator, vd.bName
        from sysIbm.sysViewDep vd
        where  (vd.dCreator, vd.dName) in
        (select v.creator, v.name
          from sysIbm.sysTables v
          where v.type = 'V' and  v.name like 'VQZ%REC%'
  ) ) ) ) ) j
  on r.db = j.dbName and r.ts = j.tsName and r.pa = j.partition
*/  order by db, ts, pa
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(DASDFI) cre=2006-05-29 mod=2006-05-29-12.55.11 F540769 ----
SELECT  SUBSTR(OSP_SET_NM,1,8) AS FILTER
       ,SUBSTR(CHAR(OSP_SEQ_NBR),1,2) AS SEQ
       ,STRIP(OSP_INCEXC_IND) AS IND
       ,STRIP(OSP_TYP_CD) AS TYP
       ,SUBSTR(OSP_OBJ_QUAL1,1,8) AS QUAL1
       ,SUBSTR(OSP_OBJ_QUAL2,1,8) AS QUAL2
       ,SUBSTR(OSP_OBJ_QUAL3,1,8) AS QUAL3
       ,DATE(OSP_MNT_TSTMP) AS MUT_DATE
FROM BMCASU71.V71_OBJSET_SPECS
WHERE OSP_SET_NM LIKE 'FR%'
ORDER BY OSP_SET_NM,OSP_SEQ_NBR
WITH UR;
}¢--- A540769.WK.SQL(DATA1) cre=2015-01-30 mod=2015-01-30-13.11.54 A540769 -----
with l (l) as
(
  select 0 from sysibm.sysDummy1
  union all select l+1 from l where l < 10
)
select l, rand(), rand(1), rand(3456), rand(98745)
    from l
;
with l (l) as
(
  select 0 from sysibm.sysDummy1
  union all select l+1 from l where l < 20
)
select l, rand(), rand(1), rand(3456), rand(98745)
    from l
;X;














select sum(bigInt(length(t))), count(*)
    from t2
}¢--- A540769.WK.SQL(DATE) cre=2007-07-12 mod=2013-03-07-13.06.44 A540769 ------
with d (d) as (
           select current timestamp                from sysibm.sysDummy1
 union all select timestamp('2013-01-01-00.00.00') from sysibm.sysDummy1
 union all select timestamp('2012-12-31-00.00.00') from sysibm.sysDummy1
 union all select timestamp('2012-01-01-00.00.00') from sysibm.sysDummy1
 union all select timestamp('2012-01-01-00.00.00') from sysibm.sysDummy1
 union all select timestamp('2012-01-01-23.59.00') from sysibm.sysDummy1
 union all select timestamp('2011-12-31-00.00.00') from sysibm.sysDummy1
 union all select timestamp('2011-01-01-00.00.00') from sysibm.sysDummy1
 union all select timestamp('2010-12-31-00.00.00') from sysibm.sysDummy1
 union all select timestamp('2010-01-01-00.00.00') from sysibm.sysDummy1
 union all select timestamp('2009-12-31-00.00.00') from sysibm.sysDummy1
)
select d
  , smallInt(dayOfWeek(d)) "dayWe"
  , smallInt(dayOfWeek_Iso(d)) "dayWI"
  , smallInt(dayOfWeek(d)) "dayWe"
  , date(trunc_timestamp(d, 'day')) "trunc(day)"
  , date(trunc_timestamp(d, 'iw')) iw
  , date(trunc_timestamp(d, 'ww')) ww
  , dayOfWeek(d) "dayWe"
  , date(trunc_timestamp(d - dayOfWeek(d) days, 'day')) dw
from d
;;,
select visum2_timestamp,
       char(date(visum2_timestamp), iso),
       translate('1234679a', char(date(visum2_timestamp), iso)
            , '123456789a')
    from OA1T.VKS835A1V
    fetch first 1000 rows only
 ;;;
select char(current date, iso),
       translate('1234679a', char(current timestamp, iso), '123456789a')
    from sysibm.sysDummy1
;;;
select right(digits(year(current date)), 4)
         || right(digits(month(current date)), 2)
         || right(digits(day(current date)), 2)
    from sysibm.sysDummy1
;
select strip(char(year(current date)))
         || right('0' || strip(char(month(current date))), 2)
         || right('0' || strip(char(day(current date))), 2)
    from sysibm.sysDummy1
;
select replace(char(current date, iso), '-', '') "iso rep"
    from sysibm.sysDummy1
;
select current date "def",
       char(current date) "char",
       char(current date, iso) "iso",
       char(current date, eur) "eur",
       char(current date, usa) "usa",
       char(current date, jis) "jis",
       char(current date, local) "local",
       replace(char(current date, iso), '-', '') "iso rep",
       right(digits(year(current date)), 4)
         || right(digits(month(current date)), 2)
         || right(digits(day(current date)), 2)
    from sysibm.sysDummy1
;
x
delete from                    LDAP101A.DIR_DESC         ;
delete from                    LDAP101A.DIR_ENTRY        ;
delete from                    LDAP101A.DIR_LONGATTR     ;
commit;
delete from                    LDAP101A.DIR_LONGENTRY    ;
delete from                    LDAP101A.DIR_ATTRID       ;
delete from                    LDAP101A.DIR_CACHE        ;
delete from                    LDAP101A.DIR_MISC         ;
commit;
delete from                    LDAP101A.DIR_PROGRESS     ;
delete from                    LDAP101A.DIR_REGISTER     ;
delete from                    LDAP101A.DIR_CHANGE       ;
delete from                    LDAP101A.DIR_LONGCHANGE   ;
delete from                    LDAP101A.DIR_SEARCH       ;
commit;
x
delete from DGDB9998.TWK001A;
INSERT INTO DGDB9998.TWK001A (WK001NAME, WK001NUM, WK001DA, WK001T1)
      VALUES  ('eur', 999, '25.12.2007', 'a');
INSERT INTO DGDB9998.TWK001A (WK001NAME, WK001NUM, WK001DA, WK001T1)
      VALUES  ('iso', 999, '2007-12-26', 'a');
INSERT INTO DGDB9998.TWK001A (WK001NAME, WK001NUM, WK001DA, WK001T1)
      VALUES  ('usa', 999, '12/27/2007', 'a');
SELECT * FROM DGDB9998.TWK001A;
rollback
}¢--- A540769.WK.SQL(DBAMSK1) cre=2006-07-10 mod=2006-07-10-16.39.25 F540769 ---
NAME:TWK*,TAB_*
NAME:*WK*,*XYZ*
DBNAME:*,DBNEU
}¢--- A540769.WK.SQL(DBATST) cre=2006-08-25 mod=2006-08-25-09.17.26 F540769 ----
  set current sqlid = 's100447';
     drop   TABLESPACE DGDB9998.A012A;
  commit;
  CREATE TABLESPACE A012A
    IN DGDB9998
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 100
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 8
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  COMMIT;
--
------------------------------------------------------------------------
--    Table=GDB9998.TWK012A In DGDB9998.A012A
------------------------------------------------------------------------
--
  CREATE TABLE GDB9998.TWK012A
     (WK012CH20            CHAR(20) ,
      WK012CH4             CHAR(4) ,
      WK012CH2             timestamp,
      wk012tst             char(2)
     )
    IN DGDB9998.A012A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  COMMIT;
--    Index=GDB9998.IWK012A0 On GDB9998.TWK012A
------------------------------------------------------------------------
--
  CREATE INDEX GDB9998.IWK012A0
    ON GDB9998.TWK012A
     (WK012CH20             ASC)
    USING STOGROUP GSMS
    PRIQTY 12 SECQTY 12
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
}¢--- A540769.WK.SQL(DBATSTB) cre=2006-09-07 mod=2006-09-07-17.29.56 F540769 ---
  set current sqlid = 's100447';
  -- drop   TABLESPACE DGDB9998b.a012b;
  commit;
  CREATE TABLESPACE a012b
    IN DGDB9998
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 100
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 8
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  COMMIT;
--
------------------------------------------------------------------------
--    Table=GDB9998b.TWK012A In DGDB9998.a012b
------------------------------------------------------------------------
--
  CREATE TABLE GDB9998b.TWK012A
     (WK012CH20            CHAR(20) ,
      WK012CH4             CHAR(4) ,
      WK012CH2             timestamp,
      wk012tst             char(2)
     )
    IN DGDB9998.a012b
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  COMMIT;
--    Index=GDB9998b.IWK012A0 On GDB9998b.TWK012A
------------------------------------------------------------------------
--
  CREATE INDEX GDB9998b.IWK012A0
    ON GDB9998b.TWK012A
     (WK012CH20             ASC)
    USING STOGROUP GSMS
    PRIQTY 12 SECQTY 12
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
}¢--- A540769.WK.SQL(DBATSTC) cre=2011-06-22 mod=2011-06-24-09.40.25 A540769 ---
  set current sqlid='S100447';
  CREATE TABLESPACE A200A00
    IN DA540769
    USING STOGROUP GSMS
    FREEPAGE 0 PCTFREE 0
    DSSIZE 16 G
    NUMPARTS 254
    BUFFERPOOL BP32K
    LOCKSIZE ANY
    LOCKMAX  234
    CLOSE NO
    LOCKPART YES;
  COMMIT;
  CREATE TABLESPACE A210A00
    IN DA540769
    USING STOGROUP GSMS
    FREEPAGE 0 PCTFREE 0
    DSSIZE 16 G
    NUMPARTS 254
    BUFFERPOOL BP32K
    LOCKSIZE ANY
    LOCKMAX  0
    CLOSE NO
    LOCKPART YES;
  COMMIT;
  CREATE TABLESPACE A220A00
    IN DA540769
    USING STOGROUP GSMS
    FREEPAGE 0 PCTFREE 0
    DSSIZE 16 G
    NUMPARTS 254
    BUFFERPOOL BP32K
    LOCKSIZE ROW
    CLOSE NO
    LOCKPART YES;
  COMMIT;
  CREATE TABLESPACE A230A00
    IN DA540769
    USING STOGROUP GSMS
    FREEPAGE 0 PCTFREE 0
    DSSIZE 16 G
    NUMPARTS 254
    BUFFERPOOL BP32K
    CLOSE NO
    LOCKPART YES;
  COMMIT;
}¢--- A540769.WK.SQL(DBATSTI) cre=2006-08-25 mod=2006-08-25-09.58.00 F540769 ---
  insert into A540769.twk012a
             (wk012ch20,  wk012ch4, wk012ch2, wk012tst)
     values  ('eins - 1', 'eins',   '01',     current timestamp)
  ;
  insert into A540769.twk012a
             (wk012ch20,  wk012ch4, wk012ch2, wk012tst)
     values  ('zwei - 2', 'zwei',   '02',     current timestamp)
  ;
  insert into A540769.twk012a
             (wk012ch20,  wk012ch4, wk012ch2, wk012tst)
     values  ('drei - 3', 'drei',   '03',     current timestamp)
  ;
  commit
  ;
  select * from A540769.twk012a
  ;
}¢--- A540769.WK.SQL(DBATSTS) cre=2006-08-25 mod=2006-08-25-09.58.39 F540769 ---
  select * from A540769.twk012a
  ;
}¢--- A540769.WK.SQL(DBATST2) cre=2006-08-25 mod=2006-08-25-09.15.29 F540769 ---
  set current sqlid = 's100447';
  drop   TABLESPACE DA540769.A012A;
  -- drop   TABLE A540769.TWK012A;
  commit;
  CREATE TABLESPACE A012A
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 100
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 8
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  COMMIT;
--
------------------------------------------------------------------------
--    Table=A540769.TWK012A In DA540769.A012A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.TWK012A
     (WK012CH20            CHAR(20) ,
      WK012CH4             CHAR(4) ,
      WK012CH2             CHAR(2) ,
      wk012tst             timestamp
     )
    IN DA540769.A012A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  COMMIT;
--    Index=A540769.IWK012A0 On DA540769.TWK012A
------------------------------------------------------------------------
--
  CREATE INDEX A540769.IWK012A0
    ON A540769.TWK012A
     (WK012CH20             ASC)
    USING STOGROUP GSMS
    PRIQTY 12 SECQTY 12
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
}¢--- A540769.WK.SQL(DBATST2B) cre=2006-09-07 mod=2006-09-07-17.37.01 F540769 ---
  set current sqlid = 's100447';
     drop   TABLESPACE DA540769.A012B;
  -- drop   TABLE A540769b.TWK012A;
  commit;
  CREATE TABLESPACE A012B
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 100
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 8
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  COMMIT;
--
------------------------------------------------------------------------
--    Table=A540769b.TWK012A In DA540769.A012A
------------------------------------------------------------------------
--
  CREATE TABLE A540769b.TWK012A
     (WK012CH20            CHAR(20) ,
      WK012CH4             CHAR(4) ,
      WK012CH2             CHAR(2) ,
      wk012tst             timestamp
     )
    IN DA540769.A012B
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  COMMIT;
--    Index=A540769b.IWK012A0 On A540769b.TWK012A
------------------------------------------------------------------------
--
  CREATE INDEX A540769b.IWK012A0
    ON A540769b.TWK012A
     (WK012CH20             ASC)
    USING STOGROUP GSMS
    PRIQTY 12 SECQTY 12
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
}¢--- A540769.WK.SQL(DBATST51) cre=2006-09-28 mod=2006-09-29-08.46.25 F540769 ---
set current sqlid = 'S100447';
-- drop tablespace QQ99a1a.A051A;
commit ;
--
  CREATE TABLESPACE A051A
    IN QQ99a1a
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 48
    erase no
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 16
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=oa1t.TQQ051A In QQ99a1a.A051A
------------------------------------------------------------------------
--
  CREATE TABLE oa1t.TQQ051A
     (QQ051ID              CHAR(10) FOR SBCS DATA NOT NULL,
      QQ051TXT             CHAR(20) FOR SBCS DATA WITH DEFAULT NULL,
      QQ051FOR             CHAR(10) FOR SBCS DATA WITH DEFAULT NULL)
    IN QQ99a1a.A051A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=QQ99a1a
--    Index=oa1t.IQQ051A0 On oa1t.TQQ051A
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX oa1t.IQQ051A0
    ON oa1t.TQQ051A
     (QQ051ID               ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
--    View=oa1t.VQQ051V1
------------------------------------------------------------------------
--
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","s100447" ;
--
  CREATE VIEW oa1t.VQQ051V1 AS
    SELECT *
      FROM oa1t.TQQ051A ;
--
------------------------------------------------------------------------
--    View=oa1t.VQQ051V2
------------------------------------------------------------------------
--
--
  CREATE VIEW oa1t.VQQ051V2 AS
    SELECT *
      FROM oa1t.TQQ051A ;
--
--#SET TERMINATOR ?
--
------------------------------------------------------------------------
--    Triggers for Table=oa1t.TQQ051A
------------------------------------------------------------------------
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","S100447" ?
--
  CREATE TRIGGER oa1t.QQ051TRIG
    AFTER DELETE ON oa1t.TQQ051A
    REFERENCING OLD AS OLD
    FOR EACH ROW MODE DB2SQL
      INSERT INTO oa1t.TQQ051A("QQ051ID", "QQ051TXT", "QQ051FOR")
        VALUES(OLD.QQ051ID, 'deleteTriggerEins', OLD.QQ051FOR) ?
--
------------------------------------------------------------------------
--    Triggers for Table=oa1t.TQQ051A
------------------------------------------------------------------------
--
  CREATE TRIGGER oa1t.QQ051TRIG2
    AFTER DELETE ON oa1t.TQQ051A
    REFERENCING OLD AS OLD
    FOR EACH ROW MODE DB2SQL
      INSERT INTO oa1t.TQQ051A("QQ051ID", "QQ051TXT", "QQ051FOR")
        VALUES(OLD.QQ051ID, 'deleteTriggerZwei', OLD.QQ051FOR) ?
--
--#SET TERMINATOR ;
--
  COMMIT;
--
--  REBIND TRIGGER PACKAGE(oa1t.QQ051TRIG)
--
--  REBIND TRIGGER PACKAGE(oa1t.QQ051TRIG2)
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(DBIDOBID) cre=2008-09-09 mod=2008-09-09-12.44.59 F540769 ---
select *
    from sysibm.sysTables
    where dbid = 1789  and obid = 3
}¢--- A540769.WK.SQL(DBXAUF) cre=2014-02-14 mod=2014-02-14-11.08.45 A540769 ----
select count(*), einfuehrung
    from oa1p.tadm70a1
    where trunc_timestamp(timestamp(einfuehrung), 'mon')
        = trunc_timestamp(current timestamp, 'mon')
    group by einfuehrung
}¢--- A540769.WK.SQL(DBXQUA) cre=2008-05-27 mod=2008-05-27-16.57.38 F540769 ----
SELECT s.*
    FROM SYSIBM.SYSTABLESPACE S
    WHERE (S.DBNAME = 'DGDB0426' AND S.NAME = 'PDZINSFQ')
       or (S.DBNAME = 'DGDB9998' AND S.NAME = 'PDZINSFQ')
       or (S.DBNAME = 'DA540769' AND S.NAME LIKE 'A10%')
       or (S.DBNAME = 'DGDB3456' AND S.NAME LIKE 'A%')
 union     select s.*
    FROM SYSIBM.SYSTABLESPACE S, SYSIBM.SYSTABLES T
    where s.dbName = t.dbName and s.name = t.tsName
    and (
            (T.CREATOR = 'GDB9998A' AND T.NAME LIKE 'TWK1%')
         or (T.CREATOR like 'F54076%' AND T.NAME LIKE 'TWK1%')
        )
 union     select s.*
    FROM SYSIBM.SYSTABLESPACE S, SYSIBM.SYSTABLES T, SYSIBM.SYSINDEXES X
    where s.dbName = t.dbName and s.name = t.tsName
      and t.creator = x.tbCreator and t.name = x.tbName
    and (   (X.CREATOR = 'GDB9998' AND X.NAME LIKE 'IWK001%')
         or (X.CREATOR like 'F54076%' AND X.NAME LIKE 'IWK001%')
        )
;
dELETE FROM PLAN_TABLE;
SET CURRENT SQLID = 'A540769';
EXPLAIN PLAN SET QUERYNO = 111 FOR
SELECT s.*
    FROM SYSIBM.SYSTABLESPACE S
    WHERE (S.DBNAME = 'DGDB0426' AND S.NAME = 'PDZINSFQ')
       or (S.DBNAME = 'DGDB9998' AND S.NAME = 'PDZINSFQ')
       or (S.DBNAME = 'DA540769' AND S.NAME LIKE 'A10%')
       or (S.DBNAME = 'DGDB3456' AND S.NAME LIKE 'A%')
 union     select s.*
    FROM SYSIBM.SYSTABLESPACE S, SYSIBM.SYSTABLES T
    where s.dbName = t.dbName and s.name = t.tsName
    and (
            (T.CREATOR = 'GDB9998A' AND T.NAME LIKE 'TWK1%')
         or (T.CREATOR like 'F54076%' AND T.NAME LIKE 'TWK1%')
        )
 union     select s.*
    FROM SYSIBM.SYSTABLESPACE S, SYSIBM.SYSTABLES T, SYSIBM.SYSINDEXES X
    where s.dbName = t.dbName and s.name = t.tsName
      and t.creator = x.tbCreator and t.name = x.tbName
    and (   (X.CREATOR = 'GDB9998' AND X.NAME LIKE 'IWK001%')
         or (X.CREATOR like 'F54076%' AND X.NAME LIKE 'IWK001%')
        )
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
xollBack
;
SELECT DBNAME,NAME,TYPE,PARTITIONS,SEGSIZE
    FROM SYSIBM.SYSTABLESPACE S
    WHERE (S.DBNAME = 'DGDB0426' AND S.NAME = 'PDZINSFQ')
 OR (S.DBNAME, S.NAME) IN
      ( SELECT T.DBNAME, T.TSNAME
            FROM SYSIBM.SYSTABLES T
            WHERE (T.CREATOR = 'GDB9998A' AND T.NAME LIKE 'TWK1%')
              OR (S.CREATOR, S.NAME) IN
              ( SELECT X.CREATOR, X.TBNAME
                    FROM SYSIBM.SYSINDEXES X
                    WHERE (X.CREATOR = 'GDB9998'
                        AND X.NAME LIKE 'IWK001%')
              )
      )
;
                    SELECT DBNAME,NAME,TYPE,PARTITIONS,SEGSIZE FROM SYSI
ABLESPACE S WHERE (S.DBNAME = 'DGDB0426' AND S.NAME = 'PDZINSFQ') OR (S.
 S.NAME) IN (SELECT T.DBNAME, T.TSNAME FROM SYSIBM.SYSTABLES T WHERE (T.
 = 'GDB9998A' AND T.NAME LIKE 'TWK1%') OR (S.CREATOR, S.NAME) IN (SELECT
EATOR, X.TBNAME FROM SYSIBM.SYSINDEXES X WHERE (X.CREATOR = 'GDB9998' AN
E LIKE 'IWK001%')))"
}¢--- A540769.WK.SQL(DB2COARC) cre=2008-03-18 mod=2008-03-18-17.14.58 F540769 ---
SELECT  CURRENT TIMESTAMP - 3 MINUTES,                                  00010002
        CHAR(' A000Y001 OA1P.TADM62A1 '       , 50)                     00020002
    FROM SYSIBM.SYSDUMMY1                                               00030000
;                                                                       00040000
SELECT C.DBNAME, C.TSNAME, C.DSNUM, C.TIMESTAMP, C.ICTYPE, C.DSNAME,    00050000
              CHAR(C.COPYPAGESF * 1024 * S.PGSIZE) COPIED               00060000
    FROM SYSIBM.SYSCOPY C, SYSIBM.SYSTABLESPACE S                       00070000
    WHERE C.ICTYPE IN ('F', 'I')                                        00080000
        AND S.DBNAME = C.DBNAME                                         00090000
        AND S.NAME = C.TSNAME                                           00100000
    ORDER BY 1, 2, 3, 4 DESC                                            00110000
    WITH UR                                                             00120000
;                                                                       00130000
}¢--- A540769.WK.SQL(DB2COARM) cre=2008-03-18 mod=2008-03-18-16.59.06 F540769 ---
AUTHOR     GGDB2
RECPLIST   GGDB2
DOCTEXT
           Fehler im Job zur Copy Archivierung
           Bitte kontrollieren.
}¢--- A540769.WK.SQL(DB2COART) cre=2008-03-18 mod=2008-03-18-16.45.51 F540769 ---
  SET CURRENT SQLID='S100447';
--
--drop   TABLESPACE db2admin.A062A;
--CREATE DATABASE DB2admin
--  BUFFERPOOL BP2
--  INDEXBP    BP1
--  CCSID      EBCDIC
--  STOGROUP   GSMS;
  commit;
  CREATE TABLESPACE A062A
    IN DB2ADMIN
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
  COMMIT;
  CREATE TABLE OA1P.TADM62A1
     (TIMESTAMP            TIMESTAMP NOT NULL,
      STATUS               CHAR(1)   NOT NULL,
      NEWCOUNT             INTEGER   NOT NULL,
      NEWSIZE              REAL      NOT NULL,
      ALTCOUNT             INTEGER   NOT NULL,
      ALTSIZE              REAL      NOT NULL,
      OLDCOUNT             INTEGER   NOT NULL,
      OLDSIZE              REAL      NOT NULL
     )
    IN DB2ADMIN.A062A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  COMMENT ON TABLE OA1P.TADM62A1 IS 'Copy Archiving Statistics';

 LABEL ON TABLE OA1P.TADM62A1 IS 'CopyArchStatistik';
 LABEL ON OA1P.TADM62A1
   ( TIMESTAMP   IS  'timestamp of run'
   , STATUS      IS  'Generiert, Erledigt'
   , NEWCOUNT    IS  'count new copies'
   , NEWSIZE     IS  'size(B) new copies'
   , ALTCOUNT    IS  'count alter copies'
   , ALTSIZE     IS  'size(B) alter copies'
   , OLDCOUNT    IS  'count old copies'
   , OLDSIZE     IS  'size(B) old copies'
   )
 ;
  COMMIT;
--
  CREATE UNIQUE INDEX OA1P.IADM62A1
    ON OA1P.TADM62A1
     (TIMESTAMP)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
}¢--- A540769.WK.SQL(DB2STA) cre=2010-01-25 mod=2010-01-25-15.09.28 A540769 ----
//A540769S JOB (CP00,KE50),'START RO',
//         MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//************** start db readOnly ****************************
//START   EXEC PGM=IKJEFT01
//SYSTSPRT  DD SYSOUT=*
//SYSPRINT  DD SYSOUT=*
//SYSTSIN     DD *
  DSN SYS(DBOF)
  -STA DB(CZ01A1P) ACC(RO)
  -STA DB(CZ01G1P) ACC(RO)
  -STA DB(CZ02A1P) ACC(RO)
  -STA DB(CZ20A1P) ACC(RO)
  -STA DB(CT01A1P) ACC(RO)
}¢--- A540769.WK.SQL(DB2UT) cre=2008-12-22 mod=2008-12-22-11.31.23 F540769 -----
set current sqlid = 'S100447';
-- DROP   TABLESPACE DB2MAPUT.TINUSE;
COMMIT;
CREATE TABLESPACE TINUSE
  IN DB2MAPUT
  USING STOGROUP GSMS
  PRIQTY 12 SECQTY 48
  ERASE  NO
  FREEPAGE 0 PCTFREE 5
  GBPCACHE CHANGED
  TRACKMOD YES
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS NO
  CCSID      EBCDIC
  DEFINE YES
  MAXROWS 255;
CREATE TABLE S100447.TINUSE
   (NAME                 VARCHAR(128) NOT NULL,
    CREATOR              VARCHAR(128) NOT NULL,
    TIMESTAMP            TIMESTAMP NOT NULL
   )
   IN DB2MAPUT.TINUSE
   AUDIT NONE
   DATA CAPTURE NONE
   CCSID      EBCDIC
   NOT VOLATILE;
 COMMIT;
}¢--- A540769.WK.SQL(DB2UTF) cre=2008-12-22 mod=2008-12-22-11.38.18 F540769 ----
select * from
    final table (insert into s100447.tInuse
        (creator, name, timestamp)
    values (
          'S100447', (select min(name)
                          from sysibm.systables t
                          where dbName = 'DB2MAPUT'
                          and   name <> 'TINUSE'
                          and not exists (select 1
                              from s100447.tInuse  i
                              where t.name = i.name)
                     ), current timestamp )
    )
}¢--- A540769.WK.SQL(DDF) cre=2007-05-14 mod=2010-12-06-14.54.32 A540769 -------
set current sqlid = 'S100447';
select * from sysibm.LOCATIONS ;
select name
    from chska000dbtf.sysibm.systables
    where dbname = 'MF01A1T'
    ;
}¢--- A540769.WK.SQL(DDLCHDDL) cre=2013-06-12 mod=2016-06-17-13.15.08 A540769 ---
$#@
$*(
    17. 6.16 defaults for new UTS guidelines
    10. 6.16 PBG mit 4GB und 10 maxParts
     7. 3.16 pa fuer views geflickt
     2. 2.16 fqz Funktionen
    30.11.15 ELAR: primary key ignorieren, tb-, ixName von TS nicht DB
    18.11.15 fix att, nur rTrim, wegen Sortierung von s, no part in path
    13. 7.15 mit User ddlCheckt und 2. Elar Variante
    17.12.14 datacapture changes, genSel und 1. Elar Variante
    26.11.13 datacapture cat='o' (immer noch override auf none|)
    19.11.13 order by ebcdic for rexx
    25. 9.13 uts ok, kleine pctFree, locksize usw. Aenderung o statt oq
             Achtung neues WS2|
    19. 9.13 primary constraint reklamiert wenn vorhanden statt fehlend
    19. 7.13 namingconvention aus current server, stabiler
    17. 7.13 lobs angepasst
$*)
$=cr=A540769
$=cr=OA1P
$=gpCols= gp, gpCr, gpOpt
$=cols8 = ty, qu, nm, cat, att, val, std, pa
$=colE8 = ty, qu, nm, pa, cat, att, val, std
$=colO8 = ty, cat, qu, nm, att, val, std, pa
if 0 then $@¢            $** execute ddl in rz4 ------------------------
    $@%¢genDdl OA1P $!
    $>. fEdit()
    $** $| $@ call sqlConnect DP4G ; call sqlStmts
$! else if 0 then $@¢    $** distribute/exe ddl in all rz/dbSys -------
    $>. fEdit()
    $<=¢
        RZ4 DBOL DP4G
        RZ2 DBOF DVBP DP2G
        RZX DE0G DEVG DPXG DX0G
        RZY DE0G DEVG DPYG
        RZZ DE0G DEVG DPZG
        RR2 DBOF DVBP DP2G
        RQ2 DBOF DVBP DP2G
        $!
    $@genJobs
$! else if 1 ,           $** test dp4g ---------------------------------
           & sysVar(sysnode) = 'RZ4' then $@=¢
    set current path  = 'OA1P';
    insert into $cr.tQZ120DdlSel (ty, qu, nm)
        select 't', creator  , Name
        from sysibm.sysTables
        where
                name in ( 'TQZ120DDLSEL'
                        , 'TQZ006GBGRTSSTATS'
                        , 'TQZ050CMD'
                        , 'TQZ040BINDPGM'
                        ) ;
    insert into $cr.tQZ120DdlSel (ty, qu, nm)
        values ('v', 'OA1P', 'VQZ040REBIND') ;
    $$  -- ddlChDdl generated $-¢f('%t s')$!
    $@genSel
    $** $>. fEdit('A540769.TMP.SQL(DDLCH)')
    $| $@ call sqlConnect DP4G ; call sqlStmts
$! else if 0 then $@=¢   $** test dbof --------------------------------
    set current path  = 'OA1P';
    insert into $cr.tQZ120DdlSel (ty, qu, nm)
        select 'ts', dbName  , tsName
        from sysibm.sysTables
        where type = 'T'
            and name in ( 'VTINSTRUMENT'
                 --     , 'TQZ050CMD'
                        );
    insert into $cr.tQZ120DdlSel (ty, qu, nm)
        valueS ('v', 'OA1P', 'VNGNOFER') ;
    insert into $cr.tQZ120DdlSel (ty, qu, nm)
        valueS ('db', 'XB007002', '') ;
    $$  -- ddlChDdl generated $-¢f('%t s')$!
    $@genSel
    $** $>. fEdit('A540769.TMP.SQL(DDLCH)')
    $| $@ call sqlConnect DVBP ; call sqlStmts
$!

$proc $@=/genDdl/
$=path=- strip(arg(2))
set current sqlid = 'S100447';
set current path  = '$path';
drop                    table $cr.tQZ120DDlSel;
create global temporary table $cr.tQZ120DdlSel
    (ty char(3) not null, qu varchar(128) not null
       , nm varchar(128) not null ) -- with default geht nicht ||||
;
create view $cr.vQZ120DdlChec8 as
$@cteC8
select * from uO
;
create view $cr.vQZ120DdlCheck as
$@txt
  from $cr.vQZ120DdlChec8
;
create view $cr.vQZ120DdlCheSu8 as
with t as
(
  select * from OA1P.vQZ120ddlChec8 t
)
, u ($cols8) as
(
  select ty, '', '', '', 'count ' || ty
      , right('      ' || count(*), 8)
      , '', '  count=s-' || ty
    from t
    where cat = 's'
    group by ty
  union all select '', '', '', '', 'count err'
      , right('      ' || count(*), 8)
      , '', '  countErr=' || min(cat) || '-' || max(cat)
    from t
    where cat <> 's'
  union all select $cols8
    from t
)
$@cteUO
select * from UO
;
create view $cr.vQZ120DdlCheSum as
with t as
(
  select t.*
      , case when posStr(err, '=') = 0 then err
           else left(err, posStr(err, '=')) end erSh
    from $cr.vQZ120ddlCheck t
)
, u (ty, qu, nm, cat, err, pa) as
(
  select ty, qu, nm, cat, err, pa
    from t
  union all select ty, '', '', '*s', count(*) || ' * ' || ty
       || ': ' || min(qu || '.' || nm) || ' - ' || min(qu || '.' || nm)
     , '*ty ' || ty
    from t
    where cat = 's'
    group by ty
  union all select ty, '', '', '*' || cat, count(*) || ' * ' || erSh
     , '*tyCatErr ' || ty || cat || erSh
    from t
    where cat <> 's'
    group by ty, cat, erSh
)
select * from u
;
create view $cr.vQZ120DdlCheS8 as
$@cte
, rt (ty, qu, nm, pa, rows, space) as
(
  select ty, qu, nm
      , substr(min(right('00000' || length(strip(pa)), 6)
                       || strip(pa)), 7) pa
      , real(sum(totalRows)) rows
      ,  sum(ts.pgSize * real(r.nActive) * 1024) space
    from ts left join sysibm.sysTablespaceStats r
      on r.dbName = ts.dbName and r.name = ts.name
          and r.dbid = ts.dbid and r.psid = ts.psid
    group by ty, qu, nm
)
, ri (ty, qu, nm, pa, rows, space) as
(
  select ty, qu, nm
      , substr(min(right('00000' || length(strip(pa)), 6)
                       || strip(pa)), 7) pa
      , real(sum(totalEntries))
      ,  sum(case when i.pgSize = 4096 then 4
                                       else i.pgSize end
              * real(r.nActive) * 1024)
    from i left join sysibm.sysIndexspaceStats r
      on r.creator= i.creator and r.name = i.name
          and r.dbid = i.dbid and r.isobid = i.isobid
    group by ty, qu, nm
)
, u ($cols8) as
(
  select $cols8 from eU
  union all select ty, qu, nm,
        case when space > 2e10 or rows > 1e8
             then 'sb' else 's' end,
        ' rows,space', oa1p.fqzFmte7(rows), oa1p.fqzFmtE7(space),pa
      from rt
  union all select ty, qu, nm, 's', '', '', '', pa from t
  union all select ty, qu, nm, 's',
       ' rows,space', oa1p.fqzFmte7(rows), oa1p.fqzFmtE7(space), pa
      from ri
  union all select ty, qu, nm, 's', '', '', '', pa from v
)
$@cteUO
select * from uO
;
create view $cr.vQZ120DdlCheSz as
$@txt
  from $cr.vQZ120DdlCheS8
;
commit
;
$/genDdl/

$proc $@=/genSel/              $** generate a select without views
$@cteC8
$** $@outTxt
-- select * from uO  ; x; by qu, nm ; x;
select ty, substr(qu || '.' || nm, 1, 30) qualifierName, cat
      , substr(att, 1, 12) att
      , substr(val, 1, 20) val
      , substr(std, 1, 20) std
      , pa
from uO -- outTxt
;
$*(
select qu, nm, db, pa
from vD;
select lv, uQ, uN, qu, nm, pa
from vUse;
$*)
$/genSel/

$@proc cte $@=/cte/
with std (std, mbrClu, app, pFree) as
(
            select ' ', ' ', 'N', 5 from sysibm.sysDummy1
  union all select 'x', 'Y', 'Y', 0 from sysibm.sysDummy1
)
, nmC1 as
(
select right(strip(current server), 4) dbSys
    from sysibm.sysDummy1
)
, nmC2 as
( select case when posStr(dbSys, 'V') > 0 then 'V'
              when dbSys = 'DBAF'         then 'A'
              when dbSys = 'DBTF'         then 'T'
                                          else 'P'
         end nmCn, dbSys
    from nmC1
)
, nmCn as
( select case when nmCn = 'V' then 'BUA' else 'OA1' || nmCn end cr
       , case when nmCn = 'V' then ''    else '99'          end cr99
       , case when nmCn = 'V' then 'BUA'
                               else 'OA1' || nmCn || ' 99?' end crStd
       , nmCn, dbSys
    from nmC2
)
, ts0 (qu, nm) as
(
  select dbName, name
    from sysibm.sysTablespace ts join $cr.tQZ120DdlSel s
      on s.ty = 'db' and s.qu = ts.dbName
  union all select qu, nm
    from $cr.tQZ120DdlSel s
    where s.ty = 'ts'
)
, tsU (qu, nm) as
(
  select t.dbName , t.tsName
    from sysibm.sysTables t
      join $cr.tQZ120DdlSel s
        on s.ty = 't' and s.qu = t.creator and s.nm = t.name
    where t.dbName not like 'DSNDB%'
  union all select * from ts0
)
, tsG as
(
  select *
    from tsU
    group by qu, nm
)
, ts as
(
  select 'ts' ty, qu, nm
       $@%¢db2gp qu$!
       , 'db=' || strip(qu) || ' ts=' || strip(nm) pa
       , s.*
       , 33 pctFreeZiel
    from tsG g join sysibm.sysTablespace s
        on g.qu = s.dbName and g.nm = s.name
)
, tp as
(
  select 'tp' ty, qu, nm, $gpCols, pa
        , ts.type tsTy, ts.partitions parts
        , tp.*
    from ts join sysibm.sysTablePart tp
      on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, tN (qu, nm) as
(
  select creator, name
    from ts0 join sysibm.sysTables t
       on t.dbName = ts0.qu and t.tsName = ts0.nm
        and t.type not in ('A', 'V')
  union all select qu, nm
    from $cr.tQZ120DdlSel s
    where ty = 't'
)
, tG as
(
  select qu, nm
    from tN
    group by qu, nm
)
, t as
(
  select 't' ty, qu, nm
       , 'db=' || strip(t.dbName) || ' ts=' || strip(t.tsname)
         || ' t=' ||  strip(t.creator) || '.' || strip(t.name) pa
       $@%¢db2gp t.dbName$!
       , t.*
    from tG join sysibm.sysTables t
      on t.creator = tG.qu and t.name = tG.nm
        and t.type not in ('A', 'V')
)
, c as
(
  select 'c' ty, '' qu, c.name nm, $gpCols
       , pa || ' c=' || right('0000'||colNo, 5) ||'-'|| strip(c.name) pa
       , c.*
    from t join sysibm.sysColumns c
      on qu = c.tbCreator and nm = c.tbName
)
, iN (qu, nm) as
(
  select strip(i.creator), strip(i.name)
    from tG join sysibm.sysIndexes i
      on qu = i.tbCreator and nm = i.tbName
  union all select qu, nm
    from $cr.tQZ120DdlSel s
    where s.ty = 'i'
)
, iG as
(
  select qu, nm
    from iN
    group by qu, nm
)
, i as
(
  select 'i' ty, qu, nm
       , 'db=' || strip(t.dbName) || ' ts=' || strip(t.tsname)
         || ' t=' ||  strip(t.creator) || '.' || strip(t.name)
         || ' i=' ||  strip(i.creator) || '.' || strip(i.name) pa
       $@%¢db2gp i.dbName $!
       , i.*
    from iG
      join sysibm.sysIndexes i
        on iG.qu = i.creator and iG.nm = i.name
      join sysibm.sysTables t
        on i.tbCreator = t.creator and i.tbName = t.name
)
, ip as
(
  select 'ip' ty, qu, nm, $gpCols, pa, ip.*
    from i join sysibm.sysIndexPart ip
        on ip.ixCreator = qu and ip.ixName = nm
)
, vU (ty, qu, nm, pa, db, lv) as
(
  select unicode_str('T'), qu, nm, pa, dbName, 0
    from t
  union all select unicode_str('V'), qu, nm
        , 'v=' || strip(qu) ||'.'|| strip(nm), '', 0
       from $cr.tQZ120DdlSel
       where ty = 'v'
  union all select dType, dCreator, dName, pa || ' ' || dType || '='
          || strip(dCreator) || '.' || strip(dName), db, lv+1
    from vU join sysibm.sysViewDep d
      on d.bCreator = vU.qu and d.bName = vU.nm -- and d.bType = vU.ty
    where lv < 100
)
, vG as
( select qu, nm
        -- shortest path, preferrable not starting with view
      , replace(substr(
          min(case when left(pa, 1) = 'v' then 'v' else 'e' end
              || right('00000' || length(pa), 6) || pa)
          , 8), 'V=', 'v=') pa
      , max(case when db like 'DSNDB%' then '' else db end) db
    from vU
    where ty = 'V'
    group by ty, qu, nm
)
, vUse ( qu, nm, pa, uQ, uN, lv) as
(                   -- if db is empty or DSNDB% then search
                    --     all used views for application db
  select qu, nm, pa, qu, nm, 0
    from vG
    where db = ''
  union all select qu, nm, pa, bCreator, bName, lv + 1
    from vUse join sysibm.sysViewDep d
      on d.dCreator = vUse.uQ and d.dName = vUse.uN
  --      and d.bType = 'V' and d.dType = 'V'
    where lv < 100
)
, vD (qu, nm, pa, db) as
(
  select qu, nm, max(pa)
      , max(case when dbName like 'DSNDB%' then '' else dbName end) db
    from vUse join sysibm.sysTables t
        on vUse.uQ = t.creator and vUse.uN = t.name
  --       and t.type = 'V'
    group by qu, nm
  union all select * from vG
    where db <> ''
)
, v as              --     all used views for application db
(
  select 'v' ty, qu, nm, pa
       $@%¢db2gp vD.db $!
       , t.*
    from vD join sysibm.sysTables t
      on t.type = 'V' and t.creator = qu and t.name = nm
)
, eTs ($colE8) as
(
  select           ty, qu, nm, pa, 'p', 'type',
           case when type = 'O' then 'lob'
                when type = 'P' then 'XML'
                when type = ' 'and partitions = 0
                                and segSize = 0 then 'simple'
                when type = ' ' then 'classic'
                when type = 'L' then 'large'
                else 'type='||type
           end, 'UTS'
    from ts
    where type not in ('G', 'R')
  union all select ty, qu, nm, pa, 'p', 'status',
    case when status = 'C' then 'partitioning undefined'
         when status in ('P' ,'S') then 'check pending'
         when status = 'T' then 'no table'
                           else 'status=' || status end
    end, ''
    from ts
    where status <> 'A'
  union all select ty, qu, nm, pa, 'n', 'name', name
           , 'S' || substr(dbName, 3, 4) || '%'
    from ts, nmC1
    where gpOpt = 'x' and 'DX0G' <> dbSys
        and left(name, 4)  <> 'S' || substr(dbName, 3, 3)
  union all select ty, qu, nm, pa, 'p', 'tables', char(nTables), '1'
    from ts
    where nTables <> 1
  union all select ty, qu, nm, pa, 'p', 'partitioned', 'no', 'yes'
    from ts
    where gpOpt = 'x' and partitions = 0
  union all select ty, qu, nm, pa, 'p', 'partitions',
                         char(partitions),  '<=200'
    from ts
    where partitions > 200
  union all select ty, qu, nm, pa, 'o', 'bufferPool', bPool, 'bp2...'
    from ts
    where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
  union all select ty, qu, nm, pa, 'o', 'bufferPool', bPool, 'bp2...'
    from (select ts.*
                , case when strip(name) like '%H' then 'BP32K'
                                                  else 'BP2' end bp
            from ts
            where gpOpt = 'x' ) ts
    where bPool <> bp
  union all select ty, qu, nm, pa, 'p', 'encoding',
                        encoding_scheme, 'EBCDIC'
    from ts
    where encoding_scheme <> 'E'
  union all select ty, qu, nm, pa, 'o', 'close', closeRule, 'Y'
    from ts
    where closeRule <> 'Y'
  union all select ty, qu, nm, pa, 'oq', 'dssize', char(dsSize), '16GB'
    from ts
    where dssize <> 16777216 and partitions <> 0 and type <> 'G'
  union all select ty, qu, nm, pa, 'oq', 'dssize', char(dsSize), '4GB'
    from ts
    where dssize <>  4194304 and partitions <> 0 and type = 'G'
  union all select ty, qu, nm, pa, 'o', 'erase', eraseRule, 'N'
    from ts
    where eraseRule <> 'N'
  union all select ty, qu, nm, pa, 'p', 'implicit', implicit, 'N'
    from ts
    where implicit <> 'N'
  union all select ty, qu, nm, pa, 'o', 'lockmax',
                       char(lockmax), 'system'
    from ts
    where lockMax <> -1
  union all select ty, qu, nm, pa
         , case when lockRule = 'P' then 'o' else 'oq' end
         , 'locksize', lockRule, 'any'
    from ts
    where lockRule <> 'A'
  union all select ty, qu, nm, pa, 'o', 'logged', log, 'Y'
    from ts
    where log <> 'Y'
  union all select ty, qu, nm, pa, 'oq', 'maxrows', char(maxrows),'255'
    from ts
    where maxrows <> 255 and type <> 'O'
  union all select ty, qu, nm, pa, 'pq', 'membercluster',
                  member_cluster, mbrClu
    from ts join std on ts.gpOpt = std.std
    where member_cluster <> mbrClu
  union all select ty, qu, nm, pa, 'o', 'segsize', char(segsize), '64'
    from ts
    where segsize not in (0, 64)
  union all select ty, qu, nm, pa, 'p', 'clone', clone, 'N'
    from ts
    where clone <> 'N'
  union all select ty, qu, nm, pa, 'p', 'maxParts',
                             char(maxPartitions), '10'
    from ts
    where type = 'G' and maxPartitions <> 10
  union all select ty, qu, nm, pa, 'p'
          , case when organizationType = 'H' then 'hash'
                 else 'organizationType='||organizationType end
          ,'organization', 'default'
    from ts
    where organizationType <> ' '
)
, eTP  ($colE8) as
(
  select           ty, qu, nm, pa, 'o', 'compress', compress, 'Y'
    from tp
    where tp.compress <> 'Y'
  union all select ty, qu, nm, pa, 'oq', 'storName',storName,'GSMS?'
    from tp
    where (gp <> 'XB' and storName <> 'GSMS')
          or (gp = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select ty, qu, nm, pa, 'o', 'priQty', char(pQty), '-1'
    from tp
    where pqty <> -1
  union all select ty, qu, nm, pa, 'o', 'secQty', char(sQty), '-1'
    from tp
    where sqty <> -1
  union all select ty, qu, nm, pa
         , case when freePage >= 10 then 'o' else 'oq' end
         , 'freePage', char(freepage), '0'
    from tp
    where freepage <> 0
  union all select ty, qu, nm, pa
         , case when pctFree <= 10 then 'o' else 'oq' end
         , 'pctFree', char(pctFree), char(pFree)
    from tp join std on tp.gpOpt = std.std
    where pctFree <> pFree and tsTy <> 'O'
  union all select ty, qu, nm, pa, 'o', 'gbpCache',
                             gbpCache, 'changed'
    from tp
    where gbpCache <> ' '
)
, eT ($colE8) as
(
  select           ty, qu, nm, pa, 'n', 'creator', qu, gpCr
    from t
    where not (qu = gpCr
               or (gpCr <> 'BUA' and gpCr || '00'
                     = translate(qu, '999999999', '012345678'))
               or (gp = 'VV' and qu = 'VDPS2'))
  union all select ty, qu, nm, pa, 'n', 'name', nm, tbPre || '%'
    from ( select t.*
               , case when gpOpt = 'x' then 'XB' || substr(tsName, 2,6)
                      when gp = 'VV' then 'TVV'
                      else 'T' || gp || substr(tsName, 2, 4) end tbPre
             from t, nmC1 ) t
    where left(name, length(tbPre)) <> tbPre
  union all select ty, qu, nm, pa, 'p', 'tableStatus',
    case when tableStatus = 'C' then 'clone'
         when tableStatus = 'L' then 'auxilary index oder table fehlt'
         when tableStatus = 'P' then 'primary index fehlt'
         when tableStatus = 'R' then 'index auf Row ID fehlt'
         when tableStatus = 'U' then 'index auf unique key fehlt'
         when tableStatus = 'V' then 'Fehler interne ViewDarstellung'
                                else 'tableStatus=' || tableStatus
    end, 'ok'
    from t
    where tablestatus <> ' '
  union all select ty, qu, nm, pa, 'p', 'append', append, app
    from t join std on t.gpOpt = std.std
    where append <> app
  union all select ty, qu, nm, pa, 'p', 'audit', auditing, 'no'
    from t
    where auditing <> ' '
  union all select ty, qu, nm, pa, 'o', 'dataCapture',
                                         dataCapture, 'changes'
    from t
    where dataCapture <> 'Y'
  union all select ty, qu, nm, pa, 'o', 'restrictDrop',
                                        clustertype, 'Y'
    from t
    where clusterType <> 'Y'
  union all select ty, qu, nm, pa, 'p', 'volatile',
                                     split_rows, 'Y'
    from t
    where gpOpt = 'x' and split_rows  <> 'Y'
  union all select ty, qu, nm, pa, 'p', 'volatile',
                                     split_rows, 'not'
    from t
    where gpOpt <> 'x' and split_rows  <> ''
  union all select ty, qu, nm, pa, 'p', 'clusterIndex', 'no',
                                        'ifIndexes'
    from t
    where            (select max(clustering) from sysibm.sysIndexes i
                       where i.tbCreator = t.qu and i.tbName = t.nm)
           not in ('Y', case when 1=1 then 'x' else null end)
  union all select ty, qu, nm, pa, 'p', 'partitioning',
                                        'indexBased', 'tableBased'
    from t join sysibm.sysTablespace ts
      on t.dbName = ts.dbName and t.tsName = ts.name
          and ts.partitions > 0 and ts.type <> 'G'
          and partKeyColNum < 1
  union all select ty, qu, nm, pa, 'a', 'primKeyConst',
                                        'no', 'yes'
    from t
    where keyColumns = 0 and gpOpt <> 'x'
)
, eC ($colE8) as
(
  select           ty, qu, nm, pa, 'p', 'colType', colType,
                                        'CSallowed'
    from c
    where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
          , 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
          , 'ROWID', 'BIGINT', 'BINARY')
  union all select ty, qu, nm, pa, 'p', 'hidden', hidden, 'N'
    from c
    where hidden <> 'N'
)
, eI (ty, qu, nm, pa, cat, att, val, std) as
(
  select           ty, qu, nm, pa, 'n', 'creator', qu, tbCreator
    from i
    where creator <> tbCreator
  union all select ty, qu, nm, pa, 'n', 'name', nm, sIx || '%'
    from (select i.*
                , case when gpOpt='x' then 'I' || substr(tbName, 3, 6)
                      else 'I' || strip(substr(tbName, 2, 6)) end sIx
              from i) i
    where left(name, length(sIx)) <> sIx and qu <> 'VDPS2'
  union all select ty, qu, nm, pa, 'p', 'extensionType',
        case when ix_extension_type = 'S' then 'index on expression'
            else ix_extension_type end, 'no'
        end
    from i
    where ix_extension_type <> ''
  union all select ty, qu, nm, pa, 'o', 'bufferpool', bPool, 'BP1'
    from i
    where bPool <> 'BP1'
  union all select ty, qu, nm, pa, 'o', 'close', closeRule, 'Y'
    from i
    where closeRule <> 'Y'
  union all select ty, qu, nm, pa, 'o', 'compress', compress, 'N'
    from i
    where compress <> 'N'
  union all select ty, qu, nm, pa, 'o', 'copy', copy, 'N'
    from i
    where copy <> 'N'
  union all select ty, qu, nm, pa, 'o', 'erase', eraseRule, 'N'
    from i
    where eraseRule <> 'N'
  union all select ty, qu, nm, pa, 'pq', 'padded', padded, 'N'
    from i
    where padded not in (' ', 'N')
  union all select ty, qu, nm, pa, 'a', 'partitioned', 'no', 'yes'
    from i join sysibm.sysTables t
        on i.tbCreator = t.creator and i.tbName = t.name
      join sysibm.sysTableSpace ts
        on ts.dbName = t.dbName and t.tsName = ts.name
            and ts.partitions > 0 and ts.type <> 'G'
      join sysibm.sysIndexPart ip
        on ip.ixCreator = i.creator and ip.ixName = i.name
            and ip.partition = 0
  union all select ty, qu, nm, pa, 'pq',
            'piecesize', char(piecesize), '2GB,4GB'
    from i
    where piecesize not in(2097152, 4194304)
        and indexType not in ('D', 'P')
)
, eIP ($colE8) as
(
  select           ty, qu, nm, pa, 'oq', 'storName'
         , storName, 'GSMS?'
    from ip
    where (   gp <> 'XB' and storName <> 'GSMS')
          or (gp = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select ty, qu, nm, pa, 'o', 'priQty', char(pQty), '-1'
    from ip
    where pqty <> -1
  union all select ty, qu, nm, pa, 'o', 'secQty', char(sQty), '-1'
    from ip
    where sqty <> -1
  union all select ty, qu, nm, pa
         , case when freePage >= 10 then 'o' else 'oq' end
         , 'freePage', char(freePage), '0'
    from ip
    where freepage <> 0
  union all select ty, qu, nm, pa
         , case when pctFree <= 15 then 'o' else 'oq' end
         , 'pctFree', char(pctFree), '10'
    from ip
    where pctFree <> 10
  union all select ty, qu, nm, pa, 'o', 'gbpCache', gbpCache, 'changed'
    from ip
    where gbpCache <> ' '
  union all select ty, qu, nm, pa, 'p', 'partitioned', 'no', 'yes'
    from ip
    where gpOpt = 'x' and partition  = 0
)
, eV (ty, qu, nm, pa, cat, att, val, std) as
(
  select           ty, qu, nm, pa, 'n', 'creator', qu,
                         'tbCr | ' || gpCr
    from v, nmCn
    where not( qu = nmCn.cr
               or ( nmCn.cr = left(qu, length(nmCn.cr))
                  and  nmCn.cr99 = translate(substr(qu
                     , 1+length(nmCn.cr)), '999999999', '012345678')) )
  union all select ty, qu, nm, pa, 'n', 'name',nm, 'V' ||strip(gp)||'%'
    from v
    where left(nm, 1) <> 'V'
          or (gp <> '' and substr(nm, 2, 2) <> gp)
)
, eU ($colE8) as
(
  select           * from eTs
  union all select * from eTp
      group by $cols8
  union all select * from eT
  union all select * from eC
  union all select * from eI
  union all select * from eIp
      group by $cols8
  union all select * from eV
)
$/cte/
$@proc $@=/txt/
  select ty, qu, nm, cat
      , case when cat in ('s', 'sb')  and val = '' then ' '
             when cat in ('s', 'sb') then ' rows=' || val
                                 || ', space=' || std || 'B'
             when length(val) = 0 then att || '='''', not std=' || std
             when val = ''        then att || '='' '', not std='|| std
             else att || '=' || strip(val) || ', not std='|| std
           end err
      , pa
$/txt/

$@proc $@=/outTxt/
, outTxt as
(
$@txt
    from uO
)
$/outTxt/

$proc $@=/db2gp/
$arg dbNa
       , case -- when gp <> '' then gp
              when $dbNa like 'DXB%' then 'XB'
              when $dbNa like 'XB%' then 'XB'
              else left($dbNa, 2)
         end gp
       , case when -- gp in ('XB', 'DXB') or
                  $dbNa like 'DXB%'
                 or $dbNa like 'XB%' then 'BUA'
              when right(strip($dbNa), 2) in ('1A' , '1T')
                         then 'OA' || right(strip($dbNa), 2)
              else 'OA1P'
         end gpCr
       , case when $dbNa like 'XB%' then 'x'  -- elar family db
                                    else '' end gpOpt
$/db2gp/

$proc $@=/cteC8/                   $** cte with 8 columns
$@cte
,
u ($cols8) as
(
  select           ty, qu, nm, cat, att, val, std, pa from eU
  union all select ty, qu, nm, 's', '', '', '', pa from ts
  union all select ty, qu, nm, 's', '', '', '', pa from t
  union all select ty, qu, nm, 's', '', '', '', pa from i
  union all select ty, qu, nm, 's', '', '', '', pa from v
)
$@cteUO
$/cteC8/
$proc $@=/cteUO/
, uO0 ($colO8) as
(
  select ty, cat
      , cast(strip(qu) as varchar(8))
      , cast(strip(nm) as varchar(50))
      , cast(att as varchar(12))
      , cast(rTrim(val) as varchar(50))
      , cast(strip(std) as varchar(20))
      , cast(strip(pa) as varchar(1000))
    from u
)
, uO ($colO8) as
(
  select *
    from uO0
    group by $colO8
    order by pa, att, cat
)
$/cteUO/
$@proc genJobs $@/genJobs/
    $@for li $@¢
        $=rz =- word($li, 1)

        $=jn =- A540769 || right($rz, 1)
        if $rz \== sysvar(sysnode) then $@=¢
//${rz}SUB   EXEC PGM=IEBGENER
//SYSPRINT   DD SYSOUT=*
//SYSUT2     DD SUBSYS=(CSM,'SYSTEM=$rz,SYSOUT=(A,INTRDR)')
//SYSUT1     DD DATA,DLM='}}'
$!
$@=¢
//${jn} JOB (CP00,KE50),'DB2 REO',
//         CLASS=M,MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL
$!
        $@do wx=2 to words($li) $@=/dbSy/
        $=dbSy =- word($li, wx)
        $=p3   =- substr($dbSy, 3, 1)
        $=path =- if(wordPos($dbSy, 'DBAF DBTF')>0, 'OA1'$p3, 'OA1P')
//${dbSy}SQL   EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSTSIN  DD *
   DSN SYSTEM($dbSy)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSIN    DD *
        $@%¢genDdl $path$!
        $/dbSy/
        if $rz \== sysvar(sysnode) then
            $$ }}
        $!
$/genJobs/

$#out                                              20160617 13:15:02
sqlCode 0: set current path  = 'OA1P'
sqlCode 0, 4 rows inserted: insert into OA1P.tQZ120DdlSel (ty, qu, nm) sel...
sqlCode 0, 1 rows inserted: insert into OA1P.tQZ120DdlSel (ty, qu, nm) val...
TY                        CAT            VAL                         PA
   QUALIFIERNAME            ATT                            STD
TY QUALIFIERNAME          C ATT          VAL               STD       PA
t  OA1P.TQZ040BINDPGM     s                                          db=DSNDB...
t  OA1P.TQZ040BINDPGM     o dataCapture                    changes   db=DSNDB...
t  OA1P.TQZ040BINDPGM     n name         TQZ040BINDPGM     TDSYSTS%  db=DSNDB...
t  OA1P.TQZ040BINDPGM     a primKeyConst no                yes       db=DSNDB...
t  OA1P.TQZ040BINDPGM     o restrictDrop                   Y         db=DSNDB...
v  OA1P.VQZ040BINDOV      s                                          db=DSNDB...
v  OA1P.VQZ040BIND        s                                          db=DSNDB...
v  OA1P.VQZ040REBIND      s                                          db=DSNDB...
v  OA1P.VQZ040BINDPGM     s                                          db=DSNDB...
v  OA1P.VQZ040BINDRDL     s                                          db=DSNDB...
v  OA1P.VQZ040BINDCQ      s                                          db=DSNDB...
v  OA1P.VQZ040BINDRZ      s                                          db=DSNDB...
v  OA1P.VQZ040BINDDBP     s                                          db=DSNDB...
t  OA1P.TQZ120DDLSEL      s                                          db=DSNDB...
t  OA1P.TQZ120DDLSEL      o dataCapture                    changes   db=DSNDB...
t  OA1P.TQZ120DDLSEL      n name         TQZ120DDLSEL      TDSYSTS%  db=DSNDB...
t  OA1P.TQZ120DDLSEL      a primKeyConst no                yes       db=DSNDB...
t  OA1P.TQZ120DDLSEL      o restrictDrop                   Y         db=DSNDB...
v  OA1P.VQZ120DDLCHEC8    s                                          db=DSNDB...
v  OA1P.VQZ120DDLCHECK    s                                          db=DSNDB...
v  OA1P.VQZ120DDLCHESUM   s                                          db=DSNDB...
v  OA1P.VQZ120DDLCHESU8   s                                          db=DSNDB...
v  OA1P.VQZ120DDLCHES8    s                                          db=DSNDB...
v  OA1P.VQZ120DDLCHESZ    s                                          db=DSNDB...
ts QZ01A1P.A006A          s                                          db=QZ01A...
ts QZ01A1P.A006A          p encoding     U                 EBCDIC    db=QZ01A...
t  OA1P.TQZ006GBGRTSSTATS s                                          db=QZ01A...
t  OA1P.TQZ006GBGRTSSTATS n name         TQZ006GBGRTSSTATS TQZ006A%  db=QZ01A...
t  OA1P.TQZ006GBGRTSSTATS o restrictDrop                   Y         db=QZ01A...
i  OA1P.IQZ006A1          s                                          db=QZ01A...
i  OA1P.IQZ006A1          n name         IQZ006A1          IQZ006G%  db=QZ01A...
i  OA1P.IQZ006A2          s                                          db=QZ01A...
i  OA1P.IQZ006A2          n name         IQZ006A2          IQZ006G%  db=QZ01A...
v  OA1P.VQZ006GBGRENZE    s                                          db=QZ01A...
ts QZ01A1P.A050A          s                                          db=QZ01A...
ts QZ01A1P.A050A          p encoding     U                 EBCDIC    db=QZ01A...
tp QZ01A1P.A050A          o pctFree      10                5         db=QZ01A...
ts QZ01A1P.A050A          p type         classic           UTS       db=QZ01A...
t  OA1P.TQZ050CMD         s                                          db=QZ01A...
t  OA1P.TQZ050CMD         p append       Y                 N         db=QZ01A...
t  OA1P.TQZ050CMD         p clusterIndex no                ifIndexes db=QZ01A...
t  OA1P.TQZ050CMD         n name         TQZ050CMD         TQZ050A%  db=QZ01A...
t  OA1P.TQZ050CMD         a primKeyConst no                yes       db=QZ01A...
t  OA1P.TQZ050CMD         o restrictDrop                   Y         db=QZ01A...
i  OA1P.IQZ050A1          s                                          db=QZ01A...
i  OA1P.IQZ050A1          n name         IQZ050A1          IQZ050C%  db=QZ01A...
i  OA1P.IQZ050A2          s                                          db=QZ01A...
i  OA1P.IQZ050A2          n name         IQZ050A2          IQZ050C%  db=QZ01A...
48 rows fetched: with std (std, mbrClu, app, pFree) as ( select ' ', ' ', ...
$#out                                              20160617 13:14:31
$#out                                              20160617 13:13:32
$#out                                              20160617 10:42:26
$#out                                              20160617 10:38:13
$#out                                              20160617 10:37:05
$#out                                              20160616 21:34:06
$#out                                              20160616 08:37:26
$#out                                              20160616 08:37:07
$#out                                              20160612 12:24:35
}¢--- A540769.WK.SQL(DDLCHSEL) cre=2013-06-11 mod=2015-11-18-21.12.19 A540769 ---
set current path  = 'OA1P';
insert into oa1p.tQZ120DDLsel
select 'ts', dbName  , name
   from sysibm.sysTableSpace
   where name =    'VDPS026'
--  and ( name like 'A010A%')
;
insert into oa1p.tQZ120DDLsel (ty, qu, nm)
    select 't', creator  , Name
    from sysibm.sysTables
    where -- type = 'T'
            name in ( 'TQZ120DDLSEL'
                    , 'TQZ006GBGRTSSTATS'
                    , 'TQZ050CMD'
                    ) ;
insert into oa1p.tQZ120DDLsel (ty, qu, nm)
    values ('v', 'OA1P', 'VQZ040REBIND') ;
insert into oa1p.tQZ120DDLsel (ty, qu, nm)
    values ('t', 'OA1P', 'TQZ040BINDPGM') ;
select *
    from oa1p.vQZ120DDLChec8
    order by pa, att
;
select *
    from oa1p.vQZ120DDLCheS8
    order by pa, att
;
select *
    from oa1p.vQZ120DDLCheSu8
    order by pa, att
;x;
select ty, substr(qu || '.' || nm, 1, 30), cat, err, pa
    from oa1p.vQZ120DDLCheSum
--  where cat not like 'i%'
--  group by std
    order by pa
; x
/*
 insert into oa1p.tQZ120DDLsel (ty, gp, qu, nm)
 select 't', '', creator , name
    from sysibm.sysTables
    where name like 'TMF150%'
 --  and ( name like 'A010A%')
insert into oa1p.tQZ120DDLsel
     select 'ts', dbName, name, ''
          from sysibm.systablespace
          where dbName like 'MF04A1T' and name = 'A010A'
     union all select 't', creator, name, ''
          from sysibm.systables
          where creator like 'OA1%' and name like 'TMF%' and type = 'T'
     union all select 'ts', dbName, name, ''
          from sysibm.systablespace
          where dbName = 'BE%' -- and name like 'A40%'
     union all select 'v', creator, name, ''
          from sysibm.systables
          where creator = 'GDB9998' and name like 'WK947NU%'
                   and type = 'V'
; */
with t as
(
  select * from oa1p.vQZ120DDLCheck
)
, u (ty, qu, nm, cat, err, pa) as
(
  select * from t
  union all select ty, '', '', '*s', count(*) || ' * ' || ty
       || ': ' || min(qu || '.' || nm) || ' - ' || min(qu || '.' || nm)
     , '*ty ' || ty
    from t
    where cat = 's'
    group by ty
  union all select ty, '', '', '*' || cat, count(*) || ' * ' || err
     , '*tyCatErr ' || ty || cat || err
    from t
    where cat <> 's'
    group by ty, cat, err
)
select ty, substr(qu || '.' || nm, 1, 30), cat, err, pa
    from u
--  where cat not like 'i%'
--  group by std
    order by pa
; x
select * from oa1p.vQZ120DDLCheck -- where cat = 'n'
;x;
select count(*), ty, cat, min(err), max(err)
    from oa1p.vQZ120DDLCheSz
--  where cat not like 'i%'
    group by ty, cat
    order by ty, cat
;
select * from oa1p.vQZ120DDLCheSz order by pa, err
}¢--- A540769.WK.SQL(DDLCHSTD) cre=2013-05-13 mod=2016-06-17-10.45.52 A540769 ---
                                                                17. 6.16
  ty cat               ap std       remark

tablespace ts
  ts n   name             %
  ts p   nTables          1
  ts p   type             PBR       = UTS partitioned by Range
                          PBG       = UTS partitioned by Growth
  ts p   partitions       <= 200    for PBR
  ts p   maxParts         10        for PBG
  ts o   bufferpool       bp2,pb32k
  ts pq  ccsid            ebcdic
  ts o * close            yes
  ts oq  dsSize           16GB      for PBR, but use only 4GB of it
                           4GB      for PBG (will be used completely)
  ts o * erase            no
  ts oq* lockmax          system
  ts oq* locksize         any
  ts o * logged           yes
  ts o * maxrows          255
  ts pq  memberCluster x  yes
       *                  no
  ts o   segsize          64
  ts p * clone            N

tablePart tp
  tp o   compress         yes
  tp o   stoGroup      x  GSMS1/2/3/4
                          GSMS
  tp o * priQty           -1
  tp o * secQty           -1
  tp oq* freepage         0
  tp oq* pctfree       x  0
                          5
  tp o * gbpCache         changed

table t
  t  n   creator       x  BUA
  t  n                    OA1P,OA1P99  .
  t  n   name          x  'XB' || substr(tsName, 2,6)
  t  n                    T || substr(db,1,2) || substr(ts,2,4) %
  t  p ts  implicit       no
  t  p   append        x  yes
     p *                  no
  t  p * audit            none
  t  o   datacapture      changes
  t  o   restrictDrop     yes
  t  p   volatile      x  yes
                          no
  t  p   clusterIndex     obligatory if there are indexes
  t  p   partitioning     table based
  t  p   primKeyConst     obligatory if there are unique indexes
  t  p   tableStatus      ok

column c
  c  p   type             disallowed: xml, lob, tst with zone, decFloat...
  c  p   hidden           disallowd

index i
  i  n   creator          = tbCreator
  i  n   name             I || substr(tb, 2, 6) %
  i  p   type             disallowed: on expression
  i  p * padded           no
  i  a   partitioned      for PBR (if possible and performant)
  i  p * piecesize        4GB (in not partitioned)

indexPart ip              specify on index level not on part level
  ip o * close            yes
  ip o * compress         no
  ip o * copy             no
  ip o * erase            no
  ip o   stoGroup      x  GSMS1/2/3/4
                          GSMS
  ip o * priQty           -1
  ip o * secQty           -1
  ip oq* freepage         0
  ip oq* pctfree          10
  ip o * gbpCache         changed

view
  v  n   name             V || substr(db, 1, 2) || substr(ts, 2, 3) %
  v  n   creator       x  BUA
                          OA1P,OA1P99
}¢--- A540769.WK.SQL(DDLCHUWE) cre=2013-05-10 mod=2013-05-10-17.09.04 A540769 ---
-- ### INFO Version 1.3 ###                                             00010000
-- Author: A559315, Uwe Toepperwien (TCG)                               00020000
--                                                                      00030000
-- DDL Checker für partitionierte Datenbanken ELAR. In ELAR ist nur     00040000
-- Table controlled Partition zulässig, folglich werden Non partition   00050000
-- Tables und Index controlled Partition nicht verifiziert.             00060000
-- Grundlage sind die DDL Vereinbarungen vom 10/2010                    00070000
-- Nachfolgende DB2 Objekte werden geprüft:                             00080000
-- (1) Datenbank                                                        00090000
-- (2) Tablespaces                                                      00100000
-- (3) Tabeles                                                          00110000
-- (4) Indexspaces                                                      00120000
-- (5) Index(e) Primary DPSI/ DPSI                                      00130000
--                                                                      00140000
-- Ein DDL Check ist möglich durch Angabe der ELAR Familie und/ oder    00150000
-- der Datenbank.                                                       00160000
--                                                                      00170000
-- Ist das Result des DDL Checkers "empty", dann sind alle vereinbarten 00180000
-- DDL Parameter eingehalten.                                           00190000
--                                                                      00200000
-- Ist das Result des DDL Checkers nicht "empty", dann                  00210000
-- (a) werden alle DDL Parameter Abweichungen ausgewiesen, wenn die     00220000
--     Familie/ Datenbank vom Typ Table Controlled Partition ist        00230000
-- (b) der Fehler "DatabaseImplementation" zeigt an, das die Familie/   00240000
--     Datenbank nicht vom Typ Table Controlled Partition ist.          00250000
--                                                                      00260000
-- Die nachfolgenden zwei INSERT's zeigen exemplarisch die Möglichkeiten00270000
-- der Parameterzuordnung für den DDL Checker.                          00280000
-- Die Datenbank XBA06004 ist nicht partitioniert und die Familie       00290000
-- entspricht in Teilen nicht DDL Vereinbarungen.                       00300000
--                                                                      00310000
-- Parameterwert fuer maximale Anzahl Partition festlegen               00320000
-- Die maximale Anzahl Partitionen ist für Table- und Indexcontrolled   00330000
-- Partitioning vorzugeben.                                             00340000
--                                                                      00350000
-- Update: 10.05.2012, TCG                                              00360000
--  (1) New Bufferpool assignment (BP2 and BP1)                         00370000
--  (2) Check Bufferpool BP8 for LOB                                    00380000
--  (3) De-activate Partition and Index Columun check                   00390000
--      for database with prefix DXB (Elar Metadata)                    00400000
--  (4) Result set order changed to family, database, tablespace,       00410000
--      table, indexspace and index.                                    00420000
--  (5) Defined more and detailed messages.                             00430000
--                                                                      00440000
-- Update: 17.05.2012, TCG                                              00450000
--  (1) Find database name for migrated families (migrated families     00460000
--      have a symbolic name like FAMnnmm where nn is multipler 1000    00470000
--      and mm is the family number. Exp. FAM1015 is family 15 that is  00480000
--      family DEVI.IF)                                                 00490000
--  (2) New column COMMENT describes the family                         00500000
--  (3) Result shows first families from migration and all other        00510000
--      families.                                                       00520000
--  (4) Correction of text mistakes.                                    00530000
--                                                                      00540000
-- ============ Start of Check sequence ============                    00550000
--                                                                      00560000
-- Zwischenspeicher der zu untersuchenden Datenbanken                   00570000
--                                                                      00580000
DECLARE GLOBAL TEMPORARY TABLE FAMLISTE                                 00590000
               (  FAMILY       CHAR(20) NOT NULL                        00600000
               ,  DBNAME       CHAR(08) NOT NULL                        00610000
               ,  STORAR       CHAR(03)                                 00620000
               ,  ENSEG        CHAR(03)                                 00630000
               ,  STORAR_N     INTEGER                                  00640000
               ,  ENSEG_N      SMALLINT                                 00650000
               )                                                        00660000
;                                                                       00670000
--- ===> Hier ELAR Familie und/ oder Datenbanknamen eingeben.           00680000
---      Sample 1: Vorgabe Familie, dann Datenbank uuf '?' setzen       00690000
INSERT INTO SESSION.FAMLISTE ( FAMILY, DBNAME )                         00700000
                      VALUES ( '?', 'XBFQ1001')                         00710000
---      Sample 2: Vorgabe Datenbank, dann Familie auf '?' setzen       00720000
--INSERT INTO SESSION.FAMLISTE ( FAMILY, DBNAME )                       00730000
--                      VALUES ( '?', 'XBD2R001')                       00740000
;                                                                       00750000
--- Definition of partition limit for table- and indexspace             00760000
DECLARE GLOBAL TEMPORARY TABLE MAXPART                                  00770000
               (  PARTYPE      CHAR(05) NOT NULL                        00780000
                , MAXPART      INTEGER  NOT NULL                        00790000
               )                                                        00800000
;                                                                       00810000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART )                        00820000
                     VALUES ( 'Table', 200 )                            00830000
;                                                                       00840000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART )                        00850000
                     VALUES ( 'Index', 128 )                            00860000
;                                                                       00870000
UPDATE SESSION.FAMLISTE                                                 00880000
   SET STORAR   = SUBSTR(DBNAME,3,3)                                    00890000
     , ENSEG    = SUBSTR(DBNAME,6,3)                                    00900000
 WHERE SUBSTR(DBNAME,1,2) = 'XB'                                        00910000
;                                                                       00920000
UPDATE SESSION.FAMLISTE                                                 00930000
   SET STORAR_N = (SELECT XBA510_STORAGE_ARN                            00940000
                     FROM BUA.TXBA510                                   00950000
                    WHERE XBA510_STORAGE_ARC = STORAR                   00960000
                  )                                                     00970000
     , ENSEG_N  = (SELECT XBA510_STORAGE_ARN                            00980000
                     FROM BUA.TXBA510                                   00990000
                    WHERE XBA510_STORAGE_ARC = ENSEG                    01000000
                  )                                                     01010000
;                                                                       01020000
DECLARE GLOBAL TEMPORARY TABLE ELAR                                     01030000
               (  FAMILY       CHAR(20) NOT NULL                        01040000
                , STORAR       CHAR(08) NOT NULL                        01050000
                , COMMENT      CHAR(20) NOT NULL WITH DEFAULT           01060000
               )                                                        01070000
;                                                                       01080000
INSERT INTO SESSION.ELAR                                                01090000
WITH TESLA (  FAMILY                                                    01100000
            , STORAR                                                    01110000
            , COMMENT                                                   01120000
           )                                                            01130000
--                                                                      01140000
-- Search over family name and retrieve database name(s)                01150000
-- 1) Import run time tables                                            01160000
-- 2) Time range run time table and family configuration                01170000
--    (no data available over(1)                                        01180000
-- 3) Migration protocol (no data available over (1) and (2)            01190000
-- 4) Family number control table. Last change to find a family,        01200000
--    while all run time and meta data are broken (broken links)        01210000
--                                                                      01220000
       AS  (SELECT C071.EAOF                                            01230000
                 , CAST ( C071.EYPREF   ||                              01240000
                          C111.ENSTORAR ||                              01250000
                          C111.ENSEG       AS CHAR(08)                  01260000
                        )                                               01270000
                 , ' ' AS COMMENT                                       01280000
              FROM            BUA.TXBC111 C111                          01290000
              FULL OUTER JOIN BUA.TXBC071 C071                          01300000
                           ON C111.ENSTORAR = C071.ENSTORAR             01310000
             INNER       JOIN SESSION.FAMLISTE    FL                    01320000
                           ON FL.FAMILY     = C071.EAOF                 01330000
             WHERE C111.ENSTORAR IS NOT NULL                            01340000
               AND C111.ENSEG    IS NOT NULL                            01350000
               AND C071.EYPREF   IS NOT NULL                            01360000
            UNION  DISTINCT                                             01370000
            SELECT BE051.EAOF                                           01380000
                 , FL.DBNAME                                            01390000
                 , ' ' AS COMMENT                                       01400000
              FROM      BUA.TXBE051 BE051                               01410000
             INNER JOIN BUA.TXBA201 BA201                               01420000
                     ON BE051.ENLIBENG = BA201.ENSTORAR                 01430000
             INNER JOIN SESSION.FAMLISTE FL                             01440000
                     ON FL.FAMILY      = BE051.EAOF                     01450000
            UNION  DISTINCT                                             01460000
            SELECT T504.XBA501_FAMNAME                                  01470000
                 , XBA504_DB                                            01480000
                 , '-- old Migration --' AS COMMENT                     01490000
              FROM      BUA.TXBA504 T504                                01500000
              LEFT JOIN BUA.TXBA511 T511                                01510000
                     ON T504.XBA501_FAMNAME =  T511.XBA501_FAMNAME      01520000
                    AND T504.XBA504_TABLE   =  T511.XBA504_TABLE        01530000
             INNER JOIN SESSION.FAMLISTE FL                             01540000
                     ON FL.FAMILY           =  T504.XBA501_FAMNAME      01550000
            UNION  DISTINCT                                             01560000
            SELECT STRIP(BA131.EAOF)                                    01570000
                 , SUBSTR(MG103.EANTABNAME,1,8)                         01580000
                 , '-- new Migration --' AS COMMENT                     01590000
              FROM      BUA.TXBMG103 MG103                              01600000
             INNER JOIN BUA.TXBA131  BA131                              01610000
                     ON MG103.ENOF = BA131.ENOF                         01620000
             INNER JOIN SESSION.FAMLISTE FL                             01630000
                     ON UCASE(BA131.EAOF) = FL.FAMILY                   01640000
--                                                                      01650000
-- Search over Database Name and retrieve family name                   01660000
-- In general same processing like search over family, but other        01670000
-- columns are relevant.                                                01680000
--                                                                      01690000
            UNION  DISTINCT                                             01700000
            SELECT C071.EAOF                                            01710000
                 , FL.DBNAME                                            01720000
                 , ' ' AS COMMENT                                       01730000
              FROM            BUA.TXBC111 C111                          01740000
              FULL OUTER JOIN BUA.TXBC071 C071                          01750000
                           ON C111.ENSTORAR = C071.ENSTORAR             01760000
             INNER       JOIN SESSION.FAMLISTE FL                       01770000
                           ON FL.STORAR = C111.ENSTORAR                 01780000
                          AND FL.ENSEG  = C111.ENSEG                    01790000
            UNION  DISTINCT                                             01800000
            SELECT BE051.EAOF                  AS FAMILY                01810000
                 , FL.DBNAME                                            01820000
                 , ' ' AS COMMENT                                       01830000
              FROM      BUA.TXBE051 BE051                               01840000
             INNER JOIN BUA.TXBA201 BA201                               01850000
                     ON BE051.ENLIBENG = BA201.ENSTORAR                 01860000
             INNER JOIN SESSION.FAMLISTE FL                             01870000
                     ON FL.STORAR_N    = BA201.ENSTORAR                 01880000
                    AND FL.ENSEG_N     = BA201.ENSEG                    01890000
            UNION  DISTINCT                                             01900000
            SELECT T504.XBA501_FAMNAME                                  01910000
                 , XBA504_DB                                            01920000
                 , ' ' AS COMMENT                                       01930000
              FROM      BUA.TXBA504 T504                                01940000
              LEFT JOIN BUA.TXBA511 T511                                01950000
                     ON T504.XBA501_FAMNAME =  T511.XBA501_FAMNAME      01960000
                    AND T504.XBA504_TABLE   =  T511.XBA504_TABLE        01970000
             INNER JOIN SESSION.FAMLISTE FL                             01980000
                     ON FL.DBNAME           =  T504.XBA504_DB           01990000
            UNION  DISTINCT                                             02000000
            SELECT UCASE(BA131.EAOF)                                    02010000
                 , FL.DBNAME                                            02020000
                 , ' ' AS COMMENT                                       02030000
                FROM      BUA.TXBA131 BA131                             02040000
               INNER JOIN BUA.TXBG081 BG181                             02050000
                       ON BA131.ENOF = BG181.ENOF                       02060000
               INNER JOIN SESSION.FAMLISTE FL                           02070000
                       ON BG181.ENSTORAR = FL.STORAR_N                  02080000
            UNION  DISTINCT                                             02090000
            SELECT UCASE(BA131.EAOF)                                    02100000
                 , FL.DBNAME                                            02110000
                 , ' ' AS COMMENT                                       02120000
              FROM      BUA.TXBA131 BA131                               02130000
             INNER JOIN BUA.TXBG081X BG181                              02140000
                     ON BA131.ENOF = BG181.ENOF                         02150000
             INNER JOIN SESSION.FAMLISTE FL                             02160000
                     ON BG181.ENSTORAR = FL.STORAR_N                    02170000
            UNION  DISTINCT                                             02180000
            SELECT 'ELAR Repo. / Base'                                  02190000
                 , DBNAME                                               02200000
                 , ' ' AS COMMENT                                       02210000
              FROM SESSION.FAMLISTE                                     02220000
             WHERE SUBSTR(DBNAME,1,3) = 'DXB'                           02230000
           )                                                            02240000
SELECT FAMILY                                                           02250000
     , STORAR                                                           02260000
     , COMMENT                                                          02270000
  FROM TESLA                                                            02280000
;                                                                       02290000
-- Add database without ELAR meta data into checklist                   02300000
--                                                                      02310000
INSERT INTO SESSION.ELAR                                                02320000
SELECT DBNAME                                                           02330000
     , DBNAME                                                           02340000
     , ' '                                                              02350000
  FROM SESSION.FAMLISTE                                                 02360000
 WHERE DBNAME NOT IN (SELECT STORAR FROM SESSION.ELAR)                  02370000
   AND DBNAME <> '?'                                                    02380000
;                                                                       02390000
DECLARE GLOBAL TEMPORARY TABLE TEMP                                     02400000
               (  SNUM            CHAR(0013) FOR BIT DATA NOT NULL      02410000
                , CRITERIA        CHAR(0030)              NOT NULL      02420000
                , FAMILY          CHAR(0030)              NOT NULL      02430000
                , COMMENT         CHAR(0020)              NOT NULL      02440000
                , OBJECT          CHAR(0060)              NOT NULL      02450000
                , OPTVALUE     VARCHAR(1024)              NOT NULL      02460000
               )                                                        02470000
;                                                                       02480000
INSERT INTO SESSION.TEMP                                                02490000
WITH DBDDL (  FAMILY                                                    02500000
            , DATABASE                                                  02510000
            , BUFFERPOOL                                                02520000
            , INDEXPOOL                                                 02530000
            , STOGROUP                                                  02540000
            , CCID                                                      02550000
            , DBID                                                      02560000
            , COMMENT                                                   02570000
           )                                                            02580000
        AS (SELECT DISTINCT                                             02590000
                   EL.FAMILY                                            02600000
                 , DB.NAME                                              02610000
                 , DB.BPOOL                                             02620000
                 , DB.INDEXBP                                           02630000
                 , DB.STGROUP                                           02640000
                 , DB.ENCODING_SCHEME                                   02650000
                 , DB.DBID                                              02660000
                 , EL.COMMENT                                           02670000
              FROM      SESSION.ELAR         EL                         02680000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         02690000
                     ON EL.STORAR = DB.NAME                             02700000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         02710000
                     ON DB.DBID   = TS.DBID                             02720000
           )                                                            02730000
   , RDB   (  FAMILY                                                    02740000
            , COMMENT                                                   02750000
            , OBJECT                                                    02760000
            , OPTVALUE                                                  02770000
           )                                                            02780000
        AS (SELECT DISTINCT                                             02790000
                   FAMILY                                               02800000
                 , COMMENT                                              02810000
                 , CAST(DATABASE AS CHAR(08))                           02820000
                 , 'Bufferpool_DB='                                     02830000
                || CASE WHEN BUFFERPOOL = 'BP2'                         02840000
                             THEN 'OK'                                  02850000
                        ELSE 'NOK'                                      02860000
                   END                                                  02870000
                || ';'                                                  02880000
                || 'Bufferpool_DB_IX='                                  02890000
                || CASE WHEN INDEXPOOL = 'BP1'                          02900000
                             THEN 'OK'                                  02910000
                        ELSE 'NOK'                                      02920000
                   END                                                  02930000
                || ';'                                                  02940000
                || 'StorageGroup='                                      02950000
                || CASE STOGROUP                                        02960000
                        WHEN 'GSMS1' THEN 'OK'                          02970000
                        WHEN 'GSMS2' THEN 'OK'                          02980000
                        WHEN 'GSMS3' THEN 'OK'                          02990000
                        WHEN 'GSMS4' THEN 'OK'                          03000000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     03010000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      03020000
                                            THEN 'OK'                   03030000
                                            ELSE 'NOK'                  03040000
                                       END                              03050000
                                  ELSE 'NOK'                            03060000
                             END                                        03070000
                   END                                                  03080000
                || ';'                                                  03090000
                || 'EncodingScheme='                                    03100000
                || CASE WHEN CCID = 'E'                                 03110000
                             THEN 'OK'                                  03120000
                        ELSE 'NOK'                                      03130000
                   END                                                  03140000
              FROM DBDDL                                                03150000
           )                                                            03160000
SELECT GENERATE_UNIQUE()                                                03170000
     , '1Database Option Check'                                         03180000
     , FAMILY                                                           03190000
     , COMMENT                                                          03200000
     , OBJECT                                                           03210000
     , OPTVALUE                                                         03220000
  FROM RDB                                                              03230000
 ORDER BY FAMILY                                                        03240000
        , OBJECT                                                        03250000
;                                                                       03260000
INSERT INTO SESSION.TEMP                                                03270000
WITH TSDDL (  FAMILY                                                    03280000
            , DATABASE                                                  03290000
            , BPOOL_T                                                   03300000
            , TSNAME                                                    03310000
            , PARTITION                                                 03320000
            , STOGROUP                                                  03330000
            , PRIQTY                                                    03340000
            , SECQTY                                                    03350000
            , GBPCACHE                                                  03360000
            , TRACKMODE                                                 03370000
            , LOGGED                                                    03380000
            , DSSIZE                                                    03390000
            , LOCKSIZE                                                  03400000
            , LOCKMAX                                                   03410000
            , CLOSE                                                     03420000
            , COMPRESS                                                  03430000
            , CCID                                                      03440000
            , DEFINE                                                    03450000
            , MAXROWS                                                   03460000
            , TPIXNAME                                                  03470000
            , AUXTBNAME                                                 03480000
            , COMMENT                                                   03490000
           )                                                            03500000
        AS (SELECT DISTINCT                                             03510000
                   EL.FAMILY          AS FAMILY                         03520000
                 , DB.NAME            AS DATABASE                       03530000
                 , TS.BPOOL           AS BPOOL_T                        03540000
                 , TS.NAME            AS TSNAME                         03550000
                 , TS.PARTITIONS      AS PARTITION                      03560000
                 , TP.STORNAME        AS STOGROUP                       03570000
                 , TP.PQTY            AS PRIQTY                         03580000
                 , TP.SQTY            AS SECQTY                         03590000
                 , TP.GBPCACHE        AS GBPCACHE                       03600000
                 , TP.TRACKMOD        AS TRACKMODE                      03610000
                 , TS.LOG             AS LOGGED                         03620000
                 , TS.DSSIZE          AS DSSIZE                         03630000
                 , TS.LOCKRULE        AS LOCKSIZE                       03640000
                 , TS.LOCKMAX         AS LOCKMAX                        03650000
                 , TS.CLOSERULE       AS CLOSE                          03660000
                 , TP.COMPRESS        AS COMPRESS                       03670000
                 , TS.ENCODING_SCHEME AS CCID                           03680000
                 , TP.SPACE           AS DEFINE                         03690000
                 , TS.MAXROWS         AS MAXROWS                        03700000
                 , TP.IXNAME          AS TPIXNAME                       03710000
                 , TB.TYPE            AS AUXTBNAME                      03720000
                 , EL.COMMENT         AS COMMENT                        03730000
              FROM      SESSION.ELAR         EL                         03740000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         03750000
                     ON EL.STORAR = DB.NAME                             03760000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         03770000
                     ON DB.DBID   = TS.DBID                             03780000
             INNER JOIN SYSIBM.SYSTABLEPART  TP                         03790000
                     ON TS.NAME   = TP.TSNAME                           03800000
                    AND TS.DBNAME = TP.DBNAME                           03810000
             INNER JOIN SYSIBM.SYSTABLES TB                             03820000
                     ON TP.DBNAME = TB.DBNAME                           03830000
                    AND TP.TSNAME = TB.TSNAME                           03840000
           )                                                            03850000
   , RTS   (  FAMILY                                                    03860000
            , COMMENT                                                   03870000
            , OBJECT                                                    03880000
            , OPTVALUE                                                  03890000
           )                                                            03900000
        AS (SELECT DISTINCT                                             03910000
                   FAMILY                                               03920000
                 , COMMENT                                              03930000
                 , CAST(DATABASE AS CHAR(08))                           03940000
                || ' '                                                  03950000
                || TSNAME                                               03960000
                || ' '                                                  03970000
                 , CASE WHEN PARTITION > 0                              03980000
                        THEN CASE WHEN LENGTH(STRIP(TPIXNAME)) = 0      03990000
                                  THEN 'InfoTCP=OK'                     04000000
                                  ELSE 'InfoICP=OK'                     04010000
                             END                                        04020000
                        ELSE 'InfoTSS=OK'                               04030000
                   END                                                  04040000
                || ';'                                                  04050000
                || 'TablePartLimit='                                    04060000
                || CASE WHEN PARTITION > (SELECT MAXPART                04070000
                                            FROM SESSION.MAXPART        04080000
                                           WHERE PARTYPE = 'Table'      04090000
                                         )                              04100000
                        THEN 'NOK'                                      04110000
                        ELSE 'OK'                                       04120000
                   END                                                  04130000
                || ';'                                                  04140000
                || 'Bufferpool'                                         04150000
                || CASE BPOOL_T                                         04160000
                   WHEN 'BP2'   THEN                                    04170000
                                CASE WHEN SUBSTR(TSNAME,1,3)='SHS'      04180000
                                     THEN '_SHS=NOK'                    04190000
                                     ELSE '=OK'                         04200000
                                END                                     04210000
                   WHEN 'BP32K' THEN                                    04220000
                                CASE WHEN SUBSTR(TSNAME,1,3)='SHS'      04230000
                                THEN '=OK'                              04240000
                                ELSE CASE WHEN LENGTH(TSNAME) = 8       04250000
                                     THEN CASE WHEN   SUBSTR(TSNAME,8,1)04260000
                                                    = 'H'               04270000
                                               THEN '=OK'               04280000
                                               ELSE '_SHS=NOK'          04290000
                                               END                      04300000
                                     ELSE '_SHS=NOK'                    04310000
                                     END                                04320000
                                END                                     04330000
                   WHEN 'BP8'   THEN                                    04340000
                                CASE WHEN AUXTBNAME = 'X'               04350000
                                     THEN '=OK'                         04360000
                                     ELSE '_LOB=NOK'                    04370000
                                END                                     04380000
                   ELSE '_TS=NOK'                                       04390000
                   END                                                  04400000
                || ';'                                                  04410000
                || 'Groupbufferpool='                                   04420000
                || CASE GBPCACHE                                        04430000
                        WHEN ' ' THEN 'OK'                              04440000
                        ELSE 'NOK'                                      04450000
                  END                                                   04460000
                || ';'                                                  04470000
                || 'Trackmode='                                         04480000
                || CASE TRACKMODE                                       04490000
                        WHEN 'N' THEN 'OK'                              04500000
                        ELSE 'NOK'                                      04510000
                   END                                                  04520000
                || ';'                                                  04530000
                || 'LoggedOption='                                      04540000
                || CASE LOGGED                                          04550000
                        WHEN 'Y' THEN 'OK'                              04560000
                        ELSE 'NOK'                                      04570000
                   END                                                  04580000
                || ';'                                                  04590000
                || 'DSSIZE='                                            04600000
                || CASE WHEN PARTITION > 0                              04610000
                        THEN CASE DSSIZE                                04620000
                             WHEN 16777216 THEN 'OK'                    04630000
                                           ELSE 'NOK'                   04640000
                             END                                        04650000
                        ELSE 'OK'                                       04660000
                   END                                                  04670000
                || ';'                                                  04680000
                || 'Locksize='                                          04690000
                || CASE LOCKSIZE                                        04700000
                        WHEN 'A' THEN 'OK'                              04710000
                        ELSE 'NOK'                                      04720000
                   END                                                  04730000
                || ';'                                                  04740000
                || 'LockMax='                                           04750000
                || CASE LOCKMAX                                         04760000
                        WHEN -1 THEN 'OK'                               04770000
                        ELSE 'NOK'                                      04780000
                   END                                                  04790000
                || ';'                                                  04800000
                || 'CloseOption='                                       04810000
                || CASE CLOSE                                           04820000
                        WHEN 'Y' THEN 'OK'                              04830000
                        ELSE 'NOK'                                      04840000
                   END                                                  04850000
                || ';'                                                  04860000
                || 'TblCompressOption='                                 04870000
                || CASE COMPRESS                                        04880000
                        WHEN 'Y' THEN 'OK'                              04890000
                        ELSE 'NOK'                                      04900000
                   END                                                  04910000
                || ';'                                                  04920000
                || 'StorageGroup='                                      04930000
                || CASE STOGROUP                                        04940000
                        WHEN 'GSMS1' THEN 'OK'                          04950000
                        WHEN 'GSMS2' THEN 'OK'                          04960000
                        WHEN 'GSMS3' THEN 'OK'                          04970000
                        WHEN 'GSMS4' THEN 'OK'                          04980000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     04990000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      05000000
                                            THEN 'OK'                   05010000
                                            ELSE 'NOK'                  05020000
                                       END                              05030000
                                  ELSE 'NOK'                            05040000
                             END                                        05050000
                   END                                                  05060000
                || ';'                                                  05070000
                || 'PrimaryQuantity='                                   05080000
                || CASE PRIQTY                                          05090000
                        WHEN -1 THEN 'OK'                               05100000
                        ELSE 'NOK'                                      05110000
                   END                                                  05120000
                || ';'                                                  05130000
                || 'SecondaryQuantity='                                 05140000
                || CASE SECQTY                                          05150000
                        WHEN -1 THEN 'OK'                               05160000
                        ELSE 'NOK'                                      05170000
                   END                                                  05180000
                || ';'                                                  05190000
                || 'EncodingScheme='                                    05200000
                || CASE WHEN CCID = 'E' THEN 'OK'                       05210000
                        ELSE 'NOK'                                      05220000
                   END                                                  05230000
                || ';'                                                  05240000
                || 'DefineOption='                                      05250000
                || CASE DEFINE                                          05260000
                        WHEN -1 THEN 'NOK'                              05270000
                        ELSE 'OK'                                       05280000
                   END                                                  05290000
                || ';'                                                  05300000
                || 'MaxRowsPerPage='                                    05310000
                || CASE MAXROWS                                         05320000
                        WHEN 255 THEN 'OK'                              05330000
                        ELSE 'NOK'                                      05340000
                   END                                                  05350000
              FROM TSDDL                                                05360000
           )                                                            05370000
SELECT GENERATE_UNIQUE()                                                05380000
     , '2Tablespace Option Check'                                       05390000
     , FAMILY                                                           05400000
     , COMMENT                                                          05410000
     , OBJECT                                                           05420000
     , OPTVALUE                                                         05430000
  FROM RTS                                                              05440000
 ORDER BY FAMILY                                                        05450000
        , OBJECT                                                        05460000
;                                                                       05470000
INSERT INTO SESSION.TEMP                                                05480000
WITH TBDDL (  FAMILY                                                    05490000
            , DATABASE                                                  05500000
            , TSNAME                                                    05510000
            , TBNAME                                                    05520000
            , AUDIT                                                     05530000
            , DATA_CAPTURE                                              05540000
            , RESTRICT_DROP                                             05550000
            , CCID                                                      05560000
            , VOLATILE                                                  05570000
            , APPEND                                                    05580000
            , PART_NAME                                                 05590000
            , PART_TYPE                                                 05600000
            , PART_SEQ                                                  05610000
            , PART_ORDER                                                05620000
            , PARTITION                                                 05630000
            , PART_LIMITKEY                                             05640000
            , PART_LOGICALKEY                                           05650000
            , COLNO                                                     05660000
            , COMMENT                                                   05670000
           )                                                            05680000
        AS (SELECT EL.FAMILY                                            05690000
                 , CAST(TB.DBNAME AS CHAR(08))                          05700000
                 , TB.TSNAME                                            05710000
                 , TB.NAME                                              05720000
                 , TB.AUDITING                                          05730000
                 , TB.DATACAPTURE                                       05740000
                 , TB.CLUSTERTYPE                                       05750000
                 , TB.ENCODING_SCHEME                                   05760000
                 , TB.SPLIT_ROWS                                        05770000
                 , TB.APPEND                                            05780000
                 , TC.NAME                                              05790000
                 , TC.COLTYPE                                           05800000
                 , TC.PARTKEY_COLSEQ                                    05810000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     05820000
                             THEN ' '                                   05830000
                             ELSE TC.PARTKEY_ORDERING                   05840000
                        END                 AS CHAR(01))                05850000
                 , CAST(TP.PARTITION        AS INTEGER)                 05860000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     05870000
                             THEN '0'                                   05880000
                             ELSE STRIP(TP.LIMITKEY)                    05890000
                        END                 AS VARCHAR(765))            05900000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     05910000
                             THEN 0                                     05920000
                             ELSE TP.LOGICAL_PART                       05930000
                        END                 AS INTEGER)                 05940000
                 , COLNO                                                05950000
                 , EL.COMMENT                                           05960000
              FROM      SESSION.ELAR        EL                          05970000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         05980000
                     ON EL.STORAR  = DB.NAME                            05990000
             INNER JOIN SYSIBM.SYSTABLES     TB                         06000000
                     ON TB.DBNAME  = DB.NAME                            06010000
                    AND TB.TYPE    = 'T'                                06020000
             INNER JOIN SYSIBM.SYSCOLUMNS    TC                         06030000
                     ON TB.NAME    = TC.TBNAME                          06040000
                    AND TB.CREATOR = TC.TBCREATOR                       06050000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         06060000
                     ON TB.TSNAME  = TS.NAME                            06070000
                    AND TB.DBID    = TS.DBID                            06080000
                    AND TS.DBID    = DB.DBID                            06090000
             INNER JOIN SYSIBM.SYSTABLEPART  TP                         06100000
                     ON TS.NAME    = TP.TSNAME                          06110000
                    AND TS.DBNAME  = TP.DBNAME                          06120000
             WHERE SUBSTR(EL.STORAR,1,3) <> 'DXB'                       06130000
               ORDER BY TB.DBNAME, TB.TSNAME                            06140000
                      , TC.COLNO , TC.PARTKEY_COLSEQ                    06150000
           )                                                            06160000
   , RTB   (  FAMILY                                                    06170000
            , COMMENT                                                   06180000
            , OBJECT                                                    06190000
            , OPTVALUE                                                  06200000
           )                                                            06210000
        AS (SELECT DISTINCT                                             06220000
                   FAMILY                                               06230000
                 , COMMENT                                              06240000
                 , CAST(DATABASE AS CHAR(08))                           06250000
                || ' '                                                  06260000
                || TSNAME                                               06270000
                || ' '                                                  06280000
                || TBNAME                                               06290000
                 , 'Audit='                                             06300000
                || CASE AUDIT                                           06310000
                        WHEN ' ' THEN 'OK'                              06320000
                        ELSE 'NOK'                                      06330000
                   END                                                  06340000
                || ';'                                                  06350000
                || 'DataCapture='                                       06360000
                || CASE DATA_CAPTURE                                    06370000
                        WHEN ' ' THEN 'OK'                              06380000
                        ELSE 'NOK'                                      06390000
                   END                                                  06400000
                || ';'                                                  06410000
                || 'RestrictOnDrop='                                    06420000
                || CASE RESTRICT_DROP                                   06430000
                        WHEN 'Y' THEN 'OK'                              06440000
                        ELSE 'NOK'                                      06450000
                   END                                                  06460000
                || ';'                                                  06470000
                || 'EncodingScheme='                                    06480000
                || CASE CCID                                            06490000
                        WHEN 'E' THEN 'OK'                              06500000
                        ELSE 'NOK'                                      06510000
                   END                                                  06520000
                || ';'                                                  06530000
                || 'Volatile='                                          06540000
                || CASE VOLATILE                                        06550000
                        WHEN 'Y' THEN 'OK'                              06560000
                        ELSE 'NOK'                                      06570000
                   END                                                  06580000
                || ';'                                                  06590000
                || 'Append='                                            06600000
                || CASE APPEND                                          06610000
                        WHEN 'N' THEN 'OK'                              06620000
                        ELSE 'NOK'                                      06630000
                   END                                                  06640000
                || ';'                                                  06650000
                || 'PartKeyName='                                       06660000
                || CASE WHEN PART_SEQ > 0                               06670000
                        THEN CASE PART_NAME                             06680000
                                  WHEN 'EN1PART' THEN 'OK'              06690000
                                  ELSE 'NOK'                            06700000
                             END                                        06710000
                        ELSE 'N/A'                                      06720000
                   END                                                  06730000
                || ';'                                                  06740000
                || 'PartKeyType='                                       06750000
                || CASE WHEN PART_SEQ > 0                               06760000
                        THEN CASE PART_TYPE                             06770000
                                  WHEN 'INTEGER' THEN 'OK'              06780000
                                  ELSE 'NOK'                            06790000
                             END                                        06800000
                        ELSE 'N/A'                                      06810000
                   END                                                  06820000
                || ';'                                                  06830000
                || 'PartKeyPosition='                                   06840000
                || CASE WHEN PART_SEQ > 0                               06850000
                        THEN CASE PART_SEQ                              06860000
                                  WHEN 1 THEN 'OK'                      06870000
                                  ELSE 'NOK'                            06880000
                             END                                        06890000
                        ELSE 'N/A'                                      06900000
                   END                                                  06910000
                || ';'                                                  06920000
                || 'PartKeyOrder='                                      06930000
                || CASE WHEN PART_SEQ > 0                               06940000
                        THEN CASE PART_ORDER                            06950000
                                  WHEN 'A' THEN 'OK'                    06960000
                                  ELSE 'NOK'                            06970000
                             END                                        06980000
                        ELSE 'N/A'                                      06990000
                   END                                                  07000000
                || ';'                                                  07010000
                || 'PartKeyValue(s)='                                   07020000
                || CASE WHEN PART_SEQ > 0                               07030000
                        THEN CASE WHEN CHAR(PARTITION) = PART_LIMITKEY  07040000
                                  THEN CASE WHEN   PART_LIMITKEY        07050000
                                                 = CHAR(PART_LOGICALKEY)07060000
                                            THEN 'OK'                   07070000
                                            ELSE 'NOK'                  07080000
                                       END                              07090000
                                  ELSE 'NOK'                            07100000
                             END                                        07110000
                        ELSE 'N/A'                                      07120000
                   END                                                  07130000
                   AS OPTVALUE                                          07140000
              FROM TBDDL                                                07150000
           )                                                            07160000
SELECT GENERATE_UNIQUE()                                                07170000
     , '3Table Option Check'                                            07180000
     , FAMILY                                                           07190000
     , COMMENT                                                          07200000
     , OBJECT                                                           07210000
     , OPTVALUE                                                         07220000
  FROM RTB                                                              07230000
 ORDER BY FAMILY                                                        07240000
        , OBJECT                                                        07250000
;                                                                       07260000
INSERT INTO SESSION.TEMP                                                07270000
WITH XSTMP (  FAMILY                                                    07280000
            , DATABASE                                                  07290000
            , TBNAME                                                    07300000
            , IXNAME                                                    07310000
            , IXCREATOR                                                 07320000
            , BPOOL_I                                                   07330000
            , INDEXTYPE                                                 07340000
            , PARTITION                                                 07350000
            , STOGROUP                                                  07360000
            , PRIQTY                                                    07370000
            , SECQTY                                                    07380000
            , GBPCACHE                                                  07390000
            , PGSIZE                                                    07400000
            , FREEPAGE                                                  07410000
            , PCTFREE                                                   07420000
            , COMPRESS                                                  07430000
            , CLOSE                                                     07440000
            , COPY                                                      07450000
            , DEFINE                                                    07460000
            , CLUSTERING                                                07470000
            , TSPARTITION                                               07480000
            , TPIXNAME                                                  07490000
            , PIECESIZE                                                 07500000
            , COMMENT                                                   07510000
           )                                                            07520000
        AS (SELECT DISTINCT                                             07530000
                   EL.FAMILY                                            07540000
                 , DB.NAME                                              07550000
                 , IX.TBNAME                                            07560000
                 , IX.NAME                                              07570000
                 , IX.CREATOR                                           07580000
                 , IX.BPOOL                                             07590000
                 , IX.INDEXTYPE                                         07600000
                 , (SELECT MAX(TMP.PARTITION)                           07610000
                      FROM SYSIBM.SYSINDEXPART TMP                      07620000
                     WHERE TMP.IXNAME = IX.NAME                         07630000
                       AND TMP.IXCREATOR = IX.CREATOR                   07640000
                   )                                                    07650000
                 , XP.STORNAME                                          07660000
                 , XP.PQTY                                              07670000
                 , XP.SQTY                                              07680000
                 , XP.GBPCACHE                                          07690000
                 , IX.PGSIZE                                            07700000
                 , XP.FREEPAGE                                          07710000
                 , XP.PCTFREE                                           07720000
                 , IX.COMPRESS                                          07730000
                 , IX.CLOSERULE                                         07740000
                 , IX.COPY                                              07750000
                 , XP.SPACE                                             07760000
                 , IX.CLUSTERING                                        07770000
                 , (SELECT TMP.PARTITIONS                               07780000
                      FROM SYSIBM.SYSTABLESPACE TMP                     07790000
                     WHERE TMP.DBID = DB.DBID                           07800000
                       AND TMP.DBID = IX.DBID                           07810000
                       AND TMP.NAME = TB.TSNAME                         07820000
                   )                                                    07830000
                 , (SELECT TMP.IXNAME                                   07840000
                      FROM SYSIBM.SYSTABLEPART TMP                      07850000
                     WHERE TMP.TSNAME = TS.NAME                         07860000
                       AND TMP.DBNAME = TS.DBNAME                       07870000
                     FETCH FIRST 1 ROW ONLY                             07880000
                   )                                                    07890000
            , IX.PIECESIZE                                              07900000
            , EL.COMMENT                                                07910000
              FROM      SESSION.ELAR         EL                         07920000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         07930000
                     ON EL.STORAR  = DB.NAME                            07940000
             INNER JOIN SYSIBM.SYSINDEXES    IX                         07950000
                     ON DB.DBID    = IX.DBID                            07960000
             INNER JOIN SYSIBM.SYSTABLES     TB                         07970000
                     ON IX.TBNAME   = TB.NAME                           07980000
                    AND IX.DBNAME   = TB.DBNAME                         07990000
                    AND IX.DBID     = TB.DBID                           08000000
                    AND TB.DBID     = DB.DBID                           08010000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         08020000
                     ON TB.TSNAME   = TS.NAME                           08030000
                    AND TS.DBID     = TB.DBID                           08040000
                    AND TS.DBID     = IX.DBID                           08050000
                    AND TS.DBID     = DB.DBID                           08060000
             INNER JOIN SYSIBM.SYSINDEXPART  XP                         08070000
                     ON IX.NAME    = XP.IXNAME                          08080000
                    AND IX.CREATOR = XP.IXCREATOR                       08090000
             WHERE SUBSTR(EL.STORAR,1,3) <> 'DXB'                       08100000
           )                                                            08110000
   , IXDDL (  FAMILY                                                    08120000
            , DATABASE                                                  08130000
            , TBNAME                                                    08140000
            , IXNAME                                                    08150000
            , BPOOL_I                                                   08160000
            , INDEXTYPE                                                 08170000
            , PARTITION                                                 08180000
            , STOGROUP                                                  08190000
            , PRIQTY                                                    08200000
            , SECQTY                                                    08210000
            , GBPCACHE                                                  08220000
            , PGSIZE                                                    08230000
            , FREEPAGE                                                  08240000
            , PCTFREE                                                   08250000
            , COMPRESS                                                  08260000
            , CLOSE                                                     08270000
            , COPY                                                      08280000
            , DEFINE                                                    08290000
            , CLUSTERING                                                08300000
            , CNT_KEYS                                                  08310000
            , CLUSTERKEY                                                08320000
            , TSPARTITION                                               08330000
            , TPIXNAME                                                  08340000
            , PIECESIZE                                                 08350000
            , COMMENT                                                   08360000
           )                                                            08370000
        AS (SELECT T1.FAMILY                                            08380000
                 , T1.DATABASE                                          08390000
                 , T1.TBNAME                                            08400000
                 , T1.IXNAME                                            08410000
                 , T1.BPOOL_I                                           08420000
                 , T1.INDEXTYPE                                         08430000
                 , T1.PARTITION                                         08440000
                 , T1.STOGROUP                                          08450000
                 , T1.PRIQTY                                            08460000
                 , T1.SECQTY                                            08470000
                 , T1.GBPCACHE                                          08480000
                 , T1.PGSIZE                                            08490000
                 , T1.FREEPAGE                                          08500000
                 , T1.PCTFREE                                           08510000
                 , T1.COMPRESS                                          08520000
                 , T1.CLOSE                                             08530000
                 , T1.COPY                                              08540000
                 , T1.DEFINE                                            08550000
                 , T1.CLUSTERING                                        08560000
                 , (SELECT MAX(SK.COLSEQ)                               08570000
                      FROM SYSIBM.SYSKEYS SK                            08580000
                     WHERE T1.IXCREATOR  = SK.IXCREATOR                 08590000
                       AND T1.IXNAME     = SK.IXNAME                    08600000
                       AND T1.CLUSTERING = 'Y'                          08610000
                       AND SK.COLSEQ     = 1                            08620000
                   ) AS CNT_KEYS                                        08630000
                 , (SELECT SK.COLNAME                                   08640000
                      FROM SYSIBM.SYSKEYS SK                            08650000
                     WHERE T1.IXCREATOR  = SK.IXCREATOR                 08660000
                       AND T1.IXNAME     = SK.IXNAME                    08670000
                       AND T1.CLUSTERING = 'Y'                          08680000
                       AND SK.COLSEQ     = 1                            08690000
                   ) AS CLUSTERKEY                                      08700000
                 , T1.TSPARTITION                                       08710000
                 , T1.TPIXNAME                                          08720000
                 , T1.PIECESIZE                                         08730000
                 , T1.COMMENT                                           08740000
              FROM XSTMP T1                                             08750000
           )                                                            08760000
   , RXS   (  FAMILY                                                    08770000
            , COMMENT                                                   08780000
            , OBJECT                                                    08790000
            , OPTVALUE                                                  08800000
           )                                                            08810000
        AS (SELECT DISTINCT                                             08820000
                   FAMILY                                               08830000
                 , COMMENT                                              08840000
                 , CAST(DATABASE AS CHAR(08))                           08850000
                || ' '                                                  08860000
                || IXNAME                                               08870000
                || ' '                                                  08880000
                || TBNAME                                               08890000
                 , 'NoIndexExists='                                     08900000
                || CASE WHEN LENGTH(STRIP(IXNAME)) = 0                  08910000
                        THEN 'NOK'                                      08920000
                        ELSE 'OK'                                       08930000
                   END                                                  08940000
                || ';'                                                  08950000
                || 'NPI='                                               08960000
                || CASE WHEN PARTITION + TSPARTITION = 0                08970000
                        THEN 'OK'                                       08980000
                   ELSE CASE WHEN TSPARTITION > 0 AND PIECESIZE = 0     08990000
                             THEN 'OK'                                  09000000
                             ELSE CASE WHEN PARTITION > 0 AND           09010000
                                            PIECESIZE > 0               09020000
                                       THEN 'OK'                        09030000
                                       ELSE 'NOK'                       09040000
                                  END                                   09050000
                        END                                             09060000
                   END                                                  09070000
                || ';'                                                  09080000
                || 'Indextype='                                         09090000
                || CASE INDEXTYPE                                       09100000
                        WHEN 'D' then case when tspartition > 0         09110000
                                           then 'OK'                    09120000
                                           else 'NOK'                   09130000
                                      end                               09140000
                        WHEN 'P' then case when tspartition > 0         09150000
                                           then 'OK'                    09160000
                                           else 'NOK'                   09170000
                                      end                               09180000
                        WHEN ' ' then case when tspartition > 0         09190000
                                           then 'NOK'                   09200000
                                           else 'OK'                    09210000
                                      end                               09220000
                        WHEN '2' then case when tspartition > 0         09230000
                                           then 'NOK'                   09240000
                                           else 'OK'                    09250000
                                      end                               09260000
                        ELSE 'NOK'                                      09270000
                   END                                                  09280000
                || ';'                                                  09290000
                || 'IndexPartLimit='                                    09300000
                || CASE WHEN PARTITION > (SELECT MAXPART                09310000
                                            FROM SESSION.MAXPART        09320000
                                           WHERE PARTYPE = 'Index'      09330000
                                         )                              09340000
                        THEN 'NOK'                                      09350000
                        ELSE 'OK'                                       09360000
                   END                                                  09370000
                || ';'                                                  09380000
                || 'Bufferpool='                                        09390000
                || CASE BPOOL_I                                         09400000
                        WHEN 'BP1' THEN 'OK'                            09410000
                        ELSE 'NOK'                                      09420000
                   END                                                  09430000
                || ';'                                                  09440000
                || 'GroupBufferPool='                                   09450000
                || CASE GBPCACHE                                        09460000
                        WHEN ' ' THEN 'OK'                              09470000
                   ELSE 'NOK'                                           09480000
                   END                                                  09490000
                || ';'                                                  09500000
                || 'Pagesize='                                          09510000
                || 'OK'                                                 09520000
                || ';'                                                  09530000
                || 'CloseOption='                                       09540000
                || CASE CLOSE                                           09550000
                        WHEN 'Y' THEN 'OK'                              09560000
                   ELSE 'NOK'                                           09570000
                   END                                                  09580000
                || ';'                                                  09590000
                || 'IdxCompressOption='                                 09600000
                || CASE COMPRESS                                        09610000
                        WHEN 'N' THEN 'OK'                              09620000
                   ELSE 'NOK'                                           09630000
                   END                                                  09640000
                || ';'                                                  09650000
                || 'StorageGroup='                                      09660000
                || CASE STOGROUP                                        09670000
                        WHEN 'GSMS1' THEN 'OK'                          09680000
                        WHEN 'GSMS2' THEN 'OK'                          09690000
                        WHEN 'GSMS3' THEN 'OK'                          09700000
                        WHEN 'GSMS4' THEN 'OK'                          09710000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     09720000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      09730000
                                            THEN 'OK'                   09740000
                                            ELSE 'NOK'                  09750000
                                       END                              09760000
                                  ELSE 'NOK'                            09770000
                             END                                        09780000
                   END                                                  09790000
                || ';'                                                  09800000
                || 'PrimaryQuantity='                                   09810000
                || CASE PRIQTY                                          09820000
                        WHEN -1 THEN 'OK'                               09830000
                        ELSE 'NOK'                                      09840000
                   END                                                  09850000
                || ';'                                                  09860000
                || 'SecondaryQuantity='                                 09870000
                || CASE SECQTY                                          09880000
                        WHEN -1 THEN 'OK'                               09890000
                        ELSE 'NOK'                                      09900000
                   END                                                  09910000
                || ';'                                                  09920000
                || 'Define='                                            09930000
                || CASE DEFINE                                          09940000
                        WHEN -1 THEN 'NOK'                              09950000
                        ELSE 'OK'                                       09960000
                   END                                                  09970000
                || ';'                                                  09980000
                || 'FreePage'                                           09990000
                || CASE WHEN CLUSTERING = 'Y'                           10000000
                   THEN CASE WHEN CNT_KEYS = 1                          10010000
                             THEN CASE WHEN CLUSTERKEY = 'EN1PART'      10020000
                                       THEN CASE WHEN FREEPAGE = 0      10030000
                                                 THEN '_Cluster=OK'     10040000
                                                 ELSE '_Cluster=NOK'    10050000
                                            END                         10060000
                                       ELSE '_Cluster_Key=NOK'          10070000
                                  END                                   10080000
                             ELSE '_Cluster_Key=NOK'                    10090000
                        END                                             10100000
                   ELSE CASE FREEPAGE                                   10110000
                        WHEN 10 THEN '=OK'                              10120000
                        ELSE '=NOK'                                     10130000
                        END                                             10140000
                   END                                                  10150000
                || ';'                                                  10160000
                || 'PctFree'                                            10170000
                || CASE WHEN CLUSTERING = 'Y'                           10180000
                   THEN CASE WHEN CNT_KEYS = 1                          10190000
                             THEN CASE WHEN CLUSTERKEY = 'EN1PART'      10200000
                                       THEN CASE WHEN PCTFREE = 0       10210000
                                                 THEN '_Cluster=OK'     10220000
                                                 ELSE '_Cluster=NOK'    10230000
                                            END                         10240000
                                       ELSE '_Cluster_Key=NOK'          10250000
                                  END                                   10260000
                             ELSE '_Cluster_Key=NOK'                    10270000
                        END                                             10280000
                   ELSE CASE PCTFREE                                    10290000
                        WHEN 10 THEN '=OK'                              10300000
                        ELSE '=NOK'                                     10310000
                        END                                             10320000
                   END                                                  10330000
                || ';'                                                  10340000
                || 'Copy='                                              10350000
                || CASE COPY                                            10360000
                        WHEN 'N' THEN 'OK'                              10370000
                        ELSE 'NOK'                                      10380000
                   END                                                  10390000
              FROM IXDDL                                                10400000
           )                                                            10410000
SELECT GENERATE_UNIQUE()                                                10420000
     , '4Indexspace Option Check'                                       10430000
     , FAMILY                                                           10440000
     , COMMENT                                                          10450000
     , OBJECT                                                           10460000
     , OPTVALUE                                                         10470000
  FROM RXS                                                              10480000
 ORDER BY FAMILY                                                        10490000
        , OBJECT                                                        10500000
;                                                                       10510000
INSERT INTO SESSION.TEMP                                                10520000
WITH IXTYPE   ( INDEXTYPE                                               10530000
              )                                                         10540000
       AS     ( SELECT 'D'                                              10550000
                  FROM SYSIBM.SYSDUMMY1                                 10560000
                UNION  ALL                                              10570000
                SELECT 'U'                                              10580000
                  FROM SYSIBM.SYSDUMMY1                                 10590000
              )                                                         10600000
   , IXLST (  FAMILY                                                    10610000
            , DATABASE                                                  10620000
            , TBNAME                                                    10630000
            , IXNAME                                                    10640000
            , IXCREATOR                                                 10650000
            , ELAR_TYPE                                                 10660000
            , ELAR_ORDER                                                10670000
            , UNIQUERULE                                                10680000
            , MAXCOL                                                    10690000
            , EN1ENTERTAG                                               10700000
            , ET1LOGPROD                                                10710000
            , EN1PART                                                   10720000
            , COMMENT                                                   10730000
           )                                                            10740000
        AS (SELECT DISTINCT                                             10750000
                   EL.FAMILY                                            10760000
                 , DB.NAME                                              10770000
                 , TB.NAME                                              10780000
                 , IFNULL(IX.NAME,'NOK')                                10790000
                 , IX.CREATOR                                           10800000
                 , CAST(CASE SUBSTR(TB.NAME,9,2)                        10810000
                             WHEN 'HS' THEN 'SIGNATUR'                  10820000
                             WHEN 'IT' THEN 'BODY    '                  10830000
                             WHEN 'PM' THEN 'MULTIPLE'                  10840000
                             ELSE CASE SUBSTR(TB.NAME,9,5)              10850000
                                       WHEN 'PS001' THEN 'AOP     '     10860000
                                       WHEN 'PS002' THEN 'SEP     '     10870000
                                       WHEN 'PS003' THEN 'SEP_2   '     10880000
                                       ELSE '??????? '                  10890000
                                  END                                   10900000
                        END                                             10910000
                        AS CHAR(08)                                     10920000
                       )                                                10930000
                 , CAST(CASE SUBSTR(TB.NAME,9,2)                        10940000
                             WHEN 'HS' THEN '6'                         10950000
                             WHEN 'IT' THEN '4'                         10960000
                             WHEN 'PM' THEN '5'                         10970000
                             ELSE CASE SUBSTR(TB.NAME,9,5)              10980000
                                       WHEN 'PS001' THEN '1'            10990000
                                       WHEN 'PS002' THEN '2'            11000000
                                       WHEN 'PS003' THEN '3'            11010000
                                       ELSE '7'                         11020000
                                  END                                   11030000
                        END                                             11040000
                        AS CHAR(01)                                     11050000
                       )                                                11060000
                 , IFNULL(IX.UNIQUERULE,'NOK')                          11070000
                 , (SELECT COUNT(*)                                     11080000
                      FROM SYSIBM.SYSKEYS SK                            11090000
                     WHERE IX.NAME    = SK.IXNAME                       11100000
                       AND IX.CREATOR = SK.IXCREATOR                    11110000
                   )                                                    11120000
                 , IFNULL((SELECT SK.COLSEQ                             11130000
                             FROM SYSIBM.SYSKEYS SK                     11140000
                            WHERE IX.NAME    = SK.IXNAME                11150000
                              AND IX.CREATOR = SK.IXCREATOR             11160000
                              AND SK.COLNAME = 'EN1ENTERTAG'            11170000
                          ), -1)                                        11180000
                 , IFNULL((SELECT SK.COLSEQ                             11190000
                             FROM SYSIBM.SYSKEYS SK                     11200000
                            WHERE IX.NAME    = SK.IXNAME                11210000
                              AND IX.CREATOR = SK.IXCREATOR             11220000
                              AND SK.COLNAME = 'ET1LOGPROD'             11230000
                          ), -1)                                        11240000
                 , IFNULL((SELECT SK.COLSEQ                             11250000
                             FROM SYSIBM.SYSKEYS SK                     11260000
                            WHERE IX.NAME    = SK.IXNAME                11270000
                              AND IX.CREATOR = SK.IXCREATOR             11280000
                              AND SK.COLNAME = 'EN1PART'                11290000
                          ), -1)                                        11300000
                 , EL.COMMENT                                           11310000
              FROM            SESSION.ELAR         EL                   11320000
             INNER       JOIN SYSIBM.SYSDATABASE   DB                   11330000
                           ON EL.STORAR = DB.NAME                       11340000
             INNER       JOIN SYSIBM.SYSTABLES     TB                   11350000
                           ON TB.DBNAME = DB.NAME                       11360000
                          AND TB.TYPE   = 'T'                           11370000
             INNER       JOIN SYSIBM.SYSTABLESPACE TS                   11380000
                           ON TB.TSNAME = TS.NAME                       11390000
                          AND TB.DBID   = TS.DBID                       11400000
                          AND TS.DBID   = DB.DBID                       11410000
              LEFT OUTER JOIN SYSIBM.SYSINDEXES    IX                   11420000
                           ON IX.TBNAME = TB.NAME                       11430000
              LEFT OUTER JOIN IXTYPE               TY                   11440000
                           ON IX.INDEXTYPE = TY.INDEXTYPE               11450000
           )                                                            11460000
   , RXI   (  FAMILY                                                    11470000
            , COMMENT                                                   11480000
            , OBJECT                                                    11490000
            , OPTVALUE                                                  11500000
           )                                                            11510000
        AS (SELECT FAMILY                                               11520000
                 , COMMENT                                              11530000
                 , CAST(DATABASE AS CHAR(08))                           11540000
                || ' '                                                  11550000
                || TBNAME                                               11560000
                || ' '                                                  11570000
                 , 'No'                                                 11580000
                || ' '                                                  11590000
                || 'Index'                                              11600000
                || ' '                                                  11610000
                || 'exists=NOK'                                         11620000
                || ';'                                                  11630000
              FROM IXLST                                                11640000
             WHERE UNIQUERULE = 'NOK'                                   11650000
            UNION  ALL                                                  11660000
            SELECT FAMILY                                               11670000
                 , COMMENT                                              11680000
                 , CAST(DATABASE AS CHAR(08))                           11690000
                || ' '                                                  11700000
                || IXNAME                                               11710000
                || ' '                                                  11720000
                || TBNAME                                               11730000
                || ' '                                                  11740000
                || 'IndexRule=Unique'                                   11750000
                 , CASE WHEN EN1ENTERTAG = -1                           11760000
                        THEN 'EN1ENTERTAG_MIS=NOK'                      11770000
                        ELSE CASE WHEN  EN1ENTERTAG = (MAXCOL - 2)      11780000
                                  THEN 'EN1ENTERTAG=OK'                 11790000
                                  ELSE 'EN1ENTERTAG_POSAOP=NOK'         11800000
                             END                                        11810000
                   END                                                  11820000
                || ';'                                                  11830000
                || 'ET1LOGPROD'                                         11840000
                || CASE WHEN ET1LOGPROD = -1                            11850000
                        THEN '_MISAOP=NOK'                              11860000
                        ELSE CASE WHEN ET1LOGPROD = (MAXCOL - 1)        11870000
                                  THEN '=OK'                            11880000
                                  ELSE '_POSAOP=NOK'                    11890000
                             END                                        11900000
                   END                                                  11910000
                || ';'                                                  11920000
                || 'EN1PART'                                            11930000
                || CASE WHEN EN1PART = -1                               11940000
                        THEN '_MIS=NOK'                                 11950000
                        ELSE CASE WHEN EN1PART = MAXCOL                 11960000
                                  THEN '_POSAOP=OK'                     11970000
                                  ELSE '_POSAOP=NOK'                    11980000
                             END                                        11990000
                   END                                                  12000000
              FROM IXLST                                                12010000
             WHERE ELAR_TYPE = 'AOP'                                    12020000
               AND UNIQUERULE = 'U'                                     12030000
             UNION ALL                                                  12040000
            SELECT FAMILY                                               12050000
                 , COMMENT                                              12060000
                 , CAST(DATABASE AS CHAR(08))                           12070000
                || ' '                                                  12080000
                || IXNAME                                               12090000
                || ' '                                                  12100000
                || TBNAME                                               12110000
                || ' '                                                  12120000
                || 'IndexRule=Duplicate'                                12130000
                 , CASE WHEN EN1ENTERTAG = -1                           12140000
                        THEN 'EN1ENTERTAG_MIS=NOK'                      12150000
                        ELSE CASE WHEN  EN1ENTERTAG = (MAXCOL - 1)      12160000
                                  THEN 'EN1ENTERTAG=OK'                 12170000
                                  ELSE 'EN1ENTERTAG_POSAOP=NOK'         12180000
                             END                                        12190000
                   END                                                  12200000
                || ';'                                                  12210000
                || 'ET1LOGPROD'                                         12220000
                || CASE WHEN ET1LOGPROD = -1                            12230000
                        THEN '_MISAOP=NOK'                              12240000
                        ELSE CASE WHEN ET1LOGPROD = MAXCOL              12250000
                                  THEN '=OK'                            12260000
                                  ELSE '_POSAOP=NOK'                    12270000
                             END                                        12280000
                   END                                                  12290000
                || ';'                                                  12300000
                || 'EN1PART'                                            12310000
                || CASE WHEN EN1PART = -1                               12320000
                        THEN '=OK'                                      12330000
                        ELSE '_POSAOP=NOK'                              12340000
                   END                                                  12350000
              FROM IXLST                                                12360000
             WHERE ELAR_TYPE = 'AOP'                                    12370000
               AND UNIQUERULE = 'D'                                     12380000
            UNION  ALL                                                  12390000
            SELECT FAMILY                                               12400000
                 , COMMENT                                              12410000
                 , CAST(DATABASE AS CHAR(08))                           12420000
                || ' '                                                  12430000
                || IXNAME                                               12440000
                || ' '                                                  12450000
                || TBNAME                                               12460000
                || ' '                                                  12470000
                || 'IndexRule=Unique'                                   12480000
                 , CASE WHEN EN1ENTERTAG = -1                           12490000
                        THEN 'EN1ENTERTAG=OK'                           12500000
                        ELSE 'EN1ENTERTAG_POSSEP=NOK'                   12510000
                   END                                                  12520000
                || ';'                                                  12530000
                || 'ET1LOGPROD_MIS='                                    12540000
                || CASE WHEN ET1LOGPROD = -1                            12550000
                        THEN 'OK'                                       12560000
                        ELSE 'NOK'                                      12570000
                   END                                                  12580000
                || ';'                                                  12590000
                || 'EN1PART'                                            12600000
                || CASE WHEN EN1PART = -1                               12610000
                        THEN '=NOK'                                     12620000
                        ELSE CASE WHEN EN1PART = MAXCOL                 12630000
                                  THEN '=OK'                            12640000
                                  ELSE '_POSSEP=NOK'                    12650000
                             END                                        12660000
                   END                                                  12670000
              FROM IXLST                                                12680000
             WHERE ELAR_TYPE IN ('SEP', 'SEP_2')                        12690000
               AND UNIQUERULE = 'U'                                     12700000
            UNION  ALL                                                  12710000
            SELECT FAMILY                                               12720000
                 , COMMENT                                              12730000
                 , CAST(DATABASE AS CHAR(08))                           12740000
                || ' '                                                  12750000
                || IXNAME                                               12760000
                || ' '                                                  12770000
                || TBNAME                                               12780000
                || ' '                                                  12790000
                || 'IndexRule=Duplicate'                                12800000
                 , CASE WHEN EN1ENTERTAG = -1                           12810000
                        THEN 'EN1ENTERTAG=OK'                           12820000
                        ELSE 'EN1ENTERTAG_POSSEP=NOK'                   12830000
                   END                                                  12840000
                || ';'                                                  12850000
                || 'ET1LOGPROD_MIS='                                    12860000
                || CASE WHEN ET1LOGPROD = -1                            12870000
                        THEN 'OK'                                       12880000
                        ELSE 'NOK'                                      12890000
                   END                                                  12900000
                || ';'                                                  12910000
                || 'EN1PART_ALLOW='                                     12920000
                || CASE WHEN EN1PART = -1                               12930000
                        THEN 'OK'                                       12940000
                        ELSE 'NOK'                                      12950000
                   END                                                  12960000
              FROM IXLST                                                12970000
             WHERE ELAR_TYPE IN ('SEP', 'SEP_2')                        12980000
               AND UNIQUERULE = 'D'                                     12990000
            UNION  ALL                                                  13000000
            SELECT FAMILY                                               13010000
                 , COMMENT                                              13020000
                 , CAST(DATABASE AS CHAR(08))                           13030000
                || ' '                                                  13040000
                || IXNAME                                               13050000
                || ' '                                                  13060000
                || TBNAME                                               13070000
                || ' '                                                  13080000
                || 'IndexRule=Unique'                                   13090000
                 , CASE WHEN EN1ENTERTAG = -1                           13100000
                        THEN 'EN1ENTERTAG_MIS=NOK'                      13110000
                        ELSE CASE WHEN  EN1ENTERTAG = 2                 13120000
                                  THEN 'EN1ENTERTAG=OK'                 13130000
                                  ELSE 'EN1ENTERTAG_POS=NOK'            13140000
                             END                                        13150000
                   END                                                  13160000
                || ';'                                                  13170000
                || 'ET1LOGPROD_BODY='                                   13180000
                || CASE WHEN ET1LOGPROD = -1                            13190000
                        THEN 'OK'                                       13200000
                        ELSE 'NOK'                                      13210000
                   END                                                  13220000
                || ';'                                                  13230000
                || 'EN1PART_POS='                                       13240000
                || CASE WHEN EN1PART = 5                                13250000
                        THEN 'OK'                                       13260000
                        ELSE 'NOK'                                      13270000
                   END                                                  13280000
              FROM IXLST                                                13290000
             WHERE ELAR_TYPE = 'BODY'                                   13300000
               AND UNIQUERULE = 'U'                                     13310000
            UNION  ALL                                                  13320000
            SELECT FAMILY                                               13330000
                 , COMMENT                                              13340000
                 , CAST(DATABASE AS CHAR(08))                           13350000
                || ' '                                                  13360000
                || IXNAME                                               13370000
                || ' '                                                  13380000
                || TBNAME                                               13390000
                || ' '                                                  13400000
                || 'IndexRule=Duplicate'                                13410000
                 , CASE WHEN EN1ENTERTAG = -1                           13420000
                        THEN 'EN1ENTERTAG_MIS=NOK'                      13430000
                        ELSE CASE WHEN  EN1ENTERTAG = 2                 13440000
                                  THEN 'EN1ENTERTAG=OK'                 13450000
                                  ELSE 'EN1ENTERTAG_POS=NOK'            13460000
                             END                                        13470000
                   END                                                  13480000
                || ';'                                                  13490000
                || 'ET1LOGPROD_MIS='                                    13500000
                || CASE WHEN ET1LOGPROD = -1                            13510000
                        THEN 'OK'                                       13520000
                        ELSE 'NOK'                                      13530000
                   END                                                  13540000
                || ';'                                                  13550000
                || 'EN1PART_POS='                                       13560000
                || CASE WHEN EN1PART = -1                               13570000
                        THEN 'OK'                                       13580000
                        ELSE 'NOK'                                      13590000
                   END                                                  13600000
              FROM IXLST                                                13610000
             WHERE ELAR_TYPE = 'BODY'                                   13620000
               AND UNIQUERULE = 'D'                                     13630000
            UNION  ALL                                                  13640000
            SELECT FAMILY                                               13650000
                 , COMMENT                                              13660000
                 , CAST(DATABASE AS CHAR(08))                           13670000
                || ' '                                                  13680000
                || IXNAME                                               13690000
                || ' '                                                  13700000
                || TBNAME                                               13710000
                || ' '                                                  13720000
                || 'IndexRule=Unique'                                   13730000
                 , CASE WHEN EN1ENTERTAG = -1                           13740000
                        THEN 'EN1ENTERTAG_MIS=NOK'                      13750000
                        ELSE CASE WHEN EN1ENTERTAG = (MAXCOL - 1)       13760000
                                  THEN 'EN1ENTERTAG=OK'                 13770000
                                  ELSE 'EN1ENTERTAG_POSMULT=NOK'        13780000
                             END                                        13790000
                   END                                                  13800000
                || ';'                                                  13810000
                || 'ET1LOGPROD_MIS='                                    13820000
                || CASE WHEN ET1LOGPROD = -1                            13830000
                        THEN 'OK'                                       13840000
                        ELSE 'NOK'                                      13850000
                   END                                                  13860000
                || ';'                                                  13870000
                || 'EN1PART_POSMULT='                                   13880000
                || CASE WHEN EN1PART = MAXCOL                           13890000
                        THEN 'OK'                                       13900000
                        ELSE 'NOK'                                      13910000
                   END                                                  13920000
              FROM IXLST                                                13930000
             WHERE ELAR_TYPE = 'MULTIPLE'                               13940000
               AND UNIQUERULE = 'U'                                     13950000
            UNION  ALL                                                  13960000
            SELECT FAMILY                                               13970000
                 , COMMENT                                              13980000
                 , CAST(DATABASE AS CHAR(08))                           13990000
                || ' '                                                  14000000
                || IXNAME                                               14010000
                || ' '                                                  14020000
                || TBNAME                                               14030000
                || ' '                                                  14040000
                || 'IndexRule=Duplicate'                                14050000
                 , CASE WHEN EN1ENTERTAG = -1                           14060000
                        THEN 'EN1ENTERTAG_MIS=NOK'                      14070000
                        ELSE CASE WHEN EN1ENTERTAG = MAXCOL             14080000
                                  THEN 'EN1ENTERTAG=OK'                 14090000
                                  ELSE 'EN1ENTERTAG_POSMULT=NOK'        14100000
                             END                                        14110000
                   END                                                  14120000
                || ';'                                                  14130000
                || 'ET1LOGPROD_MIS='                                    14140000
                || CASE WHEN ET1LOGPROD = -1                            14150000
                        THEN 'OK'                                       14160000
                        ELSE 'NOK'                                      14170000
                   END                                                  14180000
                || ';'                                                  14190000
                || 'EN1PART_MISMULT='                                   14200000
                || CASE WHEN EN1PART = -1                               14210000
                        THEN 'OK'                                       14220000
                        ELSE 'NOK'                                      14230000
                   END                                                  14240000
              FROM IXLST                                                14250000
             WHERE ELAR_TYPE = 'MULTIPLE'                               14260000
               AND UNIQUERULE = 'D'                                     14270000
            UNION  ALL                                                  14280000
            SELECT FAMILY                                               14290000
                 , COMMENT                                              14300000
                 , CAST(DATABASE AS CHAR(08))                           14310000
                || ' '                                                  14320000
                || IXNAME                                               14330000
                || ' '                                                  14340000
                || TBNAME                                               14350000
                || ' '                                                  14360000
                || 'IndexRule=Unique'                                   14370000
                 , CASE WHEN EN1ENTERTAG = -1                           14380000
                        THEN 'EN1ENTERTAG_MIS=NOK'                      14390000
                        ELSE CASE WHEN  EN1ENTERTAG = (MAXCOL - 2)      14400000
                                  THEN 'EN1ENTERTAG=OK'                 14410000
                                  ELSE 'EN1ENTERTAG_POSAOP=NOK'         14420000
                             END                                        14430000
                   END                                                  14440000
                || ';'                                                  14450000
                || 'ET1LOGPROD='                                        14460000
                || CASE WHEN ET1LOGPROD IS NULL                         14470000
                        THEN 'OK'                                       14480000
                        ELSE 'NOK'                                      14490000
                   END                                                  14500000
                || ';'                                                  14510000
                || 'EN1PART'                                            14520000
                || CASE WHEN EN1PART = -1                               14530000
                        THEN '_MISSIG=NOK'                              14540000
                        ELSE CASE WHEN EN1PART = MAXCOL                 14550000
                                  THEN '=OK'                            14560000
                                  ELSE '_POSSIG=NOK'                    14570000
                             END                                        14580000
                   END                                                  14590000
              FROM IXLST                                                14600000
             WHERE ELAR_TYPE = 'SIGNATUR'                               14610000
               AND UNIQUERULE = 'U'                                     14620000
            UNION  ALL                                                  14630000
            SELECT FAMILY                                               14640000
                 , COMMENT                                              14650000
                 , CAST(DATABASE AS CHAR(08))                           14660000
                || ' '                                                  14670000
                || IXNAME                                               14680000
                || ' '                                                  14690000
                || TBNAME                                               14700000
                || ' '                                                  14710000
                || 'IndexRule=Duplicate'                                14720000
                 , 'EN1ENTERTAG='                                       14730000
                || CASE WHEN EN1ENTERTAG = MAXCOL                       14740000
                        THEN 'OK'                                       14750000
                        ELSE 'NOK'                                      14760000
                   END                                                  14770000
                || ';'                                                  14780000
                || 'ET1LOGPROD_MIS='                                    14790000
                || CASE WHEN ET1LOGPROD = -1                            14800000
                        THEN 'OK'                                       14810000
                        ELSE 'NOK'                                      14820000
                   END                                                  14830000
                || ';'                                                  14840000
                || 'EN1PART_MISSIG='                                    14850000
                || CASE WHEN EN1PART = -1                               14860000
                        THEN 'OK'                                       14870000
                        ELSE 'NOK'                                      14880000
                   END                                                  14890000
              FROM IXLST                                                14900000
             WHERE ELAR_TYPE = 'SIGNATUR'                               14910000
               AND UNIQUERULE = 'D'                                     14920000
            UNION  ALL                                                  14930000
            SELECT FAMILY                                               14940000
                 , COMMENT                                              14950000
                 , CAST(DATABASE AS CHAR(08))                           14960000
                || ' '                                                  14970000
                || IXNAME                                               14980000
                || ' '                                                  14990000
                || TBNAME                                               15000000
                || ' '                                                  15010000
                || 'IndexRule=Unknown'                                  15020000
                 , 'Index_Rule=NOK;'                                    15030000
              FROM IXLST                                                15040000
             WHERE ELAR_TYPE = 'unknown '                               15050000
           )                                                            15060000
SELECT GENERATE_UNIQUE()                                                15070000
     , '5Index Option Check'                                            15080000
     , FAMILY                                                           15090000
     , COMMENT                                                          15100000
     , OBJECT                                                           15110000
     , OPTVALUE                                                         15120000
  FROM RXI                                                              15130000
 ORDER BY FAMILY                                                        15140000
        , OBJECT                                                        15150000
;                                                                       15160000
INSERT INTO SESSION.TEMP                                                15170000
SELECT GENERATE_UNIQUE()                                                15180000
     , '6ELAR meta data mismatch'                                       15190000
     , FAMILY                                                           15200000
     , ' '                                                              15210000
     , FAMILY                                                           15220000
     , 'NoDatabaseExists=NOK;'                                          15230000
  FROM SESSION.FAMLISTE                                                 15240000
 WHERE STORAR_N IS NULL                                                 15250000
   AND ENSEG_N  IS NULL                                                 15260000
   AND SUBSTR(DBNAME,1,3) <> 'DXB'                                      15270000
   AND SUBSTR(FAMILY,1,1) <> '?'                                        15280000
UNION  ALL                                                              15290000
SELECT GENERATE_UNIQUE()                                                15300000
     , '7ELAR meta data mismatch'                                       15310000
     , DBNAME                                                           15320000
     , ' '                                                              15330000
     , DBNAME                                                           15340000
     , 'DatabaseNoFamily=NOK;'                                          15350000
  FROM SESSION.FAMLISTE                                                 15360000
 WHERE DBNAME NOT IN (SELECT STORAR                                     15370000
                        FROM SESSION.ELAR                               15380000
                     )                                                  15390000
   AND SUBSTR(DBNAME,1,1) <> '?'                                        15400000
;                                                                       15410000
DECLARE GLOBAL TEMPORARY TABLE PARMVALUE                                15420000
               (  OPTION       CHAR(025) NOT NULL                       15430000
                , VALUE        CHAR(120) NOT NULL                       15440000
                , SUBORD       INTEGER   NOT NULL                       15450000
               )                                                        15460000
;                                                                       15470000
INSERT   INTO SESSION.PARMVALUE                                         15480000
       VALUES (  'InfoTCP'                                              15490000
               , 'Info: Table Controlled Partition'                     15500000
               , 0                                                      15510000
              )                                                         15520000
;                                                                       15530000
INSERT   INTO SESSION.PARMVALUE                                         15540000
       VALUES (  'NPI'                                                  15550000
               , 'on partitioned Object (table/Index) '                 15560000
                 || 'not allowed'                                       15570000
               , 0                                                      15580000
              )                                                         15590000
;                                                                       15600000
INSERT   INTO SESSION.PARMVALUE                                         15610000
       VALUES (  'InfoTSS'                                              15620000
               , 'Info: Segmented or Simple Table'                      15630000
               , 0                                                      15640000
              )                                                         15650000
;                                                                       15660000
INSERT   INTO SESSION.PARMVALUE                                         15670000
       VALUES (  'InfoICP'                                              15680000
               , 'Info: Index Controlled Partition'                     15690000
               , 0                                                      15700000
              )                                                         15710000
;                                                                       15720000
INSERT   INTO SESSION.PARMVALUE                                         15730000
       VALUES (  'InfoNPI'                                              15740000
               , 'Info: Non partitioned Index'                          15750000
               , 0                                                      15760000
              )                                                         15770000
;                                                                       15780000
INSERT   INTO SESSION.PARMVALUE                                         15790000
       VALUES (  'StorageGroup'                                         15800000
               , 'GSMS1, GSMS2, GSMS3 or GSMS4 for XB Databases '       15810000
                 || 'GSMS for ELAR Metadata allowed'                    15820000
               , 3                                                      15830000
              )                                                         15840000
;                                                                       15850000
INSERT   INTO SESSION.PARMVALUE                                         15860000
       VALUES (  'Bufferpool_DB'                                        15870000
                 ,'BP2 allowed on Datasbase definition level'           15880000
                 , 0                                                    15890000
              )                                                         15900000
;                                                                       15910000
INSERT   INTO SESSION.PARMVALUE                                         15920000
       VALUES (  'Bufferpool_DB_IX'                                     15930000
                 ,'BP1 allowed on Datasbase definition level'           15940000
                 , 1                                                    15950000
              )                                                         15960000
;                                                                       15970000
INSERT   INTO SESSION.PARMVALUE                                         15980000
       VALUES (  'Bufferpool_TS'                                        15990000
                 ,'Only BP2, BP8 and BP32K allowed for Tablespaces'     16000000
                 , 2                                                    16010000
              )                                                         16020000
;                                                                       16030000
INSERT   INTO SESSION.PARMVALUE                                         16040000
       VALUES (  'Bufferpool_SHS'                                       16050000
                 ,'Only BP32K for this Tablespaces allowed'             16060000
                 , 2                                                    16070000
              )                                                         16080000
;                                                                       16090000
INSERT   INTO SESSION.PARMVALUE                                         16100000
       VALUES (  'Bufferpool_LOB'                                       16110000
                 ,'Only BP8 for LOB Tablespaces allowed'                16120000
                 , 2                                                    16130000
              )                                                         16140000
;                                                                       16150000
INSERT   INTO SESSION.PARMVALUE                                         16160000
       VALUES (  'IndexBufferpool', 'BP1'                               16170000
               , 3                                                      16180000
              )                                                         16190000
;                                                                       16200000
INSERT   INTO SESSION.PARMVALUE                                         16210000
       VALUES (  'EncodingScheme', 'EBCDIC'                             16220000
               , 4                                                      16230000
              )                                                         16240000
;                                                                       16250000
INSERT   INTO SESSION.PARMVALUE                                         16260000
       VALUES (  'Groupbufferpool', 'Changed'                           16270000
               , 5                                                      16280000
              )                                                         16290000
;                                                                       16300000
INSERT   INTO SESSION.PARMVALUE                                         16310000
       VALUES (  'LOB Bufferpool', 'BP8'                                16320000
               , 6                                                      16330000
              )                                                         16340000
;                                                                       16350000
INSERT   INTO SESSION.PARMVALUE                                         16360000
       VALUES (  'Trackmode', 'No', 10                                  16370000
              )                                                         16380000
;                                                                       16390000
INSERT   INTO SESSION.PARMVALUE                                         16400000
       VALUES (  'LoggedOption', 'Yes', 11                              16410000
              )                                                         16420000
;                                                                       16430000
INSERT   INTO SESSION.PARMVALUE                                         16440000
       VALUES (  'DSSIZE', '16GB', 12                                   16450000
              )                                                         16460000
;                                                                       16470000
INSERT   INTO SESSION.PARMVALUE                                         16480000
       VALUES (  'Locksize', 'Any', 13                                  16490000
              )                                                         16500000
;                                                                       16510000
INSERT   INTO SESSION.PARMVALUE                                         16520000
       VALUES (  'LockMax', 'System', 14                                16530000
              )                                                         16540000
;                                                                       16550000
INSERT   INTO SESSION.PARMVALUE                                         16560000
       VALUES (  'CloseOption', 'Yes', 17                               16570000
              )                                                         16580000
;                                                                       16590000
INSERT   INTO SESSION.PARMVALUE                                         16600000
       VALUES (  'TblCompressOption', 'Yes', 27                         16610000
              )                                                         16620000
;                                                                       16630000
INSERT   INTO SESSION.PARMVALUE                                         16640000
       VALUES (  'IdxCompressOption', 'No', 29                          16650000
              )                                                         16660000
;                                                                       16670000
INSERT   INTO SESSION.PARMVALUE                                         16680000
       VALUES (  'PrimaryQuantity', 'Only value -1 allowed'             16690000
               , 8                                                      16700000
              )                                                         16710000
;                                                                       16720000
INSERT   INTO SESSION.PARMVALUE                                         16730000
       VALUES (  'SecondaryQuantity', 'Only value -1 allowed'           16740000
               , 9                                                      16750000
              )                                                         16760000
;                                                                       16770000
INSERT   INTO SESSION.PARMVALUE                                         16780000
       VALUES (  'DefineOption', 'Yes', 23                              16790000
              )                                                         16800000
;                                                                       16810000
INSERT   INTO SESSION.PARMVALUE                                         16820000
       VALUES (  'MaxRowsPerPage', '255', 24                            16830000
              )                                                         16840000
;                                                                       16850000
INSERT   INTO SESSION.PARMVALUE                                         16860000
       VALUES (  'Audit', 'None', 18                                    16870000
              )                                                         16880000
;                                                                       16890000
INSERT   INTO SESSION.PARMVALUE                                         16900000
       VALUES (  'DataCapture', 'None', 19                              16910000
              )                                                         16920000
;                                                                       16930000
INSERT   INTO SESSION.PARMVALUE                                         16940000
       VALUES (  'RestrictOnDrop'                                       16950000
               , 'Missing Option With Restrict on Drop'                 16960000
               , 20                                                     16970000
              )                                                         16980000
;                                                                       16990000
INSERT   INTO SESSION.PARMVALUE                                         17000000
       VALUES (  'Volatile', 'correct value is Yes', 21                 17010000
              )                                                         17020000
;                                                                       17030000
INSERT   INTO SESSION.PARMVALUE                                         17040000
       VALUES (  'Append', 'correct value is No', 22                    17050000
              )                                                         17060000
;                                                                       17070000
INSERT   INTO SESSION.PARMVALUE                                         17080000
       VALUES (  'PartKeyName', 'EN1PART', 30                           17090000
              )                                                         17100000
;                                                                       17110000
INSERT   INTO SESSION.PARMVALUE                                         17120000
       VALUES (  'PartKeyType', 'Integer', 31                           17130000
              )                                                         17140000
;                                                                       17150000
INSERT   INTO SESSION.PARMVALUE                                         17160000
       VALUES (  'PartKeyPosition', 'First Column of Table', 32         17170000
              )                                                         17180000
;                                                                       17190000
INSERT   INTO SESSION.PARMVALUE                                         17200000
       VALUES (  'TablePartLimit', 'Partition limit exceeded (' ||      17210000
                                    (SELECT STRIP(CAST(MAXPART AS       17220000
                                                       CHAR(06)         17230000
                                                      )                 17240000
                                                 )                      17250000
                                       FROM SESSION.MAXPART             17260000
                                      WHERE PARTYPE = 'Table'           17270000
                                    ) || ' Partition allowed)'          17280000
               , 39                                                     17290000
              )                                                         17300000
;                                                                       17310000
INSERT   INTO SESSION.PARMVALUE                                         17320000
       VALUES (  'IndexPartLimit', 'Maximum of ' ||                     17330000
                                    (SELECT CAST(MAXPART AS CHAR(06))   17340000
                                       FROM SESSION.MAXPART             17350000
                                      WHERE PARTYPE = 'Index'           17360000
                                    ) || ' Partition exceeded '         17370000
               , 40                                                     17380000
              )                                                         17390000
;                                                                       17400000
INSERT   INTO SESSION.PARMVALUE                                         17410000
       VALUES (  'PartKeyValue(s)'                                      17420000
               , 'only natural Numbers and one value allowed'           17430000
               , 34                                                     17440000
              )                                                         17450000
;                                                                       17460000
INSERT   INTO SESSION.PARMVALUE                                         17470000
       VALUES (  'Indextype'                                            17480000
               , 'Unique DPSI, when Primary Index all other are DPSI'   17490000
               , 28                                                     17500000
              )                                                         17510000
;                                                                       17520000
INSERT   INTO SESSION.PARMVALUE                                         17530000
       VALUES (  'Pagesize', '4KB', 16                                  17540000
              )                                                         17550000
;                                                                       17560000
INSERT   INTO SESSION.PARMVALUE                                         17570000
       VALUES (  'FreePage'                                             17580000
               , 'Value is not 10'                                      17590000
               , 7                                                      17600000
              )                                                         17610000
;                                                                       17620000
INSERT   INTO SESSION.PARMVALUE                                         17630000
       VALUES (  'FreePage_Cluster'                                     17640000
               , 'Value is not 0'                                       17650000
               , 7                                                      17660000
              )                                                         17670000
;                                                                       17680000
INSERT   INTO SESSION.PARMVALUE                                         17690000
       VALUES (  'FreePage_Cluster_Key'                                 17700000
               , 'only EN1PART allowed for cluster index '              17710000
               || '(see Guideline). FREEPAGE not checked'               17720000
               , 7                                                      17730000
              )                                                         17740000
;                                                                       17750000
INSERT   INTO SESSION.PARMVALUE                                         17760000
       VALUES (  'PctFree'                                              17770000
               , 'Value is not 10'                                      17780000
               , 6                                                      17790000
              )                                                         17800000
;                                                                       17810000
INSERT   INTO SESSION.PARMVALUE                                         17820000
       VALUES (  'PctFree_Cluster'                                      17830000
               , 'Value is not 0'                                       17840000
               , 6                                                      17850000
              )                                                         17860000
;                                                                       17870000
INSERT   INTO SESSION.PARMVALUE                                         17880000
       VALUES (  'PctFree_Cluster_Key'                                  17890000
               , 'only EN1PART allowed for cluster index '              17900000
               || '(see Guideline). PCTFREE not checked'                17910000
               , 6                                                      17920000
              )                                                         17930000
;                                                                       17940000
INSERT   INTO SESSION.PARMVALUE                                         17950000
       VALUES (  'Copy', 'No', 26                                       17960000
              )                                                         17970000
;                                                                       17980000
INSERT   INTO SESSION.PARMVALUE                                         17990000
       VALUES (  'No Index exists'                                      18000000
               , 'verify and implement an Index. Access path for all '  18010000
               || 'queries are Tablespace Scans| (Proof Monitor)'       18020000
               , 50                                                     18030000
              )                                                         18040000
;                                                                       18050000
INSERT   INTO SESSION.PARMVALUE                                         18060000
       VALUES (  'EN1PART'                                              18070000
               , 'Partition criteria not part of index. For '           18080000
                 || 'unique index is important (see Guideline)'         18090000
               , 51                                                     18100000
              )                                                         18110000
;                                                                       18120000
INSERT   INTO SESSION.PARMVALUE                                         18130000
       VALUES (  'EN1PART_POS'                                          18140000
               , 'not on Position 5 (see Guideline, '                   18150000
                 || 'table pattern XBsss001ITnnnmmm)'                   18160000
               , 51                                                     18170000
              )                                                         18180000
;                                                                       18190000
INSERT   INTO SESSION.PARMVALUE                                         18200000
       VALUES (  'EN1PART_POSAOP'                                       18210000
               , 'for non unique indexes column not allowed. '          18220000
                 || '(see Guideline table pattern XBsss001PSnnnmmm)'    18230000
               , 51                                                     18240000
              )                                                         18250000
;                                                                       18260000
INSERT   INTO SESSION.PARMVALUE                                         18270000
       VALUES (  'EN1PART_POSMULT'                                      18280000
               , 'not on last position (see Guideline, '                18290000
                 || 'table pattern XBsss001PMnnnmmm)'                   18300000
               , 51                                                     18310000
              )                                                         18320000
;                                                                       18330000
INSERT   INTO SESSION.PARMVALUE                                         18340000
       VALUES (  'EN1PART_POSSIG'                                       18350000
               , 'not on last position (see Guideline, '                18360000
                 || 'table pattern XBsss001HSnnnmmm)'                   18370000
               , 51                                                     18380000
              )                                                         18390000
;                                                                       18400000
INSERT   INTO SESSION.PARMVALUE                                         18410000
       VALUES (  'EN1PART_POSSEP'                                       18420000
               , 'not on last position (see Guideline, '                18430000
                 || 'table pattern XBsss001PS002mmm)'                   18440000
               , 51                                                     18450000
              )                                                         18460000
;                                                                       18470000
INSERT   INTO SESSION.PARMVALUE                                         18480000
       VALUES (  'EN1PART_ALLOW'                                        18490000
               , 'not allowed as part of index see Guideline, '         18500000
                 || 'table pattern XBsss001PS002mmm)'                   18510000
               , 51                                                     18520000
              )                                                         18530000
;                                                                       18540000
INSERT   INTO SESSION.PARMVALUE                                         18550000
       VALUES (  'EN1PART_MISMULT'                                      18560000
               , 'not on allowed (see Guideline, table pattern '        18570000
                 || 'XBsss001PMnnnmmm, non unique index)'               18580000
               , 51                                                     18590000
              )                                                         18600000
;                                                                       18610000
INSERT   INTO SESSION.PARMVALUE                                         18620000
       VALUES (  'EN1PART_MISSIG'                                       18630000
               , 'not on allowed (see Guideline, table pattern '        18640000
                 || 'XBsss001HSnnnmmm)'                                 18650000
               , 51                                                     18660000
              )                                                         18670000
;                                                                       18680000
INSERT   INTO SESSION.PARMVALUE                                         18690000
       VALUES (  'EN1ENTERTAG_POS'                                      18700000
               , 'not on Position 2. '                                  18710000
                 || 'Check Index Column Order (see Guideline)'          18720000
               , 52                                                     18730000
              )                                                         18740000
;                                                                       18750000
INSERT   INTO SESSION.PARMVALUE                                         18760000
       VALUES (  'EN1ENTERTAG_POSMULT'                                  18770000
               , 'not on last position when unique or next to last '    18780000
                 || 'position when non unique Index (see Guideline)'    18790000
               , 52                                                     18800000
              )                                                         18810000
;                                                                       18820000
INSERT   INTO SESSION.PARMVALUE                                         18830000
       VALUES (  'EN1ENTERTAG_POSAOP'                                   18840000
               , 'not on last but two position when unique or '         18850000
                 || 'next to last position when non unique index '      18860000
                 || '(see Guideline)'                                   18870000
               , 52                                                     18880000
              )                                                         18890000
;                                                                       18900000
INSERT   INTO SESSION.PARMVALUE                                         18910000
       VALUES (  'EN1ENTERTAG_POSSEP'                                   18920000
               , 'not allowed as part of index '                        18930000
                 || '(see Guideline, table pattern '                    18940000
                 || 'XBsss001PS002mmm)'                                 18950000
               , 52                                                     18960000
              )                                                         18970000
;                                                                       18980000
INSERT   INTO SESSION.PARMVALUE                                         18990000
       VALUES (  'EN1ENTERTAG_MIS'                                      19000000
               , 'Missing column. High risk for a non matching '        19010000
               || 'index scan. Reason: Poor filtering (see Guideline)'  19020000
               , 52                                                     19030000
              )                                                         19040000
;                                                                       19050000
INSERT   INTO SESSION.PARMVALUE                                         19060000
       VALUES (  'ET1LOGPROD_POSAOP'                                    19070000
               , 'not on next to last position when unique or last '    19080000
                 || 'position when non unique Index (see Guideline)'    19090000
               , 53                                                     19100000
              )                                                         19110000
;                                                                       19120000
INSERT   INTO SESSION.PARMVALUE                                         19130000
       VALUES (  'ET1LOGPROD_MIS'                                       19140000
               , 'ET1LOGPROD not allowed on this table, allowed for '   19150000
                 || 'XBsss001PS001mmm'                                  19160000
               , 53                                                     19170000
              )                                                         19180000
;                                                                       19190000
INSERT   INTO SESSION.PARMVALUE                                         19200000
       VALUES (  'ET1LOGPROD_MISPOS'                                    19210000
               , 'missing, it is essential for table with pattern '     19220000
                 || 'XBsss001PS001mmm'                                  19230000
               , 53                                                     19240000
              )                                                         19250000
;                                                                       19260000
INSERT   INTO SESSION.PARMVALUE                                         19270000
       VALUES (  'ET1LOGPROD_POS'                                       19280000
               , 'not on next to last position when unique or '         19290000
                 || 'last position when non unique index'               19300000
               , 53                                                     19310000
              )                                                         19320000
;                                                                       19330000
INSERT   INTO SESSION.PARMVALUE                                         19340000
       VALUES (  'Index_Rule'                                           19350000
               , 'no rules are defined. REASON: Unknown ELAR '          19360000
                 || 'table type (not documented, experimental type'     19370000
               , 53                                                     19380000
              )                                                         19390000
;                                                                       19400000
INSERT   INTO SESSION.PARMVALUE                                         19410000
       VALUES (  'NoDatabaseExists'                                     19420000
               , 'No DB2 Objects exists for DDL Check'                  19430000
               , 0                                                      19440000
              )                                                         19450000
;                                                                       19460000
INSERT   INTO SESSION.PARMVALUE                                         19470000
       VALUES (  'DatabaseNoFamily'                                     19480000
               , 'DB2 Objects exists but no ELAR Meta data available'   19490000
               , 0                                                      19500000
              )                                                         19510000
;                                                                       19520000
-- Preperation of result list splitting complete string into option name19530000
-- and option value. Options separated by semicolon. Option and value   19540000
-- separated by equal sign. Elimination of duplicate entries and store  19550000
-- only entries with NOK in temporary table exception.                  19560000
DECLARE GLOBAL TEMPORARY TABLE EXCEPTION                                19570000
               (                                                        19580000
                  OBJECT          CHAR(60)  NOT NULL                    19590000
                , OPTION          CHAR(24)  NOT NULL                    19600000
                , CORRECT_VALUES  CHAR(120) NOT NULL                    19610000
                , FAMILY          CHAR(30)  NOT NULL                    19620000
                , CRITERIA        CHAR(30)  NOT NULL                    19630000
                , OPTIONNUM       INTEGER   NOT NULL                    19640000
                , SUBORD          INTEGER   NOT NULL                    19650000
                , COMMENT         CHAR(20)  NOT NULL WITH DEFAULT       19660000
               )                                                        19670000
;                                                                       19680000
INSERT INTO SESSION.EXCEPTION (                                         19690000
                  OBJECT                                                19700000
                , OPTION                                                19710000
                , CORRECT_VALUES                                        19720000
                , FAMILY                                                19730000
                , CRITERIA                                              19740000
                , OPTIONNUM                                             19750000
                , SUBORD                                                19760000
                , COMMENT                                               19770000
                    )                                                   19780000
WITH RESULT (  SNUM                                                     19790000
             , CRITERIA                                                 19800000
             , FAMILY                                                   19810000
             , OBJECT                                                   19820000
             , OPTIONNUM                                                19830000
             , OPTION                                                   19840000
             , OVALUE                                                   19850000
             , CHECKVALUE                                               19860000
             , COMMENT                                                  19870000
            )                                                           19880000
         AS (SELECT T0.SNUM                                             19890000
                  , T0.CRITERIA                                         19900000
                  , T0.FAMILY                                           19910000
                  , T0.OBJECT                                           19920000
                  , 1                                                   19930000
                  , CASE WHEN LOCATE('=', T0.OPTVALUE) > 0              19940000
                         THEN SUBSTR(  T0.OPTVALUE                      19950000
                                     , 1                                19960000
                                     , LOCATE('=', T0.OPTVALUE) - 1     19970000
                                    )                                   19980000
                         ELSE OPTVALUE                                  19990000
                    END AS OPTION                                       20000000
                  , CASE WHEN LOCATE('=', T0.OPTVALUE) > 0              20010000
                         THEN SUBSTR(  T0.OPTVALUE                      20020000
                                     , LOCATE('=', T0.OPTVALUE) + 1     20030000
                                     , LOCATE(';', T0.OPTVALUE) -       20040000
                                       LOCATE('=', T0.OPTVALUE) - 1     20050000
                                    )                                   20060000
                         ELSE OPTVALUE                                  20070000
                    END AS OVALUE                                       20080000
                  , CASE WHEN LOCATE(';', T0.OPTVALUE) > 0              20090000
                         THEN SUBSTR(  T0.OPTVALUE                      20100000
                                     , LOCATE(';', T0.OPTVALUE) + 1     20110000
                                    )                                   20120000
                         ELSE NULL                                      20130000
                    END AS OPTVALUE                                     20140000
                  , COMMENT                                             20150000
               FROM SESSION.TEMP T0                                     20160000
             UNION  ALL                                                 20170000
             SELECT T1.SNUM                                             20180000
                  , T1.CRITERIA                                         20190000
                  , T1.FAMILY                                           20200000
                  , T1.OBJECT                                           20210000
                  , T1.OPTIONNUM + 1                                    20220000
                  , CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0            20230000
                         THEN SUBSTR(  T1.CHECKVALUE                    20240000
                                     , 1                                20250000
                                     , LOCATE('=', T1.CHECKVALUE) - 1   20260000
                                    )                                   20270000
                         ELSE CHECKVALUE                                20280000
                    END AS OPTION                                       20290000
                  , CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0            20300000
                    THEN CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0       20310000
                         THEN SUBSTR(  T1.CHECKVALUE                    20320000
                                     ,   LOCATE('=', T1.CHECKVALUE)     20330000
                                       + 1                              20340000
                                     ,   LOCATE(';', T1.CHECKVALUE)     20350000
                                       - LOCATE('=', T1.CHECKVALUE)     20360000
                                       - 1                              20370000
                                    )                                   20380000
                         ELSE SUBSTR(  T1.CHECKVALUE                    20390000
                                     ,   LOCATE('=', T1.CHECKVALUE)     20400000
                                       + 1                              20410000
                                    )                                   20420000
                         END                                            20430000
                    ELSE CHECKVALUE                                     20440000
                    END AS OVALUE                                       20450000
                  , CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0            20460000
                         THEN SUBSTR(  T1.CHECKVALUE                    20470000
                                     , LOCATE(';', T1.CHECKVALUE) + 1   20480000
                                    )                                   20490000
                         ELSE NULL                                      20500000
                    END AS OPTVALUE                                     20510000
                  , COMMENT                                             20520000
               FROM RESULT T1                                           20530000
              WHERE T1.CHECKVALUE IS NOT NULL                           20540000
            )                                                           20550000
SELECT DISTINCT                                                         20560000
       RE.OBJECT                                                        20570000
     , CAST(RE.OPTION AS CHAR(24)) AS OPTION                            20580000
     , PV.VALUE                    AS CORRECT_VALUES                    20590000
     , RE.FAMILY                                                        20600000
     , RE.CRITERIA                                                      20610000
     , RE.OPTIONNUM                                                     20620000
     , PV.SUBORD                                                        20630000
     , RE.COMMENT                                                       20640000
  FROM      RESULT RE                                                   20650000
 INNER JOIN SESSION.PARMVALUE PV                                        20660000
         ON RE.OPTION = PV.OPTION                                       20670000
 WHERE RE.OVALUE = 'NOK'                                                20680000
;                                                                       20690000
--                                                                      20700000
-- Generate Report                                                      20710000
-- DDL-Report (Display migrated families first)                         20720000
--                                                                      20730000
SELECT OBJECT           AS OBJECT                                       20740000
     , OPTION           AS OPTION                                       20750000
     , CORRECT_VALUES   AS CORRECT_VALUES                               20760000
     , CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM'                             20770000
            THEN ( SELECT UCASE(EAOF)                                   20780000
                     FROM BUA.TXBA131                                   20790000
                    WHERE   ENOF                                        20800000
                          = CAST(SUBSTR(T1.FAMILY,4,4) AS INT) - 1000   20810000
                 )                                                      20820000
            ELSE FAMILY                                                 20830000
       END              AS FAMILY                                       20840000
     , COMMENT          AS COMMENT                                      20850000
     , CRITERIA         AS CRITERIA                                     20860000
  FROM (SELECT OBJECT                                                   20870000
             , CASE WHEN LOCATE('_', OPTION) > 0                        20880000
                         THEN SUBSTR(OPTION,1,LOCATE('_',OPTION) - 1)   20890000
                         ELSE OPTION                                    20900000
                    END AS OPTION                                       20910000
             , CORRECT_VALUES                                           20920000
             , UCASE(FAMILY)         AS FAMILY                          20930000
             , SUBSTR(CRITERIA,2)    AS CRITERIA                        20940000
             , SUBSTR(CRITERIA,1,1)  AS ORD1                            20950000
             , LENGTH(STRIP(OBJECT)) AS ORD2                            20960000
             , SUBORD                AS ORD3                            20970000
             , COMMENT                                                  20980000
             , CASE WHEN COMMENT <> ' '                                 20990000
                    THEN 0                                              21000000
                    ELSE 1                                              21010000
               END                   AS ORD0                            21020000
          FROM (SELECT OBJECT                                           21030000
                     , OPTION                                           21040000
                     , CORRECT_VALUES                                   21050000
                     , FAMILY                                           21060000
                     , CRITERIA                                         21070000
                     , SUBORD                                           21080000
                     , COMMENT                                          21090000
                  FROM SESSION.EXCEPTION                                21100000
                UNION  ALL                                              21110000
                SELECT OBJECT || ' No Database found' AS OBJECT         21120000
                     , ''                             AS OPTION         21130000
                     , ''                             AS CORRECT_VALUES 21140000
                     , ''                             AS FAMILY         21150000
                     , '9Database not exists'         AS CRITERIA       21160000
                     , 999                            AS SUBORD         21170000
                     , ' '                            AS COMMENT        21180000
                  FROM (SELECT DBNAME AS OBJECT                         21190000
                          FROM SESSION.FAMLISTE                         21200000
                        EXCEPT ALL                                      21210000
                        SELECT SUBSTR(OBJECT, 1, 8) AS OBJECT           21220000
                          FROM SESSION.EXCEPTION                        21230000
                       ) AS T3                                          21240000
               ) AS T2                                                  21250000
       ) AS T1                                                          21260000
WHERE SUBSTR(OBJECT,1,1) <> '?'                                         21270000
  AND STRIP(OBJECT)      <> FAMILY                                      21280000
ORDER BY FAMILY                                                         21290000
       , ORD0                                                           21300000
       , ORD1                                                           21310000
       , ORD2                                                           21320000
       , ORD3                                                           21330000
WITH UR                                                                 21340000
;                                                                       21350000
}¢--- A540769.WK.SQL(DDLCH2) cre=2013-05-14 mod=2013-05-16-12.16.52 A540769 ----

--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with u (ty, qu, nm) as
(
    select 'ts', dbName, name from sysibm.sysTablespace
/*??union all select 't', creator, name from sysibm.sysTables
    union all select 'i', creator, name from sysibm.sysIndexes
??*/)
select * from u
    where (ty = 'ts' and qu like 'MF03%')
       or (ty = 't' and qu = 'A540769' and nm like 'TWK99%')
       or (ty = 'i' and qu = 'A540769' and nm like 'IWK40%')
    group by ty, qu, nm
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
;x;
set current sqlid = 'S100447';
create global temporary table S100447.objs (
    ty char(3), qu varchar(50), nm varChar(50))
;
delete from S100447.objs;
insert into S100447.objs values('ts', 'VV24A1A','VDPS168');
insert into S100447.objs
    select 'ts', dbName, name
         from sysibm.systablespace where dbName = 'VV24A1A'
;
select * from S100447.objs
;
create view S100447.exObjs (ty, qu, nmv) as
with ts (ty, qu, nm) as
(
  select * from S100447.objs where ty = 'ts'
)
, t (ty, qu, nm) as
(
  select * from S100447.objs where ty = 't'
  union all select 't', t.creator, t.name
      from sysibm.sysTables t where type = 'T' and (dbName, tsName)
         in (select qu, nm from ts)
)
, i (ty, qu, nm) as
(
  select * from S100447.objs where ty = 'i'
  union all select 'i', i.creator, i.name
      from sysibm.sysIndexes i where (tbCreator, tbName)
         in (select qu, nm from t)
)
, v1 (ty, qu, nm, lv) as
(
  select o.*, 0 from S100447.objs o where ty = 'v'
  union all select t.*, 0 from t
  union all select dType, dCreator, dName, lv+1
    from v1 join sysibm.sysViewDep d
      on d.bCreator = v1.qu and d.bName = v1.nm
    where lv < 1000
)
, v (ty, qu, nm) as
( select 'v', qu, nm
    from v1 where ty in ('v', 'V')
 )
, u as
(
  select * from ts
  union all select * from t
  union all select * from i
  union all select * from v
)
select * from u
group by ty, qu, nm
;
select * from S100447.exObjs
;
rollback
;x;
with ts as
(
  select dbName db, name ts, 'ts' ty, dbName qu, name nm
       , strip(dbName) || '.' || strip(name) pa
       , ts.*
    from sysibm.sysTablespace ts
)
, tp as
(
  select dbName db, tsName ts, 'tp' ty, dbName qu, tsName nm
       , strip(dbName) || '.' || strip(tsName) pa
       , tp.*
    from sysibm.sysTablePart tp
)
, t as
(
  select dbName db, tsName ts, 't' ty, creator qu, name nm
       ,  strip(dbName) || '.' || strip(tsName)
         || '.' || strip(creator) || '.' || strip(name) pa
       , tb.*
    from sysibm.sysTables tb
    where type not in ('A', 'V')
)
, c as
(
  select db, ts, 'c' ty, c.tbName qu, c.name nm
       , pa || '.' || strip(c.name) pa
       , c.*
    from t join sysibm.sysColumns c
      on qu = c.tbCreator and nm = c.tbName
)
, i as
(
  select db, ts, 'i' ty, ix.creator qu, ix.name nm
       , pa || '.' || strip(ix.creator) ||'.'|| strip(ix.name) pa
       , ix.*
    from t join sysibm.sysIndexes ix
      on qu = ix.tbCreator and nm = ix.tbName
)
, ip as
(
  select db, ts, 'ip' ty, ix.creator qu, ix.name nm
       , pa || '.' || strip(ix.creator) ||'.'|| strip(ix.name) pa
       , ip.*
    from t join sysibm.sysIndexes ix
        on qu = ix.tbCreator and nm = ix.tbName
      join sysibm.sysIndexPart ip
        on ip.ixCreator = ix.creator and ip.ixName = ix.name
)
, v1 (db, ts, ty, qu, nm, pa, lv) as
(
  select db, ts, ty, qu, nm, varchar(pa, 200), 0
    from t
  union all select db, ts, dType, dCreator, dName
       , case when length(pa) < 70 then pa || '.'
                                   else left(pa, 65) || '.....' end
         || strip(dCreator) || '.' || strip(dName)
       , lv+1
    from v1 join sysibm.sysViewDep d
      on d.bCreator = v1.qu and d.bName = v1.nm
    where lv < 1000
)
, v  as
( select db, ts, 'v' ty, qu, nm, pa
    from v1
    where ty = 'V'
)
, eTs (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'psimple TableSpace'
    from ts
    where partitions = 0 and segSize = 0
  union all select db, ts, ty, qu, nm, pa, 'ppartition by growth'
    from ts
    where maxPartitions > 0
  union all select db, ts, ty, qu, nm, pa, 'puniversal TableSpace'
    from ts
    where partitions > 0 and segSize > 0
  union all select db, ts, ty, qu, nm, pa,
        'ptables=' || strip(char(nTables)) || ', <> 1'
    from ts
    where nTables <> 1
  union all select db, ts, ty, qu, nm, pa,
        'partitions=' || strip(char(partitions)) || ', > 512'
    from ts
    where partitions > 512
  union all select db, ts, ty, qu, nm, pa, 'obufferPool=' || bPool
    from ts
    where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
  union all select db, ts, ty, qu, nm, pa,
        'pEncoding=' || encoding_scheme || ', not EBCDIC'
    from ts
    where encoding_scheme <> 'E'
  union all select db, ts, ty, qu, nm, pa,
        'oclose=' || closeRule || ', not Y'
    from ts
    where closeRule <> 'Y'
  union all select db, ts, ty, qu, nm, pa,
        'odssize=' || strip(char(dsSize)) || ' tables, not 16GB'
    from ts
    where nTables <> 1
  union all select db, ts, ty, qu, nm, pa, 'oerase=' || eraseRule
    from ts
    where eraseRule <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'pimplicit=' || implicit
    from ts
    where implicit <> 'N'
  union all select db, ts, ty, qu, nm, pa,
        'olockmax=' || strip(char(lockmax)) || ', not system'
    from ts
    where lockMax <> -1
  union all select db, ts, ty, qu, nm, pa,
        'olockSize=' || strip(char(lockRule)) || ', not any, page'
    from ts
    where lockRule not in ('A', 'P', 'L')
  union all select db, ts, ty, qu, nm, pa, 'onot Logged'
    from ts
    where log <> 'Y'
  union all select db, ts, ty, qu, nm, pa,
       'omaxrows=' || strip(char(maxrows)) || ', not 256'
    from ts
    where segsize not in (0, 64)
  union all select db, ts, ty, qu, nm, pa, 'pmembercluster'
    from ts
    where member_cluster <> ' '
  union all select db, ts, ty, qu, nm, pa,
       'osegsize=' || strip(char(segsize)) || ', not 64'
    from ts
    where segsize not in (0, 64)
)
, eTP  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'ocompress=' || compress
    from tp
    where tp.compress <> 'Y'
  union all select db, ts, ty, qu, nm, pa, 'ostorName not GSMS?'
    from tp
    where (   left(db, 2) <> 'XB' and storName <> 'GSMS')
          or (left(db, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select db, ts, ty, qu, nm, pa, 'opriQty <> -1'
    from tp
    where pqty <> -1
  union all select db, ts, ty, qu, nm, pa, 'osecQty <> -1'
    from tp
    where sqty <> -1
  union all select db, ts, ty, qu, nm, pa,
        'ofreepage=' || strip(char(freepage)) || ', not 0'
    from tp
    where freepage <> 0
  union all select db, ts, ty, qu, nm, pa,
        'opctFree=' || strip(char(pctFree)) || ', > 20'
    from tp
    where pctFree > 20
  union all select db, ts, ty, qu, nm, pa,
        'ogbpCache=' || gbpCache || ', not changed'
    from tp
    where gbpCache <> ' '
)
, eT  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa,
           'ncreator not like oa1' || substr(db, 7, 1) || '%'
    from t
    where not (left(qu, 4) = 'OA1' || substr(db, 7, 1)
           or (left(db, 2) = 'VV' and qu = 'VDPS2'))
  union all select db, ts, ty, qu, nm, pa,
           'nname not like t' || left(db, 2) || substr(ts, 2, 3) || '%'
    from t
    where not (left(nm, 6) = 'T' || left(db, 2) || substr(ts, 2, 3)
           or (left(db, 2) = 'VV' and left(nm, 3) = 'TVV'))
  union all select db, ts, ty, qu, nm, pa,
    case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
         when tableStatus = 'P' then 'pprimary index fehlt'
         when tableStatus = 'R' then 'pindex auf Row ID fehlt'
         when tableStatus = 'U' then 'pindex auf unique key fehlt'
         when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
                                else 'ptableStatus=' || tableStatus
    end
    from t
    where tablestatus <> ' '
  union all select db, ts, ty, qu, nm, pa, 'pappend=' || append
    from t
    where append <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'paudit=' || auditing
    from t
    where auditing <> ' '
  union all select db, ts, ty, qu, nm, pa, 'pdataCapture' || dataCapture
    from t
    where dataCapture <> ' '
  union all select db, ts, ty, qu, nm, pa, 'odrop not restricted'
    from t
    where clusterType <> 'Y'
  union all select db, ts, ty, qu, nm, pa, 'pno Clustering Index'
    from t
    where            (select max(clustering) from sysibm.sysIndexes i
                       where i.tbCreator = t.qu and i.tbName = t.nm)
           not in ('Y', case when 1=1 then 'x' else null end)
  union all select db, ts, ty, qu, nm, pa, 'pindexed based partitioning'
    from t join sysibm.sysTablespace ts
      on t.db = ts.dbName and t.ts = ts.name
          and ts.partitions > 0 and partKeyColNum < 1
  union all select db, ts, ty, qu, nm, pa, 'ano primary key constraint'
    from t
    where keyObid <> 0
)
, eC  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'pcolType=' || colType
    from c
    where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
          , 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
          , 'ROWID', 'BIGINT', 'BINARY')
  union all select db, ts, ty, qu, nm, pa, 'pon update'
    from c
    where default in ('E','F')
  union all select db, ts, ty, qu, nm, pa, 'phidden=' || hidden
    from c
    where hidden <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'pperiod=' || period
    from c
    where period <> ' '
)
, eI  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa,
        'ncreator <> tbCreator=' || tbCreator
    from i
    where creator <> tbCreator
  union all select db, ts, ty, qu, nm, pa,
        'nname not like i' || substr(tbName, 2, 5) || '%'
    from i
    where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
               or qu = 'VDPS2')
  union all select db, ts, ty, qu, nm, pa,
        case when ix_extension_type = 'S' then 'pindex on expression'
            else 'ix_extension_type=' || ix_extension_type
        end
    from i
    where ix_extension_type <> ''
  union all select db, ts, ty, qu, nm, pa, 'obufferpool=' || bPool
    from i
    where bPool <> 'BP1'
  union all select db, ts, ty, qu, nm, pa, 'oclose=' || closeRule
    from i
    where closeRule <> 'Y'
  union all select db, ts, ty, qu, nm, pa, 'ocompress=' || compress
    from i
    where compress <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'ocopy=' || copy
    from i
    where copy <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'oerase=' || eraseRule
    from i
    where eraseRule <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'include columns'
    from i
    where unique_count <> 0
  union all select db, ts, ty, qu, nm, pa, 'opadded=' || padded
    from i
    where padded not in (' ', 'N')
  union all select db, ts, ty, qu, nm, pa, 'anot partitioned'
    from i join sysibm.sysTables t
        on i.tbCreator = t.creator and i.tbName = t.name
      join sysibm.sysTableSpace ts
        on ts.dbName = t.dbName and t.tsName = ts.name
            and ts.partitions > 0
      join sysibm.sysIndexPart ip
        on ip.ixCreator = i.creator and ip.ixName = i.name
            and ip.partition = 1
  union all select db, ts, ty, qu, nm, pa, 'ppiecesize=' || padded
    from i
    where piecesize <> 0 and piecesize < 2097152
)
, eIP  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'ostorName not GSMS?'
    from ip
    where (   left(db, 2) <> 'XB' and storName <> 'GSMS')
          or (left(db, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select db, ts, ty, qu, nm, pa, 'opriQty <> -1'
    from ip
    where pqty <> -1
  union all select db, ts, ty, qu, nm, pa, 'osecQty <> -1'
    from ip
    where sqty <> -1
  union all select db, ts, ty, qu, nm, pa,
       'ofreepage=' || strip(char(freepage)) || ', not 0'
    from ip
    where freepage <> 0
  union all select db, ts, ty, qu, nm, pa,
       'opctFree=' || strip(char(pctFree)) || ', > 20'
    from ip
    where pctFree > 20
  union all select db, ts, ty, qu, nm, pa,
       'ogbpCache=' || gbpCache || ', not changed'
    from ip
    where gbpCache <> ' '
)
, eV   (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'ncreator'
    from v
    where left(qu, 4) <> 'OA1' || substr(db, 7, 1)
  union all select db, ts, ty, qu, nm, pa, 'nname'
    from v
    where left(nm, 3) <> 'V' || left(db, 2)
)
, eU as
(
    select           * from eTs
    union all select * from eTp
        group by ty, qu, nm, err, pa, db,ts
    union all select * from eT
    union all select * from eC
    union all select * from eI
    union all (select * from eIp
        group by ty, qu, nm, err, pa, db,ts)
    union all select * from eV
)
, u as
(
    select           ty, qu, nm, err, pa, db, ts from ts
    union all select ty, qu, nm, err, pa, db, ts from t
    union all select ty, qu, nm, err, pa, db, ts from i
    union all select ty, qu, nm, err, pa, db, ts from eU
)
, r as
(
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
      left(err, 1) cat, substr(err, 2) err, pa
    from eU
    where db like 'VV%' -- and ts like 'A97%'
)
select count(*), ty, cat, min(err), max(err)
                        , min(pa), max(pa)
    from r
    group by ty, cat, left(err, 10)
    order by 3, 2, 4
;
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
      left(err, 1) cat, substr(err, 2) err, pa
    from eU
    where db like 'MF%' -- and ts like 'A97%'
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select * from v
    where db like 'VV24%' and ts like 'VDPS168%'
    order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DDLCH3) cre=2013-05-15 mod=2013-05-16-09.50.38 A540769 ----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with ts as
(
  select 'ts' st, dbName sQ, name sN, 'ts' ty, dbName qu, name nm
       , strip(dbName) || '.' || strip(name) pa
       , ts.*
    from sysibm.sysTablespace ts
  union all select 't' st, t.creator sQ, t.name sN,
           'ts' ty, ts.dbName qu, ts.name nm
       , strip(ts.dbName) || '.' || strip(ts.name) pa
       , ts.*
    from sysibm.sysTables t join sysibm.sysTablespace ts
      on t.dbName = ts.dbName and t.tsName = ts.name
        and t.type not in ('A', 'V')
)
/*???
, tp as
(
  select sT, sQ, sN, 'tp' ty, dbName qu, tsName nm, pa
       , tp.*
    from ts join sysibm.sysTablePart tp
      on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, t as
(
  select sT, sQ, sN, 't' ty, t.creator qu, t.name nm
       , pa || '.' || strip(t.creator) || '.' || strip(t.name) pa
       , t.*
    from ts join sysibm.sysTables t
      on t.dbName = ts.qu and t.tsName = ts.nm
        and t.type not in ('A', 'V')
)
, c as
(
  select sT, sQ, sN, 'c' ty, c.tbName qu, c.name nm
       , pa || '.' || strip(c.name) pa
       , c.*
    from t join sysibm.sysColumns c
      on qu = c.tbCreator and nm = c.tbName
)
, i as
(
  select sT, sQ, sN, 'i' ty, ix.creator qu, ix.name nm
       , pa || '.' || strip(ix.creator) ||'.'|| strip(ix.name) pa
       , ix.*
    from t join sysibm.sysIndexes ix
      on qu = ix.tbCreator and nm = ix.tbName
  union all select 'i' sT, creator sQ, name sN
                 , 'i' ty, creator qu, name nm
                 , strip(creator) || '.' || strip(name) pa
       , ix.*
    from sysibm.sysIndexes ix
)
, ip as
(
  select sT, sQ, sN, 'ip' ty, ix.creator qu, ix.name nm, pa
       , ip.*
    from i join sysibm.sysIndexPart ip
        on ip.ixCreator = qu and ip.ixName = nm
)

, v1 (sT, sQ, sN, ty, qu, nm, pa, lv) as
(
  select sT, sQ, sN, ty, qu, nm, pa, 0
    from t
  union all select 'v', t.creator, t.name, 'v', t.creator, t.name
       , strip(t.creator) || '.' || strip(t.name) pa, 0
    from sysibm.sysTables t
    where type = 'V'
  union all select sT, sQ, sN, dType, dCreator, dName
       , case when length(pa) < 70 then pa || '.'
                                   else left(pa, 65) || '.....' end
         || strip(dCreator) || '.' || strip(dName)
       , lv+1
    from v1 join sysibm.sysViewDep d
      on d.bCreator = v1.qu and d.bName = v1.nm
    where lv < 100
)
, v  as
( select sT, sQ, sN, 'v' ty, qu, nm, pa
    from v1
    where ty in('v', 'V')
)
??????????*/
, u as
(
    select           sT, sQ, sN, ty, qu, nm, pa  from ts
/*???
    union all select sT, sQ, sN, ty, qu, nm, pa  from t
    union all select sT, sQ, sN, ty, qu, nm, pa  from i
    union all select sT, sQ, sN, ty, qu, nm, pa  from v
???*/
)
select * from u
    where (sT = 'ts' and sQ = 'DA540769' and sN like 'A40%')
      or  (sT = 't'  and sQ = 'OA1A' and sN like 'TMF150%')
      or  (sT = 'v'  and sQ = 'GDB9998' and sN like 'WK947NUL%')
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
;x;
, eTs (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'psimple TableSpace'
    from ts
    where partitions = 0 and segSize = 0
  union all select db, ts, ty, qu, nm, pa, 'ppartition by growth'
    from ts
    where maxPartitions > 0
  union all select db, ts, ty, qu, nm, pa, 'puniversal TableSpace'
    from ts
    where partitions > 0 and segSize > 0
  union all select db, ts, ty, qu, nm, pa,
        'ptables=' || strip(char(nTables)) || ', <> 1'
    from ts
    where nTables <> 1
  union all select db, ts, ty, qu, nm, pa,
        'partitions=' || strip(char(partitions)) || ', > 512'
    from ts
    where partitions > 512
  union all select db, ts, ty, qu, nm, pa, 'obufferPool=' || bPool
    from ts
    where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
  union all select db, ts, ty, qu, nm, pa,
        'pEncoding=' || encoding_scheme || ', not EBCDIC'
    from ts
    where encoding_scheme <> 'E'
  union all select db, ts, ty, qu, nm, pa,
        'oclose=' || closeRule || ', not Y'
    from ts
    where closeRule <> 'Y'
  union all select db, ts, ty, qu, nm, pa,
        'odssize=' || strip(char(dsSize)) || ' tables, not 16GB'
    from ts
    where nTables <> 1
  union all select db, ts, ty, qu, nm, pa, 'oerase=' || eraseRule
    from ts
    where eraseRule <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'pimplicit=' || implicit
    from ts
    where implicit <> 'N'
  union all select db, ts, ty, qu, nm, pa,
        'olockmax=' || strip(char(lockmax)) || ', not system'
    from ts
    where lockMax <> -1
  union all select db, ts, ty, qu, nm, pa,
        'olockSize=' || strip(char(lockRule)) || ', not any, page'
    from ts
    where lockRule not in ('A', 'P', 'L')
  union all select db, ts, ty, qu, nm, pa, 'onot Logged'
    from ts
    where log <> 'Y'
  union all select db, ts, ty, qu, nm, pa,
       'omaxrows=' || strip(char(maxrows)) || ', not 256'
    from ts
    where segsize not in (0, 64)
  union all select db, ts, ty, qu, nm, pa, 'pmembercluster'
    from ts
    where member_cluster <> ' '
  union all select db, ts, ty, qu, nm, pa,
       'osegsize=' || strip(char(segsize)) || ', not 64'
    from ts
    where segsize not in (0, 64)
)
, eTP  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'ocompress=' || compress
    from tp
    where tp.compress <> 'Y'
  union all select db, ts, ty, qu, nm, pa, 'ostorName not GSMS?'
    from tp
    where (   left(db, 2) <> 'XB' and storName <> 'GSMS')
          or (left(db, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select db, ts, ty, qu, nm, pa, 'opriQty <> -1'
    from tp
    where pqty <> -1
  union all select db, ts, ty, qu, nm, pa, 'osecQty <> -1'
    from tp
    where sqty <> -1
  union all select db, ts, ty, qu, nm, pa,
        'ofreepage=' || strip(char(freepage)) || ', not 0'
    from tp
    where freepage <> 0
  union all select db, ts, ty, qu, nm, pa,
        'opctFree=' || strip(char(pctFree)) || ', > 20'
    from tp
    where pctFree > 20
  union all select db, ts, ty, qu, nm, pa,
        'ogbpCache=' || gbpCache || ', not changed'
    from tp
    where gbpCache <> ' '
)
, eT  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa,
           'ncreator not like oa1' || substr(db, 7, 1) || '%'
    from t
    where not (left(qu, 4) = 'OA1' || substr(db, 7, 1)
           or (left(db, 2) = 'VV' and qu = 'VDPS2'))
  union all select db, ts, ty, qu, nm, pa,
           'nname not like t' || left(db, 2) || substr(ts, 2, 3) || '%'
    from t
    where not (left(nm, 6) = 'T' || left(db, 2) || substr(ts, 2, 3)
           or (left(db, 2) = 'VV' and left(nm, 3) = 'TVV'))
  union all select db, ts, ty, qu, nm, pa,
    case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
         when tableStatus = 'P' then 'pprimary index fehlt'
         when tableStatus = 'R' then 'pindex auf Row ID fehlt'
         when tableStatus = 'U' then 'pindex auf unique key fehlt'
         when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
                                else 'ptableStatus=' || tableStatus
    end
    from t
    where tablestatus <> ' '
  union all select db, ts, ty, qu, nm, pa, 'pappend=' || append
    from t
    where append <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'paudit=' || auditing
    from t
    where auditing <> ' '
  union all select db, ts, ty, qu, nm, pa, 'pdataCapture' || dataCapture
    from t
    where dataCapture <> ' '
  union all select db, ts, ty, qu, nm, pa, 'odrop not restricted'
    from t
    where clusterType <> 'Y'
  union all select db, ts, ty, qu, nm, pa, 'pno Clustering Index'
    from t
    where            (select max(clustering) from sysibm.sysIndexes i
                       where i.tbCreator = t.qu and i.tbName = t.nm)
           not in ('Y', case when 1=1 then 'x' else null end)
  union all select db, ts, ty, qu, nm, pa, 'pindexed based partitioning'
    from t join sysibm.sysTablespace ts
      on t.db = ts.dbName and t.ts = ts.name
          and ts.partitions > 0 and partKeyColNum < 1
  union all select db, ts, ty, qu, nm, pa, 'ano primary key constraint'
    from t
    where keyObid <> 0
)
, eC  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'pcolType=' || colType
    from c
    where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
          , 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
          , 'ROWID', 'BIGINT', 'BINARY')
  union all select db, ts, ty, qu, nm, pa, 'pon update'
    from c
    where default in ('E','F')
  union all select db, ts, ty, qu, nm, pa, 'phidden=' || hidden
    from c
    where hidden <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'pperiod=' || period
    from c
    where period <> ' '
)
, eI  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa,
        'ncreator <> tbCreator=' || tbCreator
    from i
    where creator <> tbCreator
  union all select db, ts, ty, qu, nm, pa,
        'nname not like i' || substr(tbName, 2, 5) || '%'
    from i
    where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
               or qu = 'VDPS2')
  union all select db, ts, ty, qu, nm, pa,
        case when ix_extension_type = 'S' then 'pindex on expression'
            else 'ix_extension_type=' || ix_extension_type
        end
    from i
    where ix_extension_type <> ''
  union all select db, ts, ty, qu, nm, pa, 'obufferpool=' || bPool
    from i
    where bPool <> 'BP1'
  union all select db, ts, ty, qu, nm, pa, 'oclose=' || closeRule
    from i
    where closeRule <> 'Y'
  union all select db, ts, ty, qu, nm, pa, 'ocompress=' || compress
    from i
    where compress <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'ocopy=' || copy
    from i
    where copy <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'oerase=' || eraseRule
    from i
    where eraseRule <> 'N'
  union all select db, ts, ty, qu, nm, pa, 'include columns'
    from i
    where unique_count <> 0
  union all select db, ts, ty, qu, nm, pa, 'opadded=' || padded
    from i
    where padded not in (' ', 'N')
  union all select db, ts, ty, qu, nm, pa, 'anot partitioned'
    from i join sysibm.sysTables t
        on i.tbCreator = t.creator and i.tbName = t.name
      join sysibm.sysTableSpace ts
        on ts.dbName = t.dbName and t.tsName = ts.name
            and ts.partitions > 0
      join sysibm.sysIndexPart ip
        on ip.ixCreator = i.creator and ip.ixName = i.name
            and ip.partition = 1
  union all select db, ts, ty, qu, nm, pa, 'ppiecesize=' || padded
    from i
    where piecesize <> 0 and piecesize < 2097152
)
, eIP  (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'ostorName not GSMS?'
    from ip
    where (   left(db, 2) <> 'XB' and storName <> 'GSMS')
          or (left(db, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select db, ts, ty, qu, nm, pa, 'opriQty <> -1'
    from ip
    where pqty <> -1
  union all select db, ts, ty, qu, nm, pa, 'osecQty <> -1'
    from ip
    where sqty <> -1
  union all select db, ts, ty, qu, nm, pa,
       'ofreepage=' || strip(char(freepage)) || ', not 0'
    from ip
    where freepage <> 0
  union all select db, ts, ty, qu, nm, pa,
       'opctFree=' || strip(char(pctFree)) || ', > 20'
    from ip
    where pctFree > 20
  union all select db, ts, ty, qu, nm, pa,
       'ogbpCache=' || gbpCache || ', not changed'
    from ip
    where gbpCache <> ' '
)
, eV   (db, ts, ty, qu, nm, pa, err) as
(
  select           db, ts, ty, qu, nm, pa, 'ncreator'
    from v
    where left(qu, 4) <> 'OA1' || substr(db, 7, 1)
  union all select db, ts, ty, qu, nm, pa, 'nname'
    from v
    where left(nm, 3) <> 'V' || left(db, 2)
)
, eU as
(
    select           * from eTs
    union all select * from eTp
        group by ty, qu, nm, err, pa, db,ts
    union all select * from eT
    union all select * from eC
    union all select * from eI
    union all (select * from eIp
        group by ty, qu, nm, err, pa, db,ts)
    union all select * from eV
)
, r as
(
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
      left(err, 1) cat, substr(err, 2) err, pa
    from eU
    where db like 'VV%' -- and ts like 'A97%'
)
select count(*), ty, cat, min(err), max(err)
                        , min(pa), max(pa)
    from r
    group by ty, cat, left(err, 10)
    order by 3, 2, 4
;
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
      left(err, 1) cat, substr(err, 2) err, pa
    from eU
    where db like 'MF%' -- and ts like 'A97%'
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select * from v
    where db like 'VV24%' and ts like 'VDPS168%'
    order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DDLCH4) cre=2013-05-16 mod=2013-05-16-12.35.16 A540769 ----
set current sqlid = 'S100447';
--  drop function A540769.fins;
    create global temporary table A540769.tIns
           (fl char(1), nu int);
--#SET TERMINATOR ?
create function A540769.fIns(c int) returns int
    modifies sql data
    begin
    delete from A540769.tIns;
    insert into A540769.tIns values('x', c);
    insert into A540769.tIns values('x', c-1);
    return c+ 1;
    end
?
--#SET TERMINATOR ;
select * from final table (
    update a540769.tIns set nu = A540769.fIns(12)
    ) x
;
select * from a540769.tIns
;
rollback
;
create function A540769.fChk(pty char(3)
                  , pqu varchar( 24) ccsid unicode for mixed data
                  , pnm varchar( 24) ccsid unicode for mixed data
                            )
           returns table    (ty char(3)
                            , qu varchar(128) --ccsid unicode
                            , nm varchar(128) --ccsid unicode
                            )
    return select 'ts', dbName, name
        from sysibm.sysTablespace
        where                dbName = pqu and name = pnm
    union all select 't', creator, name
        from sysibm.sysTables
        where               creator = pqu and name = pnm
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
select * from table(A540769.fChk('ts', 'MF01A1A', 'A150A')) a
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
rollback
;x;
    modifies sql data
    begin
    delete from A540769.tIns;
    insert into A540769.tIns values('x', c);
    insert into A540769.tIns values('x', c-1);
    return c+ 1;
    end
?
--#SET TERMINATOR ;
select y.* from final table (
    insert into a540769.tIns values('a', A540769.fIns(12))
    ) x , a540769.tIns y
;
select * from a540769.tIns
;
rollback
;
--#SET TERMINATOR ?
create function A540769.fIns(c int) returns int
    modifies sql data
    begin
    delete from A540769.tIns;
    insert into A540769.tIns values('x', c);
    insert into A540769.tIns values('x', c-1);
    return c+ 1;
    end
?
--#SET TERMINATOR ;
select y.* from final table (
    insert into a540769.tIns values('a', A540769.fIns(12))
    ) x , a540769.tIns y
;
select * from a540769.tIns
;
rollback
;
}¢--- A540769.WK.SQL(DDLCH5) cre=2013-05-16 mod=2013-05-16-16.43.13 A540769 ----
set current sqlid = 'S100447';
    drop                    table A540769.tSels;
    create global temporary table A540769.tSels
           (ty char(3), qu varchar(128), nm varchar(128), gp char(3))
;
insert into A540769.tSels
     select 'ts', dbName, name, ''
          from sysibm.systablespace
          where dbName like 'NI%'
/*?? select 'ts', dbName, name, ''
          from sysibm.systablespace
          where dbName = 'DGDB9998' and name like 'A40%'
     union all select 't', creator, name, ''
          from sysibm.systables
          where creator = 'OA1A' and name like 'TMF150%' and type = 'T'
     union all select 'v', creator, name, ''
          from sysibm.systables
          where creator = 'GDB9998' and name like 'WK947NU%'
                   and type = 'V'
??*/
;
-- select * from A540769.tSels
--;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with ts as
(
  select 'ts' ty, dbName qu, name nm
       , case when gp = '' then left(dbName, 2) || substr(dbName, 7, 1)
                           else gp end gp
       , 'ts:' || strip(dbName) || '.' || strip(name) pa
       , ts.*
    from sysibm.sysTablespace ts join A540769.tSels s
      on s.ty = 'ts' and s.qu = ts.dbName and s.nm = ts.name
  union all select 'ts' ty, ts.dbName qu, ts.name nm
       , case when gp = '' then left(t.dbName,2)||substr(t.dbName, 7, 1)
                           else gp end gp
       , 't:' || strip(t.creator) || '.' || strip(t.name)
        || 'ts:' || strip(t.dbName) || '.' || strip(t.tsname) pa
       , ts.*
    from sysibm.sysTables t join A540769.tSels s
        on s.ty = 't' and s.qu = t.creator and s.nm = t.name
      join sysibm.sysTablespace ts
        on ts.dbName = t.dbname and ts.name = t.tsname
)
, tp as
(
  select 'tp' ty, qu, nm, gp, pa
       , tp.*
    from ts join sysibm.sysTablePart tp
      on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, t as
(
  select 't' ty, t.creator qu, t.name nm, gp
       , pa || ' t:' || strip(t.creator) || '.' || strip(t.name) pa
       , t.*
    from ts join sysibm.sysTables t
      on t.dbName = ts.qu and t.tsName = ts.nm
        and t.type not in ('A', 'V')
)
, c as
(
  select 'c' ty, c.tbName qu, c.name nm, gp
       , pa || ' c:' || strip(c.name) pa
       , c.*
    from t join sysibm.sysColumns c
      on qu = c.tbCreator and nm = c.tbName
)
, i as
(
  select 'i' ty, ix.creator qu, ix.name nm, gp
       , pa || ' i:' || strip(ix.creator) ||'.'|| strip(ix.name) pa
       , ix.*
    from t join sysibm.sysIndexes ix
      on qu = ix.tbCreator and nm = ix.tbName
  union all select 'i' ty, ix.creator qu, ix.name nm
       , case when gp='' then left(ix.dbName,2)||substr(ix.dbName, 7,1)
                           else gp end gp
       , 'i:' || strip(creator) || '.' || strip(name) pa
       , ix.*
    from sysibm.sysIndexes ix join A540769.tSels s
      on s.ty = 'i' and ix.creator = s.qu and ix.name = s.nm
)
, ip as
(
  select 'ip' ty, qu, nm, gp, pa
       , ip.*
    from i join sysibm.sysIndexPart ip
        on ip.ixCreator = qu and ip.ixName = nm
)
, v1 (ty, qu, nm, gp, tCr, pa, lv) as
(
  select ty, qu, nm, gp, creator, pa, 0
    from t
  union all select s.*, '', 'v:' || strip(s.qu) ||'.'|| strip(s.nm), 0
       from A540769.tSels s where ty = 'v'
  union all select dType, dCreator, dName, gp, tCr
       , case when length(pa) < 70 then pa
                                   else left(pa, 65) || '.....' end
         || ' v:' || strip(dCreator) || '.' || strip(dName)
       , lv+1
    from v1 join sysibm.sysViewDep d
      on d.bCreator = v1.qu and d.bName = v1.nm
    where lv < 100
)
, v  as
( select 'v' ty, qu, nm, gp, tCr, pa
    from v1
    where ty in('v', 'V')
)
, u as
(
    select                       ty, qu, nm, pa  from ts
    union all select             ty, qu, nm, pa  from t
    union all select             ty, qu, nm, pa  from i
    union all select             ty, qu, nm, pa  from v
)
, eTs (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'psimple TableSpace'
    from ts
    where partitions = 0 and segSize = 0
  union all select ty, qu, nm, gp, pa, 'ppartition by growth'
    from ts
    where maxPartitions > 0
  union all select ty, qu, nm, gp, pa, 'puniversal TableSpace'
    from ts
    where partitions > 0 and segSize > 0
  union all select ty, qu, nm, gp, pa,
        'ptables=' || strip(char(nTables)) || ', <> 1'
    from ts
    where nTables <> 1
  union all select ty, qu, nm, gp, pa,
        'partitions=' || strip(char(partitions)) || ', > 512'
    from ts
    where partitions > 512
  union all select ty, qu, nm, gp, pa, 'obufferPool=' || bPool
    from ts
    where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
  union all select ty, qu, nm, gp, pa,
        'pEncoding=' || encoding_scheme || ', not EBCDIC'
    from ts
    where encoding_scheme <> 'E'
  union all select ty, qu, nm, gp, pa,
        'oclose=' || closeRule || ', not Y'
    from ts
    where closeRule <> 'Y'
  union all select ty, qu, nm, gp, pa,
        'odssize=' || strip(char(dsSize)) || ' tables, not 16GB'
    from ts
    where nTables <> 1
  union all select ty, qu, nm, gp, pa, 'oerase=' || eraseRule
    from ts
    where eraseRule <> 'N'
  union all select ty, qu, nm, gp, pa, 'pimplicit=' || implicit
    from ts
    where implicit <> 'N'
  union all select ty, qu, nm, gp, pa,
        'olockmax=' || strip(char(lockmax)) || ', not system'
    from ts
    where lockMax <> -1
  union all select ty, qu, nm, gp, pa,
        'olockSize=' || strip(char(lockRule)) || ', not any, page'
    from ts
    where lockRule not in ('A', 'P', 'L')
  union all select ty, qu, nm, gp, pa, 'onot Logged'
    from ts
    where log <> 'Y'
  union all select ty, qu, nm, gp, pa,
       'omaxrows=' || strip(char(maxrows)) || ', not 256'
    from ts
    where segsize not in (0, 64)
  union all select ty, qu, nm, gp, pa, 'pmembercluster'
    from ts
    where member_cluster <> ' '
  union all select ty, qu, nm, gp, pa,
       'osegsize=' || strip(char(segsize)) || ', not 64'
    from ts
    where segsize not in (0, 64)
)
, eTP  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'ocompress=' || compress
    from tp
    where tp.compress <> 'Y'
  union all select ty, qu, nm, gp, pa, 'ostorName not GSMS?'
    from tp
    where (left(gp, 2) <> 'XB' and storName <> 'GSMS')
          or (left(gp, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select ty, qu, nm, gp, pa, 'opriQty <> -1'
    from tp
    where pqty <> -1
  union all select ty, qu, nm, gp, pa, 'osecQty <> -1'
    from tp
    where sqty <> -1
  union all select ty, qu, nm, gp, pa,
        'ofreepage=' || strip(char(freepage)) || ', not 0'
    from tp
    where freepage <> 0
  union all select ty, qu, nm, gp, pa,
        'opctFree=' || strip(char(pctFree)) || ', > 20'
    from tp
    where pctFree > 20
  union all select ty, qu, nm, gp, pa,
        'ogbpCache=' || gbpCache || ', not changed'
    from tp
    where gbpCache <> ' '
)
, eT  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa,
           'ncreator not like oa1' || substr(gp, 3, 1) || '%'
    from t
    where not (left(qu, 4) = 'OA1' || substr(gp, 3, 1)
           or (left(gp, 2) = 'VV' and qu = 'VDPS2'))
  union all select ty, qu, nm, gp, pa
      , 'nname not like t' || left(gp,2)
        || case when left(gp, 2) = 'VV' then ''
                else substr(tsName,2,3) end || '%'
    from t
    where not (left(nm, 6) = 'T' || left(gp,2) || substr(tsName, 2, 3)
           or (left(gp, 2) = 'VV' and left(nm, 3) = 'TVV'))
  union all select ty, qu, nm, gp, pa,
    case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
         when tableStatus = 'P' then 'pprimary index fehlt'
         when tableStatus = 'R' then 'pindex auf Row ID fehlt'
         when tableStatus = 'U' then 'pindex auf unique key fehlt'
         when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
                                else 'ptableStatus=' || tableStatus
    end
    from t
    where tablestatus <> ' '
  union all select ty, qu, nm, gp, pa, 'pappend=' || append
    from t
    where append <> 'N'
  union all select ty, qu, nm, gp, pa, 'paudit=' || auditing
    from t
    where auditing <> ' '
  union all select ty, qu, nm, gp, pa, 'pdataCapture' || dataCapture
    from t
    where dataCapture <> ' '
  union all select ty, qu, nm, gp, pa, 'odrop not restricted'
    from t
    where clusterType <> 'Y'
  union all select ty, qu, nm, gp, pa, 'pno Clustering Index'
    from t
    where            (select max(clustering) from sysibm.sysIndexes i
                       where i.tbCreator = t.qu and i.tbName = t.nm)
           not in ('Y', case when 1=1 then 'x' else null end)
  union all select ty, qu, nm, gp, pa, 'pindexed based partitioning'
    from t join sysibm.sysTablespace ts
      on t.dbName = ts.dbName and t.tsName = ts.name
          and ts.partitions > 0 and partKeyColNum < 1
  union all select ty, qu, nm, gp, pa, 'ano primary key constraint'
    from t
    where keyObid <> 0
)
, eC  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'pcolType=' || colType
    from c
    where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
          , 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
          , 'ROWID', 'BIGINT', 'BINARY')
  union all select ty, qu, nm, gp, pa, 'pon update'
    from c
    where default in ('E','F')
  union all select ty, qu, nm, gp, pa, 'phidden=' || hidden
    from c
    where hidden <> 'N'
  union all select ty, qu, nm, gp, pa, 'pperiod=' || period
    from c
    where period <> ' '
)
, eI  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa,
        'ncreator <> tbCreator=' || tbCreator
    from i
    where creator <> tbCreator
  union all select ty, qu, nm, gp, pa,
        'nname not like i' || substr(tbName, 2, 5) || '%'
    from i
    where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
               or qu = 'VDPS2')
  union all select ty, qu, nm, gp, pa,
        case when ix_extension_type = 'S' then 'pindex on expression'
            else 'ix_extension_type=' || ix_extension_type
        end
    from i
    where ix_extension_type <> ''
  union all select ty, qu, nm, gp, pa, 'obufferpool=' || bPool
    from i
    where bPool <> 'BP1'
  union all select ty, qu, nm, gp, pa, 'oclose=' || closeRule
    from i
    where closeRule <> 'Y'
  union all select ty, qu, nm, gp, pa, 'ocompress=' || compress
    from i
    where compress <> 'N'
  union all select ty, qu, nm, gp, pa, 'ocopy=' || copy
    from i
    where copy <> 'N'
  union all select ty, qu, nm, gp, pa, 'oerase=' || eraseRule
    from i
    where eraseRule <> 'N'
  union all select ty, qu, nm, gp, pa, 'include columns'
    from i
    where unique_count <> 0
  union all select ty, qu, nm, gp, pa, 'opadded=' || padded
    from i
    where padded not in (' ', 'N')
  union all select ty, qu, nm, gp, pa, 'anot partitioned'
    from i join sysibm.sysTables t
        on i.tbCreator = t.creator and i.tbName = t.name
      join sysibm.sysTableSpace ts
        on ts.dbName = t.dbName and t.tsName = ts.name
            and ts.partitions > 0
      join sysibm.sysIndexPart ip
        on ip.ixCreator = i.creator and ip.ixName = i.name
            and ip.partition = 1
  union all select ty, qu, nm, gp, pa
      , 'ppiecesize=' || strip(char(piecesize))
    from i
    where piecesize <> 0 and piecesize < 2097152
)
, eIP  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'ostorName not GSMS?'
    from ip
    where (   left(gp, 2) <> 'XB' and storName <> 'GSMS')
          or (left(gp, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select ty, qu, nm, gp, pa, 'opriQty <> -1'
    from ip
    where pqty <> -1
  union all select ty, qu, nm, gp, pa, 'osecQty <> -1'
    from ip
    where sqty <> -1
  union all select ty, qu, nm, gp, pa,
       'ofreepage=' || strip(char(freepage)) || ', not 0'
    from ip
    where freepage <> 0
  union all select ty, qu, nm, gp, pa,
       'opctFree=' || strip(char(pctFree)) || ', > 20'
    from ip
    where pctFree > 20
  union all select ty, qu, nm, gp, pa,
       'ogbpCache=' || gbpCache || ', not changed'
    from ip
    where gbpCache <> ' '
)
, eV   (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'ncreator'
    from v
    where not( (tCr <> '' and tCr = qu)
        or ((tCr = '' or left(gp, 2) = 'VV')
                and left(qu, 4) = 'OA1' || substr(gp, 3, 1)))
  union all select ty, qu, nm, gp, pa, 'nname'
    from v
    where left(nm, 3) <> 'V' || left(gp, 2)
)
, eU as
(
    select           * from eTs
    union all select * from eTp
        group by ty, qu, nm, gp, err, pa
    union all select * from eT
    union all select * from eC
    union all select * from eI
    union all  select * from eIp
        group by ty, qu, nm, gp, err, pa
    union all select * from eV
)
, r as
(
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
      substr(err, 1, 1) cat, substr(gp, 1, 3) gp,
      substr(err, 2, 40) err, pa
    from eU
)
-- select * from r order by pa ;x;
select count(*), ty, cat, min(err), max(err)
                        , min(pa), max(pa)
    from r
    group by ty, cat, left(err, 10)
    order by 3, 2, 4
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;x;
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
      substr(err, 1, 1) cat, substr(err, 2, 40) err, pa
    from eU
    where db like 'MF%' -- and ts like 'A97%'
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select * from v
    where db like 'VV24%' and ts like 'VDPS168%'
    order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DDLCH6) cre=2013-05-23 mod=2013-05-31-14.13.52 A540769 ----
set current sqlid = 'S100447';
set current path oa1t;
--drop                    table A540769.tSels;
create global temporary table A540769.tSels
    (ty char(3), qu varchar(128), nm varchar(128), gp char(3))
;
create view A540769.vDdlCheck as
with ts as
(
  select 'ts' ty, dbName qu, name nm
       , case when gp = '' then left(dbName, 2) || substr(dbName, 7, 1)
                           else gp end gp
       , 'ts:' || strip(dbName) || '.' || strip(name) pa
       , ts.*
    from sysibm.sysTablespace ts join A540769.tSels s
      on s.ty = 'ts' and s.qu = ts.dbName and s.nm = ts.name
  union all select 'ts' ty, ts.dbName qu, ts.name nm
       , case when gp = '' then left(t.dbName,2)||substr(t.dbName, 7, 1)
                           else gp end gp
       , 't:' || strip(t.creator) || '.' || strip(t.name)
        || 'ts:' || strip(t.dbName) || '.' || strip(t.tsname) pa
       , ts.*
    from sysibm.sysTables t join A540769.tSels s
        on s.ty = 't' and s.qu = t.creator and s.nm = t.name
      join sysibm.sysTablespace ts
        on ts.dbName = t.dbname and ts.name = t.tsname
)
, tp as
(
  select 'tp' ty, qu, nm, gp, pa
       , tp.*
    from ts join sysibm.sysTablePart tp
      on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, t as
(
  select 't' ty, t.creator qu, t.name nm, gp
       , pa || ' t:' || strip(t.creator) || '.' || strip(t.name) pa
       , t.*
    from ts join sysibm.sysTables t
      on t.dbName = ts.qu and t.tsName = ts.nm
        and t.type not in ('A', 'V')
)
, c as
(
  select 'c' ty, c.tbName qu, c.name nm, gp
       , pa || ' c:' || strip(c.name) pa
       , c.*
    from t join sysibm.sysColumns c
      on qu = c.tbCreator and nm = c.tbName
)
, i as
(
  select 'i' ty, ix.creator qu, ix.name nm, gp
       , pa || ' i:' || strip(ix.creator) ||'.'|| strip(ix.name) pa
       , ix.*
    from t join sysibm.sysIndexes ix
      on qu = ix.tbCreator and nm = ix.tbName
  union all select 'i' ty, ix.creator qu, ix.name nm
       , case when gp='' then left(ix.dbName,2)||substr(ix.dbName, 7,1)
                           else gp end gp
       , 'i:' || strip(creator) || '.' || strip(name) pa
       , ix.*
    from sysibm.sysIndexes ix join A540769.tSels s
      on s.ty = 'i' and ix.creator = s.qu and ix.name = s.nm
)
, ip as
(
  select 'ip' ty, qu, nm, gp, pa
       , ip.*
    from i join sysibm.sysIndexPart ip
        on ip.ixCreator = qu and ip.ixName = nm
)
, v1 (ty, qu, nm, gp, tCr, pa, lv) as
(
  select ty, qu, nm, gp, creator, pa, 0
    from t
  union all select s.*, '', 'v:' || strip(s.qu) ||'.'|| strip(s.nm), 0
       from A540769.tSels s where ty = 'v'
  union all select dType, dCreator, dName, gp, tCr
       , case when length(pa) < 70 then pa
                                   else left(pa, 65) || '.....' end
         || ' v:' || strip(dCreator) || '.' || strip(dName)
       , lv+1
    from v1 join sysibm.sysViewDep d
      on d.bCreator = v1.qu and d.bName = v1.nm
    where lv < 100
)
, v  as
( select 'v' ty, qu, nm, gp, tCr, pa
    from v1
    where ty in('v', 'V')
)
, eTs (ty, qu, nm, pa, cat, att, val, std) as
(
  select           ty, qu, nm, pa, 'p', 'type', 'simple', ''
    from ts
    where partitions = 0 and segSize = 0
  union all select ty, qu, nm, pa, 'p', 'type', 'partition by growth',''
    from ts
    where maxPartitions > 0
  union all select ty, qu, nm, pa, 'p', 'type', 'universal', ''
    from ts
    where partitions > 0 and segSize > 0
  union all select ty, qu, nm, pa, 'p', 'tables', char(nTables), '1'
    from ts
    where nTables <> 1
  union all select ty, qu, nm, pa, 'p', 'partitions',
                         char(partitions),  '<=512'
    from ts
    where partitions > 512
  union all select ty, qu, nm, pa, 'o', 'bufferPool', bPool, 'bp2...'
    from ts
    where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
  union all select ty, qu, nm, pa, 'p', 'encoding',
                        encoding_scheme, 'EBCDIC'
    from ts
    where encoding_scheme <> 'E'
  union all select ty, qu, nm, pa, 'o', 'close', closeRule, 'Y'
    from ts
    where closeRule <> 'Y'
  union all select ty, qu, nm, pa, 'oq', 'dssize', char(dsSize), '16GB'
    from ts
    where dssize <> 16777216 and partitions <> 0
  union all select ty, qu, nm, pa, 'o', 'erase', eraseRule, 'N'
    from ts
    where eraseRule <> 'N'
  union all select ty, qu, nm, pa, 'p', 'implicit', implicit, 'N'
    from ts
    where implicit <> 'N'
  union all select ty, qu, nm, pa, 'o', 'lockmax',
                       char(lockmax), 'system'
    from ts
    where lockMax <> -1
  union all select ty, qu, nm, pa, 'oq', 'locksize', lockRule, 'any'
    from ts
    where lockRule <> 'A'
  union all select ty, qu, nm, pa, 'o', 'logged', log, 'Y'
    from ts
    where log <> 'Y'
  union all select ty, qu, nm, pa, 'oq', 'maxrows', char(maxrows),'256'
    from ts
    where segsize not in (0, 64)
  union all select ty, qu, nm, pa, 'pq', 'membercluster',
                  member_cluster, ' '
    from ts
    where member_cluster <> ' '
  union all select ty, qu, nm, pa, 'o', 'segsize', char(segsize), '64'
    from ts
    where segsize not in (0, 64)
)
, eTP  (ty, qu, nm, pa, cat, att, val, std) as
(
  select           ty, qu, nm, pa, 'o', 'compress', compress, 'Y'
    from tp
    where tp.compress <> 'Y'
  union all select ty, qu, nm, pa, 'oq', 'storName',storName,'GSMS?'
    from tp
    where (left(gp, 2) <> 'XB' and storName <> 'GSMS')
          or (left(gp, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select ty, qu, nm, pa, 'o', 'priQty', char(pQty), '-1'
    from tp
    where pqty <> -1
  union all select ty, qu, nm, pa, 'o', 'secQty', char(sQty), '-1'
    from tp
    where sqty <> -1
  union all select ty, qu, nm, pa, 'oq', 'freePage',
                              char(freepage), '0'
    from tp
    where freepage <> 0
  union all select ty, qu, nm, pa, 'oq', 'pctFree',
                             char(pctFree), '10'
    from tp
    where pctFree <> 10
  union all select ty, qu, nm, pa, 'o', 'gbpCache',
                             gbpCache, 'changed'
    from tp
    where gbpCache <> ' '
)
, eT (ty, qu, nm, pa, cat, att, val, std) as
(
  select           ty, qu, nm, pa, 'n', 'creator', qu,
                             'oa1' || substr(gp, 3, 1) || '%'
    from t
    where not (left(qu, 4) = 'OA1' || substr(gp, 3, 1)
           or (left(gp, 2) = 'VV' and qu = 'VDPS2'))
  union all select ty, qu, nm, pa, 'n', 'name', nm,
          't' || left(gp,2) || case when left(gp, 2) = 'VV' then ''
                                    else substr(tsName,2,3) end || '%'
    from t
    where not (left(nm, 6) = 'T' || left(gp,2) || substr(tsName, 2, 3)
           or (left(gp, 2) = 'VV' and left(nm, 3) = 'TVV'))
  union all select ty, qu, nm, pa, 'p', 'tableStatus',
    case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
         when tableStatus = 'P' then 'pprimary index fehlt'
         when tableStatus = 'R' then 'pindex auf Row ID fehlt'
         when tableStatus = 'U' then 'pindex auf unique key fehlt'
         when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
                                else 'ptableStatus=' || tableStatus
    end, 'ok'
    from t
    where tablestatus <> ' '
  union all select ty, qu, nm, pa, 'p', 'append', append, 'N'
    from t
    where append <> 'N'
  union all select ty, qu, nm, pa, 'p', 'audit', auditing, 'no'
    from t
    where auditing <> ' '
  union all select ty, qu, nm, pa, 'p', 'dataCapture',
                                         dataCapture, 'no'
    from t
    where dataCapture <> ' '
  union all select ty, qu, nm, pa, 'o', 'restrict on drop',
                                        clustertype, 'Y'
    from t
    where clusterType <> 'Y'
  union all select ty, qu, nm, pa, 'p', 'Clustering Index', 'none',
                                        'required if any indexes'
    from t
    where            (select max(clustering) from sysibm.sysIndexes i
                       where i.tbCreator = t.qu and i.tbName = t.nm)
           not in ('Y', case when 1=1 then 'x' else null end)
  union all select ty, qu, nm, pa, 'p', 'partitioning',
                                        'indexed based', 'table based'
    from t join sysibm.sysTablespace ts
      on t.dbName = ts.dbName and t.tsName = ts.name
          and ts.partitions > 0 and partKeyColNum < 1
  union all select ty, qu, nm, pa, 'a', 'primary key constraint',
                                        'none', 'adviced'
    from t
    where keyObid <> 0
)
, eC (ty, qu, nm, pa, cat, att, val, std) as
(
  select           ty, qu, nm, pa, 'p', 'colType', colType,
                                        'only CS allowed'
    from c
    where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
          , 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
          , 'ROWID', 'BIGINT', 'BINARY')
  union all select ty, qu, nm, pa, 'p', 'on update', 'used', 'no'
    from c
    where default in ('E','F')
  union all select ty, qu, nm, pa, 'p', 'hidden', hidden, 'N'
    from c
    where hidden <> 'N'
  union all select ty, qu, nm, pa, 'p', 'period', period, 'no'
    from c
    where period <> ' '
)
, eI (ty, qu, nm, pa, cat, att, val, std) as
(
  select           ty, qu, nm, pa, 'n', 'creator', qu, tbCreator
    from i
    where creator <> tbCreator
  union all select ty, qu, nm, pa, 'n', 'name', nm,
                                   'i' || substr(tbName, 2, 5) || '%'
    from i
    where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
               or qu = 'VDPS2')
  union all select ty, qu, nm, pa, 'p', 'extensionType',
        case when ix_extension_type = 'S' then 'index on expression'
            else ix_extension_type end, 'no'
        end
    from i
    where ix_extension_type <> ''
  union all select ty, qu, nm, pa, 'o', 'bufferpool', bPool, 'BP1'
    from i
    where bPool <> 'BP1'
  union all select ty, qu, nm, pa, 'o', 'close', closeRule, 'Y'
    from i
    where closeRule <> 'Y'
  union all select ty, qu, nm, pa, 'o', 'compress', compress, 'N'
    from i
    where compress <> 'N'
  union all select ty, qu, nm, pa, 'o', 'copy', copy, 'N'
    from i
    where copy <> 'N'
  union all select ty, qu, nm, pa, 'o', 'erase', eraseRule, 'N'
    from i
    where eraseRule <> 'N'
  union all select ty, qu, nm, pa, 'p', 'include columns', 'yes', 'no'
    from i
    where unique_count <> 0
  union all select ty, qu, nm, pa, 'oq', 'padded', padded, 'N'
    from i
    where padded not in (' ', 'N')
  union all select ty, qu, nm, pa, 'a', 'partitioned', 'no', 'yes'
    from i join sysibm.sysTables t
        on i.tbCreator = t.creator and i.tbName = t.name
      join sysibm.sysTableSpace ts
        on ts.dbName = t.dbName and t.tsName = ts.name
            and ts.partitions > 0
      join sysibm.sysIndexPart ip
        on ip.ixCreator = i.creator and ip.ixName = i.name
            and ip.partition = 1
  union all select ty, qu, nm, pa,
      case when piecesize between 1 and 2097152 then 'pq' else 'iq' end,
            'piecesize', char(piecesize), '2GB'
    from i
    where piecesize <> 2097152
)
, eIP (ty, qu, nm, pa, cat, att, val, std) as
(
  select           ty, qu, nm, pa, 'oq', 'storName',
                                              storName, 'GSMS?'
    from ip
    where (   left(gp, 2) <> 'XB' and storName <> 'GSMS')
          or (left(gp, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select ty, qu, nm, pa, 'o', 'priQty', char(pQty), '-1'
    from ip
    where pqty <> -1
  union all select ty, qu, nm, pa, 'o', 'secQty', char(sQty), '-1'
    from ip
    where sqty <> -1
  union all select ty, qu, nm, pa, 'oq', 'freePage', char(freePage), '0'
    from ip
    where freepage <> 0
  union all select ty, qu, nm, pa, 'oq', 'pctFree', char(pctFree), '10'
    from ip
    where pctFree <> 10
  union all select ty, qu, nm, pa, 'o', 'gbpCache', gbpCache, 'changed'
    from ip
    where gbpCache <> ' '
)
, eV (ty, qu, nm, pa, cat, att, val, std) as
(
  select           ty, qu, nm, pa, 'n', 'creator', qu,
                                     'OA1' || substr(gp, 3, 1) || '%'
    from v
    where not( (tCr <> '' and tCr = qu)
        or ((tCr = '' or left(gp, 2) = 'VV')
                and left(qu, 4) = 'OA1' || substr(gp, 3, 1)))
  union all select ty, qu, nm, pa, 'n', 'name',nm, 'V'||left(gp, 2)||'%'
    from v
    where left(nm, 3) <> 'V' || left(gp, 2)
)
, eU1 as
(
    select           * from eTs
    union all select * from eTp
        group by ty, qu, nm, cat, att, val, std, pa
    union all select * from eT
    union all select * from eC
    union all select * from eI
    union all  select * from eIp
        group by ty, qu, nm, cat, att, val, std, pa
    union all select * from eV
)
, eU (ty, qu, nm, cat, err, pa) as
(
  select ty, qu, nm, cat
      , att || '='
        || case when length(val) = 0 then ''''''
                when val = ''        then ''' '''
                                     else strip(val)
           end
        || ', not std=' || std, pa
    from eU1
)
, rt (ty, qu, nm, pa, rows, space) as
(
  select ty, qu, nm, min(pa) pa
      , real(sum(totalRows)) rows
      ,  sum(ts.pgSize * real(r.nActive) * 1024) space
    from ts left join sysibm.sysTablespaceStats r
      on r.dbName = ts.dbName and r.name = ts.name
          and r.dbid = ts.dbid and r.psid = ts.psid
    group by ty, qu, nm
)
, ri (ty, qu, nm, pa, rows, space) as
(
  select ty, qu, nm, min(pa)
      , real(sum(totalEntries))
      ,  sum(case when i.pgSize = 4096 then 4
                                       else i.pgSize end
              * real(r.nActive) * 1024)
    from i left join sysibm.sysIndexspaceStats r
      on r.creator= i.creator and r.name = i.name
          and r.dbid = i.dbid and r.isobid = i.isobid
    group by ty, qu, nm
)
, u1 (ty, qu, nm, cat, err, pa) as
(
  select * from eU
  union all select ty, qu, nm, 'ir'
      , ' rows=' || fosFmtE7(rows)
        || ', space=' || fosFmtE7(space) || 'B'
      , pa
      from (select * from rt union all select * from ri) y
  union all select ty, qu, nm, 'io', '', pa from t
  union all select ty, qu, nm, 'io', '', pa from v
)
, u  (ty, qu, nm, cat, err, pa) as
(
  select ty, substr(qu, 1, 8), substr(nm, 1, 16), cat, err, pa
      from u1
      order by pa, err, cat
)
select * from u
;
insert into A540769.tSels
     select 'ts', dbName, name, ''
          from sysibm.systablespace
          where dbName like 'NI%'
     union all select 't', creator, name, ''
          from sysibm.systables
          where creator like 'OA1%' and name like 'TMF%' and type = 'T'
 /*  union all select 'ts', dbName, name, ''
          from sysibm.systablespace
          where dbName = 'DGDB9998' and name like 'A40%'
     union all select 'v', creator, name, ''
          from sysibm.systables
          where creator = 'GDB9998' and name like 'WK947NU%'
                   and type = 'V' */
;
select count(*), ty, cat, err, min(pa), max(pa)
    from A540769.vDDLCheck
    where cat not like 'i%'
    group by cat, err, ty
    order by cat, err, ty
;
select * from A540769.vDDLCheck order by pa, err
;x;
-- select * from A540769.tSels
--;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with ts as
(
  select 'ts' ty, dbName qu, name nm
       , case when gp = '' then left(dbName, 2) || substr(dbName, 7, 1)
                           else gp end gp
       , 'ts:' || strip(dbName) || '.' || strip(name) pa
       , ts.*
    from sysibm.sysTablespace ts join A540769.tSels s
      on s.ty = 'ts' and s.qu = ts.dbName and s.nm = ts.name
  union all select 'ts' ty, ts.dbName qu, ts.name nm
       , case when gp = '' then left(t.dbName,2)||substr(t.dbName, 7, 1)
                           else gp end gp
       , 't:' || strip(t.creator) || '.' || strip(t.name)
        || 'ts:' || strip(t.dbName) || '.' || strip(t.tsname) pa
       , ts.*
    from sysibm.sysTables t join A540769.tSels s
        on s.ty = 't' and s.qu = t.creator and s.nm = t.name
      join sysibm.sysTablespace ts
        on ts.dbName = t.dbname and ts.name = t.tsname
)
, tp as
(
  select 'tp' ty, qu, nm, gp, pa
       , tp.*
    from ts join sysibm.sysTablePart tp
      on ts.qu = tp.dbName and ts.nm = tp.tsName
)
, t as
(
  select 't' ty, t.creator qu, t.name nm, gp
       , pa || ' t:' || strip(t.creator) || '.' || strip(t.name) pa
       , t.*
    from ts join sysibm.sysTables t
      on t.dbName = ts.qu and t.tsName = ts.nm
        and t.type not in ('A', 'V')
)
, c as
(
  select 'c' ty, c.tbName qu, c.name nm, gp
       , pa || ' c:' || strip(c.name) pa
       , c.*
    from t join sysibm.sysColumns c
      on qu = c.tbCreator and nm = c.tbName
)
, i as
(
  select 'i' ty, ix.creator qu, ix.name nm, gp
       , pa || ' i:' || strip(ix.creator) ||'.'|| strip(ix.name) pa
       , ix.*
    from t join sysibm.sysIndexes ix
      on qu = ix.tbCreator and nm = ix.tbName
  union all select 'i' ty, ix.creator qu, ix.name nm
       , case when gp='' then left(ix.dbName,2)||substr(ix.dbName, 7,1)
                           else gp end gp
       , 'i:' || strip(creator) || '.' || strip(name) pa
       , ix.*
    from sysibm.sysIndexes ix join A540769.tSels s
      on s.ty = 'i' and ix.creator = s.qu and ix.name = s.nm
)
, ip as
(
  select 'ip' ty, qu, nm, gp, pa
       , ip.*
    from i join sysibm.sysIndexPart ip
        on ip.ixCreator = qu and ip.ixName = nm
)
, v1 (ty, qu, nm, gp, tCr, pa, lv) as
(
  select ty, qu, nm, gp, creator, pa, 0
    from t
  union all select s.*, '', 'v:' || strip(s.qu) ||'.'|| strip(s.nm), 0
       from A540769.tSels s where ty = 'v'
  union all select dType, dCreator, dName, gp, tCr
       , case when length(pa) < 70 then pa
                                   else left(pa, 65) || '.....' end
         || ' v:' || strip(dCreator) || '.' || strip(dName)
       , lv+1
    from v1 join sysibm.sysViewDep d
      on d.bCreator = v1.qu and d.bName = v1.nm
    where lv < 100
)
, v  as
( select 'v' ty, qu, nm, gp, tCr, pa
    from v1
    where ty in('v', 'V')
)
, u as
(
    select                       ty, qu, nm, pa  from ts
    union all select             ty, qu, nm, pa  from t
    union all select             ty, qu, nm, pa  from i
    union all select             ty, qu, nm, pa  from v
)
, eTs (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'psimple TableSpace'
    from ts
    where partitions = 0 and segSize = 0
  union all select ty, qu, nm, gp, pa, 'ppartition by growth'
    from ts
    where maxPartitions > 0
  union all select ty, qu, nm, gp, pa, 'puniversal TableSpace'
    from ts
    where partitions > 0 and segSize > 0
  union all select ty, qu, nm, gp, pa,
        'ptables=' || strip(char(nTables)) || ', <> 1'
    from ts
    where nTables <> 1
  union all select ty, qu, nm, gp, pa,
        'partitions=' || strip(char(partitions)) || ', > 512'
    from ts
    where partitions > 512
  union all select ty, qu, nm, gp, pa, 'obufferPool=' || bPool
    from ts
    where bPool not in('BP2', 'BP8K1', 'BP16K1', 'BP32K')
  union all select ty, qu, nm, gp, pa,
        'pEncoding=' || encoding_scheme || ', not EBCDIC'
    from ts
    where encoding_scheme <> 'E'
  union all select ty, qu, nm, gp, pa,
        'oclose=' || closeRule || ', not Y'
    from ts
    where closeRule <> 'Y'
  union all select ty, qu, nm, gp, pa,
        'odssize=' || strip(char(dsSize)) || ' tables, not 16GB'
    from ts
    where nTables <> 1
  union all select ty, qu, nm, gp, pa, 'oerase=' || eraseRule
    from ts
    where eraseRule <> 'N'
  union all select ty, qu, nm, gp, pa, 'pimplicit=' || implicit
    from ts
    where implicit <> 'N'
  union all select ty, qu, nm, gp, pa,
        'olockmax=' || strip(char(lockmax)) || ', not system'
    from ts
    where lockMax <> -1
  union all select ty, qu, nm, gp, pa,
        'olockSize=' || strip(char(lockRule)) || ', not any, page'
    from ts
    where lockRule not in ('A', 'P', 'L')
  union all select ty, qu, nm, gp, pa, 'onot Logged'
    from ts
    where log <> 'Y'
  union all select ty, qu, nm, gp, pa,
       'omaxrows=' || strip(char(maxrows)) || ', not 256'
    from ts
    where segsize not in (0, 64)
  union all select ty, qu, nm, gp, pa, 'pmembercluster'
    from ts
    where member_cluster <> ' '
  union all select ty, qu, nm, gp, pa,
       'osegsize=' || strip(char(segsize)) || ', not 64'
    from ts
    where segsize not in (0, 64)
)
, eTP  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'ocompress=' || compress
    from tp
    where tp.compress <> 'Y'
  union all select ty, qu, nm, gp, pa, 'ostorName not GSMS?'
    from tp
    where (left(gp, 2) <> 'XB' and storName <> 'GSMS')
          or (left(gp, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select ty, qu, nm, gp, pa, 'opriQty <> -1'
    from tp
    where pqty <> -1
  union all select ty, qu, nm, gp, pa, 'osecQty <> -1'
    from tp
    where sqty <> -1
  union all select ty, qu, nm, gp, pa,
        'ofreepage=' || strip(char(freepage)) || ', not 0'
    from tp
    where freepage <> 0
  union all select ty, qu, nm, gp, pa,
        'opctFree=' || strip(char(pctFree)) || ', > 20'
    from tp
    where pctFree > 20
  union all select ty, qu, nm, gp, pa,
        'ogbpCache=' || gbpCache || ', not changed'
    from tp
    where gbpCache <> ' '
)
, eT  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa,
           'ncreator not like oa1' || substr(gp, 3, 1) || '%'
    from t
    where not (left(qu, 4) = 'OA1' || substr(gp, 3, 1)
           or (left(gp, 2) = 'VV' and qu = 'VDPS2'))
  union all select ty, qu, nm, gp, pa
      , 'nname not like t' || left(gp,2)
        || case when left(gp, 2) = 'VV' then ''
                else substr(tsName,2,3) end || '%'
    from t
    where not (left(nm, 6) = 'T' || left(gp,2) || substr(tsName, 2, 3)
           or (left(gp, 2) = 'VV' and left(nm, 3) = 'TVV'))
  union all select ty, qu, nm, gp, pa,
    case when tableStatus = 'L' then 'pauxilary index oder table fehlt'
         when tableStatus = 'P' then 'pprimary index fehlt'
         when tableStatus = 'R' then 'pindex auf Row ID fehlt'
         when tableStatus = 'U' then 'pindex auf unique key fehlt'
         when tableStatus = 'V' then 'pFehler interne ViewDarstellung'
                                else 'ptableStatus=' || tableStatus
    end
    from t
    where tablestatus <> ' '
  union all select ty, qu, nm, gp, pa, 'pappend=' || append
    from t
    where append <> 'N'
  union all select ty, qu, nm, gp, pa, 'paudit=' || auditing
    from t
    where auditing <> ' '
  union all select ty, qu, nm, gp, pa, 'pdataCapture' || dataCapture
    from t
    where dataCapture <> ' '
  union all select ty, qu, nm, gp, pa, 'odrop not restricted'
    from t
    where clusterType <> 'Y'
  union all select ty, qu, nm, gp, pa, 'pno Clustering Index'
    from t
    where            (select max(clustering) from sysibm.sysIndexes i
                       where i.tbCreator = t.qu and i.tbName = t.nm)
           not in ('Y', case when 1=1 then 'x' else null end)
  union all select ty, qu, nm, gp, pa, 'pindexed based partitioning'
    from t join sysibm.sysTablespace ts
      on t.dbName = ts.dbName and t.tsName = ts.name
          and ts.partitions > 0 and partKeyColNum < 1
  union all select ty, qu, nm, gp, pa, 'ano primary key constraint'
    from t
    where keyObid <> 0
)
, eC  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'pcolType=' || colType
    from c
    where coltype not in('INTEGER', 'SMALLINT', 'FLOAT', 'CHAR'
          , 'VARCHAR', 'DECIMAL', 'DATE', 'TIME', 'TIMESTMP'
          , 'ROWID', 'BIGINT', 'BINARY')
  union all select ty, qu, nm, gp, pa, 'pon update'
    from c
    where default in ('E','F')
  union all select ty, qu, nm, gp, pa, 'phidden=' || hidden
    from c
    where hidden <> 'N'
  union all select ty, qu, nm, gp, pa, 'pperiod=' || period
    from c
    where period <> ' '
)
, eI  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa,
        'ncreator <> tbCreator=' || tbCreator
    from i
    where creator <> tbCreator
  union all select ty, qu, nm, gp, pa,
        'nname not like i' || substr(tbName, 2, 5) || '%'
    from i
    where not (left(nm, 6) = 'I' || substr(tbName, 2, 5)
               or qu = 'VDPS2')
  union all select ty, qu, nm, gp, pa,
        case when ix_extension_type = 'S' then 'pindex on expression'
            else 'ix_extension_type=' || ix_extension_type
        end
    from i
    where ix_extension_type <> ''
  union all select ty, qu, nm, gp, pa, 'obufferpool=' || bPool
    from i
    where bPool <> 'BP1'
  union all select ty, qu, nm, gp, pa, 'oclose=' || closeRule
    from i
    where closeRule <> 'Y'
  union all select ty, qu, nm, gp, pa, 'ocompress=' || compress
    from i
    where compress <> 'N'
  union all select ty, qu, nm, gp, pa, 'ocopy=' || copy
    from i
    where copy <> 'N'
  union all select ty, qu, nm, gp, pa, 'oerase=' || eraseRule
    from i
    where eraseRule <> 'N'
  union all select ty, qu, nm, gp, pa, 'include columns'
    from i
    where unique_count <> 0
  union all select ty, qu, nm, gp, pa, 'opadded=' || padded
    from i
    where padded not in (' ', 'N')
  union all select ty, qu, nm, gp, pa, 'anot partitioned'
    from i join sysibm.sysTables t
        on i.tbCreator = t.creator and i.tbName = t.name
      join sysibm.sysTableSpace ts
        on ts.dbName = t.dbName and t.tsName = ts.name
            and ts.partitions > 0
      join sysibm.sysIndexPart ip
        on ip.ixCreator = i.creator and ip.ixName = i.name
            and ip.partition = 1
  union all select ty, qu, nm, gp, pa
      , 'ppiecesize=' || strip(char(piecesize))
    from i
    where piecesize <> 0 and piecesize < 2097152
)
, eIP  (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'ostorName not GSMS?'
    from ip
    where (   left(gp, 2) <> 'XB' and storName <> 'GSMS')
          or (left(gp, 2) = 'XB' and storName not in
                 ('GSMS1', 'GSMS2', 'GSMS3', 'GSMS4'))
  union all select ty, qu, nm, gp, pa, 'opriQty <> -1'
    from ip
    where pqty <> -1
  union all select ty, qu, nm, gp, pa, 'osecQty <> -1'
    from ip
    where sqty <> -1
  union all select ty, qu, nm, gp, pa,
       'ofreepage=' || strip(char(freepage)) || ', not 0'
    from ip
    where freepage <> 0
  union all select ty, qu, nm, gp, pa,
       'opctFree=' || strip(char(pctFree)) || ', > 20'
    from ip
    where pctFree > 20
  union all select ty, qu, nm, gp, pa,
       'ogbpCache=' || gbpCache || ', not changed'
    from ip
    where gbpCache <> ' '
)
, eV   (ty, qu, nm, gp, pa, err) as
(
  select           ty, qu, nm, gp, pa, 'ncreator'
    from v
    where not( (tCr <> '' and tCr = qu)
        or ((tCr = '' or left(gp, 2) = 'VV')
                and left(qu, 4) = 'OA1' || substr(gp, 3, 1)))
  union all select ty, qu, nm, gp, pa, 'nname'
    from v
    where left(nm, 3) <> 'V' || left(gp, 2)
)
, eU as
(
    select           * from eTs
    union all select * from eTp
        group by ty, qu, nm, gp, err, pa
    union all select * from eT
    union all select * from eC
    union all select * from eI
    union all  select * from eIp
        group by ty, qu, nm, gp, err, pa
    union all select * from eV
)
, r as
(
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
      substr(err, 1, 1) cat, substr(gp, 1, 3) gp,
      substr(err, 2, 40) err, pa
    from eU
)
-- select * from r order by pa ;x;
select count(*), ty, cat, min(err), max(err)
                        , min(pa), max(pa)
    from r
    group by ty, cat, left(err, 10)
    order by 3, 2, 4
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;x;
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
      substr(err, 1, 1) cat, substr(err, 2, 40) err, pa
    from eU
    where db like 'MF%' -- and ts like 'A97%'
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select * from v
    where db like 'VV24%' and ts like 'VDPS168%'
    order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DDLCH9) cre=2013-05-23 mod=2013-05-23-13.16.39 A540769 ----
set current sqlid = 'S100447';
set current path oa1t;
 -- drop                    table A540769.tSels;
    create global temporary table A540769.tSels
           (ty char(3), qu varchar(128), nm varchar(128), gp char(3))
;
insert into A540769.tSels
     select 'ts', dbName, name, ''
          from sysibm.systablespace
          where dbName like 'NI%'
/*?? select 'ts', dbName, name, ''
          from sysibm.systablespace
          where dbName = 'DGDB9998' and name like 'A40%'
     union all select 't', creator, name, ''
          from sysibm.systables
          where creator = 'OA1A' and name like 'TMF150%' and type = 'T'
     union all select 'v', creator, name, ''
          from sysibm.systables
          where creator = 'GDB9998' and name like 'WK947NU%'
                   and type = 'V'
??*/
;
with ts as
(
  select 'ts' ty, dbName qu, name nm
       , 'ts:' || strip(dbName) || '.' || strip(name) pa
       , ts.*
    from sysibm.sysTablespace ts join A540769.tSels s
      on s.ty = 'ts' and s.qu = ts.dbName and s.nm = ts.name
  union all select 'ts' ty, ts.dbName qu, ts.name nm
       , 't:' || strip(t.creator) || '.' || strip(t.name)
        || 'ts:' || strip(t.dbName) || '.' || strip(t.tsname) pa
       , ts.*
    from sysibm.sysTables t join A540769.tSels s
        on s.ty = 't' and s.qu = t.creator and s.nm = t.name
      join sysibm.sysTablespace ts
        on ts.dbName = t.dbname and ts.name = t.tsname
)
, rt as
(
  select ty, qu, nm, min(pa) pa
      , real(sum(totalRows)) rows
      ,  sum(ts.pgSize * real(r.nActive)) spaceKB
    from ts left join sysibm.sysTablespaceStats r
      on r.dbName = ts.dbName and r.name = ts.name
          and r.dbid = ts.dbid and r.psid = ts.psid
    group by ty, qu, nm
)
, t as
(
  select 't' ty, t.creator qu, t.name nm
       , pa || ' t:' || strip(t.creator) || '.' || strip(t.name) pa
       , t.*
    from ts join sysibm.sysTables t
      on t.dbName = ts.qu and t.tsName = ts.nm
        and t.type not in ('A', 'V')
)
, i as
(
  select 'i' ty, ix.creator qu, ix.name nm
       , pa || ' i:' || strip(ix.creator) ||'.'|| strip(ix.name) pa
       , ix.*
    from t join sysibm.sysIndexes ix
      on qu = ix.tbCreator and nm = ix.tbName
  union all select 'i' ty, ix.creator qu, ix.name nm
       , 'i:' || strip(creator) || '.' || strip(name) pa
       , ix.*
    from sysibm.sysIndexes ix join A540769.tSels s
      on s.ty = 'i' and ix.creator = s.qu and ix.name = s.nm
)
, it as
(
  select ty, qu, nm, min(pa) pa
      , real(sum(totalEntries)) rows
      ,  sum(case when i.pgSize = 4096 then 4
                                       else i.pgSize end
              * real(r.nActive)) spaceKB
    from i left join sysibm.sysIndexspaceStats r
      on r.creator= i.creator and r.name = i.name
          and r.dbid = i.dbid and r.isobid = i.isobid
    group by ty, qu, nm
)
, v1 (ty, qu, nm, gp, tCr, pa, lv) as
(
  select ty, qu, nm, gp, creator, pa, 0
    from t
  union all select s.*, '', 'v:' || strip(s.qu) ||'.'|| strip(s.nm), 0
       from A540769.tSels s where ty = 'v'
  union all select dType, dCreator, dName, gp, tCr
       , case when length(pa) < 70 then pa
                                   else left(pa, 65) || '.....' end
         || ' v:' || strip(dCreator) || '.' || strip(dName)
       , lv+1
    from v1 join sysibm.sysViewDep d
      on d.bCreator = v1.qu and d.bName = v1.nm
    where lv < 100
)
, v  as
( select 'v' ty, qu, nm, gp, tCr, pa
    from v1
    where ty in('v', 'V')
)
, u as
(
    select             ty, qu, nm, rows, spaceKb, pa  from rt
    union all select   ty, qu, nm, rows, spaceKb, pa  from it
 -- union all select             ty, qu, nm, pa  from t
)
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm
    ,  fosFmtE7(rows) rows
    ,  fosFmtE7(spaceKB) spaceKB
    , pa
    from U
    order by pa, ty
;x;
-- select * from r order by pa ;x;
select count(*), ty, cat, min(err), max(err)
                        , min(pa), max(pa)
    from r
    group by ty, cat, left(err, 10)
    order by 3, 2, 4
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;x;
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select ty, substr(qu, 1, 12) qu, substr(nm, 1, 16) nm,
      substr(err, 1, 1) cat, substr(err, 2, 40) err, pa
    from eU
    where db like 'MF%' -- and ts like 'A97%'
 -- where db = 'DGDB9998' -- and ts like 'A97%'
    order by pa, err
;
select * from v
    where db like 'VV24%' and ts like 'VDPS168%'
    order by qu, nm, pa
;x;
}¢--- A540769.WK.SQL(DEADLOCK) cre=2010-03-30 mod=2010-12-09-11.08.29 A540769 ---
select *                                                                00001009
    from oa1a.tadm60a1                                                  00002009
    where timestamp > '2010-12-01-00.00.00'                             00003009
          and name like '%FI04A1T%'                                     00004009
;;                                                                      00005009
select date(timestamp), count(*) "total dead/timeout"                   00010006
     , sum(case when reason_code = '00C900BA' then 1 else 0 end)        00011004
            "drainTimeout"                                              00012001
     , sum(case when reason_code = '00C9008E' then 1 else 0 end)        00013004
            "lockTimeout"                                               00014003
     , sum(case when reason_code = '00C90088' then 1 else 0 end)        00015005
            "deadlock"                                                  00016005
    from oa1p.tadm60a1                                                  00020000
    where timestamp > '2009-01-01-00.00.00'                             00030008
          and ssid like 'DOF%'                                          00040000
    group by date(timestamp)                                            00050006
    order by date(timestamp) desc                                       00060007
    with ur                                                             00070000
}¢--- A540769.WK.SQL(DEC) cre=2008-10-21 mod=2008-10-21-18.04.30 F540769 -------
select decimal(123,10,2) * 123 / 100 from sysibm.sysDummy1
;
x
select 1 from sysibm.sysDummy1
  where dec(1, 15, 5) / dec(1, 15, 5) > 0
;
select 1 from sysibm.sysDummy1
  where dec(1, 15, 8) / dec(1, 15, 5) > 0
;
select 1 from sysibm.sysDummy1
  where dec(1, 15, 2) / dec(1, 15, 5) > 0
;
select  dec(1, 15, 5) / dec(1, 15, 5)
    from sysibm.sysdummy1
;
select  dec(1, 15, 8) / dec(1, 15, 5)
    from sysibm.sysdummy1
;
select  dec(1, 15, 2) / dec(1, 15, 5)
    from sysibm.sysdummy1
;
}¢--- A540769.WK.SQL(DECIA) cre=2011-03-25 mod=2011-03-25-16.25.33 A540769 -----
call sqlConnect dvtb
GET_TAB_NAME    = "SELECT 'AA' , 'BB' ",
                  "FROM BUA.TXBC071 " ,
                  "INNER JOIN SYSIBM.SYSTABLES A ",
                  "ON EAOWNER = A.CREATOR AND ",
                  "SUBSTR(A.NAME,1,5) = 'XB' || ENSTORAR ",
                  "WHERE EAOF IN ('INFO.WW.CS', 'INFO.WW.NAB', ",
                  "'INFO.WW.SKA', 'INFO.WW.CSFB', 'FP.TRN.LG', ",
                  "'FP.FXA','FP.LED', 'TREC.EDIFA.ORIG', ",
                  "'CIMA.BWTAG', 'DTA.LSV.INFRA', 'PSFI.TRN', ",
                  "'CL.SGK.MIGR' ,'EXTERNAL.STAFF' ,'VERF.DOKU') ",
                  "AND ECSTHT = 1 "
call sqlSel GET_TAB_NAME
}¢--- A540769.WK.SQL(DGMK) cre=2015-06-09 mod=2015-06-09-11.32.45 A540769 ------
set current sqlid = 'S100447';
drop index         OA1P.IDG122A2;
-- I - OA1P.TDG210A0         OA1P.IDG210A1
-- I - OA1P.TDG210A0         OA1P.IDG210A2
-- D - OA1P.TDG210A0         OA1P.IDG210A1
rename index       OA1P.IDG210A1 to      IDG210A2;
CREATE  INDEX OA1P.IDG210A1 ON OA1P.TDG210A0
        ( DG21001J ASC
        , DG21001I ASC
        , DG21001B ASC
        , DG21001S ASC
        , DG21001P ASC
        , DG21001G ASC
        , DG21001L ASC
        , DG21002 ASC
        , DG21003 ASC
          )
           DEFINE YES
        USING STOGROUP GSMS
                                    ERASE NO
           FREEPAGE 0
           PCTFREE 10
           BUFFERPOOL BP1
           CLOSE YES
           DEFER YES
           PIECESIZE 2G
    ;

-- I - OA1P.TDG310A0         OA1P.IDG310A3
-- I - OA1P.TDG310A0         OA1P.IDG310A4
-- D - OA1P.TDG310A0         OA1P.IDG310A3
rename index       OA1P.IDG310A3 to      IDG310A4;
CREATE  INDEX OA1P.IDG310A3 ON OA1P.TDG310A0
        ( DG31001Y ASC
        , DG31027 ASC
          )
           DEFINE NO
        USING STOGROUP GSMS
                                    ERASE NO
           FREEPAGE 0
           PCTFREE 10
           BUFFERPOOL BP1
           CLOSE YES
           DEFER YES
           PIECESIZE 2G
    ;
rollback
;
}¢--- A540769.WK.SQL(DGT) cre=2011-01-24 mod=2011-01-24-17.25.04 A540769 -------
declare global temporary table  session.tDGT as                         00001006
  ( select * from A540769.tPer08                                        00002006
  ) with no data                                                        00003006
    on commit delete   rows                                             00004006
;                                                                       00005006
select current timestamp from sysibm.sysdummy1                          00006006
;                                                                       00007006
insert into session.tDGT                                                00008006
    select * from A540769.tPer08 fetch first 10 rows only               00009007
;                                                                       00010006
select current timestamp from sysibm.sysdummy1                          00130001
;                                                                       00131003
insert into session.tDGT                                                00132007
    select * from A540769.tPer08 fetch first 100 rows only              00133007
;                                                                       00134007
select current timestamp from sysibm.sysdummy1                          00135007
;                                                                       00136007
insert into session.tDGT                                                00137007
    select * from A540769.tPer08 fetch first 1000 rows only             00138007
;                                                                       00139007
select current timestamp from sysibm.sysdummy1                          00139107
;                                                                       00139207
select count(*) from session.tDgt                                       00140001
;                                                                       00141003
select current timestamp from sysibm.sysdummy1                          00150001
}¢--- A540769.WK.SQL(DG0121) cre=2012-02-03 mod=2012-02-03-10.58.14 A540769 ----
select DG121001, count(*)
    from oa1t.tDG121A1
    where DG121001 between '202' and '210'
    group by DG121001
    with ur
}¢--- A540769.WK.SQL(DG932) cre=2014-12-23 mod=2014-12-23-12.19.51 A540769 -----
//A540769V  JOB (CP00,KE50),                                            00010000
//         MSGCLASS=T,TIME=1440,SCHENV=DB2,                             00020000
//         NOTIFY=A540769                                               00030000
//*MAIN CLASS=LOG                                                       00040000
//S01      EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99                       00050000
//SYSTSIN  DD *                                                         00060000
    DSN SYSTEM(DBOF)                                                    00070000
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)               00080000
//SYSTSPRT DD SYSOUT=*                                                  00090000
//SYSPRINT DD SYSOUT=*                                                  00100000
//SYSUDUMP DD SYSOUT=*                                                  00110000
//SYSTERM  DD DUMMY                                                     00120000
//SYSI2    DD *                                                         00130000
 SET CURRENT SQLID = 'S100447';                                         00140000
                                                                        00150000
                                                                        00160000
    CREATE               INDEX OA1P.IDG932A2                            00170000
           ON OA1P.TDG932A1                                             00180000
          (DG932007 ASC                                                 00190000
          ,DG932005 ASC                                                 00200000
          )                                                             00210000
           PARTITIONED                                                  00220000
           DEFINE YES                                                   00230000
           COMPRESS NO                                                  00240000
           BUFFERPOOL BP1                                               00250000
           CLOSE YES                                                    00260000
           DEFER YES                                                    00270000
           COPY NO                                                      00280000
           USING STOGROUP GSMS                                          00290000
               PRIQTY -1                                                00300000
               SECQTY -1                                                00310000
 ;                                                                      00320000
 COMMIT                                                                 00330000
}¢--- A540769.WK.SQL(DIRLGRN) cre=2014-10-13 mod=2016-09-23-09.52.58 A540769 ---
set current path oa1p;
select hex(LGRDBID) , fosC2I2(LGRDBID) dbid
     , hex(LGRpsID) , fosC2I2(LGRpsID) psid
     , lgrPart
     , lgrUcDT
     , lgrUcTM
     , hex(lgrMemb) member
     , timestamp(translate('20yz-mn-de-', LGRUCDT, 'mndeyz')
              || translate('hi.mn.st.uv', lgructm, 'himnstuv'))
     , timestamp(substr(LGRSLRSN, 2, 8)) "startLrsn"
     , timestamp(substr(LGRELRSN, 2, 8)) "endLrsn"
     , hex(LGRSLRSN) sLrsnHex
     , hex(LGRELRSN) eLrsnHex
--   , fosC2I8(LGRSRBA)
--   , fosC2I8(LGRSPBA)
--   , fosC2I8(LGRSPBA) - fosC2I8(LGRSRBA) rbaDelta
    from sysibm.sysLgRnX
    where lgrelrsn = x'00000000000000000000'
    order by "startLrsn"
;x;
          (select fqzI2c2(dbid), fqzI2C2(psid)
              from sysibm.sysTablespace
              where dbName = 'QZ01A1P' and name like 'A006A'
          )
    order by lgrslrsn desc
    fetch first 100 rows only
}¢--- A540769.WK.SQL(DIRLGRNG) cre=2015-09-10 mod=2015-09-10-12.40.10 A540769 ---
set current path oa1p;
with g as
(
  select fosC2I2(lgrDBID)dbId, fosC2i2(lgrPSID) psid, lgrPart pa
     , max(timestamp(translate('20yz-mn-de-', LGRUCDT, 'mndeyz')
              || translate('hi.mn.st.uv', lgructm, 'himnstuv'))) beg
    from sysibm.sysLgRnX
    group by lgrDBID, lgrPSID, lgrPart
)
, j as
(
  select g.*, dbName db, name ts
   from g
     full outer join sysIbm.sysTableSpace s
     on g.dbId = s.dbid and g.psid = s.psid
)
select count(*), min(db), max(beg)
       , avg(float(days(beg))), avg(float(days(current timestamp)))
   from j
   group by case when dbid is null then 0 else 1 end
         ,  case when db is null then 0 else 1 end
; x
  select hex(LGRDBID) , fosC2I2(LGRDBID) dbid
     , hex(LGRpsID) , fosC2I2(LGRpsID) psid
     , lgrPart
     , lgrUcDT
     , lgrUcTM
     , hex(lgrMemb) member
     , timestamp(translate('20yz-mn-de-', LGRUCDT, 'mndeyz')
              || translate('hi.mn.st.uv', lgructm, 'himnstuv'))
     , timestamp(substr(LGRSLRSN, 2, 8)) "startLrsn"
     , timestamp(substr(LGRELRSN, 2, 8)) "endLrsn"
--   , fosC2I8(LGRSRBA)
--   , fosC2I8(LGRSPBA)
--   , fosC2I8(LGRSPBA) - fosC2I8(LGRSRBA) rbaDelta
    from sysibm.sysLgRnX
    where (lgrDbId, lgrPsId) in
          (select fqzI2c2(dbid), fqzI2C2(psid)
              from sysibm.sysTablespace
              where dbName = 'QZ01A1P' and name like 'A006A'
          )
    order by lgrslrsn desc
    fetch first 100 rows only
}¢--- A540769.WK.SQL(DIRLGRNO) cre=2015-10-09 mod=2015-10-09-16.41.59 A540769 ---
-- logRange orphans
WITH G AS
(
  SELECT OA1P.FQZC2I2(LGRDBID)DBID
     , OA1P.FQZC2I2(LGRPSID) PSID
     , count(distinct LGRPART) PArts
     , COUNT(*) CNT
     , MAX(TIMESTAMP(TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
           || TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV'))) START
     , MAX(TIMESTAMP(SUBSTR(LGRSLRSN, 2, 8))) SLRSN
    FROM SYSIBM.SYSLGRNX
    GROUP BY LGRDBID, LGRPSID
)
SELECT substr(value(s.DBNAME, d.name), 1, 8) DB
     , substr(s.NAME, 1, 8) TS
     , g.dbid, g.psid
     , Parts, cnt
     , VALUE(START, '1111-11-11-11.11.11') START
     , VALUE(SLRSN, '1111-11-11-11.11.11') SLRSN
   FROM G
     left JOIN SYSIBM.SYSTABLESPACE S
          ON G.DBID = S.DBID AND G.PSID = S.PSID
     left JOIN SYSIBM.SYSDatabase d
          ON G.DBID = d.DBID AND s.dbname is null
     order by value(s.dbName, d.name, ' ' || g.dbid)
              , value(s.name, ' ' || g.psid)
WITH UR
}¢--- A540769.WK.SQL(DIRLGRNV) cre=2016-09-13 mod=2016-09-14-14.35.10 A540769 ---
with g as
(
  select lgrdbid, lgrpsid, lgrPart
       , oa1p.fqzC2I2(LGRPSID) psID
       , LGRPART PA
       , count(*) cnt
       , sum(case when lgrelrsn = x'00000000000000000000'
                   then 1 else 0 end) cntOpen
       , max(translate('20yz-mn-de-', lgrucdt, 'mndeyz')
           || translate('hi.mn.st.uv', lgructm, 'himnstuv')) modMax
       , min(lgrslrsn) sLrsnMin
       , max(lgrslrsn) sLrsnMax
       , max(case when lgrelrsn = x'00000000000000000000'
                  then lgrslrsn
                  else x'00000000000000000000' end) sOpenMax
       , max(lgrElrsn) eLrsnMax
    from sysibm.syslgrnx l
    group by lgrdbid, lgrpsid, lgrPart
)
, h as
(
  select oa1p.fqzC2I2(LGRDBID) dbID
       , oa1p.fqzC2I2(LGRPSID) psID
       , LGRPART PA
       , cnt, cntOpen
       , timestamp(modMax) modMax
       , timestamp(substr(slrsnMin, 2, 8)) + 7174 seconds slrsnMin
       , timestamp(substr(slrsnMax, 2, 8)) + 7174 seconds slrsnMax
       , timestamp(substr(sOpenMax, 2, 8)) + 7174 seconds sOpenMax
       , timestamp(substr(eLrsnMax, 2, 8)) + 7174 seconds elrsnMax
    from g
)
, l as
(
  select h.*
      , case when cntOpen = 0 then eLrsnMax
                              else current timestamp end lgrLast
    from h
)
select s.dbName, s.name, p.partition, l.*
      , (days(lgrLast) - days(lastDataChange)) * 86400
        + midnight_seconds(lgrLast) - midnight_seconds(lastDataChange)
        + (microsecond(lgrLast) - microsecond(lastDataChange))
               / float(1e6) diff
      , r.lastDataChange
      , r.*
    from sysibm.sysTableSpace s
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
      left join l
        on l.dbid = s.dbid and l.psid = s.psid and l.pa = p.partition
      left join sysibm.sysTableSpaceStats r
        on s.dbid = r.dbid and s.psId = r.psId
          and p.partition = r.partition
    where s.dbName like '%'
         and lastDataChange > '2016-04-01-00.00.00'
         and sLrsnMax is not null
    order by diff desc -- 1, 2, 3
    fetch first 1000 rows only
    with ur
;x;
;x;
with r as
(
  SELECT l.*
      ,row_number() over(partition by lgrdbid, lgrpsid, lgrpart
                         order by lgrSlrsn desc) rSt
      ,row_number() over(partition by lgrdbid, lgrpsid, lgrpart
                         order by lgrElrsn desc) rEn
    from sysibm.syslgrnx l
)
, s as
(
  select oa1p.fqzC2I2(LGRDBID) dbID
       , oa1p.fqzC2I2(LGRPSID) psID
       , LGRPART PA
       , TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
           || TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV') mod
       , timestamp(substr(lgrslrsn, 2, 8)) slrsn
       , timestamp(substr(lgrElrsn, 2, 8)) elrsn
       , rSt, rEn, hex(lgrslrsn) lgrslrsn
                 , hex(lgrElrsn) lgrElrsn
       , case when lgrelrsn = x'00000000000000000000'
              then 'zero' else 'notZ' end eZero
       , case when lgrelrsn = ''
              then 'empt' else 'notE' end eEmpty
    from r
    where rSt = 1  or rEn = 1
)
select * from s
    where rst <> ren
    order by dbId, psId, pa
;x;
select s.dbid, s.psid, pa mod, sLrsn, eLrsn, lastDataChange
    from s
      left join sysibm.sysTableSpaceStats r
        on s.dbid = r.dbid and s.psId = r.psId and s.pa = r.partition
    order by dbId, psId, pa
;x;
(
  SELECT LGRDBID, lgrpsid
     , LGRPART PA
     , COUNT(*) CNT
     , MAX(TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
           || TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV')) lgrUcTm
     , MAX(LGRSLRSN) lgrSLrsn
    FROM SYSIBM.SYSLGRNX
    GROUP BY LGRDBID, LGRPSID, LGRPART
)
, h as
(
  select oa1p.fqzC2I2(LGRDBID)dbID
       , oa1p.fqzC2I2(LGRPSID) psID
       , pa
       , cnt
       , timestamp(lgrUcTm) start
       , TIMESTAMP(SUBSTR(lgrSLrsn, 2, 8)) sLrsn
    from g
)
SELECT DBNAME DB, NAME TS, PA
     , VALUE(START, '1111-11-11-11.11.11') START
     , VALUE(SLRSN, '1111-11-11-11.11.11') SLRSN
     , CNT
   FROM h
     JOIN SYSIBM.SYSTABLESPACE S
     ON h.dbID = S.dbID AND h.psID = s.psID
WITH UR
;x;
with w as
(
  select timestamp, icType
      , (  timestamp(substr(start_rba, 2, 8))
              + current time zone) - 26 seconds start
    from sysibm.sysCopy
    where timestamp > '2016-04-01-00.00.00'
)
, d as
(
  select icType
      , (days(timestamp) - days(start)) * 86400
        + midnight_seconds(timestamp) - midnight_seconds(start)
        + (microsecond(timestamp) - microsecond(start)) / float(1e6)
    dSta
    from w
)
select count(*), icType, min(dSta) staMin, max(dSta) staMax
    from d
   group by ictype
   with ur
;x;
select current timestamp, current time zone
      , current timestamp - current time zone
     from sysibm.sysDummy1
;
select current timestamp, current time zone
      , current timestamp - current time zone
      , count(*)
       , max(translate('20yz-mn-de-', lgrucdt, 'mndeyz')
           || translate('hi.mn.st.uv', lgructm, 'himnstuv')) modMax
       , timestamp(substr(max(lgrslrsn), 2, 8)) slrsn
       , timestamp(substr(max(lgrElrsn), 2, 8)) elrsn
    from sysibm.syslgrnx l
    with ur
;
select current timestamp, current time zone
      , current timestamp - current time zone
     from sysibm.sysDummy1
;
;x;
select current timestamp, count(*)
       , max(updatestatstime), max(lastDataChange)
    from sysibm.sysTableSpaceStats
;x;
}¢--- A540769.WK.SQL(DIV) cre=2008-06-24 mod=2008-06-24-11.08.06 F540769 -------
SELECT INT(4) / INT(4), INT(5) / INT(4), INT(6) / INT(4),
       INT(7) / INT(4), INT(8) / INT(4)
    FROM Sysibm.sysDummy1
}¢--- A540769.WK.SQL(DIVCAST) cre=2016-01-15 mod=2016-02-10-10.30.49 A540769 ---
-- cast between integer and character
--     convert chars to the corresponding integer value
--
--   OA1P.fqzCastSmall2C(15 )                 -->             x'000f'
--   OA1P.fqzCastSmall2C(-1 )                 -->             x'ffff'
--   OA1P.fqzCastI2C    (258)                 -->         x'00000102'
--   OA1P.fqzCastI2C    (-2 )                 -->         x'fffffffe'
--   OA1P.fqzCastBig2C  (527)                 --> x'000000000000020f'
--   OA1P.fqzCastBig2C  (-4 )                 --> x'fffffffffffffffc'
--   OA1P.fqzCastC2Small(x'0c')               -->                 12
--   OA1P.fqzCastC2Small(x'ff')               -->                255
--   OA1P.fqzCastC2Small(x'0100')             -->                256
--   OA1P.fqzCastC2Small(x'ffff')             -->                 -1
--   OA1P.fqzCastC2Small(x'8000')             -->             -32768
--   OA1P.fqzCastC2I    (x'8000')             -->              32768
--   OA1P.fqzCastC2I    (x'7fffffff')         -->         2147483647
--   OA1P.fqzCastC2I    (x'ffffffff')         -->                 -1
--   OA1P.fqzCastC2Big  (x'ffffffff')         -->         4294967295
--   OA1P.fqzCastC2Big  (x'0c')               -->                 12
--   OA1P.fqzCastC2Big  (x'ffffffffffffffff') -->                 -1
--
--14. 1.16 W. Keller rename auf ...Cast... und korrekte Vorzeichen
-- 8. 1.10 W. Keller neu
--
set current sqlid = 'S100447';
drop function OA1P.c2d8;
drop function OA1P.c2d4;
drop function OA1P.c2d2;
drop function OA1P.c2d1;
drop function OA1P.fosC2I8;
drop function OA1P.fosC2I4;
drop function OA1P.fosC2I2;
drop function OA1P.fosC2I1;
drop function OA1P.fqzCastBig2C(bigint);
drop function OA1P.fqzCastBig2C(int, bigint);
drop function OA1P.fqzCastI2C(int);
drop function OA1P.fqzCastI2C(smallInt, int);
drop function OA1P.fqzCastSmall2C(smallInt);
drop function OA1P.fqzCastc2Big(varchar(8));
drop function OA1P.fqzCastc2i(varchar(4));
drop function OA1P.fqzCastc2small(varchar(2));
drop function OA1P.fqzCastc1i(char(1));
create function OA1P.fqzCastC1I(c char(1)) returns smallInt
    deterministic no external action contains sql
    return posStr(x'000102030405060708090A0B0C0D0E0F'
               || x'101112131415161718191A1B1C1D1E1F'
               || x'202122232425262728292A2B2C2D2E2F'
               || x'303132333435363738393A3B3C3D3E3F'
               || x'404142434445464748494A4B4C4D4E4F'
               || x'505152535455565758595A5B5C5D5E5F'
               || x'606162636465666768696A6B6C6D6E6F'
               || x'707172737475767778797A7B7C7D7E7F'
               || x'808182838485868788898A8B8C8D8E8F'
               || x'909192939495969798999A9B9C9D9E9F'
               || x'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF'
               || x'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF'
               || x'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'
               || x'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'
               || x'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'
               || x'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF', c) - 1
;
create function OA1P.fqzCastC2Small(c varChar(2) for bit data)
    returns smallInt
    deterministic no external action contains sql
    return case when length(c) = 2
                then (mod(oa1p.fqzCastC1I(left(c, 1))
                    + 128, 256) - 128) * 256
                else 0 end
           + case when length(c) >= 1
               then oa1p.fqzCastC1I(right(c, 1))
               else 0 end
;
create function OA1P.fqzCastC2I(c varChar(4) for bit data)
    returns int
    deterministic no external action contains sql
    return ( case when length(c) >= 3
                then int(oa1p.fqzCastC2Small(left(c, length(c)-2)))*256
                else 0 end
           + case when length(c) >= 2
               then oa1p.fqzCastC1I(substr(c, length(c)-1, 1))
               else 0 end
           ) * 256
           + case when length(c) >= 1
               then oa1p.fqzCastC1I(right(c, 1))
               else 0 end
;
create function OA1P.fqzCastC2Big(c varChar(8) for bit data)
    returns bigint
    deterministic no external action contains sql
    return ((( case when length(c) > 4
                then bigInt(oa1p.fqzCastC2I(left(c, length(c)-4)))*256
                else 0 end
           + case when length(c) >= 4
               then oa1p.fqzCastC1I(substr(c, length(c)-3, 1))
               else 0 end
           ) * 256
           + case when length(c) >= 3
               then oa1p.fqzCastC1I(substr(c, length(c)-2, 1))
               else 0 end
           ) * 256
           + case when length(c) >= 2
               then oa1p.fqzCastC1I(substr(c, length(c)-1, 1))
               else 0 end
           ) * 256
           + case when length(c) >= 1
               then oa1p.fqzCastC1I(right(c, 1))
               else 0 end
;
create function OA1P.fqzCastSmall2C(i smallInt)
    returns char(2) for bit data
    deterministic no external action contains sql
    return case when i >= 0
               then  ebcdic_chr(i / 256) || ebcdic_chr(mod(i, 256))
               else  ebcdic_chr((1 + i ) / 256 + 255)
                   ||ebcdic_chr(mod(1+i , 256) + 255)
           end
;
create function OA1P.fqzCastI2C(l smallInt, r int)
    returns char(4) for bit data
    specific "FQZCASTI2C(S,I)"
    deterministic no external action contains sql
    return oa1p.fqzCastSmall2c(l)
        || ebcdic_chr(r / 256)
        || ebcdic_chr(mod(r, 256))
;
create function OA1P.fqzCastI2C(i int) returns char(4) for bit data
    specific "FQZCASTI2C(I)"
    deterministic no external action contains sql
    return case when i >= 0
               then  oa1p.fqzCastI2C(i / 65536, mod(i, 65536))
               else  oa1p.fqzCastI2C((1 + i ) / 65536 - 1
                                 , mod(1+i , 65536) + 65535)
           end
;
create function OA1P.fqzCastBig2C(l int, r bigInt)
    returns char(8) for bit data
    specific "FQZCASTBIG2C(S,I)"
    deterministic no external action contains sql
    return OA1P.fqzCastI2C(l)
        || ebcdic_chr(r / 16777216)
        || ebcdic_chr(mod(r, 16777216) / 65536)
        || ebcdic_chr(mod(r, 65536) / 256)
        || ebcdic_chr(mod(r, 256))
;
create function OA1P.fqzCastBig2C(i bigInt)
    returns char(8) for bit data
    specific "FQZCASTBIG2C(I)"
    deterministic no external action contains sql
    return case when i >= 0
               then oa1p.fqzCastBig2C(i / 4294967296
                               , mod(i, 4294967296))
               else oa1p.fqzCastBig2C((1 + i ) / 4294967296 - 1
                               , mod(1+i , 4294967296) + 4294967295)
           end
;
-- compatibility: old names
create function OA1P.fosC2I2(c varchar(4) for bit data) returns int
    deterministic no external action contains sql
    return oa1p.fqzCastc2i(c)
;
create function OA1P.fosC2I4(c varchar(8) for bit data) returns bigInt
    deterministic no external action contains sql
    return oa1p.fqzCastc2Big(c)
;
with n (n)  as (
    select             0 from sysIbm.sysDummy1
    union all select   1 from sysIbm.sysDummy1
    union all select   5 from sysIbm.sysDummy1
    union all select  17 from sysIbm.sysDummy1
    union all select 254 from sysIbm.sysDummy1
    union all select 255 from sysIbm.sysDummy1
)
, m (n) as
(
   select int(n1.n) * 256 + n2.n
       from n n1, n n2
)
, o (n) as
(
   select bigint(n1.n) * 256 *256 + n2.n
       from m n1, m n2
)
, p2 (n, e) as
(
  select bigInt(1), 0 from sysibm.sysDummy1
  union all select 2*n, e+1 from p2  where e < 62
)
, u(b) as
(
   select n from o
   union all select  9223372036854775807 from sysibm.sysDummy1
   union all select  9223372036854775806 from sysibm.sysDummy1
   union all select - n from o
   union all select -9223372036854775808 from sysibm.sysDummy1
   union all select -9223372036854775807 from sysibm.sysDummy1
   union all select n from p2
   union all select n-1 from p2
   union all select n+1 from p2
   union all select -n from p2
   union all select -n-1 from p2
   union all select -n+1 from p2
)
, v as
(
   select int(max(min(b, 2147483647), -2147483648)) i, b
     from u
)
, r2 as
(
  select i, oa1p.fqzCastI2c(i) i2c
              , oa1p.fqzCastc2i(oa1p.fqzCastI2c(i)) c2iI2c
     , b, oa1p.fqzCastBig2c(b) big2c
        , oa1p.fqzCastc2big(oa1p.fqzCastBig2c(b)) c2bigBig2c
    from v
)
, r as
(
  select r2.*
    , case when i2c is null          then  'i2c=null'
           when hex(i2c) = hex(i)    then  'i2c=i'
                                     else  'i2c<>i'  end
    ||case when c2ii2c is null       then ' c2ii2c=null'
           when c2ii2c = i           then ' c2ii2c=i'
                                     else ' c2ii2c<>i' end
    ||case when big2c is null        then ' big2c=null'
           when hex(big2c) = hex(b)  then ' big2c=b'
                                     else  'big2c<>b'  end
    ||case when c2bigbig2c is null   then ' c2bigbig2c=null'
           when c2bigbig2c = b       then ' c2bigbig2c=b'
                                     else ' c2bigbig2c<>b' end res
    from r2
)
select count(*), res, min(i), min(b)
   from r
   group by res
;
}¢--- A540769.WK.SQL(DIVCATTI) cre=2016-01-15 mod=2016-01-15-17.37.04 A540769 ---
$#@
call sqlConnect
$=cnt= 100000
$$- timing()
$@% tst1
$@% tst1 oa1p.fqzCastI2cPack( )
$@% tst1 oa1p.fqzCastI2c( )
$@% tst1 oa1p.fqzI2c4( )
$@% tst1 oa1p.fqzc2i4(oa1p.fqzI2c4( ))
$proc $@/tst1/
$arg fuL fuR
$<>
$<=¢
with n (n)  as (
    select             0 from sysIbm.sysDummy1
    union all select   n+1 from n where n < $cnt
)
, i as
( select int(n) n from n )
, m as
(
  select n, case when hex(n) = hex( $fuL n $fuR )
                        then 'pos eq' else 'pos <>' end pos
          , case when hex(-n) = hex( $fuL -n $fuR )
                        then 'neg eq' else 'neq <>' end neg
    from i
)
select count(*), pos, neg
    from m
    group by pos, neg
$!
call sqlStmts
$$- timing() $fuL $fuR
$/tst1/
$#out                                              20160115 17:34:51
17:34:51 ela=    0 cpu= 219.990 su= 15487481
  COL1 POS    NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:34:51 ela=    0 cpu= 220.190 su= 15501686 oa1p.fqzCastI2cPack( )
  COL1 POS    NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:34:54 ela=    0 cpu= 222.530 su= 15666241 oa1p.fqzCastI2c( )
  COL1 POS    NEG
     1 pos eq neg eq
100000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:34:54 ela=    0 cpu= 223.090 su= 15705532 oa1p.fqzI2c4( )
  COL1 POS    NEG
100001 pos <> neq <>
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:34:56 ela=    0 cpu= 224.420 su= 15799266 oa1p.fqzc2i4(oa1p.fqzI2c4( ))
$#out                                              20160115 17:33:15
17:33:15 ela=    0 cpu= 219.380 su= 15444444
 COL1 POS    NEG
10001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:33:15 ela=    0 cpu= 219.410 su= 15446793 oa1p.fqzCastI2cPack( )
 COL1 POS    NEG
10001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:33:16 ela=    0 cpu= 219.660 su= 15463972 oa1p.fqzCastI2c( )
 COL1 POS    NEG
    1 pos eq neg eq
10000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:33:16 ela=    0 cpu= 219.720 su= 15468602 oa1p.fqzI2c4( )
 COL1 POS    NEG
10001 pos <> neq <>
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:33:16 ela=    0 cpu= 219.870 su= 15479221 oa1p.fqzc2i4(oa1p.fqzI2c4( ))
$#out                                              20160115 17:32:37
17:32:37 ela=    0 cpu= 219.170 su= 15429984
COL1 POS    NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:37 ela=    0 cpu= 219.180 su= 15430782 oa1p.fqzCastI2cPack( )
COL1 POS    NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:37 ela=    0 cpu= 219.220 su= 15432959 oa1p.fqzCastI2c( )
COL1 POS    NEG
   1 pos eq neg eq
1000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:37 ela=    0 cpu= 219.230 su= 15433736 oa1p.fqzI2c4( )
COL1 POS    NEG
1001 pos <> neq <>
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:37 ela=    0 cpu= 219.260 su= 15436072 oa1p.fqzc2i4(oa1p.fqzI2c4( ))
$#out                                              20160115 17:32:01
17:32:01 ela=    0 cpu= 218.980 su= 15416191
COL1 POS    NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:01 ela=    0 cpu= 218.990 su= 15417099 oa1p.fqzCastI2cPack( )
COL1 POS    NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:02 ela=    0 cpu= 219.030 su= 15419622 oa1p.fqzCastI2c( )
COL1 POS    NEG
   1 pos eq neg eq
1000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
17:32:02 ela=    0 cpu= 219.050 su= 15420885 oa1p.fqzI2c4( )
*** run error ***
SQLCODE = -199: ILLEGAL USE OF KEYWORD THEN.  TOKEN OVER
    CONCAT ¨¨ / MICROSECONDS MICROSECOND SECONDS SECOND WAS EXPECTED
src ...m sysIbm.sysDummy1 union all select n+1 from n where n < 1000 ) ,
  +  i as ( select int(n) n from n ) , m as ( select n, case when hex(n)
  +  = hex( oa1p(fqzc2i4(oa1p.fqzI2c4( n )) ) then 'pos eq' else 'pos...
  >                       >>>pos 673 of 1173>>>
sql = with n (n)  as (
stmt = prepare s10 into :M.SQL.10.D from :src
with into :M.SQL.10.D = M.SQL.10.D
$#out                                              20160115 17:31:38
17:31:38 ela=    0 cpu= 218.830 su= 15405598
COL1 POS    NEG
1001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
*** run error ***
undefined var fun
$#out                                              20160115 16:24:09
16:24:09 ela=    0 cpu= 213.640 su= 15039116
  COL1 POS    NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:24:09 ela=    0 cpu= 213.840 su= 15053023 fqzCastI2cPack
  COL1 POS    NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:24:11 ela=    0 cpu= 216.100 su= 15212182 fqzCastI2c
  COL1 POS    NEG
     1 pos eq neg eq
100000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:24:12 ela=    0 cpu= 216.640 su= 15250283 fqzI2c4
$#out                                              20160115 16:20:03
16:20:03 ela=    0 cpu= 209.120 su= 14720949
  COL1 POS    NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:20:04 ela=    0 cpu= 210.190 su= 14796161 fqzCastI2cPack
  COL1 POS    NEG
100001 pos eq neg eq
1 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:20:07 ela=    0 cpu= 212.410 su= 14952721 fqzCastI2c
  COL1 POS    NEG
     1 pos eq neg eq
100000 pos eq neq <>
2 rows fetched: with n (n) as ( select 0 from sysIbm.sysDummy1 union all s...
16:20:07 ela=    0 cpu= 212.960 su= 14991178 fqzI2c4
$#out                                              20160115 16:18:04
}¢--- A540769.WK.SQL(DIVFMT) cre=2016-01-11 mod=2016-02-10-09.19.44 A540769 ----
--
--  format to the e8/e7 format
--
--  the e8 format is a short representation (8 byte)
--      of a possibly very large number with
--      precision better than 1% between 9e99 and 1e-9
--      examples ' 1.23e12', '-4.56e-3' ' 0.00e00'
--  the e7 format is even shorter (7 byte):
--      non negative numbers are the e8 format without leading space
--      negative numbers have only one digit less in the mantissa
--      examples '1.23e12', '-4.5e-3' '0.00e00'
--  binary suffix format -9999.99T mit oder ohne Nachkommastellen
--
--             decimal binary
--      k kilo 10e03   2**10 1.02e3                 1024
--      M Mega 10e06   2**20 1.05e06             1048576
--      G Giga 10e09   2**30 1.07e09          1073741824
--      T Tera 10e12   2**40 1.10e12       1099511627776
--      P Peta 10e15   2**50 1.13e15    1125899906842624
--      E Exa  10e18   2**60 1.15e18 1152921504606846976
--
--      4 predefined formats for bin and for dec
--      fqzFmtDec4 fqzFmtBin4       '123k'       '-###'
--      fqzFmtDec5 fqzFmtBin5      ' 456k'      '-456k'
--      fqzFmtDec7 fqzFmtBin7    '789.01 '    '-789.0 '
--      fqzFmtDec8 fqzFmtBin8   ' 789.01M'   '-789.01M'
--           attention 1010 ==> 0.99k    (binary)
--
--  time: format seconds to time:  ---- 1s45, 12m13, 13h45 17d15 1234d
--  no error for underflow or overflow wich sometimes shows as ####
--
--  on a unicode table the result of the function is translated
--       and gets longer (3 times). to truncate back
--       either use substring around the function or preJoin sysDummyE
--
--
-- attention inline sql does not support versioning
--     you cannot drop a function if used in view or other function
--     to drop, change functions, recreate use
--         planTb:     fun=vfD ... vfC
--         ddlChddl:   drop    ... recreate
--         prFunWai:   drop    ... recreate
--
-- 8.2.16 W. Keller rename to qz, incl fmTime, add um Bin und dec
-- 7.1.10 W. Keller neu
--
set current sqlid = 'S100447';
$@ if 1 then $@=/drop/
drop function oa1p.fosFmTime(s real) ;
drop function oa1p.fosFmtE7(r real);
drop function oa1p.fosFmtE8(r real);
drop function oa1p.fqzFmTime(s real) ;
drop function oa1p.fqzFmtInt2(v int, m int, c varchar(1));
drop function oa1p.fqzFmtE7(r real);
drop function oa1p.fqzFmtE8(r real);
drop function oa1p.fqzFmtEU(r real, decP Int);
drop function OA1P.fqzFmtE(ma real, ex int) ;
drop function OA1P.fqzFmtE(ma real, ex int, decP int) ;
drop function oa1p.fqzFmtDec8(i real);
drop function oa1p.fqzFmtDec7(i real);
drop function oa1p.fqzFmtDec5(i real);
drop function oa1p.fqzFmtDec4(i real);
drop function oa1p.fqzFmtBin8(i real);
drop function oa1p.fqzFmtBin7(i real);
drop function oa1p.fqzFmtBin5(i real);
drop function oa1p.fqzFmtBin4(i real);
drop function oa1p.fqzFmtSuf(i real, s int, decR int, b real);
drop function oa1p.fqzFmtLR(i real, decL int, decR int) ;
commit;
$/drop/
-- return a string -999.999 with - or ' ' as sign
--             decL leading digits (leading 0 to ' ', but ' 0.3'
--             a decimal point if decR > 0
--             and decR trailing digits, rounded ----------------------
create function oa1p.fqzFmtLR(i real, decL int, decR int)

    returns varchar(20)
    deterministic no external action contains sql
    return varchar_format(i, substr('9999999990.999999999'
                    , 11 - decL , decL + decR + min(1, decR)))
;
--#SET TERMINATOR #
-- format with suffix for k,M etc, 3 digits before dec Point
--     i input
--     s 1 = extra character for sign, 0 = truncate dec places for '-'
--     decR decimal places right of decPoint. omit decPoint if 0
--     b base 1000 ==> decimal, 1024 == binary
create function oa1p.fqzFmtSuf(i real, s int, decR int, b real)
    returns varchar(15)
    deterministic no external action contains sql
    begin
    declare dR, e int;
    declare j real;
    declare res varchar(15);
    set dR = decR;
    if s = 0 and i < 0 then
        if decR <= 0 then
           return '-###';
        end if;
        set dR = dR-1;
    end if;
    set e = floor(ln(max(1, abs(i)))/ln(b));
    if e > 6 then
        set e = 6;
--  elseIf round(j, dR) >= 1000 then  ==> this better code
--      set j = j / b;                ==> need reads sql err.ec65
--      set e = e + 1;                ==> instead we use like
--  end if;
    end if;
    set j = i / power(b, e);
    set res = oa1p.fqzFmtLR(j, 3, dR);
    if res like '#%' and e < 6 then
        set e = e + 1;
        set res = oa1p.fqzFmtLR(j / b, 3, dR);
    end if;
    return case when s <> 0 then res
                when i >= 0 then substr(res, 2)
                else right('  ' || res, 4+decR)
           end || substr(' kMGTPE', e+1, 1);
    end
#
--#SET TERMINATOR ;
--- 990G: binary suffix no dec digits -------------------------------
create function oa1p.fqzFmtBin4(i real)
    returns char(4)
    deterministic no external action contains sql
    return oa1p.fqzFmtSuf(i, 0, 0, 1024);
;
--- -990G: binary suffix no dec digits -------------------------------
create function oa1p.fqzFmtBin5(i real)
    returns char(5)
    deterministic no external action contains sql
    return oa1p.fqzFmtSuf(i, 1, 0, 1024);
;
--- 990.99G: binary suffix 2 dec digits ---------------------------
create function oa1p.fqzFmtBin7(i real)
    returns char(7)
    deterministic no external action contains sql
    return oa1p.fqzFmtSuf(i, 0, 2, 1024);
;
--- -990.99G: binary suffix 2 dec digits -----------------------------
create function oa1p.fqzFmtBin8(i real)
    returns char(8)
    deterministic no external action contains sql
    return oa1p.fqzFmtSuf(i, 1, 2, 1024);
;
--- 990G: decimal suffix no dec digits -------------------------------
create function oa1p.fqzFmtDec4(i real)
    returns char(4)
    deterministic no external action contains sql
    return oa1p.fqzFmtSuf(i, 0, 0, 1000);
;
--- -990G: decimal suffix no dec digits -------------------------------
create function oa1p.fqzFmtDec5(i real)
    returns char(5)
    deterministic no external action contains sql
    return oa1p.fqzFmtSuf(i, 1, 0, 1000);
;
--- 990.99G: decimal suffix 2 dec digits ---------------------------
create function oa1p.fqzFmtDec7(i real)
    returns char(7)
    deterministic no external action contains sql
    return oa1p.fqzFmtSuf(i, 0, 2, 1000);
;
--- -990.99G: decimal suffix 2 dec digits -----------------------------
create function oa1p.fqzFmtDec8(i real)
    returns char(8)
    deterministic no external action contains sql
    return oa1p.fqzFmtSuf(i, 1, 2, 1000);
;
-- move exponent to ¢-9, 99! and mantissa to 1 digit before point -----
create function oa1p.fqzFmtE(ma real, ex int, decP int)
    returns varchar(20)
    specific "FQZFMTE(R,I,I)"
    deterministic no external action contains sql
    return case when ex < -9
               then oa1p.fqzFmtLR(ma / power(10, -9-ex),1,decP)||'e-9'
             when abs(round(ma, decP)) < 10 -- exponent is alwys < 99
               then oa1p.fqzFmtLR(ma, 1, decP)
                             || 'e' || right('0' || ex, 2)
             else   oa1p.fqzFmtLR(ma / 10, 1, decP)
                             || 'e' || right('0' || (ex+1), 2)
           end
;
--- split mantissa and exponent ---------------------------------------
create function oa1p.fqzFmtE(r real, decP int)
    returns varchar(20)
    specific "FQZFMTE(R,I)"
    deterministic no external action contains sql
    return oa1p.fqzFmtE(
        real(left(char(r), posstr(char(r), 'E') - 1)),
        int(substr(char(r), posstr(char(r), 'E') + 1))
       , decP)
--- handle sign '' for + decrease precision for -  --------------------
create function oa1p.fqzFmtEU(r real, decP int)
    returns varchar(20)
    deterministic no external action contains sql
    return case when r >= 0 then substr(oa1p.fqzFmtE(r, decp), 2)
                when decP < 1 then '-e##'
                else oa1p.fqzFmtE(r, decp-1)
           end
;
--- e8 format +=' ', 2 decimals, totalLen=8 ---------------------------
create function oa1p.fqzFmtE8(r real)
    returns char(8)
    deterministic no external action contains sql
    return oa1p.fqzFmtE(r, 2)
;
--- e7 format +='', 2 decimals, totalLen=7 ----------------------------
create function oa1p.fqzFmtE7(r real)
    returns char(7)
    deterministic no external action contains sql
    return oa1p.fqzFmtEU(r, 2)
;
create function oa1p.fqzFmtInt2(v int, m int, c varchar(1))
    returns char(5)
    deterministic no external action contains sql
    return right(' ' || strip(char(v/m)), 2) || c
           || right(digits(mod(v, m)), 2)
;
create function oa1p.fqzFmTime(s real) returns char(5)
    deterministic no external action contains sql
        -- convert integer seconds s to a time string
    return case
        when s < 0 then '-----'
        when round(s*100, 0)  < 6000 then
            oa1p.fqzFmtInt2(int(round(s*100, 0)), 100, 's')
        when round(s, 0) < 3600 then
            oa1p.fqzFmtInt2(int(round(s, 0)), 60, 'm')
        when round(s / 60, 0) < 1440 then
            oa1p.fqzFmtInt2(int(round(s / 60, 0)), 60, 'h')
        when round(s/3600, 0) < 2400 then
            oa1p.fqzFmtInt2(int(round(s/3600, 0)), 24, 'd')
        when round(s/86400, 0) < 10000 then
             right('   ' || int(round(s/86400, 0)), 4)
                 || 'd'
        when s is null then null
        else '+++++'
        end
;
-- compatibility: old names
--- e8 format +=' ', 2 decimals, totalLen=8 ---------------------------
create function oa1p.fosFmtE8(r real)
    returns char(8)
    deterministic no external action contains sql
    return oa1p.fqzFmtE(r, 2)
;
--- e7 format +='', 2 decimals, totalLen=7 ----------------------------
create function oa1p.fosFmtE7(r real)
    returns char(7)
    deterministic no external action contains sql
    return oa1p.fqzFmtEU(r, 2)
;
create function oa1p.fosFmTime(s real) returns char(5)
    deterministic no external action contains sql
    return oa1p.fqzFmTime(s)
;
commit
;
$@ if 1 then $@=/test/
with reals (r ) as
(
          select  real(0)+0        from sysibm.sysDummy1
    union select  real(123.456)   from sysibm.sysDummy1
    union select  real(999.456)   from sysibm.sysDummy1
    union select  real(1005.456)   from sysibm.sysDummy1
    union select  real(1015.456)   from sysibm.sysDummy1
    union select  real(1024.456)   from sysibm.sysDummy1
    union select  real(-23.446)    from sysibm.sysDummy1
    union select  real(-23.456e7)    from sysibm.sysDummy1
    union select  real(-23.436e67)    from sysibm.sysDummy1
    union select  real(+23.456e57)    from sysibm.sysDummy1
    union select  real(-23.476e17)    from sysibm.sysDummy1
    union select  real(-23.556e-6)    from sysibm.sysDummy1
    union select  real( 1090000000000)  from sysibm.sysDummy1
    union select  real(-1090000000000)  from sysibm.sysDummy1
    union select  real(-23.456e-16)    from sysibm.sysDummy1
    union select  real(+99.999e9   )   from sysibm.sysDummy1
    union select  real(-99.999e-2 )    from sysibm.sysDummy1
    union select  real(-10000)/7       from sysibm.sysDummy1
    union select  real(3e-10)         from sysibm.sysDummy1
)
select r
 --   , '<' || oa1p.fqzFmtE8(r) || '>'
 --   , '<' || oa1p.fqzFmtE7(r) || '>'
 --   ,  case when right(oa1p.fqzFmtE8(r), 1) = '-' then '--'
 --           when abs(abs(real(uCase(oa1p.fqzFmtE8(r))))-abs(r))
 --             > .004 * abs(r)
 --                 then 'e8' else '' end
 --   ,  case when right(oa1p.fqzFmtE7(r), 1) = '-' then '--'
 --           when abs(abs(real(uCase(oa1p.fqzFmtE7(r))))-abs(r))
 --             > .04   * abs(r)
 --                 then 'e7' else '' end
      , '<' || oa1p.fqzFmtBin4(r) || '>' FmtBin4
      , '<' || oa1p.fqzFmtBin5(r) || '>' FmtBin5
      , '<' || oa1p.fqzFmtBin7(r) || '>' FmtBin7
      , '<' || oa1p.fqzFmtBin8(r) || '>' FmtBin8
      , '<' || oa1p.fqzFmtDec4(r) || '>' FmtDec4
      , '<' || oa1p.fqzFmtDec5(r) || '>' FmtDec5
      , '<' || oa1p.fqzFmtDec7(r) || '>' FmtDec7
      , '<' || oa1p.fqzFmtDec8(r) || '>' FmtDec8
      , '<' || oa1p.fqzFmtE7(r) || '>'
      , '<' || oa1p.fqzFmtE8(r) || '>'
 --   , round(r,2)
 --   , '<' || char(real(r)) || '>', length(char(r))
     from reals
;
with r(r) as
(
          select  real(123.45)     from sysibm.sysDummy1
    union select -123.45           from sysibm.sysDummy1
    union select   67.894          from sysibm.sysDummy1
    union select    4.566          from sysibm.sysDummy1
    union select    2              from sysibm.sysDummy1
    union select    0.127          from sysibm.sysDummy1
    union select    0.07           from sysibm.sysDummy1
    union select    0              from sysibm.sysDummy1
    union select   -0.341          from sysibm.sysDummy1
    union select   -0.087          from sysibm.sysDummy1
    union select 5432.19           from sysibm.sysDummy1
    union select-5432.19           from sysibm.sysDummy1
)
select  '<' ||      r  || '>' chr
      , '<' || decfloat(r) || '>' decFlo
      , '<' || dec(r, 6, 2) || '>' dec
      , '<' || varchar_Format(r, '990.99') || '>' varchar
  from r
;
select power(3,3), power(3.0,-3) from sysibm.sysDummy1;
;
select '<' || oa1p.fqzFmtLR(2.34e2, 1, 2)||'>'from sysibm.sysdummy1;
select '<' || oa1p.fqzFmtLR(real(2.34e2),1,2)||'>'from sysibm.sysdummy1;
select oa1p.fqzFmtE8(real(2.34)) from sysibm.sysdummy1;
select oa1p.fqzFmtE7(real(2.34)) from sysibm.sysdummy1;
with v(v) as
(
  select            0         from sysibm.sysDummy1
  union all select -1         from sysibm.sysDummy1
  union all select -1         from sysibm.sysDummy1
  union all select -0.0000375 from sysibm.sysDummy1
  union all select +432109.5  from sysibm.sysDummy1
)
, r(r) as
(
  select real(v) from v
)
select r, '<' || char(r) || '>' chr
        , '<' || dec(r, 12,5) || '>' deci
        , '<' || varchar_Format(r, 'S990.99999') || '>' deci
        , insert('abc', 2, 0, 'fifi')
    from r
;
$/test/
}¢--- A540769.WK.SQL(DI002IX) cre=2014-11-03 mod=2014-11-03-15.24.13 A540769 ---
 SET CURRENT SQLID = 'S100447';


    DROP   INDEX "OA1P    ".IDI002A2$X;
    CREATE INDEX "OA1P    ".IDI002A2$X
           ON "OA1P    ".TDI002A1
          (DI00205 ASC
          ,DI00202 ASC
          ,DI00203 ASC
          ,DI00200 ASC
          ,DI00201 DESC
          ,DI00204 DESC
          ,DI00206 ASC
          ,DI00207 ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE YES
           DEFER YES
           COPY NO
           USING STOGROUP "GSMS    "
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 5
           PCTFREE 20
           GBPCACHE CHANGED
           PIECESIZE 2097152K;

}¢--- A540769.WK.SQL(DODEXT) cre= mod= -----------------------------------------
select 100 * month(tid150tst - 8 months)
            + dayOfMonth(tid150tst - 8 months) TID150MD,
       strip(char(tid150tst - 8 months)) tid150tst,
       tid150uui,
       tid150cha,
       tid150lnr,
       tid150vrs,
       tid150cre,
       tid150idt,
       tid150ide,
       tid150adt,
       tid150adr,
       tid150bu,
       tid150bks,
       tid150are,
       tid150cbe,
       tid150ins
    from oa1a.tid150a1 a
 -- where tid150tst < '2004-10-14-13.21.33.989033'
    order by tid150tst, tid150uui
;
}¢--- A540769.WK.SQL(DORNBIER) cre=2006-09-01 mod=2006-09-01-11.21.18 F540769 ---
 SELECT  BUSINESSENTITY, POSTALNUMBER, INTERNALNUMBER, VALIDFROMTS,
        VALIDTOTS, RECEIPTACCOUNT, TRANSFERACCOUNT, STANDARD,
        RECEIVERCIF, FILENAME, DLFLAG, EBFLAG, ZPFLAG, BBFLAG,
        EUFLAG, IFFLAG, KAFLAG, SVFLAG, VAFLAG, VDFLAG, R1FLAG,
        R2FLAG, R3FLAG, STATE, BUSINESSSTATE, INTERNALNOTICE, BRANCH,
        OLDACCOUNT, ADDINFO, CREATETS, CREATEPID, UPDATETS, UPDATEPID
    FROM    GDB0132.TZV005A1
    WHERE     BUSINESSENTITY = :TZV005.BUSINESSENTITY
        AND   RECEIVERCIF = :TZV005.RECEIVERCIF
   --   AND   FILENAME    = :ABC
}¢--- A540769.WK.SQL(DROP) cre=2006-03-01 mod=2015-10-23-13.25.43 A540769 ------
set current sqlid = 'S100447';
drop database QTXDBX ; commit;
drop database QTXDBY ; commit;
}¢--- A540769.WK.SQL(DROPBIG) cre=2007-12-18 mod=2016-09-09-10.15.23 A540769 ---
$#:
dbSys = DBOL
<>
$>. fEdit()
$<=¢
    select s.dbname db, s.name ts, sum(r.totalrows) rows
          ,  sum(r.nActive) active, sum(real(r.space)) space
          ,  count(*) count
          ,  min(r.updatestatstime) updMin
          , max(R.updatestatstime)  updMax
        from sysibm.sysTablespace s
          left join sysibm.sysTablespaceStats r
            on r.dbName = s.dbName and r.name = s.name
              and r.dbid = s.dbid and r.psId = s.psid
        where s.dbname = 'SU01A1P'
        group by s.dbName, s.name
        order by updMax desc
   $**  order by 1, 2
$!
@  call sqlConnect $dbSys
@. sqlRdr()
|
@=¢
//A540769D JOB (CP00,KE50),'DB2 REO',
//             MSGCLASS=T,TIME=1440,
//             NOTIFY=&SYSUID,REGION=0M,
//             SCHENV=DB2,CLASS=M1
//*
//DROP     EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,
//             PARM='%WSH s $dbSys'
//SYSPROC     DD DSN=DSN.DB2.EXEC,DISP=SHR
//SYSPRINT    DD SYSOUT=*
//SYSUDUMP    DD SYSOUT=*
//SYSTSPRT    DD SYSOUT=*
//SYSTSIN     DD DUMMY
//WSH         DD *
$!
forWith $@=¢
      drop tablespace $DB.$TS; -- $-¢f('%kd', $ROWS) 'rows,' $*+
                        f('%kb', $SPACE * 1024)'iB'$! $UPDMAX
      commit;
    $!
$#out                                              20160909 09:18:00
$#out                                              20160909 09:17:22
$#out                                              20160909 09:16:39
$#out                                              20160905 17:06:48
$#out                                              20160905 16:48:33
$#out                                              20160905 16:47:36
}¢--- A540769.WK.SQL(DROPDB) cre=2009-08-06 mod=2009-08-07-10.17.54 A540769 ----
$*(
    dbDrop: generate jobs to delete many Databases:
        each job consists of
            stepgroups which drop a number of databases
            each stepgroup consist of
                a utility step to cleanup logrange and copy
                         each TS of each DB
                an sql step to drop each DB
                a sleep step to decrease catalog contingency
    usage:
        fill configuration paramters below
        delete lines after $***out line
        wsh
        the jobs are appended after the $***out line
        copy the jobs, verify them and sub
$*)

                                       $***** configuration begin
$=subSys=DBAF
$=dbs=BJAA%                            $***** pattern for DB names
$=dbCnt      = 1000                    $***** how many DB's to drop
$=dbProStep  = 10                      $***** how many DB's a step
$=stepProJob = 10                      $***** how many steps a job
$=sleep      = 60                      $***** how long to sleep after
                                       $***** start of generation

call sqlConnect $subSys
                                       $***** select $cnt databases
call sqlPreOpen 1, "select strip(dbName), strip(name)" ,
                         "from sysIbm.sysTablespace" ,
                         "where dbName like '"$dbs"'",
                         "order by dbName, name",
                         "with ur"
cDb = 0
cTs = 0
                                       $***** read first ts
m.fe  = sqlFetchInto(1, ':m.db, :m.ts')
do cJo = 1 while m.fe                  $***** each job
$@¢                                    $***** job header
//A540769D JOB (CP00,KE50),
//       'CATALOG',MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//*
$!
    do cStep=1 to $stepProJob while m.fe
                                       $***** each stepGroup
        $=cStep % right(cStep, 3, 0)
    $@¢                                $***** utility step
//       IF RC = 0 OR RC = 4 THEN
//UTI$cStep   EXEC PGM=DSNUTILB,TIME=1440,
//   PARM=($subSys,'A540769D'),
//   REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=$subSys.DBAA.LISTDEF(TEMPL)
//SYSIN DD *
  LISTDEF C#LIST
$!
        call mCut d, 0
        do while m.fe & m.d.0 < $dbProStep
                                       $***** each db
            cDb = cDb + 1
            oldDb = m.db
            call mAdd d, oldDb
            do while m.fe & m.db = oldDb
                                       $***** each ts
                cTs = cTs + 1
                                       $***** include ts in listdef
                $% '   INCLUDE TABLESPACE' m.db'.'m.ts
                m.fe  = sqlFetchInto(1, ':m.db, :m.ts')
                end                    $***** each ts
            if cDb >= $dbCnt then
                m.fe = 0
            end                        $***** each db
$@¢                                    $***** continue utility input
$'  QUIESCE  LIST C#LIST'

  MODIFY RECOVERY
    LIST C#LIST
    DELETE AGE (*)
  COPY
    LIST C#LIST
    COPYDDN(TCOPYD)  FULL YES
    PARALLEL
//       ENDIF
//       IF RC = 0 OR RC = 4 THEN
                                       $***** sql step to drop db's
//DROP$cStep  EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99
//SYSTSIN  DD *
    DSN SYSTEM($subSys)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSIN    DD *
set current sqlid = 'S100447';
$!
do dx=1 to m.d.0
    $@¢                                $***** sql statments
drop database $(m.d.dx$);
  commit;
    $!
    end
$@¢
//       ENDIF
                                       $***** sleep step to decrease
                                       $*****    catalog contention
//SLEE$cStep  EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,
//           PARM='WSH s'
//SYSIN    DD DUMMY
//SYSTSIN  DD DUMMY
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSPROC  DD DISP=SHR,DSN=A540769.WK.REXX
//WSH      DD *
    call sleep $sleep, 1
//OUT      DD SYSOUT=*
$!
        end                            $***** each stepGroup
    say 'endJob' cJo', db' cDb', ts' cTs
    end                                $***** each job
call sqlDisconnect $subSys
$***out            20090807 10:16:11
}¢--- A540769.WK.SQL(DROPMAZZ) cre=2006-03-28 mod=2006-03-28-13.37.25 F540769 ---
DROP VIEW OA1Z.VBP00011   ;                                             00010002
DROP VIEW OA1Z.VBP121A    ;                                             00020002
DROP VIEW OA1Z.VBP121A1V  ;                                             00030002
DROP VIEW OA1Z.VBP171A2R  ;                                             00040002
}¢--- A540769.WK.SQL(DSLOCATE) cre=2013-09-30 mod=2013-09-30-15.33.53 A540769 ---
set current path  = 'S100447';
select dsLocate('A540769.WK.REXX')
    from sysibm.sysDummy1
}¢--- A540769.WK.SQL(DSNACE11) cre=2015-01-29 mod=2015-01-30-10.56.57 A540769 ---
dsnaccox v11                                                            00010000
( ( (QueryType= REORG  OR QueryType= ALL ) AND                          00020001
    (ObjectType= TS  OR ObjectType= ALL )) AND                          00030001
  (Object is not in Persistent Read Only (PRO) status) AND              00040001
  ( REORGLASTTIME IS NULL AND LOADRLASTTIME IS NULL) OR                 00050001
  (NACTIVE IS NULL OR NACTIVE > 5) AND                                  00060001
  ( ( ( (REORGINSERTS×100)/TOTALROWS>RRTInsertsPct) AND                 00070001
            REORGINSERTS>RRTInsertsAbs) OR                              00080001
    ( ( (REORGDELETE×100)/TOTALROWS>RRTDeletesPct) AND                  00090001
            REORGDELETE>RRTDeletesAbs) OR                               00100001
    ( REORGCLUSTERSENS > 0 AND (REORGUNCLUSTINS×100)                    00110001
            /TOTALROWS>RRTUnclustInsPct) OR                             00111001
    ( REORGDISORGLOB×100)/TOTALROWS>RRTDisorgLOBPct OR                  00120001
    ( SPACE×1024)/DATASIZE>RRTDataSpaceRat OR                           00130001
    ( (REORGNEARINDREF+REORGFARINDREF)×100)                             00140001
             /TOTALROWS>RRTIndRefLimit OR                               00141001
    REORGMASSDELETE>RRTMassDelLimit OR                                  00150001
    EXTENTS>ExtentLimit) ) OR                                           00160001
( (QueryType= REORG  OR QueryType= ALL ) AND                            00170001
   ObjectType= ALL AND                                                  00180001
   overflow index for hash access is used2, and                         00190001
( overflow index TOTALENTRY x 100)                                      00200001
    / TOTALROWS > RRTHashOvrFlwRatio)  OR                               00201001
( ( QueryType= RESTRICT  OR QueryType= ALL  OR QueryType= REORG ) AND   00210001
  ( ObjectType= TS  OR ObjectType= ALL ) AND                            00220001
  The table space is in advisory or informational reorg pending status) 00230001
}¢--- A540769.WK.SQL(DUMMY1) cre=2006-05-08 mod=2006-05-08-16.41.44 F540769 ----
select * from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(EINS) cre= mod= -------------------------------------------
 SELECT                                                                 00010000
           CHAR(2003),                                                  00011008
    'X' || RTRIM(CHAR(2004)) || 'Y',                                    00012011
    DATE(RTRIM(CHAR(2004)) || '-01-01')                                 00020017
         + 30 DAYS                                                      00020118
         + (2-1) MONTHS,                                                00021019
    DATE('15.12.2004'),                                                 00022019
    DATE('2004-12-15'),                                                 00023024
    TIME('09.28.10')                                                    00024023
   -- TIME('19.28.10.125533')                                           00025022
   -- TIME('9.28.10.125533')                                            00026021
    FROM SYSIBM.SYSTABLES                                               00030000
    FETCH FIRST 2 ROWS ONLY;                                            00040000
}¢--- A540769.WK.SQL(ELARCHK0) cre=2014-12-15 mod=2014-12-15-10.45.27 A540769 ---
-- Zwischenspeicher der zu untersuchenden Datenbanken                   00010000
--                                                                      00020000
DECLARE GLOBAL TEMPORARY TABLE FAMLISTE                                 00030000
               (  FAMILY       CHAR(20)                                 00040000
                , DBNAME       CHAR(08)                                 00050000
                , STORAR       CHAR(03)                                 00060000
                , ENSEG        CHAR(03)                                 00070000
                , STORAR_N     INTEGER                                  00080000
                , ENSEG_N      SMALLINT                                 00090000
                , CREATE_FROM  DATE                                     00100000
                , CREATE_TO    DATE                                     00110000
               )                                                        00120000
;                                                                       00130000
--                                                                      00140000
-- Define with INSERT statement full or partial ddl check               00150000
-- (Description see input section description)                          00160000
--                                                                      00170000
INSERT INTO SESSION.FAMLISTE (  FAMILY                                  00180000
                              , DBNAME                                  00190000
                              , CREATE_FROM                             00200000
                              , CREATE_TO                               00210000
                             )                                          00220000
                      VALUES (  &FAMILY                                 00230000
                              , &DBNAME                                 00240000
                              , &CREATE_FROM                            00250000
                              , &CREATE_TO                              00260000
                             )                                          00270000
  ;                                                                     00280000
-- ============ Parameter section ============                          00290000
--                                                                      00300000
-- Definition of partition limit for table- and indexspace              00310000
DECLARE GLOBAL TEMPORARY TABLE MAXPART                                  00320000
               (  PARTYPE      CHAR(05) NOT NULL                        00330000
                , MAXPART      INTEGER  NOT NULL                        00340000
               )                                                        00350000
;                                                                       00360000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART )                        00370000
                     VALUES ( 'Table', 200 )                            00380000
;                                                                       00390000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART )                        00400000
                     VALUES ( 'Index', 200 )                            00410000
;                                                                       00420000
-- ============ Input section description ============                  00430000
-- Full Check for a database                                            00440000
--    (1) Column FAMILY holds a question mark (Sample '?').             00450000
--    (2) Column DBNAME holds the elar database name (Sample 'XBFRB001')00460000
--    (3) Column CREATE_FROM has no value (Sample NULL)                 00470000
--    (4) Column CREATE_RO   has no value (Sample NULL)                 00480000
--                                                                      00490000
-- Partial check for a database                                         00500000
--    (1) COLUMN FAMILY holds a question mark or is NULL                00510000
--    (2) COLUMN DBNAME has no value (Sample NULL)                      00520000
--    (3) COLUMN CREATE_FROM holds a valid date value                   00530000
--        (Sample: '01.10.2013' or current date - 1 days)               00540000
--                                                                      00550000
--    (4) COLUMN CREATE_TO holds a valid date value                     00560000
--        (Sample: '31.10.2013' or current date + 21 days)              00570000
--                                                                      00580000
--                                                                      00590000
-- ============ Release notes/ documentation section ============       00600000
--                                                                      00610000
-- ### INFO Version 2.3, Date: 05.12.2013                               00620000
-- ### INFO Library: actual Version only available in DSN.GENERAL.SQL   00630000
-- ### Author: A559315, Uwe Toepperwien (TCG), KIDI 61                  00640000
--                                                                      00650000
-- ============ Documentation section ============                      00660000
--                                                                      00670000
-- DDL Checker für partitionierte Datenbanken ELAR. In ELAR ist nur     00680000
-- Table controlled Partition zulässig, folglich werden Non partition   00690000
-- Tables und Index controlled Partition nicht verifiziert.             00700000
-- Grundlage sind die DDL Vereinbarungen vom 10/2010                    00710000
-- Nachfolgende DB2 Objekte werden geprüft:                             00720000
-- (1) Datenbank                                                        00730000
-- (2) Tablespaces                                                      00740000
-- (3) Tabeles                                                          00750000
-- (4) Indexspaces                                                      00760000
-- (5) Index(e) Primary DPSI/ DPSI                                      00770000
--                                                                      00780000
-- Ein DDL Check ist möglich durch Angabe der ELAR Familie und/ oder    00790000
-- der Datenbank.                                                       00800000
--                                                                      00810000
-- Ist das Result des DDL Checkers "empty", dann sind alle vereinbarten 00820000
-- DDL Parameter eingehalten.                                           00830000
--                                                                      00840000
-- Ist das Result des DDL Checkers nicht "empty", dann                  00850000
-- (a) werden alle DDL Parameter Abweichungen ausgewiesen, wenn die     00860000
--     Familie/ Datenbank vom Typ Table Controlled Partition ist        00870000
-- (b) der Fehler "DatabaseImplementation" zeigt an, das die Familie/   00880000
--     Datenbank nicht vom Typ Table Controlled Partition ist.          00890000
--                                                                      00900000
-- Parameterwert fuer maximale Anzahl Partition festlegen               00910000
-- Die maximale Anzahl Partitionen ist für Table- und Indexcontrolled   00920000
-- Partitioning vorzugeben.                                             00930000
--                                                                      00940000
-- Update: 28.11.2013, TCG                                              00950000
-- Partial check possible, when create_from and create_to is not null   00960000
--                                                                      00970000
-- Update: 08.07.2013, TCG                                              00980000
--  Generating final message which describe the state of a cekced       00990000
--  database.                                                           01000000
--  Check pctfree for technical/ business indexes use wrong             01010000
--  catalog table (sysibm.syscolumns instead of syskeys)                01020000
--                                                                      01030000
-- Update: 01.07.2013, TCG (new agreement KIDI63/ ELAR for NDBS)        01040000
--                         (see Mail from 01.07.2013 M.Streit)          01050000
--  Tablespace Option Check                                             01060000
--     (1) Check FREEPAGE, PCTFREE                                      01070000
--     (2) PARTITION = 0 not allowed for XB databases                   01080000
--  Table Option Check                                                  01090000
--     (1) option APPEND changed from NO to YES                         01100000
--     (2) no check of EN1ENTERTAG, ET1LOGPROD                          01110000
--     (3) Check on table the type of partitioning (classic)            01120000
--     (4) Check if index is index controlled partitioning (antique)    01130000
--     (5) Extend index type check, only D, U and P are allowed         01140000
--     (6) Check that EN1PART is in keylist of unique/ primary index    01150000
--     (7) Check that every table has only one unique/ primary index    01160000
--     (8) Check that cluster index based on correct columns            01170000
--     (9) Check that key columns on correct position                   01180000
--                                                                      01190000
-- Update: 17.05.2012, TCG                                              01200000
--  (1) Find database name for migrated families (migrated families     01210000
--      have a symbolic name like FAMnnmm where nn is multipler 1000    01220000
--      and mm is the family number. Exp. FAM1015 is family 15 that is  01230000
--      family DEVI.IF)                                                 01240000
--  (2) New column COMMENT describes the family                         01250000
--  (3) Result shows first families from migration and all other        01260000
--      families.                                                       01270000
--  (4) Correction of text mistakes.                                    01280000
--                                                                      01290000
-- Update: 10.05.2012, TCG                                              01300000
--  (1) New Bufferpool assignment (BP2 and BP1)                         01310000
--  (2) Check Bufferpool BP8 for LOB                                    01320000
--  (3) De-activate Partition and Index Columun check                   01330000
--      for database with prefix DXB (Elar Metadata)                    01340000
--  (4) Result set order changed to family, database, tablespace,       01350000
--      table, indexspace and index.                                    01360000
--  (5) Defined more and detailed messages.                             01370000
--                                                                      01380000
-- ============ Processing section ============                         01390000
--                                                                      01400000
UPDATE SESSION.FAMLISTE                                                 01410000
   SET STORAR   = SUBSTR(DBNAME,3,3)                                    01420000
     , ENSEG    = SUBSTR(DBNAME,6,3)                                    01430000
 WHERE SUBSTR(DBNAME,1,2) = 'XB'                                        01440000
    AND CREATE_FROM IS NULL                                             01450000
    AND CREATE_TO   IS NULL                                             01460000
;                                                                       01470000
UPDATE SESSION.FAMLISTE                                                 01480000
   SET STORAR_N = (SELECT XBA510_STORAGE_ARN                            01490000
                     FROM BUA.TXBA510                                   01500000
                    WHERE XBA510_STORAGE_ARC = STORAR                   01510000
                  )                                                     01520000
     , ENSEG_N  = (SELECT XBA510_STORAGE_ARN                            01530000
                     FROM BUA.TXBA510                                   01540000
                    WHERE XBA510_STORAGE_ARC = ENSEG                    01550000
                  )                                                     01560000
 WHERE CREATE_FROM IS NULL                                              01570000
   AND CREATE_TO   IS NULL                                              01580000
;                                                                       01590000
DECLARE GLOBAL TEMPORARY TABLE ELAR                                     01600000
               (  FAMILY       CHAR(20)                                 01610000
                , STORAR       CHAR(08)                                 01620000
                , COMMENT      CHAR(40)                                 01630000
               )                                                        01640000
;                                                                       01650000
INSERT INTO SESSION.ELAR                                                01660000
WITH TESLA (  FAMILY                                                    01670000
            , STORAR                                                    01680000
            , COMMENT                                                   01690000
           )                                                            01700000
--                                                                      01710000
-- Search over family name and retrieve database name(s)                01720000
-- 1) Import run time tables                                            01730000
-- 2) Time range run time table and family configuration                01740000
--    (no data available over(1)                                        01750000
-- 3) Migration protocol (no data available over (1) and (2)            01760000
-- 4) Family number control table. Last change to find a family,        01770000
--    while all run time and meta data are broken (broken links)        01780000
--                                                                      01790000
       AS  (SELECT C071.EAOF                                            01800000
                 , CAST ( C071.EYPREF   ||                              01810000
                          C111.ENSTORAR ||                              01820000
                          C111.ENSEG       AS CHAR(08)                  01830000
                        )                                               01840000
                 , ' ' AS COMMENT                                       01850000
              FROM            BUA.TXBC111 C111                          01860000
              FULL OUTER JOIN BUA.TXBC071 C071                          01870000
                           ON C111.ENSTORAR = C071.ENSTORAR             01880000
             INNER       JOIN SESSION.FAMLISTE    FL                    01890000
                           ON FL.FAMILY     = C071.EAOF                 01900000
             WHERE C111.ENSTORAR IS NOT NULL                            01910000
               AND C111.ENSEG    IS NOT NULL                            01920000
               AND C071.EYPREF   IS NOT NULL                            01930000
            UNION  DISTINCT                                             01940000
            SELECT BE051.EAOF                                           01950000
                 , FL.DBNAME                                            01960000
                 , ' ' AS COMMENT                                       01970000
              FROM      BUA.TXBE051 BE051                               01980000
             INNER JOIN BUA.TXBA201 BA201                               01990000
                     ON BE051.ENLIBENG = BA201.ENSTORAR                 02000000
             INNER JOIN SESSION.FAMLISTE FL                             02010000
                     ON FL.FAMILY      = BE051.EAOF                     02020000
            UNION  DISTINCT                                             02030000
            SELECT T504.XBA501_FAMNAME                                  02040000
                 , XBA504_DB                                            02050000
                 , '>> old Migration <<' AS COMMENT                     02060000
              FROM      BUA.TXBA504 T504                                02070000
              LEFT JOIN BUA.TXBA511 T511                                02080000
                     ON T504.XBA501_FAMNAME =  T511.XBA501_FAMNAME      02090000
                    AND T504.XBA504_TABLE   =  T511.XBA504_TABLE        02100000
             INNER JOIN SESSION.FAMLISTE FL                             02110000
                     ON FL.FAMILY           =  T504.XBA501_FAMNAME      02120000
            UNION  DISTINCT                                             02130000
            SELECT STRIP(BA131.EAOF)                                    02140000
                 , SUBSTR(MG103.EANTABNAME,1,8)                         02150000
                 , '>> new Migration <<' AS COMMENT                     02160000
              FROM      BUA.TXBMG103 MG103                              02170000
             INNER JOIN BUA.TXBA131  BA131                              02180000
                     ON MG103.ENOF = BA131.ENOF                         02190000
             INNER JOIN SESSION.FAMLISTE FL                             02200000
                     ON UCASE(BA131.EAOF) = FL.FAMILY                   02210000
--                                                                      02220000
-- Search over Database Name and retrieve family name                   02230000
-- In general same processing like search over family, but other        02240000
-- columns are relevant.                                                02250000
--                                                                      02260000
            UNION  DISTINCT                                             02270000
            SELECT C071.EAOF                                            02280000
                 , FL.DBNAME                                            02290000
                 , ' ' AS COMMENT                                       02300000
              FROM            BUA.TXBC111 C111                          02310000
              FULL OUTER JOIN BUA.TXBC071 C071                          02320000
                           ON C111.ENSTORAR = C071.ENSTORAR             02330000
             INNER       JOIN SESSION.FAMLISTE FL                       02340000
                           ON FL.STORAR = C111.ENSTORAR                 02350000
                          AND FL.ENSEG  = C111.ENSEG                    02360000
            UNION  DISTINCT                                             02370000
            SELECT BE051.EAOF                  AS FAMILY                02380000
                 , FL.DBNAME                                            02390000
                 , ' ' AS COMMENT                                       02400000
              FROM      BUA.TXBE051 BE051                               02410000
             INNER JOIN BUA.TXBA201 BA201                               02420000
                     ON BE051.ENLIBENG = BA201.ENSTORAR                 02430000
             INNER JOIN SESSION.FAMLISTE FL                             02440000
                     ON FL.STORAR_N    = BA201.ENSTORAR                 02450000
                    AND FL.ENSEG_N     = BA201.ENSEG                    02460000
            UNION  DISTINCT                                             02470000
            SELECT T504.XBA501_FAMNAME                                  02480000
                 , XBA504_DB                                            02490000
                 , ' ' AS COMMENT                                       02500000
              FROM      BUA.TXBA504 T504                                02510000
              LEFT JOIN BUA.TXBA511 T511                                02520000
                     ON T504.XBA501_FAMNAME =  T511.XBA501_FAMNAME      02530000
                    AND T504.XBA504_TABLE   =  T511.XBA504_TABLE        02540000
             INNER JOIN SESSION.FAMLISTE FL                             02550000
                     ON FL.DBNAME           =  T504.XBA504_DB           02560000
            UNION  DISTINCT                                             02570000
            SELECT UCASE(BA131.EAOF)                                    02580000
                 , FL.DBNAME                                            02590000
                 , ' ' AS COMMENT                                       02600000
                FROM      BUA.TXBA131 BA131                             02610000
               INNER JOIN BUA.TXBG081 BG181                             02620000
                       ON BA131.ENOF = BG181.ENOF                       02630000
               INNER JOIN SESSION.FAMLISTE FL                           02640000
                       ON BG181.ENSTORAR = FL.STORAR_N                  02650000
            UNION  DISTINCT                                             02660000
            SELECT UCASE(BA131.EAOF)                                    02670000
                 , FL.DBNAME                                            02680000
                 , ' ' AS COMMENT                                       02690000
              FROM      BUA.TXBA131 BA131                               02700000
             INNER JOIN BUA.TXBG081X BG181                              02710000
                     ON BA131.ENOF = BG181.ENOF                         02720000
             INNER JOIN SESSION.FAMLISTE FL                             02730000
                     ON BG181.ENSTORAR = FL.STORAR_N                    02740000
            UNION  DISTINCT                                             02750000
            SELECT 'ELAR Repo. / Base'                                  02760000
                 , DBNAME                                               02770000
                 , ' ' AS COMMENT                                       02780000
              FROM SESSION.FAMLISTE                                     02790000
             WHERE SUBSTR(DBNAME,1,3) = 'DXB'                           02800000
           )                                                            02810000
SELECT FAMILY                                                           02820000
     , STORAR                                                           02830000
     , COMMENT                                                          02840000
  FROM TESLA                                                            02850000
 WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL               02860000
   AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE) IS NULL               02870000
;                                                                       02880000
-- Add database without ELAR meta data into checklist                   02890000
--                                                                      02900000
INSERT INTO SESSION.ELAR                                                02910000
SELECT DBNAME                                                           02920000
     , DBNAME                                                           02930000
     , ' '                                                              02940000
  FROM SESSION.FAMLISTE                                                 02950000
 WHERE DBNAME NOT IN (SELECT STORAR FROM SESSION.ELAR)                  02960000
   AND DBNAME <> '?'                                                    02970000
   AND (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL               02980000
   AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE) IS NULL               02990000
;                                                                       03000000
INSERT INTO SESSION.ELAR                                                03010000
SELECT DISTINCT                                                         03020000
       '?'                                                              03030000
     , DBNAME                                                           03040000
     , DBNAME                                                           03050000
  FROM SYSIBM.SYSTABLESPACE                                             03060000
 WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE  ) IS NOT NULL         03070000
   AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE  ) IS NOT NULL         03080000
   AND DATE(CREATEDTS) >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE  )  03090000
   AND DATE(CREATEDTS) <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE  )  03100000
   AND DBNAME LIKE 'XB%'                                                03110000
;                                                                       03120000
UPDATE SESSION.FAMLISTE                                                 03130000
   SET CREATE_FROM = '01.01.0001'                                       03140000
     , CREATE_TO   = '31.12.9999'                                       03150000
 WHERE CREATE_FROM IS NULL                                              03160000
   AND CREATE_TO   IS NULL                                              03170000
;                                                                       03180000
DECLARE GLOBAL TEMPORARY TABLE TEMP                                     03190000
               (  SNUM         CHAR(0013) FOR BIT DATA                  03200000
                , CRITERIA     CHAR(0030)                               03210000
                , FAMILY       CHAR(0030)                               03220000
                , COMMENT      CHAR(0040)                               03230000
                , OBJECT       CHAR(0060)                               03240000
                , OPTVALUE     VARCHAR(1024)                            03250000
                , CREATEDTS    TIMESTAMP(6)                             03260000
               )                                                        03270000
;                                                                       03280000
INSERT INTO SESSION.TEMP                                                03290000
WITH DBDDL (  FAMILY                                                    03300000
            , DATABASE                                                  03310000
            , BUFFERPOOL                                                03320000
            , INDEXPOOL                                                 03330000
            , STOGROUP                                                  03340000
            , CCID                                                      03350000
            , DBID                                                      03360000
            , COMMENT                                                   03370000
            , CREATEDTS                                                 03380000
           )                                                            03390000
        AS (SELECT DISTINCT                                             03400000
                   EL.FAMILY                                            03410000
                 , DB.NAME                                              03420000
                 , DB.BPOOL                                             03430000
                 , DB.INDEXBP                                           03440000
                 , DB.STGROUP                                           03450000
                 , DB.ENCODING_SCHEME                                   03460000
                 , DB.DBID                                              03470000
                 , EL.COMMENT                                           03480000
                 , DB.CREATEDTS                                         03490000
              FROM      SESSION.ELAR         EL                         03500000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         03510000
                     ON EL.STORAR = DB.NAME                             03520000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         03530000
                     ON DB.DBID   = TS.DBID                             03540000
             WHERE    DATE(DB.CREATEDTS)                                03550000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)        03560000
               AND    DATE(DB.CREATEDTS)                                03570000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE)        03580000
           )                                                            03590000
   , RDB   (  FAMILY                                                    03600000
            , COMMENT                                                   03610000
            , OBJECT                                                    03620000
            , OPTVALUE                                                  03630000
            , CREATEDTS                                                 03640000
           )                                                            03650000
        AS (SELECT DISTINCT                                             03660000
                   FAMILY                                               03670000
                 , COMMENT                                              03680000
                 , CAST(DATABASE AS CHAR(08))                           03690000
                 , 'Bufferpool_DB='                                     03700000
                || CASE WHEN BUFFERPOOL = 'BP2'                         03710000
                             THEN 'OK'                                  03720000
                        ELSE 'NOK'                                      03730000
                   END                                                  03740000
                || ';'                                                  03750000
                || 'Bufferpool_DB_IX='                                  03760000
                || CASE WHEN INDEXPOOL = 'BP1'                          03770000
                             THEN 'OK'                                  03780000
                        ELSE 'NOK'                                      03790000
                   END                                                  03800000
                || ';'                                                  03810000
                || 'StorageGroup='                                      03820000
                || CASE STOGROUP                                        03830000
                        WHEN 'GSMS1' THEN 'OK'                          03840000
                        WHEN 'GSMS2' THEN 'OK'                          03850000
                        WHEN 'GSMS3' THEN 'OK'                          03860000
                        WHEN 'GSMS4' THEN 'OK'                          03870000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     03880000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      03890000
                                            THEN 'OK'                   03900000
                                            ELSE 'NOK'                  03910000
                                       END                              03920000
                                  ELSE 'NOK'                            03930000
                             END                                        03940000
                   END                                                  03950000
                || ';'                                                  03960000
                || 'EncodingScheme='                                    03970000
                || CASE WHEN CCID = 'E'                                 03980000
                             THEN 'OK'                                  03990000
                        ELSE 'NOK'                                      04000000
                   END                                                  04010000
                 , CREATEDTS                                            04020000
              FROM DBDDL                                                04030000
           )                                                            04040000
SELECT GENERATE_UNIQUE()                                                04050000
     , '1Database Option Check'                                         04060000
     , FAMILY                                                           04070000
     , COMMENT                                                          04080000
     , OBJECT                                                           04090000
     , OPTVALUE                                                         04100000
     , CREATEDTS                                                        04110000
  FROM RDB                                                              04120000
 ORDER BY FAMILY                                                        04130000
        , OBJECT                                                        04140000
;                                                                       04150000
INSERT INTO SESSION.TEMP                                                04160000
WITH TSDDL (  FAMILY                                                    04170000
            , DATABASE                                                  04180000
            , BPOOL_T                                                   04190000
            , TSNAME                                                    04200000
            , PARTITION                                                 04210000
            , STOGROUP                                                  04220000
            , PRIQTY                                                    04230000
            , SECQTY                                                    04240000
            , GBPCACHE                                                  04250000
            , TRACKMODE                                                 04260000
            , LOGGED                                                    04270000
            , DSSIZE                                                    04280000
            , LOCKSIZE                                                  04290000
            , LOCKMAX                                                   04300000
            , CLOSE                                                     04310000
            , COMPRESS                                                  04320000
            , CCID                                                      04330000
            , DEFINE                                                    04340000
            , MAXROWS                                                   04350000
            , TPIXNAME                                                  04360000
            , AUXTBNAME                                                 04370000
            , FREEPAGE                                                  04380000
            , PCTFREE                                                   04390000
            , COMMENT                                                   04400000
            , CREATEDTS                                                 04410000
            , ELAR_TB_TYPE                                              04420000
           )                                                            04430000
        AS (SELECT DISTINCT                                             04440000
                   EL.FAMILY          AS FAMILY                         04450000
                 , DB.NAME            AS DATABASE                       04460000
                 , TS.BPOOL           AS BPOOL_T                        04470000
                 , TS.NAME            AS TSNAME                         04480000
                 , TS.PARTITIONS      AS PARTITION                      04490000
                 , TP.STORNAME        AS STOGROUP                       04500000
                 , TP.PQTY            AS PRIQTY                         04510000
                 , TP.SQTY            AS SECQTY                         04520000
                 , TP.GBPCACHE        AS GBPCACHE                       04530000
                 , TP.TRACKMOD        AS TRACKMODE                      04540000
                 , TS.LOG             AS LOGGED                         04550000
                 , TS.DSSIZE          AS DSSIZE                         04560000
                 , TS.LOCKRULE        AS LOCKSIZE                       04570000
                 , TS.LOCKMAX         AS LOCKMAX                        04580000
                 , TS.CLOSERULE       AS CLOSE                          04590000
                 , TP.COMPRESS        AS COMPRESS                       04600000
                 , TS.ENCODING_SCHEME AS CCID                           04610000
                 , TP.SPACE           AS DEFINE                         04620000
                 , TS.MAXROWS         AS MAXROWS                        04630000
                 , TP.IXNAME          AS TPIXNAME                       04640000
                 , TB.TYPE            AS AUXTBNAME                      04650000
                 , TP.FREEPAGE        AS FREEPAGE                       04660000
                 , TP.PCTFREE         AS PCTFREE                        04670000
                 , EL.COMMENT         AS COMMENT                        04680000
                 , TP.CREATEDTS       AS CREATEDTS                      04690000
                 , SUBSTR(TB.NAME, 9, 2) AS ELAR_TB_TYPE                04700000
              FROM      SESSION.ELAR         EL                         04710000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         04720000
                     ON EL.STORAR = DB.NAME                             04730000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         04740000
                     ON DB.DBID   = TS.DBID                             04750000
             INNER JOIN SYSIBM.SYSTABLEPART  TP                         04760000
                     ON TS.NAME   = TP.TSNAME                           04770000
                    AND TS.DBNAME = TP.DBNAME                           04780000
             INNER JOIN SYSIBM.SYSTABLES TB                             04790000
                     ON TP.DBNAME = TB.DBNAME                           04800000
                    AND TP.TSNAME = TB.TSNAME                           04810000
             WHERE    DATE(TP.CREATEDTS)                                04820000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)        04830000
               AND    DATE(TP.CREATEDTS)                                04840000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE)        04850000
           )                                                            04860000
   , RTS   (  FAMILY                                                    04870000
            , COMMENT                                                   04880000
            , OBJECT                                                    04890000
            , OPTVALUE                                                  04900000
            , CREATEDTS                                                 04910000
           )                                                            04920000
        AS (SELECT DISTINCT                                             04930000
                   FAMILY                                               04940000
                 , COMMENT                                              04950000
                 , CAST(DATABASE AS CHAR(08))                           04960000
                || ' '                                                  04970000
                || TSNAME                                               04980000
                || ' '                                                  04990000
                 , CASE WHEN PARTITION > 0                              05000000
                        THEN CASE WHEN LENGTH(STRIP(TPIXNAME)) = 0      05010000
                                  THEN 'InfoTCP=OK'                     05020000
                                  ELSE 'InfoICP=OK'                     05030000
                             END                                        05040000
                        ELSE 'InfoTSS=OK'                               05050000
                   END                                                  05060000
                || ';'                                                  05070000
                || 'TablePartLimit='                                    05080000
                || CASE WHEN (SELECT DISTINCT SUBSTR(DATABASE,1,2)      05090000
                                FROM TSDDL                              05100000
                             ) = 'XB'                                   05110000
                        THEN CASE WHEN PARTITION > (SELECT MAXPART      05120000
                                            FROM SESSION.MAXPART        05130000
                                           WHERE PARTYPE = 'Table'      05140000
                                         )                              05150000
                                  THEN 'NOK'                            05160000
                                  ELSE 'OK'                             05170000
                             END                                        05180000
                        ELSE 'OK'                                       05190000
                   END                                                  05200000
                || ';'                                                  05210000
                || 'Bufferpool'                                         05220000
                || CASE BPOOL_T                                         05230000
                   WHEN 'BP2'   THEN CASE WHEN ELAR_TB_TYPE = 'HS'      05240000
                                          THEN '_FHS=NOK'               05250000
                                          ELSE '=OK'                    05260000
                                     END                                05270000
                   WHEN 'BP32K' THEN CASE WHEN ELAR_TB_TYPE = 'HS'      05280000
                                          THEN '=OK'                    05290000
                                          ELSE '_FTB=NOK'               05300000
                                     END                                05310000
                   WHEN 'BP8'   THEN                                    05320000
                                CASE WHEN AUXTBNAME = 'X'               05330000
                                     THEN '=OK'                         05340000
                                     ELSE '_LOB=NOK'                    05350000
                                END                                     05360000
                   ELSE '_TS=NOK'                                       05370000
                   END                                                  05380000
                || ';'                                                  05390000
                || 'Groupbufferpool='                                   05400000
                || CASE GBPCACHE                                        05410000
                        WHEN ' ' THEN 'OK'                              05420000
                        ELSE 'NOK'                                      05430000
                  END                                                   05440000
                || ';'                                                  05450000
                || 'Trackmode='                                         05460000
                || CASE TRACKMODE                                       05470000
                        WHEN 'N' THEN 'OK'                              05480000
                        ELSE 'NOK'                                      05490000
                   END                                                  05500000
                || ';'                                                  05510000
                || 'LoggedOption='                                      05520000
                || CASE LOGGED                                          05530000
                        WHEN 'Y' THEN 'OK'                              05540000
                        ELSE 'NOK'                                      05550000
                   END                                                  05560000
                || ';'                                                  05570000
                || 'DSSIZE='                                            05580000
                || CASE WHEN PARTITION > 0                              05590000
                        THEN CASE DSSIZE                                05600000
                             WHEN 16777216 THEN 'OK'                    05610000
                                           ELSE 'NOK'                   05620000
                             END                                        05630000
                        ELSE 'OK'                                       05640000
                   END                                                  05650000
                || ';'                                                  05660000
                || 'Locksize='                                          05670000
                || CASE LOCKSIZE                                        05680000
                        WHEN 'A' THEN 'OK'                              05690000
                        ELSE 'NOK'                                      05700000
                   END                                                  05710000
                || ';'                                                  05720000
                || 'LockMax='                                           05730000
                || CASE LOCKMAX                                         05740000
                        WHEN -1 THEN 'OK'                               05750000
                        ELSE 'NOK'                                      05760000
                   END                                                  05770000
                || ';'                                                  05780000
                || 'CloseOption='                                       05790000
                || CASE CLOSE                                           05800000
                        WHEN 'Y' THEN 'OK'                              05810000
                        ELSE 'NOK'                                      05820000
                   END                                                  05830000
                || ';'                                                  05840000
                || 'TblCompressOption='                                 05850000
                || CASE COMPRESS                                        05860000
                        WHEN 'Y' THEN 'OK'                              05870000
                        ELSE 'NOK'                                      05880000
                   END                                                  05890000
                || ';'                                                  05900000
                || 'StorageGroup='                                      05910000
                || CASE STOGROUP                                        05920000
                        WHEN 'GSMS1' THEN 'OK'                          05930000
                        WHEN 'GSMS2' THEN 'OK'                          05940000
                        WHEN 'GSMS3' THEN 'OK'                          05950000
                        WHEN 'GSMS4' THEN 'OK'                          05960000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     05970000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      05980000
                                            THEN 'OK'                   05990000
                                            ELSE 'NOK'                  06000000
                                       END                              06010000
                                  ELSE 'NOK'                            06020000
                             END                                        06030000
                   END                                                  06040000
                || ';'                                                  06050000
                || 'PrimaryQuantity='                                   06060000
                || CASE PRIQTY                                          06070000
                        WHEN -1 THEN 'OK'                               06080000
                        ELSE 'NOK'                                      06090000
                   END                                                  06100000
                || ';'                                                  06110000
                || 'SecondaryQuantity='                                 06120000
                || CASE SECQTY                                          06130000
                        WHEN -1 THEN 'OK'                               06140000
                        ELSE 'NOK'                                      06150000
                   END                                                  06160000
                || ';'                                                  06170000
                || 'EncodingScheme='                                    06180000
                || CASE WHEN CCID = 'E' THEN 'OK'                       06190000
                        ELSE 'NOK'                                      06200000
                   END                                                  06210000
                || ';'                                                  06220000
                || 'DefineOption='                                      06230000
                || CASE DEFINE                                          06240000
                        WHEN -1 THEN 'NOK'                              06250000
                        ELSE 'OK'                                       06260000
                   END                                                  06270000
                || ';'                                                  06280000
                || 'MaxRowsPerPage='                                    06290000
                || CASE MAXROWS                                         06300000
                        WHEN 255 THEN 'OK'                              06310000
                        ELSE 'NOK'                                      06320000
                   END                                                  06330000
                || ';'                                                  06340000
                || 'TSFreepage='                                        06350000
                || CASE FREEPAGE                                        06360000
                        WHEN 0 THEN 'OK'                                06370000
                        ELSE 'NOK'                                      06380000
                   END                                                  06390000
                || ';'                                                  06400000
                || 'TSPctfree='                                         06410000
                || CASE PCTFREE                                         06420000
                        WHEN 0 THEN 'OK'                                06430000
                        ELSE 'NOK'                                      06440000
                   END                                                  06450000
                 , CREATEDTS                                            06460000
              FROM TSDDL                                                06470000
           )                                                            06480000
SELECT GENERATE_UNIQUE()                                                06490000
     , '2Tablespace Option Check'                                       06500000
     , FAMILY                                                           06510000
     , COMMENT                                                          06520000
     , OBJECT                                                           06530000
     , OPTVALUE                                                         06540000
     , CREATEDTS                                                        06550000
  FROM RTS                                                              06560000
 ORDER BY FAMILY                                                        06570000
        , OBJECT                                                        06580000
;                                                                       06590000
INSERT INTO SESSION.TEMP                                                06600000
WITH TBDDL (  FAMILY                                                    06610000
            , DATABASE                                                  06620000
            , TSNAME                                                    06630000
            , TBNAME                                                    06640000
            , AUDIT                                                     06650000
            , DATA_CAPTURE                                              06660000
            , RESTRICT_DROP                                             06670000
            , CCID                                                      06680000
            , VOLATILE                                                  06690000
            , APPEND                                                    06700000
            , PART_NAME                                                 06710000
            , PART_TYPE                                                 06720000
            , PART_SEQ                                                  06730000
            , PART_ORDER                                                06740000
            , PARTITION                                                 06750000
            , PART_LIMITKEY                                             06760000
            , PART_LOGICALKEY                                           06770000
            , COLNO                                                     06780000
            , PARTKEYCOLNUM                                             06790000
            , COMMENT                                                   06800000
            , CREATEDTS                                                 06810000
           )                                                            06820000
        AS (SELECT EL.FAMILY                                            06830000
                 , CAST(TB.DBNAME AS CHAR(08))                          06840000
                 , TB.TSNAME                                            06850000
                 , TB.NAME                                              06860000
                 , TB.AUDITING                                          06870000
                 , TB.DATACAPTURE                                       06880000
                 , TB.CLUSTERTYPE                                       06890000
                 , TB.ENCODING_SCHEME                                   06900000
                 , TB.SPLIT_ROWS                                        06910000
                 , TB.APPEND                                            06920000
                 , TC.NAME                                              06930000
                 , TC.COLTYPE                                           06940000
                 , TC.PARTKEY_COLSEQ                                    06950000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     06960000
                             THEN ' '                                   06970000
                             ELSE TC.PARTKEY_ORDERING                   06980000
                        END                 AS CHAR(01))                06990000
                 , CAST(TP.PARTITION        AS INTEGER)                 07000000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     07010000
                             THEN '0'                                   07020000
                             ELSE STRIP(TP.LIMITKEY)                    07030000
                        END                 AS VARCHAR(765))            07040000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     07050000
                             THEN 0                                     07060000
                             ELSE TP.LOGICAL_PART                       07070000
                        END                 AS INTEGER)                 07080000
                 , COLNO                                                07090000
                 , TB.PARTKEYCOLNUM                                     07100000
                 , EL.COMMENT                                           07110000
                 , TP.CREATEDTS                                         07120000
              FROM      SESSION.ELAR        EL                          07130000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         07140000
                     ON EL.STORAR  = DB.NAME                            07150000
             INNER JOIN SYSIBM.SYSTABLES     TB                         07160000
                     ON TB.DBNAME  = DB.NAME                            07170000
                    AND TB.TYPE    = 'T'                                07180000
             INNER JOIN SYSIBM.SYSCOLUMNS    TC                         07190000
                     ON TB.NAME    = TC.TBNAME                          07200000
                    AND TB.CREATOR = TC.TBCREATOR                       07210000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         07220000
                     ON TB.TSNAME  = TS.NAME                            07230000
                    AND TB.DBID    = TS.DBID                            07240000
                    AND TS.DBID    = DB.DBID                            07250000
             INNER JOIN SYSIBM.SYSTABLEPART  TP                         07260000
                     ON TS.NAME    = TP.TSNAME                          07270000
                    AND TS.DBNAME  = TP.DBNAME                          07280000
             WHERE TC.PARTKEY_COLSEQ > 0                                07290000
               AND    DATE(TP.CREATEDTS)                                07300000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)        07310000
               AND    DATE(TP.CREATEDTS)                                07320000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE)        07330000
               ORDER BY TB.DBNAME, TB.TSNAME                            07340000
                      , TC.COLNO , TC.PARTKEY_COLSEQ                    07350000
           )                                                            07360000
   , RTB   (  FAMILY                                                    07370000
            , COMMENT                                                   07380000
            , OBJECT                                                    07390000
            , OPTVALUE                                                  07400000
            , CREATEDTS                                                 07410000
           )                                                            07420000
        AS (SELECT DISTINCT                                             07430000
                   FAMILY                                               07440000
                 , COMMENT                                              07450000
                 , CAST(DATABASE AS CHAR(08))                           07460000
                || ' '                                                  07470000
                || TSNAME                                               07480000
                || ' '                                                  07490000
                || TBNAME                                               07500000
                 , 'Audit='                                             07510000
                || CASE AUDIT                                           07520000
                        WHEN ' ' THEN 'OK'                              07530000
                        ELSE 'NOK'                                      07540000
                   END                                                  07550000
                || ';'                                                  07560000
                || 'DataCapture='                                       07570000
                || CASE DATA_CAPTURE                                    07580000
                        WHEN 'Y' THEN 'OK'                              07590000
                        ELSE 'NOK'                                      07600000
                   END                                                  07610000
                || ';'                                                  07620000
                || 'RestrictOnDrop='                                    07630000
                || CASE RESTRICT_DROP                                   07640000
                        WHEN 'Y' THEN 'OK'                              07650000
                        ELSE 'NOK'                                      07660000
                   END                                                  07670000
                || ';'                                                  07680000
                || 'EncodingScheme='                                    07690000
                || CASE CCID                                            07700000
                        WHEN 'E' THEN 'OK'                              07710000
                        ELSE 'NOK'                                      07720000
                   END                                                  07730000
                || ';'                                                  07740000
                || 'Volatile='                                          07750000
                || CASE VOLATILE                                        07760000
                        WHEN 'Y' THEN 'OK'                              07770000
                        ELSE 'NOK'                                      07780000
                   END                                                  07790000
                || ';'                                                  07800000
                || 'Append='                                            07810000
                || CASE APPEND                                          07820000
                        WHEN 'Y' THEN 'OK'                              07830000
                        ELSE 'NOK'                                      07840000
                   END                                                  07850000
                || ';'                                                  07860000
                || 'PartKeyName='                                       07870000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                07880000
                        THEN CASE WHEN PART_SEQ > 0                     07890000
                                  THEN CASE PART_NAME                   07900000
                                            WHEN 'EN1PART' THEN 'OK'    07910000
                                            ELSE 'NOK'                  07920000
                                       END                              07930000
                                  ELSE 'NOK'                            07940000
                             END                                        07950000
                        ELSE 'OK'                                       07960000
                   END                                                  07970000
                || ';'                                                  07980000
                || 'PartKeyType='                                       07990000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08000000
                        THEN CASE WHEN PART_SEQ > 0                     08010000
                                  THEN CASE PART_TYPE                   08020000
                                            WHEN 'INTEGER' THEN 'OK'    08030000
                                            ELSE 'NOK'                  08040000
                                       END                              08050000
                                  ELSE 'NOK'                            08060000
                             END                                        08070000
                        ELSE 'OK'                                       08080000
                   END                                                  08090000
                || ';'                                                  08100000
                || 'PartKeyPosition='                                   08110000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08120000
                        THEN CASE WHEN PART_SEQ > 0                     08130000
                                  THEN CASE PART_SEQ                    08140000
                                            WHEN 1 THEN 'OK'            08150000
                                            ELSE 'NOK'                  08160000
                                       END                              08170000
                                  ELSE 'NOK'                            08180000
                             END                                        08190000
                        ELSE 'OK'                                       08200000
                   END                                                  08210000
                || ';'                                                  08220000
                || 'PartKeyOrder='                                      08230000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08240000
                        THEN CASE WHEN PART_SEQ > 0                     08250000
                                  THEN CASE PART_ORDER                  08260000
                                            WHEN 'A' THEN 'OK'          08270000
                                            ELSE 'NOK'                  08280000
                                       END                              08290000
                                  ELSE 'NOK'                            08300000
                             END                                        08310000
                        ELSE 'OK'                                       08320000
                   END                                                  08330000
                || ';'                                                  08340000
                || 'PartKeyValue(s)='                                   08350000
                || CASE                                                 08360000
                   WHEN SUBSTR(DATABASE,1,2) = 'XB'                     08370000
                   THEN CASE                                            08380000
                        WHEN PART_SEQ > 0                               08390000
                        THEN CASE                                       08400000
                             WHEN CHAR(PARTITION) = PART_LIMITKEY       08410000
                             THEN CASE                                  08420000
                                  WHEN   PART_LIMITKEY                  08430000
                                       = CHAR(PART_LOGICALKEY)          08440000
                                  THEN 'OK'                             08450000
                                  ELSE 'NOK'                            08460000
                                  END                                   08470000
                             ELSE 'NOK'                                 08480000
                             END                                        08490000
                        ELSE 'NOK'                                      08500000
                        END                                             08510000
                   ELSE 'OK'                                            08520000
                   END                                                  08530000
                || ';'                                                  08540000
                || 'PartKeyColNum='                                     08550000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08560000
                        THEN CASE WHEN PARTKEYCOLNUM = 1                08570000
                                  THEN 'OK'                             08580000
                                  ELSE 'NOK'                            08590000
                             END                                        08600000
                        ELSE 'OK'                                       08610000
                   END                                                  08620000
                   AS OPTVALUE                                          08630000
                 , CREATEDTS                                            08640000
              FROM TBDDL                                                08650000
           )                                                            08660000
SELECT GENERATE_UNIQUE()                                                08670000
     , '3Table Option Check'                                            08680000
     , FAMILY                                                           08690000
     , COMMENT                                                          08700000
     , OBJECT                                                           08710000
     , OPTVALUE                                                         08720000
     , CREATEDTS                                                        08730000
  FROM RTB                                                              08740000
 ORDER BY FAMILY                                                        08750000
        , OBJECT                                                        08760000
;                                                                       08770000
INSERT INTO SESSION.TEMP                                                08780000
WITH XSTMP (  FAMILY                                                    08790000
            , DATABASE                                                  08800000
            , TBNAME                                                    08810000
            , IXNAME                                                    08820000
            , IXCREATOR                                                 08830000
            , BPOOL_I                                                   08840000
            , INDEXTYPE                                                 08850000
            , PARTITION                                                 08860000
            , STOGROUP                                                  08870000
            , PRIQTY                                                    08880000
            , SECQTY                                                    08890000
            , GBPCACHE                                                  08900000
            , PGSIZE                                                    08910000
            , FREEPAGE                                                  08920000
            , PCTFREE                                                   08930000
            , COMPRESS                                                  08940000
            , CLOSE                                                     08950000
            , COPY                                                      08960000
            , DEFINE                                                    08970000
            , CLUSTERING                                                08980000
            , TSPARTITION                                               08990000
            , TPIXNAME                                                  09000000
            , PIECESIZE                                                 09010000
            , TSPGSIZE                                                  09020000
            , COMMENT                                                   09030000
            , CREATEDTS                                                 09040000
           )                                                            09050000
        AS (SELECT DISTINCT                                             09060000
                   EL.FAMILY                                            09070000
                 , DB.NAME                                              09080000
                 , IX.TBNAME                                            09090000
                 , IX.NAME                                              09100000
                 , IX.CREATOR                                           09110000
                 , IX.BPOOL                                             09120000
                 , IX.INDEXTYPE                                         09130000
                 , (SELECT MAX(TMP.PARTITION)                           09140000
                      FROM SYSIBM.SYSINDEXPART TMP                      09150000
                     WHERE TMP.IXNAME = IX.NAME                         09160000
                       AND TMP.IXCREATOR = IX.CREATOR                   09170000
                   )                                                    09180000
                 , XP.STORNAME                                          09190000
                 , XP.PQTY                                              09200000
                 , XP.SQTY                                              09210000
                 , XP.GBPCACHE                                          09220000
                 , IX.PGSIZE                                            09230000
                 , XP.FREEPAGE                                          09240000
                 , XP.PCTFREE                                           09250000
                 , IX.COMPRESS                                          09260000
                 , IX.CLOSERULE                                         09270000
                 , IX.COPY                                              09280000
                 , XP.SPACE                                             09290000
                 , IX.CLUSTERING                                        09300000
                 , (SELECT TMP.PARTITIONS                               09310000
                      FROM SYSIBM.SYSTABLESPACE TMP                     09320000
                     WHERE TMP.DBID = DB.DBID                           09330000
                       AND TMP.DBID = IX.DBID                           09340000
                       AND TMP.NAME = TB.TSNAME                         09350000
                   )                                                    09360000
                 , (SELECT TMP.IXNAME                                   09370000
                      FROM SYSIBM.SYSTABLEPART TMP                      09380000
                     WHERE TMP.TSNAME = TS.NAME                         09390000
                       AND TMP.DBNAME = TS.DBNAME                       09400000
                     FETCH FIRST 1 ROW ONLY                             09410000
                   )                                                    09420000
                 , IX.PIECESIZE                                         09430000
                 , TS.PGSIZE                                            09440000
                 , EL.COMMENT                                           09450000
                 , XP.CREATEDTS                                         09460000
              FROM      SESSION.ELAR         EL                         09470000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         09480000
                     ON EL.STORAR  = DB.NAME                            09490000
             INNER JOIN SYSIBM.SYSINDEXES    IX                         09500000
                     ON DB.DBID    = IX.DBID                            09510000
             INNER JOIN SYSIBM.SYSTABLES     TB                         09520000
                     ON IX.TBNAME   = TB.NAME                           09530000
                    AND IX.DBNAME   = TB.DBNAME                         09540000
                    AND IX.DBID     = TB.DBID                           09550000
                    AND TB.DBID     = DB.DBID                           09560000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         09570000
                     ON TB.TSNAME   = TS.NAME                           09580000
                    AND TS.DBID     = TB.DBID                           09590000
                    AND TS.DBID     = IX.DBID                           09600000
                    AND TS.DBID     = DB.DBID                           09610000
             INNER JOIN SYSIBM.SYSINDEXPART  XP                         09620000
                     ON IX.NAME    = XP.IXNAME                          09630000
                    AND IX.CREATOR = XP.IXCREATOR                       09640000
             WHERE    DATE(XP.CREATEDTS)                                09650000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)        09660000
               AND    DATE(XP.CREATEDTS)                                09670000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE)        09680000
           )                                                            09690000
   , IXDDL (  FAMILY                                                    09700000
            , DATABASE                                                  09710000
            , TBNAME                                                    09720000
            , IXNAME                                                    09730000
            , BPOOL_I                                                   09740000
            , INDEXTYPE                                                 09750000
            , PARTITION                                                 09760000
            , STOGROUP                                                  09770000
            , PRIQTY                                                    09780000
            , SECQTY                                                    09790000
            , GBPCACHE                                                  09800000
            , PGSIZE                                                    09810000
            , FREEPAGE                                                  09820000
            , PCTFREE                                                   09830000
            , COMPRESS                                                  09840000
            , CLOSE                                                     09850000
            , COPY                                                      09860000
            , DEFINE                                                    09870000
            , CLUSTERING                                                09880000
            , CNT_KEYS                                                  09890000
            , CLUSTERKEY                                                09900000
            , TSPARTITION                                               09910000
            , TPIXNAME                                                  09920000
            , PIECESIZE                                                 09930000
            , TSPGSIZE                                                  09940000
            , IXTECHBUSINESS                                            09950000
            , COMMENT                                                   09960000
            , CREATEDTS                                                 09970000
           )                                                            09980000
        AS (SELECT T1.FAMILY                                            09990000
                 , T1.DATABASE                                          10000000
                 , T1.TBNAME                                            10010000
                 , T1.IXNAME                                            10020000
                 , T1.BPOOL_I                                           10030000
                 , T1.INDEXTYPE                                         10040000
                 , T1.PARTITION                                         10050000
                 , T1.STOGROUP                                          10060000
                 , T1.PRIQTY                                            10070000
                 , T1.SECQTY                                            10080000
                 , T1.GBPCACHE                                          10090000
                 , T1.PGSIZE                                            10100000
                 , T1.FREEPAGE                                          10110000
                 , T1.PCTFREE                                           10120000
                 , T1.COMPRESS                                          10130000
                 , T1.CLOSE                                             10140000
                 , T1.COPY                                              10150000
                 , T1.DEFINE                                            10160000
                 , T1.CLUSTERING                                        10170000
                 , (SELECT MAX(SK.COLSEQ)                               10180000
                      FROM SYSIBM.SYSKEYS SK                            10190000
                     WHERE T1.IXCREATOR  = SK.IXCREATOR                 10200000
                       AND T1.IXNAME     = SK.IXNAME                    10210000
                       AND T1.CLUSTERING = 'Y'                          10220000
                       AND SK.COLSEQ     = 1                            10230000
                   ) AS CNT_KEYS                                        10240000
                 , (SELECT SK.COLNAME                                   10250000
                      FROM SYSIBM.SYSKEYS SK                            10260000
                     WHERE T1.IXCREATOR  = SK.IXCREATOR                 10270000
                       AND T1.IXNAME     = SK.IXNAME                    10280000
                       AND T1.CLUSTERING = 'Y'                          10290000
                       AND SK.COLSEQ     = 1                            10300000
                   ) AS CLUSTERKEY                                      10310000
                 , T1.TSPARTITION                                       10320000
                 , T1.TPIXNAME                                          10330000
                 , T1.PIECESIZE                                         10340000
                 , T1.TSPGSIZE                                          10350000
                 , (SELECT COUNT(*)                                     10360000
                      FROM SYSIBM.SYSKEYS IK                            10370000
                     WHERE IK.IXNAME = T1.IXNAME                        10380000
                       AND (   IK.COLNAME LIKE '%ATRN%'                 10390000
                            OR IK.COLNAME LIKE '%STRN%'                 10400000
                           )                                            10410000
                   ) AS IXTECHBUSINESS                                  10420000
                 , T1.COMMENT                                           10430000
                 , T1.CREATEDTS                                         10440000
              FROM XSTMP T1                                             10450000
           )                                                            10460000
   , RXS   (  FAMILY                                                    10470000
            , COMMENT                                                   10480000
            , OBJECT                                                    10490000
            , OPTVALUE                                                  10500000
            , CREATEDTS                                                 10510000
           )                                                            10520000
        AS (SELECT DISTINCT                                             10530000
                   FAMILY                                               10540000
                 , COMMENT                                              10550000
                 , CAST(DATABASE AS CHAR(08))                           10560000
                || ' '                                                  10570000
                || IXNAME                                               10580000
                || ' '                                                  10590000
                || TBNAME                                               10600000
                 , 'NoIndexExists='                                     10610000
                || CASE WHEN LENGTH(STRIP(IXNAME)) = 0                  10620000
                        THEN 'NOK'                                      10630000
                        ELSE 'OK'                                       10640000
                   END                                                  10650000
                || ';'                                                  10660000
                || 'NPI='                                               10670000
                || CASE WHEN PARTITION + TSPARTITION = 0                10680000
                        THEN 'OK'                                       10690000
                   ELSE CASE WHEN TSPARTITION > 0 AND PIECESIZE = 0     10700000
                             THEN 'OK'                                  10710000
                             ELSE CASE WHEN PARTITION > 0 AND           10720000
                                            PIECESIZE > 0               10730000
                                       THEN 'OK'                        10740000
                                       ELSE 'NOK'                       10750000
                                  END                                   10760000
                        END                                             10770000
                   END                                                  10780000
                || ';'                                                  10790000
                || 'Indextype='                                         10800000
                || CASE INDEXTYPE                                       10810000
                        WHEN 'D' then case when tspartition > 0         10820000
                                           then 'OK'                    10830000
                                           else 'NOK'                   10840000
                                      end                               10850000
                        WHEN 'P' then case when tspartition > 0         10860000
                                           then 'OK'                    10870000
                                           else 'NOK'                   10880000
                                      end                               10890000
                        WHEN ' ' then case when tspartition > 0         10900000
                                           then 'NOK'                   10910000
                                           else 'OK'                    10920000
                                      end                               10930000
                        WHEN '2' then case when tspartition > 0         10940000
                                           then 'NOK'                   10950000
                                           else 'OK'                    10960000
                                      end                               10970000
                        ELSE 'NOK'                                      10980000
                   END                                                  10990000
                || ';'                                                  11000000
                || 'IndexPartLimit='                                    11010000
                || CASE WHEN PARTITION > (SELECT MAXPART                11020000
                                            FROM SESSION.MAXPART        11030000
                                           WHERE PARTYPE = 'Index'      11040000
                                         )                              11050000
                        THEN 'NOK'                                      11060000
                        ELSE 'OK'                                       11070000
                   END                                                  11080000
                || ';'                                                  11090000
                || 'Bufferpool='                                        11100000
                || CASE BPOOL_I                                         11110000
                        WHEN 'BP1' THEN 'OK'                            11120000
                        ELSE 'NOK'                                      11130000
                   END                                                  11140000
                || ';'                                                  11150000
                || 'GroupBufferPool='                                   11160000
                || CASE GBPCACHE                                        11170000
                        WHEN ' ' THEN 'OK'                              11180000
                   ELSE 'NOK'                                           11190000
                   END                                                  11200000
                || ';'                                                  11210000
                || 'Pagesize='                                          11220000
                || CASE WHEN TSPGSIZE = PGSIZE                          11230000
                        THEN 'OK'                                       11240000
                        ELSE 'OK'                                       11250000
                   END                                                  11260000
                || ';'                                                  11270000
                || 'CloseOption='                                       11280000
                || CASE CLOSE                                           11290000
                        WHEN 'Y' THEN 'OK'                              11300000
                   ELSE 'NOK'                                           11310000
                   END                                                  11320000
                || ';'                                                  11330000
                || 'IdxCompressOption='                                 11340000
                || CASE COMPRESS                                        11350000
                        WHEN 'N' THEN 'OK'                              11360000
                   ELSE 'NOK'                                           11370000
                   END                                                  11380000
                || ';'                                                  11390000
                || 'StorageGroup='                                      11400000
                || CASE STOGROUP                                        11410000
                        WHEN 'GSMS1' THEN 'OK'                          11420000
                        WHEN 'GSMS2' THEN 'OK'                          11430000
                        WHEN 'GSMS3' THEN 'OK'                          11440000
                        WHEN 'GSMS4' THEN 'OK'                          11450000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     11460000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      11470000
                                            THEN 'OK'                   11480000
                                            ELSE 'NOK'                  11490000
                                       END                              11500000
                                  ELSE 'NOK'                            11510000
                             END                                        11520000
                   END                                                  11530000
                || ';'                                                  11540000
                || 'PrimaryQuantity='                                   11550000
                || CASE PRIQTY                                          11560000
                        WHEN -1 THEN 'OK'                               11570000
                        ELSE 'NOK'                                      11580000
                   END                                                  11590000
                || ';'                                                  11600000
                || 'SecondaryQuantity='                                 11610000
                || CASE SECQTY                                          11620000
                        WHEN -1 THEN 'OK'                               11630000
                        ELSE 'NOK'                                      11640000
                   END                                                  11650000
                || ';'                                                  11660000
                || 'Define='                                            11670000
                || CASE DEFINE                                          11680000
                        WHEN -1 THEN 'NOK'                              11690000
                        ELSE 'OK'                                       11700000
                   END                                                  11710000
                || ';'                                                  11720000
                || 'FreePage'                                           11730000
                || CASE FREEPAGE                                        11740000
                        WHEN 0 THEN '=OK'                               11750000
                        ELSE '=NOK'                                     11760000
                   END                                                  11770000
                || ';'                                                  11780000
                || 'PctFree'                                            11790000
                || CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'               11800000
                        THEN '_Metadata=OK'                             11810000
                        ELSE                                            11820000
                             CASE WHEN IXTECHBUSINESS > 0               11830000
                                  THEN CASE PCTFREE                     11840000
                                          WHEN 0 THEN '_Technical=OK'   11850000
                                          ELSE '_Technical=NOK'         11860000
                                       END                              11870000
                                  ELSE CASE PCTFREE                     11880000
                                          WHEN 10 THEN '_Business=OK'   11890000
                                          ELSE '_Business=NOK'          11900000
                                       END                              11910000
                             END                                        11920000
                   END                                                  11930000
                || ';'                                                  11940000
                || 'Copy='                                              11950000
                || CASE COPY                                            11960000
                        WHEN 'N' THEN 'OK'                              11970000
                        ELSE 'NOK'                                      11980000
                   END                                                  11990000
                 , CREATEDTS                                            12000000
              FROM IXDDL                                                12010000
           )                                                            12020000
SELECT GENERATE_UNIQUE()                                                12030000
     , '4Indexspace Option Check'                                       12040000
     , FAMILY                                                           12050000
     , COMMENT                                                          12060000
     , OBJECT                                                           12070000
     , OPTVALUE                                                         12080000
     , CREATEDTS                                                        12090000
  FROM RXS                                                              12100000
 ORDER BY FAMILY                                                        12110000
        , OBJECT                                                        12120000
;                                                                       12130000
INSERT INTO SESSION.TEMP                                                12140000
WITH IXTYPE_FAILURE   ( INDEXTYPE                                       12150000
                      )                                                 12160000
       AS     ( SELECT 'C'                                              12170000
                  FROM SYSIBM.SYSDUMMY1                                 12180000
                UNION  ALL                                              12190000
                SELECT 'N'                                              12200000
                  FROM SYSIBM.SYSDUMMY1                                 12210000
                UNION  ALL                                              12220000
                SELECT 'R'                                              12230000
                  FROM SYSIBM.SYSDUMMY1                                 12240000
                UNION  ALL                                              12250000
                SELECT 'G'                                              12260000
                  FROM SYSIBM.SYSDUMMY1                                 12270000
                UNION  ALL                                              12280000
                SELECT 'X'                                              12290000
                  FROM SYSIBM.SYSDUMMY1                                 12300000
              )                                                         12310000
   , IXTYPE_UNIQUE ( INDEXTYPE                                          12320000
                   )                                                    12330000
       AS     ( SELECT 'P'                                              12340000
                  FROM SYSIBM.SYSDUMMY1                                 12350000
                UNION ALL                                               12360000
                SELECT 'U'                                              12370000
                  FROM SYSIBM.SYSDUMMY1                                 12380000
              )                                                         12390000
   , IXTYPE   ( INDEXTYPE                                               12400000
              )                                                         12410000
       AS     ( SELECT 'C'                                              12420000
                  FROM SYSIBM.SYSDUMMY1                                 12430000
                UNION  ALL                                              12440000
                SELECT 'D'                                              12450000
                  FROM SYSIBM.SYSDUMMY1                                 12460000
                UNION  ALL                                              12470000
                SELECT 'U'                                              12480000
                  FROM SYSIBM.SYSDUMMY1                                 12490000
                UNION  ALL                                              12500000
                SELECT 'P'                                              12510000
                  FROM SYSIBM.SYSDUMMY1                                 12520000
                UNION  ALL                                              12530000
                SELECT 'N'                                              12540000
                  FROM SYSIBM.SYSDUMMY1                                 12550000
                UNION  ALL                                              12560000
                SELECT 'R'                                              12570000
                  FROM SYSIBM.SYSDUMMY1                                 12580000
                UNION  ALL                                              12590000
                SELECT 'G'                                              12600000
                  FROM SYSIBM.SYSDUMMY1                                 12610000
                UNION  ALL                                              12620000
                SELECT 'X'                                              12630000
                  FROM SYSIBM.SYSDUMMY1                                 12640000
              )                                                         12650000
   , IXLST (  FAMILY                                                    12660000
            , DATABASE                                                  12670000
            , TBNAME                                                    12680000
            , IXNAME                                                    12690000
            , IXCREATOR                                                 12700000
            , ELAR_TYPE                                                 12710000
            , ELAR_ORDER                                                12720000
            , UNIQUERULE                                                12730000
            , CLUSTERING                                                12740000
            , MAXCOL                                                    12750000
            , EN1PART                                                   12760000
            , EA1ATRN                                                   12770000
            , EA1STRN                                                   12780000
            , EN1STK1                                                   12790000
            , EN1STK2                                                   12800000
            , EATRNVON                                                  12810000
            , EATRNBIS                                                  12820000
            , COMMENT                                                   12830000
            , CREATEDTS                                                 12840000
           )                                                            12850000
        AS (SELECT DISTINCT                                             12860000
                   EL.FAMILY                                            12870000
                 , DB.NAME                                              12880000
                 , TB.NAME                                              12890000
                 , IFNULL(IX.NAME,'NOK')                                12900000
                 , IX.CREATOR                                           12910000
                 , CAST(CASE SUBSTR(TB.NAME,9,2)                        12920000
                             WHEN 'HS' THEN 'SIGNATUR'                  12930000
                             WHEN 'IT' THEN 'BODY    '                  12940000
                             WHEN 'PM' THEN 'MULTIPLE'                  12950000
                             ELSE CASE SUBSTR(TB.NAME,9,5)              12960000
                                       WHEN 'PS001' THEN 'AOP     '     12970000
                                       WHEN 'PS002' THEN 'SEP     '     12980000
                                       WHEN 'PS003' THEN 'SEP_2   '     12990000
                                       ELSE '??????? '                  13000000
                                  END                                   13010000
                        END                                             13020000
                        AS CHAR(08)                                     13030000
                       )                                                13040000
                 , CAST(CASE SUBSTR(TB.NAME,9,2)                        13050000
                             WHEN 'HS' THEN '6'                         13060000
                             WHEN 'IT' THEN '4'                         13070000
                             WHEN 'PM' THEN '5'                         13080000
                             ELSE CASE SUBSTR(TB.NAME,9,5)              13090000
                                       WHEN 'PS001' THEN '1'            13100000
                                       WHEN 'PS002' THEN '2'            13110000
                                       WHEN 'PS003' THEN '3'            13120000
                                       ELSE '7'                         13130000
                                  END                                   13140000
                        END                                             13150000
                        AS CHAR(01)                                     13160000
                       )                                                13170000
                 , IFNULL(IX.UNIQUERULE,'NOK') AS UNIQUERULE            13180000
                 , IFNULL(IX.CLUSTERING,'NOK') AS CLUSTERING            13190000
                 , (SELECT COUNT(*)                                     13200000
                      FROM SYSIBM.SYSKEYS SK                            13210000
                     WHERE IX.NAME    = SK.IXNAME                       13220000
                       AND IX.CREATOR = SK.IXCREATOR                    13230000
                   ) AS MAXCOL                                          13240000
                 , IFNULL((SELECT SK.COLSEQ                             13250000
                             FROM SYSIBM.SYSKEYS SK                     13260000
                            WHERE IX.NAME    = SK.IXNAME                13270000
                              AND IX.CREATOR = SK.IXCREATOR             13280000
                              AND SK.COLNAME = 'EN1PART'                13290000
                          ), -1) AS EN1PART                             13300000
                 , IFNULL((SELECT SK.COLSEQ                             13310000
                             FROM SYSIBM.SYSKEYS SK                     13320000
                            WHERE IX.NAME    = SK.IXNAME                13330000
                              AND IX.CREATOR = SK.IXCREATOR             13340000
                              AND SK.COLNAME = 'EA1ATRN'                13350000
                          ), -1) AS EA1ATRN                             13360000
                 , IFNULL((SELECT SK.COLSEQ                             13370000
                             FROM SYSIBM.SYSKEYS SK                     13380000
                            WHERE IX.NAME    = SK.IXNAME                13390000
                              AND IX.CREATOR = SK.IXCREATOR             13400000
                              AND SK.COLNAME = 'EA1STRN'                13410000
                          ), -1) AS EA1STRN                             13420000
                 , IFNULL((SELECT SK.COLSEQ                             13430000
                             FROM SYSIBM.SYSKEYS SK                     13440000
                            WHERE IX.NAME    = SK.IXNAME                13450000
                              AND IX.CREATOR = SK.IXCREATOR             13460000
                              AND SK.COLNAME = 'EN1STK1'                13470000
                          ), -1) AS EN1STK1                             13480000
                 , IFNULL((SELECT SK.COLSEQ                             13490000
                             FROM SYSIBM.SYSKEYS SK                     13500000
                            WHERE IX.NAME    = SK.IXNAME                13510000
                              AND IX.CREATOR = SK.IXCREATOR             13520000
                              AND SK.COLNAME = 'EN1STK2'                13530000
                          ), -1) AS EN1STK2                             13540000
                 , IFNULL((SELECT SK.COLSEQ                             13550000
                             FROM SYSIBM.SYSKEYS SK                     13560000
                            WHERE IX.NAME    = SK.IXNAME                13570000
                              AND IX.CREATOR = SK.IXCREATOR             13580000
                              AND SK.COLNAME = 'EATRNVON'               13590000
                          ), -1) AS EATRNVON                            13600000
                 , IFNULL((SELECT SK.COLSEQ                             13610000
                             FROM SYSIBM.SYSKEYS SK                     13620000
                            WHERE IX.NAME    = SK.IXNAME                13630000
                              AND IX.CREATOR = SK.IXCREATOR             13640000
                              AND SK.COLNAME = 'EATRNBIS'               13650000
                          ), -1) AS EATRNBIS                            13660000
                 , EL.COMMENT                                           13670000
                 , IFNULL(IX.CREATEDTS, '0001-01-01-00.00.00.000000')   13680000
--- ProblemProblem                                                      13690000
              FROM            SESSION.ELAR         EL                   13700000
             INNER       JOIN SYSIBM.SYSDATABASE   DB                   13710000
                           ON EL.STORAR = DB.NAME                       13720000
             INNER       JOIN SYSIBM.SYSTABLES     TB                   13730000
                           ON TB.DBNAME = DB.NAME                       13740000
                          AND TB.TYPE   = 'T'                           13750000
             INNER       JOIN SYSIBM.SYSTABLESPACE TS                   13760000
                           ON TB.TSNAME = TS.NAME                       13770000
                          AND TB.DBID   = TS.DBID                       13780000
                          AND TS.DBID   = DB.DBID                       13790000
              LEFT OUTER JOIN SYSIBM.SYSINDEXES    IX                   13800000
                           ON IX.TBNAME = TB.NAME                       13810000
              LEFT OUTER JOIN IXTYPE               TY                   13820000
                           ON IX.INDEXTYPE = TY.INDEXTYPE               13830000
             WHERE    DATE(DB.CREATEDTS)                                13840000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE  )      13850000
               AND    DATE(DB.CREATEDTS)                                13860000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE  )      13870000
               AND    DATE(TB.CREATEDTS)                                13880000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE  )      13890000
               AND    DATE(TB.CREATEDTS)                                13900000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE  )      13910000
               AND    DATE(TS.CREATEDTS)                                13920000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE  )      13930000
               AND    DATE(TS.CREATEDTS)                                13940000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE  )      13950000
               AND    DATE(IX.CREATEDTS)                                13960000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE  )      13970000
               AND    DATE(IX.CREATEDTS)                                13980000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE  )      13990000
           )                                                            14000000
   , RXI   (  FAMILY                                                    14010000
            , COMMENT                                                   14020000
            , OBJECT                                                    14030000
            , OPTVALUE                                                  14040000
            , CREATEDTS                                                 14050000
           )                                                            14060000
        AS (SELECT FAMILY                                               14070000
                 , COMMENT                                              14080000
                 , CAST(DATABASE AS CHAR(08))                           14090000
                || ' '                                                  14100000
                || TBNAME                                               14110000
                || ' '                                                  14120000
                 , 'No'                                                 14130000
                || ' '                                                  14140000
                || 'Index'                                              14150000
                || ' '                                                  14160000
                || 'exists=NOK'                                         14170000
                || ';'                                                  14180000
                 , CREATEDTS                                            14190000
              FROM IXLST                                                14200000
             WHERE UNIQUERULE = 'NOK'                                   14210000
            UNION  ALL                                                  14220000
            SELECT FAMILY                                               14230000
                 , COMMENT                                              14240000
                 , CAST(DATABASE AS CHAR(08))                           14250000
                || ' '                                                  14260000
                || IXNAME                                               14270000
                || ' '                                                  14280000
                || TBNAME                                               14290000
                || ' '                                                  14300000
                || 'IndexType_Failure'                                  14310000
                 , 'IndexType_Failure=NOK'                              14320000
                || ';'                                                  14330000
                 , CREATEDTS                                            14340000
              FROM IXLST                                                14350000
             WHERE UNIQUERULE IN (SELECT INDEXTYPE                      14360000
                                    FROM IXTYPE_FAILURE                 14370000
                                 )                                      14380000
            UNION  ALL                                                  14390000
            SELECT FAMILY                                               14400000
                 , COMMENT                                              14410000
                 , CAST(DATABASE AS CHAR(08))                           14420000
                || ' '                                                  14430000
                || IXNAME                                               14440000
                || ' '                                                  14450000
                || TBNAME                                               14460000
                || ' '                                                  14470000
                || 'IndexRule=Unique'                                   14480000
                 , 'EN1PART_MIS='                                       14490000
                || CASE WHEN EN1PART = -1                               14500000
                        THEN 'NOK'                                      14510000
                        ELSE 'OK'                                       14520000
                   END                                                  14530000
                || ';'                                                  14540000
                || 'EN1PART_WPOS='                                      14550000
                || CASE WHEN EN1PART = 2                                14560000
                        THEN 'OK'                                       14570000
                        ELSE 'NOK'                                      14580000
                   END                                                  14590000
                || ';'                                                  14600000
                || 'EA1ARTN_MIS='                                       14610000
                || CASE WHEN EA1ATRN = -1                               14620000
                        THEN 'NOK'                                      14630000
                        ELSE 'OK'                                       14640000
                   END                                                  14650000
                || ';'                                                  14660000
                || 'EA1ARTN_WPOS='                                      14670000
                || CASE WHEN EA1ATRN = 1                                14680000
                        THEN 'OK'                                       14690000
                        ELSE 'NOK'                                      14700000
                   END                                                  14710000
                || ';'                                                  14720000
                || 'CLUSTER_DEF='                                       14730000
                || CASE CLUSTERING                                      14740000
                        WHEN 'Y' THEN 'OK'                              14750000
                        ELSE 'NOK'                                      14760000
                   END                                                  14770000
                || ';'                                                  14780000
                || 'TooManyCols='                                       14790000
                || CASE MAXCOL                                          14800000
                        WHEN 2 THEN 'OK'                                14810000
                        ELSE 'NOK'                                      14820000
                   END                                                  14830000
                || ';'                                                  14840000
                 , CREATEDTS                                            14850000
              FROM IXLST                                                14860000
             WHERE ELAR_TYPE = 'AOP'                                    14870000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      14880000
                                    FROM IXTYPE_UNIQUE                  14890000
                                 )                                      14900000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          14910000
             UNION ALL                                                  14920000
            SELECT FAMILY                                               14930000
                 , COMMENT                                              14940000
                 , CAST(DATABASE AS CHAR(08))                           14950000
                || ' '                                                  14960000
                || IXNAME                                               14970000
                || ' '                                                  14980000
                || TBNAME                                               14990000
                || ' '                                                  15000000
                || 'IndexRule=Unique'                                   15010000
                 , 'EN1PART_MIS='                                       15020000
                || CASE WHEN EN1PART = -1                               15030000
                        THEN 'NOK'                                      15040000
                        ELSE 'OK'                                       15050000
                   END                                                  15060000
                || ';'                                                  15070000
                || 'EA1STRN_MIS='                                       15080000
                || CASE WHEN EA1STRN = -1                               15090000
                        THEN 'NOK'                                      15100000
                        ELSE 'OK'                                       15110000
                   END                                                  15120000
                || ';'                                                  15130000
                || 'EN1PART_WPOS='                                      15140000
                || CASE WHEN EN1PART = 2                                15150000
                        THEN 'OK'                                       15160000
                        ELSE 'NOK'                                      15170000
                   END                                                  15180000
                || ';'                                                  15190000
                || 'EA1STRN_WPOS='                                      15200000
                || CASE WHEN EA1STRN = 1                                15210000
                        THEN 'OK'                                       15220000
                        ELSE 'NOK'                                      15230000
                   END                                                  15240000
                || ';'                                                  15250000
                || 'CLUSTER_DEF='                                       15260000
                || CASE CLUSTERING                                      15270000
                        WHEN 'Y' THEN 'OK'                              15280000
                        ELSE 'NOK'                                      15290000
                   END                                                  15300000
                || ';'                                                  15310000
                || 'TooManyCols='                                       15320000
                || CASE MAXCOL                                          15330000
                        WHEN 2 THEN 'OK'                                15340000
                        ELSE 'NOK'                                      15350000
                   END                                                  15360000
                || ';'                                                  15370000
                 , CREATEDTS                                            15380000
              FROM IXLST                                                15390000
             WHERE ELAR_TYPE IN ('SEP', 'SEP_2')                        15400000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      15410000
                                    FROM IXTYPE_UNIQUE                  15420000
                                 )                                      15430000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          15440000
            UNION  ALL                                                  15450000
            SELECT FAMILY                                               15460000
                 , COMMENT                                              15470000
                 , CAST(DATABASE AS CHAR(08))                           15480000
                || ' '                                                  15490000
                || IXNAME                                               15500000
                || ' '                                                  15510000
                || TBNAME                                               15520000
                || ' '                                                  15530000
                || 'IndexRule=Unique'                                   15540000
                 , 'EN1PART_MIS='                                       15550000
                || CASE WHEN EN1PART = -1                               15560000
                        THEN 'NOK'                                      15570000
                        ELSE 'OK'                                       15580000
                   END                                                  15590000
                || ';'                                                  15600000
                || 'EA1STRN_MIS='                                       15610000
                || CASE WHEN EA1STRN = -1                               15620000
                        THEN 'NOK'                                      15630000
                        ELSE 'OK'                                       15640000
                   END                                                  15650000
                || ';'                                                  15660000
                || 'EN1STK1_MIS='                                       15670000
                || CASE WHEN EN1STK1 = -1                               15680000
                        THEN 'NOK'                                      15690000
                        ELSE 'OK'                                       15700000
                   END                                                  15710000
                || ';'                                                  15720000
                || 'EN1STK2_MIS='                                       15730000
                || CASE WHEN EN1STK2 = -1                               15740000
                        THEN 'NOK'                                      15750000
                        ELSE 'OK'                                       15760000
                   END                                                  15770000
                || ';'                                                  15780000
                || 'EN1PART_WPOS='                                      15790000
                || CASE WHEN EN1PART = 4                                15800000
                        THEN 'OK'                                       15810000
                        ELSE 'NOK'                                      15820000
                   END                                                  15830000
                || ';'                                                  15840000
                || 'EA1STRN_WPOS='                                      15850000
                || CASE WHEN EA1STRN = 1                                15860000
                        THEN 'OK'                                       15870000
                        ELSE 'NOK'                                      15880000
                   END                                                  15890000
                || ';'                                                  15900000
                || 'EN1STK1_WPOS='                                      15910000
                || CASE WHEN EN1STK1 = 2                                15920000
                        THEN 'OK'                                       15930000
                        ELSE 'NOK'                                      15940000
                   END                                                  15950000
                || ';'                                                  15960000
                || 'EN1STK2_WPOS='                                      15970000
                || CASE WHEN EN1STK2 = 3                                15980000
                        THEN 'OK'                                       15990000
                        ELSE 'NOK'                                      16000000
                   END                                                  16010000
                || ';'                                                  16020000
                || 'CLUSTER_DEF='                                       16030000
                || CASE CLUSTERING                                      16040000
                        WHEN 'Y' THEN 'OK'                              16050000
                        ELSE 'NOK'                                      16060000
                   END                                                  16070000
                || ';'                                                  16080000
                || 'TooManyCols='                                       16090000
                || CASE MAXCOL                                          16100000
                        WHEN 4 THEN 'OK'                                16110000
                        ELSE 'NOK'                                      16120000
                   END                                                  16130000
                || ';'                                                  16140000
                 , CREATEDTS                                            16150000
              FROM IXLST                                                16160000
             WHERE ELAR_TYPE = 'BODY'                                   16170000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      16180000
                                    FROM IXTYPE_UNIQUE                  16190000
                                 )                                      16200000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          16210000
            UNION  ALL                                                  16220000
            SELECT FAMILY                                               16230000
                 , COMMENT                                              16240000
                 , CAST(DATABASE AS CHAR(08))                           16250000
                || ' '                                                  16260000
                || IXNAME                                               16270000
                || ' '                                                  16280000
                || TBNAME                                               16290000
                || ' '                                                  16300000
                || 'IndexRule=Unique'                                   16310000
                 , 'EN1PART_MIS='                                       16320000
                || CASE WHEN EN1PART = -1                               16330000
                        THEN 'NOK'                                      16340000
                        ELSE 'OK'                                       16350000
                   END                                                  16360000
                || ';'                                                  16370000
                || 'EA1ATRN_MIS='                                       16380000
                || CASE WHEN EA1ATRN = -1                               16390000
                        THEN 'NOK'                                      16400000
                        ELSE 'OK'                                       16410000
                   END                                                  16420000
                || ';'                                                  16430000
                || 'EN1PART_WPOS='                                      16440000
                || CASE WHEN EN1PART = 2                                16450000
                        THEN 'OK'                                       16460000
                        ELSE 'NOK'                                      16470000
                   END                                                  16480000
                || ';'                                                  16490000
                || 'EA1ATRN_MIS='                                       16500000
                || CASE WHEN EA1ATRN = 1                                16510000
                        THEN 'OK'                                       16520000
                        ELSE 'NOK'                                      16530000
                   END                                                  16540000
                || ';'                                                  16550000
                || 'CLUSTER_DEF='                                       16560000
                || CASE CLUSTERING                                      16570000
                        WHEN 'N' THEN 'OK'                              16580000
                        ELSE 'NOK'                                      16590000
                   END                                                  16600000
                || ';'                                                  16610000
                || 'TooManyCols='                                       16620000
                || CASE MAXCOL                                          16630000
                        WHEN 2 THEN 'OK'                                16640000
                        ELSE 'NOK'                                      16650000
                   END                                                  16660000
                || ';'                                                  16670000
                 , CREATEDTS                                            16680000
              FROM IXLST                                                16690000
             WHERE ELAR_TYPE = 'MULTIPLE'                               16700000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      16710000
                                    FROM IXTYPE_UNIQUE                  16720000
                                 )                                      16730000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          16740000
            UNION  ALL                                                  16750000
            SELECT FAMILY                                               16760000
                 , COMMENT                                              16770000
                 , CAST(DATABASE AS CHAR(08))                           16780000
                || ' '                                                  16790000
                || IXNAME                                               16800000
                || ' '                                                  16810000
                || TBNAME                                               16820000
                || ' '                                                  16830000
                || 'IndexRule=Unique'                                   16840000
                 , 'EN1PART_MIS='                                       16850000
                || CASE WHEN EN1PART = -1                               16860000
                        THEN 'NOK'                                      16870000
                        ELSE 'OK'                                       16880000
                   END                                                  16890000
                || ';'                                                  16900000
                || 'EATRNVON_MIS='                                      16910000
                || CASE WHEN EATRNVON = -1                              16920000
                        THEN 'NOK'                                      16930000
                        ELSE 'OK'                                       16940000
                   END                                                  16950000
                || ';'                                                  16960000
                || 'EATRNBIS_MIS='                                      16970000
                || CASE WHEN EATRNBIS = -1                              16980000
                        THEN 'NOK'                                      16990000
                        ELSE 'OK'                                       17000000
                   END                                                  17010000
                || ';'                                                  17020000
                || 'EN1PART_WPOS='                                      17030000
                || CASE WHEN EN1PART = 3                                17040000
                        THEN 'OK'                                       17050000
                        ELSE 'NOK'                                      17060000
                   END                                                  17070000
                || ';'                                                  17080000
                || 'EATRNVON_WPOS='                                     17090000
                || CASE WHEN EATRNVON = 1                               17100000
                        THEN 'OK'                                       17110000
                        ELSE 'NOK'                                      17120000
                   END                                                  17130000
                || ';'                                                  17140000
                || 'EATRNBIS_MIS='                                      17150000
                || CASE WHEN EATRNBIS = 2                               17160000
                        THEN 'OK'                                       17170000
                        ELSE 'NOK'                                      17180000
                   END                                                  17190000
                || ';'                                                  17200000
                || 'TooManyCols='                                       17210000
                || CASE MAXCOL                                          17220000
                        WHEN 3 THEN 'OK'                                17230000
                        ELSE 'NOK'                                      17240000
                   END                                                  17250000
                || ';'                                                  17260000
                || 'CLUSTER_DEF='                                       17270000
                || CASE CLUSTERING                                      17280000
                        WHEN 'N' THEN 'OK'                              17290000
                        ELSE 'NOK'                                      17300000
                   END                                                  17310000
                || ';'                                                  17320000
                 , CREATEDTS                                            17330000
              FROM IXLST                                                17340000
             WHERE ELAR_TYPE = 'SIGNATUR'                               17350000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      17360000
                                    FROM IXTYPE_UNIQUE                  17370000
                                 )                                      17380000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          17390000
            UNION  ALL                                                  17400000
            SELECT FAMILY                                               17410000
                 , COMMENT                                              17420000
                 , CAST(DATABASE AS CHAR(08))                           17430000
                || ' '                                                  17440000
                || IXNAME                                               17450000
                || ' '                                                  17460000
                || TBNAME                                               17470000
                || ' '                                                  17480000
                || 'IndexRule=Duplicate'                                17490000
                 , 'EN1PART_FAIL='                                      17500000
                || CASE WHEN EN1PART > -1                               17510000
                        THEN 'NOK'                                      17520000
                        ELSE 'OK'                                       17530000
                   END                                                  17540000
                || ';'                                                  17550000
                || 'EA1ATRN_MIS='                                       17560000
                || CASE WHEN EA1ATRN = -1                               17570000
                        THEN 'NOK'                                      17580000
                        ELSE 'OK'                                       17590000
                   END                                                  17600000
                || ';'                                                  17610000
                || 'EA1ATRN_WPOS='                                      17620000
                || CASE WHEN EA1ATRN = 1                                17630000
                        THEN 'NOK'                                      17640000
                        ELSE 'OK'                                       17650000
                   END                                                  17660000
                || ';'                                                  17670000
                || 'TooManyCols='                                       17680000
                || CASE MAXCOL                                          17690000
                        WHEN 1 THEN 'OK'                                17700000
                        ELSE 'NOK'                                      17710000
                   END                                                  17720000
                || ';'                                                  17730000
                || 'CLUSTER_DEF='                                       17740000
                || CASE CLUSTERING                                      17750000
                        WHEN 'Y' THEN 'OK'                              17760000
                        ELSE 'NOK'                                      17770000
                   END                                                  17780000
                || ';'                                                  17790000
                 , CREATEDTS                                            17800000
              FROM IXLST                                                17810000
             WHERE ELAR_TYPE = 'MULTIPLE'                               17820000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      17830000
                                    FROM IXTYPE_UNIQUE                  17840000
                                 )                                      17850000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          17860000
            UNION  ALL                                                  17870000
            SELECT FAMILY                                               17880000
                 , COMMENT                                              17890000
                 , CAST(DATABASE AS CHAR(08))                           17900000
                || ' '                                                  17910000
                || IXNAME                                               17920000
                || ' '                                                  17930000
                || TBNAME                                               17940000
                || ' '                                                  17950000
                || 'IndexRule=Duplicate'                                17960000
                 , 'EN1PART_FIAL='                                      17970000
                || CASE WHEN EN1PART > -1                               17980000
                        THEN 'NOK'                                      17990000
                        ELSE 'OK'                                       18000000
                   END                                                  18010000
                || ';'                                                  18020000
                || 'EATRNVON_MIS='                                      18030000
                || CASE WHEN EATRNVON = -1                              18040000
                        THEN 'NOK'                                      18050000
                        ELSE 'OK'                                       18060000
                   END                                                  18070000
                || ';'                                                  18080000
                || 'EATRNBIS_MIS='                                      18090000
                || CASE WHEN EATRNBIS = -1                              18100000
                        THEN 'NOK'                                      18110000
                        ELSE 'OK'                                       18120000
                   END                                                  18130000
                || ';'                                                  18140000
                || 'EATRNVON_WPOS='                                     18150000
                || CASE WHEN EATRNVON = 1                               18160000
                        THEN 'OK'                                       18170000
                        ELSE 'NOK'                                      18180000
                   END                                                  18190000
                || ';'                                                  18200000
                || 'EATRNBIS_MIS='                                      18210000
                || CASE WHEN EATRNBIS = 2                               18220000
                        THEN 'OK'                                       18230000
                        ELSE 'NOK'                                      18240000
                   END                                                  18250000
                || ';'                                                  18260000
                || 'TooManyCols='                                       18270000
                || CASE MAXCOL                                          18280000
                        WHEN 2 THEN 'OK'                                18290000
                        ELSE 'NOK'                                      18300000
                   END                                                  18310000
                || ';'                                                  18320000
                || 'CLUSTER_DEF='                                       18330000
                || CASE CLUSTERING                                      18340000
                        WHEN 'Y' THEN 'OK'                              18350000
                        ELSE 'NOK'                                      18360000
                   END                                                  18370000
                || ';'                                                  18380000
                 , CREATEDTS                                            18390000
              FROM IXLST                                                18400000
             WHERE ELAR_TYPE = 'SIGNATUR'                               18410000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      18420000
                                    FROM IXTYPE_UNIQUE                  18430000
                                 )                                      18440000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          18450000
            UNION  ALL                                                  18460000
            SELECT FAMILY                                               18470000
                 , COMMENT                                              18480000
                 , CAST(DATABASE AS CHAR(08))                           18490000
                || ' '                                                  18500000
                || IXNAME                                               18510000
                || ' '                                                  18520000
                || TBNAME                                               18530000
                || ' '                                                  18540000
                || 'IndexRule=Unknown'                                  18550000
                 , 'Index_Rule=NOK;'                                    18560000
                 , CREATEDTS                                            18570000
              FROM IXLST                                                18580000
             WHERE ELAR_TYPE = 'unknown '                               18590000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          18600000
           )                                                            18610000
SELECT GENERATE_UNIQUE()                                                18620000
     , '5Index Option Check'                                            18630000
     , FAMILY                                                           18640000
     , COMMENT                                                          18650000
     , OBJECT                                                           18660000
     , OPTVALUE                                                         18670000
     , CREATEDTS                                                        18680000
  FROM RXI                                                              18690000
 ORDER BY FAMILY                                                        18700000
        , OBJECT                                                        18710000
;                                                                       18720000
INSERT INTO SESSION.TEMP                                                18730000
SELECT GENERATE_UNIQUE()                                                18740000
     , '6ELAR meta data mismatch'                                       18750000
     , FAMILY                                                           18760000
     , ' '                                                              18770000
     , FAMILY                                                           18780000
     , 'NoDatabaseExists=NOK;'                                          18790000
     , '0001-01-01-00.00.00.000000'                                     18800000
  FROM SESSION.FAMLISTE                                                 18810000
 WHERE STORAR_N IS NULL                                                 18820000
   AND ENSEG_N  IS NULL                                                 18830000
   AND SUBSTR(DBNAME,1,3) <> 'DXB'                                      18840000
   AND SUBSTR(FAMILY,1,1) <> '?'                                        18850000
UNION  ALL                                                              18860000
SELECT GENERATE_UNIQUE()                                                18870000
     , '7ELAR meta data mismatch'                                       18880000
     , DBNAME                                                           18890000
     , ' '                                                              18900000
     , DBNAME                                                           18910000
     , 'DatabaseNoFamily=NOK;'                                          18920000
     , '0001-01-01-00.00.00.000000'                                     18930000
  FROM SESSION.FAMLISTE                                                 18940000
 WHERE DBNAME NOT IN (SELECT STORAR                                     18950000
                        FROM SESSION.ELAR                               18960000
                     )                                                  18970000
   AND SUBSTR(DBNAME,1,1) <> '?'                                        18980000
;                                                                       18990000
DECLARE GLOBAL TEMPORARY TABLE PARMVALUE                                19000000
               (  OPTION       CHAR(025)                                19010000
                , VALUE        CHAR(120)                                19020000
                , SUBORD       INTEGER                                  19030000
               )                                                        19040000
;                                                                       19050000
INSERT   INTO SESSION.PARMVALUE                                         19060000
       VALUES (  'InfoTCP'                                              19070000
               , 'Info: Table Controlled Partition'                     19080000
               , 0                                                      19090000
              )                                                         19100000
;                                                                       19110000
INSERT   INTO SESSION.PARMVALUE                                         19120000
       VALUES (  'NPI'                                                  19130000
               , 'on partitioned Object (table/Index) '                 19140000
                 || 'not allowed'                                       19150000
               , 0                                                      19160000
              )                                                         19170000
;                                                                       19180000
INSERT   INTO SESSION.PARMVALUE                                         19190000
       VALUES (  'InfoTSS'                                              19200000
               , 'Info: Segmented or Simple Table'                      19210000
               , 0                                                      19220000
              )                                                         19230000
;                                                                       19240000
INSERT   INTO SESSION.PARMVALUE                                         19250000
       VALUES (  'InfoICP'                                              19260000
               , 'Info: Index Controlled Partition'                     19270000
               , 0                                                      19280000
              )                                                         19290000
;                                                                       19300000
INSERT   INTO SESSION.PARMVALUE                                         19310000
       VALUES (  'InfoNPI'                                              19320000
               , 'Info: Non partitioned Index'                          19330000
               , 0                                                      19340000
              )                                                         19350000
;                                                                       19360000
INSERT   INTO SESSION.PARMVALUE                                         19370000
       VALUES (  'StorageGroup'                                         19380000
               , 'GSMS1, GSMS2, GSMS3 or GSMS4 for XB Databases '       19390000
                 || 'GSMS for ELAR Metadata allowed'                    19400000
               , 3                                                      19410000
              )                                                         19420000
;                                                                       19430000
INSERT   INTO SESSION.PARMVALUE                                         19440000
       VALUES (  'Bufferpool_DB'                                        19450000
                 ,'BP2 allowed on Datasbase definition level'           19460000
                 , 0                                                    19470000
              )                                                         19480000
;                                                                       19490000
INSERT   INTO SESSION.PARMVALUE                                         19500000
       VALUES (  'Bufferpool_DB_IX'                                     19510000
                 ,'BP1 allowed on Datasbase definition level'           19520000
                 , 1                                                    19530000
              )                                                         19540000
;                                                                       19550000
INSERT   INTO SESSION.PARMVALUE                                         19560000
       VALUES (  'Bufferpool_TS'                                        19570000
                 ,'Only BP2, BP8 and BP32K allowed for Tablespaces'     19580000
                 , 2                                                    19590000
              )                                                         19600000
;                                                                       19610000
INSERT   INTO SESSION.PARMVALUE                                         19620000
       VALUES (  'Bufferpool_FHS'                                       19630000
                 ,  'Signature table space need table space with '      19640000
                  ||'BP32K buffer pool assignment '                     19650000
                 , 2                                                    19660000
              )                                                         19670000
;                                                                       19680000
INSERT   INTO SESSION.PARMVALUE                                         19690000
       VALUES (  'Bufferpool_FTB'                                       19700000
                 ,  'Non signature table use bufferpool BP32K '         19710000
                  ||'these bufferpool only allowed for signature tables'19720000
                 , 2                                                    19730000
              )                                                         19740000
;                                                                       19750000
INSERT   INTO SESSION.PARMVALUE                                         19760000
       VALUES (  'Bufferpool_LOB'                                       19770000
                 ,'Only BP8 for LOB Tablespaces allowed'                19780000
                 , 2                                                    19790000
              )                                                         19800000
;                                                                       19810000
INSERT   INTO SESSION.PARMVALUE                                         19820000
       VALUES (  'IndexBufferpool', 'BP1'                               19830000
               , 3                                                      19840000
              )                                                         19850000
;                                                                       19860000
INSERT   INTO SESSION.PARMVALUE                                         19870000
       VALUES (  'EncodingScheme', 'EBCDIC'                             19880000
               , 4                                                      19890000
              )                                                         19900000
;                                                                       19910000
INSERT   INTO SESSION.PARMVALUE                                         19920000
       VALUES (  'Groupbufferpool', 'Changed'                           19930000
               , 5                                                      19940000
              )                                                         19950000
;                                                                       19960000
INSERT   INTO SESSION.PARMVALUE                                         19970000
       VALUES (  'LOB Bufferpool', 'BP8'                                19980000
               , 6                                                      19990000
              )                                                         20000000
;                                                                       20010000
INSERT   INTO SESSION.PARMVALUE                                         20020000
       VALUES (  'Trackmode', 'No', 10                                  20030000
              )                                                         20040000
;                                                                       20050000
INSERT   INTO SESSION.PARMVALUE                                         20060000
       VALUES (  'LoggedOption', 'Yes', 11                              20070000
              )                                                         20080000
;                                                                       20090000
INSERT   INTO SESSION.PARMVALUE                                         20100000
       VALUES (  'DSSIZE'                                               20110000
               , 'DSSIZE must be 16GB. No other values allowed'         20120000
               , 12                                                     20130000
              )                                                         20140000
;                                                                       20150000
INSERT   INTO SESSION.PARMVALUE                                         20160000
       VALUES (  'Locksize', 'Any', 13                                  20170000
              )                                                         20180000
;                                                                       20190000
INSERT   INTO SESSION.PARMVALUE                                         20200000
       VALUES (  'LockMax', 'System', 14                                20210000
              )                                                         20220000
;                                                                       20230000
INSERT   INTO SESSION.PARMVALUE                                         20240000
       VALUES (  'CloseOption', 'Yes', 17                               20250000
              )                                                         20260000
;                                                                       20270000
INSERT   INTO SESSION.PARMVALUE                                         20280000
       VALUES (  'TblCompressOption', 'Yes', 27                         20290000
              )                                                         20300000
;                                                                       20310000
INSERT   INTO SESSION.PARMVALUE                                         20320000
       VALUES (  'IdxCompressOption', 'No', 29                          20330000
              )                                                         20340000
;                                                                       20350000
INSERT   INTO SESSION.PARMVALUE                                         20360000
       VALUES (  'PrimaryQuantity', 'Only value -1 allowed'             20370000
               , 8                                                      20380000
              )                                                         20390000
;                                                                       20400000
INSERT   INTO SESSION.PARMVALUE                                         20410000
       VALUES (  'SecondaryQuantity', 'Only value -1 allowed'           20420000
               , 9                                                      20430000
              )                                                         20440000
;                                                                       20450000
INSERT   INTO SESSION.PARMVALUE                                         20460000
       VALUES (  'DefineOption', 'Yes', 23                              20470000
              )                                                         20480000
;                                                                       20490000
INSERT   INTO SESSION.PARMVALUE                                         20500000
       VALUES (  'MaxRowsPerPage', '255', 24                            20510000
              )                                                         20520000
;                                                                       20530000
INSERT   INTO SESSION.PARMVALUE                                         20540000
       VALUES (  'Audit', 'None', 18                                    20550000
              )                                                         20560000
;                                                                       20570000
INSERT   INTO SESSION.PARMVALUE                                         20580000
       VALUES (  'DataCapture', 'must be CHANGES', 19                   20590000
              )                                                         20600000
;                                                                       20610000
INSERT   INTO SESSION.PARMVALUE                                         20620000
       VALUES (  'RestrictOnDrop'                                       20630000
               , 'Missing Option With Restrict on Drop'                 20640000
               , 20                                                     20650000
              )                                                         20660000
;                                                                       20670000
INSERT   INTO SESSION.PARMVALUE                                         20680000
       VALUES (  'Volatile', 'correct value is Yes', 21                 20690000
              )                                                         20700000
;                                                                       20710000
INSERT   INTO SESSION.PARMVALUE                                         20720000
       VALUES (  'Append', 'Current value is not YES', 22               20730000
              )                                                         20740000
;                                                                       20750000
INSERT   INTO SESSION.PARMVALUE                                         20760000
       VALUES (  'PartKeyName', 'EN1PART', 30                           20770000
              )                                                         20780000
;                                                                       20790000
INSERT   INTO SESSION.PARMVALUE                                         20800000
       VALUES (  'PartKeyType', 'Integer', 31                           20810000
              )                                                         20820000
;                                                                       20830000
INSERT   INTO SESSION.PARMVALUE                                         20840000
       VALUES (  'PartKeyPosition', 'First Column of Table', 32         20850000
              )                                                         20860000
;                                                                       20870000
INSERT   INTO SESSION.PARMVALUE                                         20880000
       VALUES (  'EN1PART_MIS'                                          20890000
               , 'EN1PART missing in Index', 33                         20900000
              )                                                         20910000
;                                                                       20920000
INSERT   INTO SESSION.PARMVALUE                                         20930000
       VALUES (  'EA1ARTN_MIS'                                          20940000
               , 'EA1ATRN missing in Index', 33                         20950000
              )                                                         20960000
;                                                                       20970000
INSERT   INTO SESSION.PARMVALUE                                         20980000
       VALUES (  'EA1STRN_MIS'                                          20990000
               , 'EA1STRN missing in Index', 33                         21000000
              )                                                         21010000
;                                                                       21020000
INSERT   INTO SESSION.PARMVALUE                                         21030000
       VALUES (  'EN1STK1_MIS'                                          21040000
               , 'EN1STK1 missing in Index', 33                         21050000
              )                                                         21060000
;                                                                       21070000
INSERT   INTO SESSION.PARMVALUE                                         21080000
       VALUES (  'EN1STK2_MIS'                                          21090000
               , 'EN1STK2 missing in Index', 33                         21100000
              )                                                         21110000
;                                                                       21120000
INSERT   INTO SESSION.PARMVALUE                                         21130000
       VALUES (  'EATRNVON_MIS'                                         21140000
               , 'EATRNVON missing in Index', 33                        21150000
              )                                                         21160000
;                                                                       21170000
INSERT   INTO SESSION.PARMVALUE                                         21180000
       VALUES (  'EATRNBIS_MIS'                                         21190000
               , 'EATRNBIS missing in Index', 33                        21200000
              )                                                         21210000
;                                                                       21220000
INSERT   INTO SESSION.PARMVALUE                                         21230000
       VALUES (  'EN1PART_WPOS'                                         21240000
               , 'EN1PART wrong position in index', 33                  21250000
              )                                                         21260000
;                                                                       21270000
INSERT   INTO SESSION.PARMVALUE                                         21280000
       VALUES (  'EA1ARTN_WPOS'                                         21290000
               , 'EA1ATRN wrong position in index', 33                  21300000
              )                                                         21310000
;                                                                       21320000
INSERT   INTO SESSION.PARMVALUE                                         21330000
       VALUES (  'EA1STRN_WPOS'                                         21340000
               , 'EA1STRN wrong position in index', 33                  21350000
              )                                                         21360000
;                                                                       21370000
INSERT   INTO SESSION.PARMVALUE                                         21380000
       VALUES (  'EN1STK1_WPOS'                                         21390000
               , 'EN1STK1 wrong position in index', 33                  21400000
              )                                                         21410000
;                                                                       21420000
INSERT   INTO SESSION.PARMVALUE                                         21430000
       VALUES (  'EN1STK2_WPOS'                                         21440000
               , 'EN1STK2 wrong position in index', 33                  21450000
              )                                                         21460000
;                                                                       21470000
INSERT   INTO SESSION.PARMVALUE                                         21480000
       VALUES (  'EATRNVON_WPOS'                                        21490000
               , 'EATRNVO wrong position in index', 33                  21500000
              )                                                         21510000
;                                                                       21520000
INSERT   INTO SESSION.PARMVALUE                                         21530000
       VALUES (  'EATRNBIS_WPOS'                                        21540000
               , 'EATRNBIS wrong position in index', 33                 21550000
              )                                                         21560000
;                                                                       21570000
INSERT   INTO SESSION.PARMVALUE                                         21580000
       VALUES (  'EN1PART_FAIL'                                         21590000
               , 'EN1PART not allowed for the index', 34                21600000
              )                                                         21610000
;                                                                       21620000
INSERT   INTO SESSION.PARMVALUE                                         21630000
       VALUES (  'CLUSTER_DEF'                                          21640000
               , 'Cluster definition not allowed, wrong context', 35    21650000
              )                                                         21660000
;                                                                       21670000
INSERT   INTO SESSION.PARMVALUE                                         21680000
       VALUES (  'TooManyCols'                                          21690000
               , 'Number of key columns not correct. Number depends'    21700000
               ||'on ELAR table type'                                   21710000
               , 35                                                     21720000
              )                                                         21730000
;                                                                       21740000
INSERT   INTO SESSION.PARMVALUE                                         21750000
       VALUES (  'TablePartLimit', 'Partition limit exceeded (' ||      21760000
                                    (SELECT STRIP(CAST(MAXPART AS       21770000
                                                       CHAR(06)         21780000
                                                      )                 21790000
                                                 )                      21800000
                                       FROM SESSION.MAXPART             21810000
                                      WHERE PARTYPE = 'Table'           21820000
                                    ) || ' Partition allowed)'          21830000
               , 39                                                     21840000
              )                                                         21850000
;                                                                       21860000
INSERT   INTO SESSION.PARMVALUE                                         21870000
       VALUES (  'IndexPartLimit', 'Maximum of ' ||                     21880000
                                    (SELECT CAST(MAXPART AS CHAR(06))   21890000
                                       FROM SESSION.MAXPART             21900000
                                      WHERE PARTYPE = 'Index'           21910000
                                    ) || ' Partition exceeded '         21920000
               , 40                                                     21930000
              )                                                         21940000
;                                                                       21950000
INSERT   INTO SESSION.PARMVALUE                                         21960000
       VALUES (  'PartKeyValue(s)'                                      21970000
               , 'only natural Numbers and one value allowed'           21980000
               , 34                                                     21990000
              )                                                         22000000
;                                                                       22010000
INSERT   INTO SESSION.PARMVALUE                                         22020000
       VALUES (  'PartKeyColNum'                                        22030000
               , 'Wrong partitioning, use classic partitioning'         22040000
               , 35                                                     22050000
              )                                                         22060000
;                                                                       22070000
INSERT   INTO SESSION.PARMVALUE                                         22080000
       VALUES (  'Indextype'                                            22090000
               , 'Unique DPSI, when Primary Index all other are DPSI'   22100000
               , 28                                                     22110000
              )                                                         22120000
;                                                                       22130000
INSERT   INTO SESSION.PARMVALUE                                         22140000
       VALUES (  'Pagesize'                                             22150000
               , 'Pagesize Tablespace <> Pagesize Indexspace'           22160000
               , 16                                                     22170000
              )                                                         22180000
;                                                                       22190000
INSERT   INTO SESSION.PARMVALUE                                         22200000
       VALUES (  'FreePage'                                             22210000
               , 'Value must be 0 for technical/business indexes'       22220000
               , 7                                                      22230000
              )                                                         22240000
;                                                                       22250000
INSERT   INTO SESSION.PARMVALUE                                         22260000
       VALUES (  'TSFreepage'                                           22270000
               , 'Value is not 0'                                       22280000
               , 7                                                      22290000
              )                                                         22300000
;                                                                       22310000
INSERT   INTO SESSION.PARMVALUE                                         22320000
       VALUES (  'PctFree_Business'                                     22330000
               , 'Value must be 10 for business Indexes'                22340000
               , 6                                                      22350000
              )                                                         22360000
;                                                                       22370000
INSERT   INTO SESSION.PARMVALUE                                         22380000
       VALUES (  'PctFree_Technical'                                    22390000
               , 'Value must be 0 for technical indexes'                22400000
               , 6                                                      22410000
              )                                                         22420000
;                                                                       22430000
INSERT   INTO SESSION.PARMVALUE                                         22440000
       VALUES (  'TSPctfree'                                            22450000
               , 'Value is not 0'                                       22460000
               , 6                                                      22470000
              )                                                         22480000
;                                                                       22490000
INSERT   INTO SESSION.PARMVALUE                                         22500000
       VALUES (  'Copy', 'No', 26                                       22510000
              )                                                         22520000
;                                                                       22530000
INSERT   INTO SESSION.PARMVALUE                                         22540000
       VALUES (  'No Index exists'                                      22550000
               , 'verify and implement an Index. Access path for all '  22560000
               || 'queries are Tablespace Scans| (Proof Monitor)'       22570000
               , 50                                                     22580000
              )                                                         22590000
;                                                                       22600000
INSERT   INTO SESSION.PARMVALUE                                         22610000
       VALUES (  'IndexType_Failure'                                    22620000
               , 'Only index type DPSI (D), Unique (U) and '            22630000
               || 'Primary (P) are allowed'                             22640000
               , 50                                                     22650000
              )                                                         22660000
;                                                                       22670000
INSERT   INTO SESSION.PARMVALUE                                         22680000
       VALUES (  'EN1PART_MIS'                                          22690000
               , 'Missing EN1PART. Must be part of PRIMARY '            22700000
                 || 'or UNIQUE INDEX (see Guideline 01.07.2013'         22710000
               , 51                                                     22720000
              )                                                         22730000
;                                                                       22740000
INSERT   INTO SESSION.PARMVALUE                                         22750000
       VALUES (  'Index_Rule'                                           22760000
               , 'no rules are defined. REASON: Unknown ELAR '          22770000
                 || 'table type (not documented, experimental type'     22780000
               , 53                                                     22790000
              )                                                         22800000
;                                                                       22810000
INSERT   INTO SESSION.PARMVALUE                                         22820000
       VALUES (  'NoDatabaseExists'                                     22830000
               , 'No DB2 Objects exists for DDL Check'                  22840000
               , 0                                                      22850000
              )                                                         22860000
;                                                                       22870000
INSERT   INTO SESSION.PARMVALUE                                         22880000
       VALUES (  'DatabaseNoFamily'                                     22890000
               , 'DB2 Objects exists but no ELAR Meta data available'   22900000
               , 0                                                      22910000
              )                                                         22920000
;                                                                       22930000
-- Preperation of result list splitting complete string into option name22940000
-- and option value. Options separated by semicolon. Option and value   22950000
-- separated by equal sign. Elimination of duplicate entries and store  22960000
-- only entries with NOK in temporary table exception.                  22970000
DECLARE GLOBAL TEMPORARY TABLE EXCEPTION                                22980000
               (  OBJECT          CHAR(60)                              22990000
                , OPTION          CHAR(24)                              23000000
                , CORRECT_VALUES  CHAR(120)                             23010000
                , FAMILY          CHAR(30)                              23020000
                , CRITERIA        CHAR(30)                              23030000
                , OPTIONNUM       INTEGER                               23040000
                , SUBORD          INTEGER                               23050000
                , COMMENT         CHAR(40)                              23060000
                , OVALUE          CHAR(03)                              23070000
                , CREATEDTS       TIMESTAMP(6)                          23080000
               )                                                        23090000
;                                                                       23100000
INSERT INTO SESSION.EXCEPTION (                                         23110000
                  OBJECT                                                23120000
                , OPTION                                                23130000
                , CORRECT_VALUES                                        23140000
                , FAMILY                                                23150000
                , CRITERIA                                              23160000
                , OPTIONNUM                                             23170000
                , SUBORD                                                23180000
                , COMMENT                                               23190000
                , OVALUE                                                23200000
                , CREATEDTS                                             23210000
                    )                                                   23220000
WITH RESULT (  SNUM                                                     23230000
             , CRITERIA                                                 23240000
             , FAMILY                                                   23250000
             , OBJECT                                                   23260000
             , OPTIONNUM                                                23270000
             , OPTION                                                   23280000
             , OVALUE                                                   23290000
             , CHECKVALUE                                               23300000
             , COMMENT                                                  23310000
             , CREATEDTS                                                23320000
            )                                                           23330000
         AS (SELECT T0.SNUM                                             23340000
                  , T0.CRITERIA                                         23350000
                  , T0.FAMILY                                           23360000
                  , T0.OBJECT                                           23370000
                  , 1                                                   23380000
                  , CASE WHEN LOCATE('=', T0.OPTVALUE) > 0              23390000
                         THEN SUBSTR(  T0.OPTVALUE                      23400000
                                     , 1                                23410000
                                     , LOCATE('=', T0.OPTVALUE) - 1     23420000
                                    )                                   23430000
                         ELSE OPTVALUE                                  23440000
                    END AS OPTION                                       23450000
                  , CASE WHEN LOCATE('=', T0.OPTVALUE) > 0              23460000
                         THEN SUBSTR(  T0.OPTVALUE                      23470000
                                     , LOCATE('=', T0.OPTVALUE) + 1     23480000
                                     , LOCATE(';', T0.OPTVALUE) -       23490000
                                       LOCATE('=', T0.OPTVALUE) - 1     23500000
                                    )                                   23510000
                         ELSE OPTVALUE                                  23520000
                    END AS OVALUE                                       23530000
                  , CASE WHEN LOCATE(';', T0.OPTVALUE) > 0              23540000
                         THEN SUBSTR(  T0.OPTVALUE                      23550000
                                     , LOCATE(';', T0.OPTVALUE) + 1     23560000
                                    )                                   23570000
                         ELSE NULL                                      23580000
                    END AS OPTVALUE                                     23590000
                  , T0.COMMENT                                          23600000
                  , T0.CREATEDTS                                        23610000
               FROM SESSION.TEMP T0                                     23620000
             UNION  ALL                                                 23630000
             SELECT T1.SNUM                                             23640000
                  , T1.CRITERIA                                         23650000
                  , T1.FAMILY                                           23660000
                  , T1.OBJECT                                           23670000
                  , T1.OPTIONNUM + 1                                    23680000
                  , CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0            23690000
                         THEN SUBSTR(  T1.CHECKVALUE                    23700000
                                     , 1                                23710000
                                     , LOCATE('=', T1.CHECKVALUE) - 1   23720000
                                    )                                   23730000
                         ELSE CHECKVALUE                                23740000
                    END AS OPTION                                       23750000
                  , CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0            23760000
                    THEN CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0       23770000
                         THEN SUBSTR(  T1.CHECKVALUE                    23780000
                                     ,   LOCATE('=', T1.CHECKVALUE)     23790000
                                       + 1                              23800000
                                     ,   LOCATE(';', T1.CHECKVALUE)     23810000
                                       - LOCATE('=', T1.CHECKVALUE)     23820000
                                       - 1                              23830000
                                    )                                   23840000
                         ELSE SUBSTR(  T1.CHECKVALUE                    23850000
                                     ,   LOCATE('=', T1.CHECKVALUE)     23860000
                                       + 1                              23870000
                                    )                                   23880000
                         END                                            23890000
                    ELSE CHECKVALUE                                     23900000
                    END AS OVALUE                                       23910000
                  , CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0            23920000
                         THEN SUBSTR(  T1.CHECKVALUE                    23930000
                                     , LOCATE(';', T1.CHECKVALUE) + 1   23940000
                                    )                                   23950000
                         ELSE NULL                                      23960000
                    END AS OPTVALUE                                     23970000
                  , T1.COMMENT                                          23980000
                  , T1.CREATEDTS                                        23990000
               FROM RESULT T1                                           24000000
              WHERE T1.CHECKVALUE IS NOT NULL                           24010000
            )                                                           24020000
SELECT DISTINCT                                                         24030000
       RE.OBJECT                                                        24040000
     , CAST(RE.OPTION AS CHAR(24)) AS OPTION                            24050000
     , PV.VALUE                    AS CORRECT_VALUES                    24060000
     , RE.FAMILY                                                        24070000
     , RE.CRITERIA                                                      24080000
     , RE.OPTIONNUM                                                     24090000
     , PV.SUBORD                                                        24100000
     , RE.COMMENT                                                       24110000
     , RE.OVALUE                                                        24120000
     , RE.CREATEDTS                                                     24130000
  FROM      RESULT RE                                                   24140000
 INNER JOIN SESSION.PARMVALUE PV                                        24150000
         ON RE.OPTION = PV.OPTION                                       24160000
 WHERE RE.OVALUE = 'NOK'                                                24170000
;                                                                       24180000
--                                                                      24190000
-- Generate final message. Three different message possible:            24200000
-- (1) Database not found => Database not created and                   24210000
-- (2) No failures  found => All check passed without failures          24220000
-- (3) Failuers found     => Not all ckecks passed without failures     24230000
--                                                                      24240000
INSERT INTO SESSION.EXCEPTION (                                         24250000
                  OBJECT                                                24260000
                , OPTION                                                24270000
                , CORRECT_VALUES                                        24280000
                , FAMILY                                                24290000
                , CRITERIA                                              24300000
                , OPTIONNUM                                             24310000
                , SUBORD                                                24320000
                , COMMENT                                               24330000
                , OVALUE                                                24340000
                , CREATEDTS                                             24350000
                    )                                                   24360000
SELECT 'Database not found => no check possible'                        24370000
     , ' '                                                              24380000
     , ' '                                                              24390000
     , ' '                                                              24400000
     , ' '                                                              24410000
     , -100                                                             24420000
     , -100                                                             24430000
     , ' '                                                              24440000
     , ' '                                                              24450000
     , CURRENT TIMESTAMP                                                24460000
  FROM SYSIBM.SYSDUMMY1                                                 24470000
 WHERE (SELECT COUNT(*)                                                 24480000
          FROM      SESSION.FAMLISTE   FAM                              24490000
         INNER JOIN SYSIBM.SYSDATABASE DB                               24500000
                 ON FAM.DBNAME = DB.NAME                                24510000
       ) = 0                                                            24520000
   AND (SELECT DBNAME FROM SESSION.FAMLISTE) IS NOT NULL                24530000
;                                                                       24540000
INSERT INTO SESSION.EXCEPTION (                                         24550000
                  OBJECT                                                24560000
                , OPTION                                                24570000
                , CORRECT_VALUES                                        24580000
                , FAMILY                                                24590000
                , CRITERIA                                              24600000
                , OPTIONNUM                                             24610000
                , SUBORD                                                24620000
                , COMMENT                                               24630000
                , OVALUE                                                24640000
                , CREATEDTS                                             24650000
                    )                                                   24660000
SELECT 'No failures found'                                              24670000
     , ' '                                                              24680000
     , ' '                                                              24690000
     , ' '                                                              24700000
     , ' '                                                              24710000
     , -101                                                             24720000
     , -101                                                             24730000
     , 'DDL Checker finished at'                                        24740000
     , ' '                                                              24750000
     , CURRENT TIMESTAMP                                                24760000
  FROM SYSIBM.SYSDUMMY1                                                 24770000
 WHERE (SELECT COUNT(*) FROM SESSION.EXCEPTION) = 0                     24780000
;                                                                       24790000
INSERT INTO SESSION.EXCEPTION (                                         24800000
                  OBJECT                                                24810000
                , OPTION                                                24820000
                , CORRECT_VALUES                                        24830000
                , FAMILY                                                24840000
                , CRITERIA                                              24850000
                , OPTIONNUM                                             24860000
                , SUBORD                                                24870000
                , COMMENT                                               24880000
                , OVALUE                                                24890000
                , CREATEDTS                                             24900000
                    )                                                   24910000
SELECT 'Failure(s) found, send list to elar'                            24920000
     , ' '                                                              24930000
     , ' '                                                              24940000
     , ' '                                                              24950000
     , ' '                                                              24960000
     , 0                                                                24970000
     , 0                                                                24980000
     , 'DDL Checker finished at'                                        24990000
     , ' '                                                              25000000
     , CURRENT TIMESTAMP                                                25010000
  FROM SYSIBM.SYSDUMMY1                                                 25020000
 WHERE (SELECT COUNT(*)                                                 25030000
          FROM SESSION.EXCEPTION                                        25040000
         WHERE OPTIONNUM NOT IN ( -100, -101 )                          25050000
           AND SUBORD    NOT IN ( -100, -101 )                          25060000
       ) > 0                                                            25070000
;                                                                       25080000
INSERT INTO SESSION.EXCEPTION (                                         25090000
                  OBJECT                                                25100000
                , OPTION                                                25110000
                , CORRECT_VALUES                                        25120000
                , FAMILY                                                25130000
                , CRITERIA                                              25140000
                , OPTIONNUM                                             25150000
                , SUBORD                                                25160000
                , COMMENT                                               25170000
                , OVALUE                                                25180000
                , CREATEDTS                                             25190000
                    )                                                   25200000
SELECT 'Actual Version 2.3 from 05.12.2013'                             25210000
     , ' '                                                              25220000
     , ' '                                                              25230000
     , ' '                                                              25240000
     , ' '                                                              25250000
     , -999                                                             25260000
     , -999                                                             25270000
     , ' '                                                              25280000
     , ' '                                                              25290000
     , CURRENT TIMESTAMP                                                25300000
  FROM SYSIBM.SYSDUMMY1                                                 25310000
;                                                                       25320000
--                                                                      25330000
-- Generate Report                                                      25340000
-- DDL-Report (Display migrated families first)                         25350000
--                                                                      25360000
SELECT OBJECT                                                           25370000
     , OPTION                                                           25380000
     , CORRECT_VALUES                                                   25390000
     , FAMILY                                                           25400000
     , COMMENT                                                          25410000
     , CRITERIA                                                         25420000
     , 'Object was created at '||CAST(CREATEDTS AS CHAR(26))            25430000
  FROM (SELECT OBJECT           AS OBJECT                               25440000
             , OPTION           AS OPTION                               25450000
             , CORRECT_VALUES   AS CORRECT_VALUES                       25460000
             , CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM'                     25470000
                    THEN ( SELECT UCASE(EAOF)                           25480000
                             FROM BUA.TXBA131                           25490000
                            WHERE ENOF = CAST(  SUBSTR(T1.FAMILY,4,4)   25500000
                                              AS INT                    25510000
                                             ) - 1000                   25520000
                         )                                              25530000
                    ELSE FAMILY                                         25540000
               END              AS FAMILY                               25550000
             , COMMENT          AS COMMENT                              25560000
             , CRITERIA         AS CRITERIA                             25570000
             , CREATEDTS        AS CREATEDTS                            25580000
             , ORD0                                                     25590000
             , ORD1                                                     25600000
             , ORD2                                                     25610000
             , ORD3                                                     25620000
          FROM (SELECT OBJECT                                           25630000
                     , CASE WHEN LOCATE('_', OPTION) > 0                25640000
                            THEN SUBSTR(  OPTION                        25650000
                                        , 1                             25660000
                                        , LOCATE('_',OPTION) - 1        25670000
                                       )                                25680000
                            ELSE OPTION                                 25690000
                       END AS OPTION                                    25700000
                     , CORRECT_VALUES                                   25710000
                     , UCASE(FAMILY)         AS FAMILY                  25720000
                     , SUBSTR(CRITERIA,2)    AS CRITERIA                25730000
                     , SUBSTR(CRITERIA,1,1)  AS ORD1                    25740000
                     , LENGTH(STRIP(OBJECT)) AS ORD2                    25750000
                     , SUBORD                AS ORD3                    25760000
                     , COMMENT                                          25770000
                     , CASE WHEN COMMENT <> ' '                         25780000
                            THEN 0                                      25790000
                            ELSE 1                                      25800000
                       END                   AS ORD0                    25810000
                     , CHECK                                            25820000
                     , CREATEDTS                                        25830000
                  FROM (SELECT OVALUE AS CHECK                          25840000
                             , OBJECT                                   25850000
                             , OPTION                                   25860000
                             , CORRECT_VALUES                           25870000
                             , FAMILY                                   25880000
                             , CRITERIA                                 25890000
                             , SUBORD                                   25900000
                             , COMMENT                                  25910000
                             , CREATEDTS                                25920000
                          FROM SESSION.EXCEPTION                        25930000
                       ) AS T2                                          25940000
               ) AS T1                                                  25950000
        ) AS FINAL                                                      25960000
ORDER BY FAMILY                                                         25970000
       , ORD0                                                           25980000
       , ORD1                                                           25990000
       , ORD2                                                           26000000
       , ORD3                                                           26010000
WITH UR                                                                 26020000
;                                                                       26030000
}¢--- A540769.WK.SQL(ELARDDL) cre=2013-11-29 mod=2013-11-29-12.22.38 A540769 ---
-- Zwischenspeicher der zu untersuchenden Datenbanken                   00010000
--                                                                      00020000
DECLARE GLOBAL TEMPORARY TABLE FAMLISTE                                 00030000
               (  FAMILY       CHAR(20)                                 00040000
                , DBNAME       CHAR(08)                                 00050000
                , STORAR       CHAR(03)                                 00060000
                , ENSEG        CHAR(03)                                 00070000
                , STORAR_N     INTEGER                                  00080000
                , ENSEG_N      SMALLINT                                 00090000
                , CREATE_FROM  DATE                                     00100000
                , CREATE_TO    DATE                                     00110000
               )                                                        00120000
;                                                                       00130000
-- ============ Input section (full check) ============                 00140000
-- Full check (database, table space etc.) when create_from and         00150000
-- create_to have value NULL                                            00160000
--                                                                      00170000
-- Partial check on table space level when create_from and              00180000
-- create_to have not NULL value and the values are valid date          00190000
--                                                                      00200000
INSERT INTO SESSION.FAMLISTE (  FAMILY                                  00210000
                              , DBNAME                                  00220000
                              , CREATE_FROM                             00230000
                              , CREATE_TO                               00240000
                             )                                          00250000
                      VALUES (  '?'                                     00260000
                              , NULL                                    00270000
                              , current date - 1 days                   00280000
                              , '31.12.9999'                            00290000
                             )                                          00300000
  ;                                                                     00310000
--                                                                      00320000
-- ============ Release notes/ documentation section ============       00330000
--                                                                      00340000
-- ### INFO Version 2.3, Date: 28.11.2013                               00350000
-- ### INFO Library: actual Version only available in DSN.GENERAL.SQL   00360000
-- ### Author: A559315, Uwe Toepperwien (TCG), KIDI 61                  00370000
--                                                                      00380000
-- ============ Documentation section ============                      00390000
--                                                                      00400000
-- DDL Checker für partitionierte Datenbanken ELAR. In ELAR ist nur     00410000
-- Table controlled Partition zulässig, folglich werden Non partition   00420000
-- Tables und Index controlled Partition nicht verifiziert.             00430000
-- Grundlage sind die DDL Vereinbarungen vom 10/2010                    00440000
-- Nachfolgende DB2 Objekte werden geprüft:                             00450000
-- (1) Datenbank                                                        00460000
-- (2) Tablespaces                                                      00470000
-- (3) Tabeles                                                          00480000
-- (4) Indexspaces                                                      00490000
-- (5) Index(e) Primary DPSI/ DPSI                                      00500000
--                                                                      00510000
-- Ein DDL Check ist möglich durch Angabe der ELAR Familie und/ oder    00520000
-- der Datenbank.                                                       00530000
--                                                                      00540000
-- Ist das Result des DDL Checkers "empty", dann sind alle vereinbarten 00550000
-- DDL Parameter eingehalten.                                           00560000
--                                                                      00570000
-- Ist das Result des DDL Checkers nicht "empty", dann                  00580000
-- (a) werden alle DDL Parameter Abweichungen ausgewiesen, wenn die     00590000
--     Familie/ Datenbank vom Typ Table Controlled Partition ist        00600000
-- (b) der Fehler "DatabaseImplementation" zeigt an, das die Familie/   00610000
--     Datenbank nicht vom Typ Table Controlled Partition ist.          00620000
--                                                                      00630000
-- Parameterwert fuer maximale Anzahl Partition festlegen               00640000
-- Die maximale Anzahl Partitionen ist für Table- und Indexcontrolled   00650000
-- Partitioning vorzugeben.                                             00660000
--                                                                      00670000
-- Update: 28.11.2013, TCG                                              00680000
-- Partial check possible, when create_from and create_to is not null   00690000
--                                                                      00700000
-- Update: 08.07.2013, TCG                                              00710000
--  Generating final message which describe the state of a cekced       00720000
--  database.                                                           00730000
--  Check pctfree for technical/ business indexes use wrong             00740000
--  catalog table (sysibm.syscolumns instead of syskeys)                00750000
--                                                                      00760000
-- Update: 01.07.2013, TCG (new agreement KIDI63/ ELAR for NDBS)        00770000
--                         (see Mail from 01.07.2013 M.Streit)          00780000
--  Tablespace Option Check                                             00790000
--     (1) Check FREEPAGE, PCTFREE                                      00800000
--     (2) PARTITION = 0 not allowed for XB databases                   00810000
--  Table Option Check                                                  00820000
--     (1) option APPEND changed from NO to YES                         00830000
--     (2) no check of EN1ENTERTAG, ET1LOGPROD                          00840000
--     (3) Check on table the type of partitioning (classic)            00850000
--     (4) Check if index is index controlled partitioning (antique)    00860000
--     (5) Extend index type check, only D, U and P are allowed         00870000
--     (6) Check that EN1PART is in keylist of unique/ primary index    00880000
--     (7) Check that every table has only one unique/ primary index    00890000
--     (8) Check that cluster index based on correct columns            00900000
--     (9) Check that key columns on correct position                   00910000
--                                                                      00920000
-- Update: 17.05.2012, TCG                                              00930000
--  (1) Find database name for migrated families (migrated families     00940000
--      have a symbolic name like FAMnnmm where nn is multipler 1000    00950000
--      and mm is the family number. Exp. FAM1015 is family 15 that is  00960000
--      family DEVI.IF)                                                 00970000
--  (2) New column COMMENT describes the family                         00980000
--  (3) Result shows first families from migration and all other        00990000
--      families.                                                       01000000
--  (4) Correction of text mistakes.                                    01010000
--                                                                      01020000
-- Update: 10.05.2012, TCG                                              01030000
--  (1) New Bufferpool assignment (BP2 and BP1)                         01040000
--  (2) Check Bufferpool BP8 for LOB                                    01050000
--  (3) De-activate Partition and Index Columun check                   01060000
--      for database with prefix DXB (Elar Metadata)                    01070000
--  (4) Result set order changed to family, database, tablespace,       01080000
--      table, indexspace and index.                                    01090000
--  (5) Defined more and detailed messages.                             01100000
--                                                                      01110000
-- ============ Processing section ============                         01120000
--                                                                      01130000
--- Definition of partition limit for table- and indexspace             01140000
DECLARE GLOBAL TEMPORARY TABLE MAXPART                                  01150000
               (  PARTYPE      CHAR(05) NOT NULL                        01160000
                , MAXPART      INTEGER  NOT NULL                        01170000
               )                                                        01180000
;                                                                       01190000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART )                        01200000
                     VALUES ( 'Table', 200 )                            01210000
;                                                                       01220000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART )                        01230000
                     VALUES ( 'Index', 200 )                            01240000
;                                                                       01250000
UPDATE SESSION.FAMLISTE                                                 01260000
   SET STORAR   = SUBSTR(DBNAME,3,3)                                    01270000
     , ENSEG    = SUBSTR(DBNAME,6,3)                                    01280000
 WHERE SUBSTR(DBNAME,1,2) = 'XB'                                        01290000
    AND CREATE_FROM IS NULL                                             01300000
    AND CREATE_TO   IS NULL                                             01310000
;                                                                       01320000
UPDATE SESSION.FAMLISTE                                                 01330000
   SET STORAR_N = (SELECT XBA510_STORAGE_ARN                            01340000
                     FROM BUA.TXBA510                                   01350000
                    WHERE XBA510_STORAGE_ARC = STORAR                   01360000
                  )                                                     01370000
     , ENSEG_N  = (SELECT XBA510_STORAGE_ARN                            01380000
                     FROM BUA.TXBA510                                   01390000
                    WHERE XBA510_STORAGE_ARC = ENSEG                    01400000
                  )                                                     01410000
 WHERE CREATE_FROM IS NULL                                              01420000
   AND CREATE_TO   IS NULL                                              01430000
;                                                                       01440000
DECLARE GLOBAL TEMPORARY TABLE ELAR                                     01450000
               (  FAMILY       CHAR(20)                                 01460000
                , STORAR       CHAR(08)                                 01470000
                , COMMENT      CHAR(20)                                 01480000
               )                                                        01490000
;                                                                       01500000
INSERT INTO SESSION.ELAR                                                01510000
WITH TESLA (  FAMILY                                                    01520000
            , STORAR                                                    01530000
            , COMMENT                                                   01540000
           )                                                            01550000
--                                                                      01560000
-- Search over family name and retrieve database name(s)                01570000
-- 1) Import run time tables                                            01580000
-- 2) Time range run time table and family configuration                01590000
--    (no data available over(1)                                        01600000
-- 3) Migration protocol (no data available over (1) and (2)            01610000
-- 4) Family number control table. Last change to find a family,        01620000
--    while all run time and meta data are broken (broken links)        01630000
--                                                                      01640000
       AS  (SELECT C071.EAOF                                            01650000
                 , CAST ( C071.EYPREF   ||                              01660000
                          C111.ENSTORAR ||                              01670000
                          C111.ENSEG       AS CHAR(08)                  01680000
                        )                                               01690000
                 , ' ' AS COMMENT                                       01700000
              FROM            BUA.TXBC111 C111                          01710000
              FULL OUTER JOIN BUA.TXBC071 C071                          01720000
                           ON C111.ENSTORAR = C071.ENSTORAR             01730000
             INNER       JOIN SESSION.FAMLISTE    FL                    01740000
                           ON FL.FAMILY     = C071.EAOF                 01750000
             WHERE C111.ENSTORAR IS NOT NULL                            01760000
               AND C111.ENSEG    IS NOT NULL                            01770000
               AND C071.EYPREF   IS NOT NULL                            01780000
            UNION  DISTINCT                                             01790000
            SELECT BE051.EAOF                                           01800000
                 , FL.DBNAME                                            01810000
                 , ' ' AS COMMENT                                       01820000
              FROM      BUA.TXBE051 BE051                               01830000
             INNER JOIN BUA.TXBA201 BA201                               01840000
                     ON BE051.ENLIBENG = BA201.ENSTORAR                 01850000
             INNER JOIN SESSION.FAMLISTE FL                             01860000
                     ON FL.FAMILY      = BE051.EAOF                     01870000
            UNION  DISTINCT                                             01880000
            SELECT T504.XBA501_FAMNAME                                  01890000
                 , XBA504_DB                                            01900000
                 , '-- old Migration --' AS COMMENT                     01910000
              FROM      BUA.TXBA504 T504                                01920000
              LEFT JOIN BUA.TXBA511 T511                                01930000
                     ON T504.XBA501_FAMNAME =  T511.XBA501_FAMNAME      01940000
                    AND T504.XBA504_TABLE   =  T511.XBA504_TABLE        01950000
             INNER JOIN SESSION.FAMLISTE FL                             01960000
                     ON FL.FAMILY           =  T504.XBA501_FAMNAME      01970000
            UNION  DISTINCT                                             01980000
            SELECT STRIP(BA131.EAOF)                                    01990000
                 , SUBSTR(MG103.EANTABNAME,1,8)                         02000000
                 , '-- new Migration --' AS COMMENT                     02010000
              FROM      BUA.TXBMG103 MG103                              02020000
             INNER JOIN BUA.TXBA131  BA131                              02030000
                     ON MG103.ENOF = BA131.ENOF                         02040000
             INNER JOIN SESSION.FAMLISTE FL                             02050000
                     ON UCASE(BA131.EAOF) = FL.FAMILY                   02060000
--                                                                      02070000
-- Search over Database Name and retrieve family name                   02080000
-- In general same processing like search over family, but other        02090000
-- columns are relevant.                                                02100000
--                                                                      02110000
            UNION  DISTINCT                                             02120000
            SELECT C071.EAOF                                            02130000
                 , FL.DBNAME                                            02140000
                 , ' ' AS COMMENT                                       02150000
              FROM            BUA.TXBC111 C111                          02160000
              FULL OUTER JOIN BUA.TXBC071 C071                          02170000
                           ON C111.ENSTORAR = C071.ENSTORAR             02180000
             INNER       JOIN SESSION.FAMLISTE FL                       02190000
                           ON FL.STORAR = C111.ENSTORAR                 02200000
                          AND FL.ENSEG  = C111.ENSEG                    02210000
            UNION  DISTINCT                                             02220000
            SELECT BE051.EAOF                  AS FAMILY                02230000
                 , FL.DBNAME                                            02240000
                 , ' ' AS COMMENT                                       02250000
              FROM      BUA.TXBE051 BE051                               02260000
             INNER JOIN BUA.TXBA201 BA201                               02270000
                     ON BE051.ENLIBENG = BA201.ENSTORAR                 02280000
             INNER JOIN SESSION.FAMLISTE FL                             02290000
                     ON FL.STORAR_N    = BA201.ENSTORAR                 02300000
                    AND FL.ENSEG_N     = BA201.ENSEG                    02310000
            UNION  DISTINCT                                             02320000
            SELECT T504.XBA501_FAMNAME                                  02330000
                 , XBA504_DB                                            02340000
                 , ' ' AS COMMENT                                       02350000
              FROM      BUA.TXBA504 T504                                02360000
              LEFT JOIN BUA.TXBA511 T511                                02370000
                     ON T504.XBA501_FAMNAME =  T511.XBA501_FAMNAME      02380000
                    AND T504.XBA504_TABLE   =  T511.XBA504_TABLE        02390000
             INNER JOIN SESSION.FAMLISTE FL                             02400000
                     ON FL.DBNAME           =  T504.XBA504_DB           02410000
            UNION  DISTINCT                                             02420000
            SELECT UCASE(BA131.EAOF)                                    02430000
                 , FL.DBNAME                                            02440000
                 , ' ' AS COMMENT                                       02450000
                FROM      BUA.TXBA131 BA131                             02460000
               INNER JOIN BUA.TXBG081 BG181                             02470000
                       ON BA131.ENOF = BG181.ENOF                       02480000
               INNER JOIN SESSION.FAMLISTE FL                           02490000
                       ON BG181.ENSTORAR = FL.STORAR_N                  02500000
            UNION  DISTINCT                                             02510000
            SELECT UCASE(BA131.EAOF)                                    02520000
                 , FL.DBNAME                                            02530000
                 , ' ' AS COMMENT                                       02540000
              FROM      BUA.TXBA131 BA131                               02550000
             INNER JOIN BUA.TXBG081X BG181                              02560000
                     ON BA131.ENOF = BG181.ENOF                         02570000
             INNER JOIN SESSION.FAMLISTE FL                             02580000
                     ON BG181.ENSTORAR = FL.STORAR_N                    02590000
            UNION  DISTINCT                                             02600000
            SELECT 'ELAR Repo. / Base'                                  02610000
                 , DBNAME                                               02620000
                 , ' ' AS COMMENT                                       02630000
              FROM SESSION.FAMLISTE                                     02640000
             WHERE SUBSTR(DBNAME,1,3) = 'DXB'                           02650000
           )                                                            02660000
SELECT FAMILY                                                           02670000
     , STORAR                                                           02680000
     , COMMENT                                                          02690000
  FROM TESLA                                                            02700000
 WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL               02710000
   AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE) IS NULL               02720000
;                                                                       02730000
-- Add database without ELAR meta data into checklist                   02740000
--                                                                      02750000
INSERT INTO SESSION.ELAR                                                02760000
SELECT DBNAME                                                           02770000
     , DBNAME                                                           02780000
     , ' '                                                              02790000
  FROM SESSION.FAMLISTE                                                 02800000
 WHERE DBNAME NOT IN (SELECT STORAR FROM SESSION.ELAR)                  02810000
   AND DBNAME <> '?'                                                    02820000
   AND (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL               02830000
   AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE) IS NULL               02840000
;                                                                       02850000
INSERT INTO SESSION.ELAR                                                02860000
SELECT DISTINCT                                                         02870000
       '?'                                                              02880000
     , DBNAME                                                           02890000
     , DBNAME                                                           02900000
  FROM SYSIBM.SYSTABLESPACE                                             02910000
 WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE  ) IS NOT NULL         02920000
   AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE  ) IS NOT NULL         02930000
   AND DATE(CREATEDTS) >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE  )  02940000
   AND DATE(CREATEDTS) <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE  )  02950000
   AND DBNAME LIKE 'XB%'                                                02960000
;                                                                       02970000
UPDATE SESSION.FAMLISTE                                                 02980000
   SET CREATE_FROM = '01.01.0001'                                       02990000
     , CREATE_TO   = '31.12.9999'                                       03000000
 WHERE CREATE_FROM IS NULL                                              03010000
   AND CREATE_TO   IS NULL                                              03020000
;                                                                       03030000
DECLARE GLOBAL TEMPORARY TABLE TEMP                                     03040000
               (  SNUM         CHAR(0013) FOR BIT DATA                  03050000
                , CRITERIA     CHAR(0030)                               03060000
                , FAMILY       CHAR(0030)                               03070000
                , COMMENT      CHAR(0020)                               03080000
                , OBJECT       CHAR(0060)                               03090000
                , OPTVALUE     VARCHAR(1024)                            03100000
                , CREATEDTS    TIMESTAMP(6)                             03110000
               )                                                        03120000
;                                                                       03130000
INSERT INTO SESSION.TEMP                                                03140000
WITH DBDDL (  FAMILY                                                    03150000
            , DATABASE                                                  03160000
            , BUFFERPOOL                                                03170000
            , INDEXPOOL                                                 03180000
            , STOGROUP                                                  03190000
            , CCID                                                      03200000
            , DBID                                                      03210000
            , COMMENT                                                   03220000
            , CREATEDTS                                                 03230000
           )                                                            03240000
        AS (SELECT DISTINCT                                             03250000
                   EL.FAMILY                                            03260000
                 , DB.NAME                                              03270000
                 , DB.BPOOL                                             03280000
                 , DB.INDEXBP                                           03290000
                 , DB.STGROUP                                           03300000
                 , DB.ENCODING_SCHEME                                   03310000
                 , DB.DBID                                              03320000
                 , EL.COMMENT                                           03330000
                 , DB.CREATEDTS                                         03340000
              FROM      SESSION.ELAR         EL                         03350000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         03360000
                     ON EL.STORAR = DB.NAME                             03370000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         03380000
                     ON DB.DBID   = TS.DBID                             03390000
             WHERE    DATE(DB.CREATEDTS)                                03400000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)        03410000
               AND    DATE(DB.CREATEDTS)                                03420000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE)        03430000
           )                                                            03440000
   , RDB   (  FAMILY                                                    03450000
            , COMMENT                                                   03460000
            , OBJECT                                                    03470000
            , OPTVALUE                                                  03480000
            , CREATEDTS                                                 03490000
           )                                                            03500000
        AS (SELECT DISTINCT                                             03510000
                   FAMILY                                               03520000
                 , COMMENT                                              03530000
                 , CAST(DATABASE AS CHAR(08))                           03540000
                 , 'Bufferpool_DB='                                     03550000
                || CASE WHEN BUFFERPOOL = 'BP2'                         03560000
                             THEN 'OK'                                  03570000
                        ELSE 'NOK'                                      03580000
                   END                                                  03590000
                || ';'                                                  03600000
                || 'Bufferpool_DB_IX='                                  03610000
                || CASE WHEN INDEXPOOL = 'BP1'                          03620000
                             THEN 'OK'                                  03630000
                        ELSE 'NOK'                                      03640000
                   END                                                  03650000
                || ';'                                                  03660000
                || 'StorageGroup='                                      03670000
                || CASE STOGROUP                                        03680000
                        WHEN 'GSMS1' THEN 'OK'                          03690000
                  --    WHEN 'GSMS2' THEN 'OK'                          03700099
                        WHEN 'GSMS3' THEN 'OK'                          03710000
                        WHEN 'GSMS4' THEN 'OK'                          03720000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     03730000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      03740000
                                            THEN 'OK'                   03750000
                                            ELSE 'NOK'                  03760000
                                       END                              03770000
                                  ELSE 'NOK'                            03780000
                             END                                        03790000
                   END                                                  03800000
                || ';'                                                  03810000
                || 'EncodingScheme='                                    03820000
                || CASE WHEN CCID = 'E'                                 03830000
                             THEN 'OK'                                  03840000
                        ELSE 'NOK'                                      03850000
                   END                                                  03860000
                 , CREATEDTS                                            03870000
              FROM DBDDL                                                03880000
           )                                                            03890000
SELECT GENERATE_UNIQUE()                                                03900000
     , '1Database Option Check'                                         03910000
     , FAMILY                                                           03920000
     , COMMENT                                                          03930000
     , OBJECT                                                           03940000
     , OPTVALUE                                                         03950000
     , CREATEDTS                                                        03960000
  FROM RDB                                                              03970000
 ORDER BY FAMILY                                                        03980000
        , OBJECT                                                        03990000
;                                                                       04000000
INSERT INTO SESSION.TEMP                                                04010000
WITH TSDDL (  FAMILY                                                    04020000
            , DATABASE                                                  04030000
            , BPOOL_T                                                   04040000
            , TSNAME                                                    04050000
            , PARTITION                                                 04060000
            , STOGROUP                                                  04070000
            , PRIQTY                                                    04080000
            , SECQTY                                                    04090000
            , GBPCACHE                                                  04100000
            , TRACKMODE                                                 04110000
            , LOGGED                                                    04120000
            , DSSIZE                                                    04130000
            , LOCKSIZE                                                  04140000
            , LOCKMAX                                                   04150000
            , CLOSE                                                     04160000
            , COMPRESS                                                  04170000
            , CCID                                                      04180000
            , DEFINE                                                    04190000
            , MAXROWS                                                   04200000
            , TPIXNAME                                                  04210000
            , AUXTBNAME                                                 04220000
            , FREEPAGE                                                  04230000
            , PCTFREE                                                   04240000
            , COMMENT                                                   04250000
            , CREATEDTS                                                 04260000
           )                                                            04270000
        AS (SELECT DISTINCT                                             04280000
                   EL.FAMILY          AS FAMILY                         04290000
                 , DB.NAME            AS DATABASE                       04300000
                 , TS.BPOOL           AS BPOOL_T                        04310000
                 , TS.NAME            AS TSNAME                         04320000
                 , TS.PARTITIONS      AS PARTITION                      04330000
                 , TP.STORNAME        AS STOGROUP                       04340000
                 , TP.PQTY            AS PRIQTY                         04350000
                 , TP.SQTY            AS SECQTY                         04360000
                 , TP.GBPCACHE        AS GBPCACHE                       04370000
                 , TP.TRACKMOD        AS TRACKMODE                      04380000
                 , TS.LOG             AS LOGGED                         04390000
                 , TS.DSSIZE          AS DSSIZE                         04400000
                 , TS.LOCKRULE        AS LOCKSIZE                       04410000
                 , TS.LOCKMAX         AS LOCKMAX                        04420000
                 , TS.CLOSERULE       AS CLOSE                          04430000
                 , TP.COMPRESS        AS COMPRESS                       04440000
                 , TS.ENCODING_SCHEME AS CCID                           04450000
                 , TP.SPACE           AS DEFINE                         04460000
                 , TS.MAXROWS         AS MAXROWS                        04470000
                 , TP.IXNAME          AS TPIXNAME                       04480000
                 , TB.TYPE            AS AUXTBNAME                      04490000
                 , TP.FREEPAGE        AS FREEPAGE                       04500000
                 , TP.PCTFREE         AS PCTFREE                        04510000
                 , EL.COMMENT         AS COMMENT                        04520000
                 , TP.CREATEDTS       AS CREATEDTS                      04530000
              FROM      SESSION.ELAR         EL                         04540000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         04550000
                     ON EL.STORAR = DB.NAME                             04560000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         04570000
                     ON DB.DBID   = TS.DBID                             04580000
             INNER JOIN SYSIBM.SYSTABLEPART  TP                         04590000
                     ON TS.NAME   = TP.TSNAME                           04600000
                    AND TS.DBNAME = TP.DBNAME                           04610000
             INNER JOIN SYSIBM.SYSTABLES TB                             04620000
                     ON TP.DBNAME = TB.DBNAME                           04630000
                    AND TP.TSNAME = TB.TSNAME                           04640000
             WHERE    DATE(TP.CREATEDTS)                                04650000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)        04660000
               AND    DATE(TP.CREATEDTS)                                04670000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE)        04680000
           )                                                            04690000
   , RTS   (  FAMILY                                                    04700000
            , COMMENT                                                   04710000
            , OBJECT                                                    04720000
            , OPTVALUE                                                  04730000
            , CREATEDTS                                                 04740000
           )                                                            04750000
        AS (SELECT DISTINCT                                             04760000
                   FAMILY                                               04770000
                 , COMMENT                                              04780000
                 , CAST(DATABASE AS CHAR(08))                           04790000
                || ' '                                                  04800000
                || TSNAME                                               04810000
                || ' '                                                  04820000
                 , CASE WHEN PARTITION > 0                              04830000
                        THEN CASE WHEN LENGTH(STRIP(TPIXNAME)) = 0      04840000
                                  THEN 'InfoTCP=OK'                     04850000
                                  ELSE 'InfoICP=OK'                     04860000
                             END                                        04870000
                        ELSE 'InfoTSS=OK'                               04880000
                   END                                                  04890000
                || ';'                                                  04900000
                || 'TablePartLimit='                                    04910000
                || CASE WHEN (SELECT DISTINCT SUBSTR(DATABASE,1,2)      04920000
                                FROM TSDDL                              04930000
                             ) = 'XB'                                   04940000
                        THEN CASE WHEN PARTITION > (SELECT MAXPART      04950000
                                            FROM SESSION.MAXPART        04960000
                                           WHERE PARTYPE = 'Table'      04970000
                                         )                              04980000
                                  THEN 'NOK'                            04990000
                                  ELSE 'OK'                             05000000
                             END                                        05010000
                        ELSE 'OK'                                       05020000
                   END                                                  05030000
                || ';'                                                  05040000
                || 'Bufferpool'                                         05050000
                || CASE BPOOL_T                                         05060000
                   WHEN 'BP2'   THEN                                    05070000
                                CASE WHEN    SUBSTR(TSNAME,1,1)         05080000
                                          || SUBSTR(  TSNAME            05090000
                                                    , (LENGTH(TSNAME)-1)05100000
                                                    , 1                 05110000
                                                   )                    05120000
                                          = 'SH'                        05130000
                                     THEN '_SHS=NOK'                    05140000
                                     ELSE '=OK'                         05150000
                                END                                     05160000
                   WHEN 'BP32K' THEN                                    05170000
                                CASE WHEN    SUBSTR(TSNAME,1,1)         05180000
                                          || SUBSTR(  TSNAME            05190000
                                                    , (LENGTH(TSNAME)-1)05200000
                                                    , 1                 05210000
                                                   )                    05220000
                                          = 'SH'                        05230000
                                THEN '=OK'                              05240000
                                ELSE CASE WHEN LENGTH(TSNAME) = 8       05250000
                                     THEN CASE WHEN   SUBSTR(TSNAME,8,1)05260000
                                                    = 'H'               05270000
                                               THEN '=OK'               05280000
                                               ELSE '_SHS=NOK'          05290000
                                               END                      05300000
                                     ELSE '_SHS=NOK'                    05310000
                                     END                                05320000
                                END                                     05330000
                   WHEN 'BP8'   THEN                                    05340000
                                CASE WHEN AUXTBNAME = 'X'               05350000
                                     THEN '=OK'                         05360000
                                     ELSE '_LOB=NOK'                    05370000
                                END                                     05380000
                   ELSE '_TS=NOK'                                       05390000
                   END                                                  05400000
                || ';'                                                  05410000
                || 'Groupbufferpool='                                   05420000
                || CASE GBPCACHE                                        05430000
                        WHEN ' ' THEN 'OK'                              05440000
                        ELSE 'NOK'                                      05450000
                  END                                                   05460000
                || ';'                                                  05470000
                || 'Trackmode='                                         05480000
                || CASE TRACKMODE                                       05490000
                        WHEN 'N' THEN 'OK'                              05500000
                        ELSE 'NOK'                                      05510000
                   END                                                  05520000
                || ';'                                                  05530000
                || 'LoggedOption='                                      05540000
                || CASE LOGGED                                          05550000
                        WHEN 'Y' THEN 'OK'                              05560000
                        ELSE 'NOK'                                      05570000
                   END                                                  05580000
                || ';'                                                  05590000
                || 'DSSIZE='                                            05600000
                || CASE WHEN PARTITION > 0                              05610000
                        THEN CASE DSSIZE                                05620000
                             WHEN 16777216 THEN 'OK'                    05630000
                                           ELSE 'NOK'                   05640000
                             END                                        05650000
                        ELSE 'OK'                                       05660000
                   END                                                  05670000
                || ';'                                                  05680000
                || 'Locksize='                                          05690000
                || CASE LOCKSIZE                                        05700000
                        WHEN 'A' THEN 'OK'                              05710000
                        ELSE 'NOK'                                      05720000
                   END                                                  05730000
                || ';'                                                  05740000
                || 'LockMax='                                           05750000
                || CASE LOCKMAX                                         05760000
                        WHEN -1 THEN 'OK'                               05770000
                        ELSE 'NOK'                                      05780000
                   END                                                  05790000
                || ';'                                                  05800000
                || 'CloseOption='                                       05810000
                || CASE CLOSE                                           05820000
                        WHEN 'Y' THEN 'OK'                              05830000
                        ELSE 'NOK'                                      05840000
                   END                                                  05850000
                || ';'                                                  05860000
                || 'TblCompressOption='                                 05870000
                || CASE COMPRESS                                        05880000
                        WHEN 'Y' THEN 'OK'                              05890000
                        ELSE 'NOK'                                      05900000
                   END                                                  05910000
                || ';'                                                  05920000
                || 'StorageGroup='                                      05930000
                || CASE STOGROUP                                        05940000
                        WHEN 'GSMS1' THEN 'OK'                          05950000
                   --   WHEN 'GSMS2' THEN 'OK'                          05960099
                        WHEN 'GSMS3' THEN 'OK'                          05970000
                        WHEN 'GSMS4' THEN 'OK'                          05980000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     05990000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      06000000
                                            THEN 'OK'                   06010000
                                            ELSE 'NOK'                  06020000
                                       END                              06030000
                                  ELSE 'NOK'                            06040000
                             END                                        06050000
                   END                                                  06060000
                || ';'                                                  06070000
                || 'PrimaryQuantity='                                   06080000
                || CASE PRIQTY                                          06090000
                        WHEN -1 THEN 'OK'                               06100000
                        ELSE 'NOK'                                      06110000
                   END                                                  06120000
                || ';'                                                  06130000
                || 'SecondaryQuantity='                                 06140000
                || CASE SECQTY                                          06150000
                        WHEN -1 THEN 'OK'                               06160000
                        ELSE 'NOK'                                      06170000
                   END                                                  06180000
                || ';'                                                  06190000
                || 'EncodingScheme='                                    06200000
                || CASE WHEN CCID = 'E' THEN 'OK'                       06210000
                        ELSE 'NOK'                                      06220000
                   END                                                  06230000
                || ';'                                                  06240000
                || 'DefineOption='                                      06250000
                || CASE DEFINE                                          06260000
                        WHEN -1 THEN 'NOK'                              06270000
                        ELSE 'OK'                                       06280000
                   END                                                  06290000
                || ';'                                                  06300000
                || 'MaxRowsPerPage='                                    06310000
                || CASE MAXROWS                                         06320000
                        WHEN 255 THEN 'OK'                              06330000
                        ELSE 'NOK'                                      06340000
                   END                                                  06350000
                || ';'                                                  06360000
                || 'TSFreepage='                                        06370000
                || CASE FREEPAGE                                        06380000
                        WHEN 0 THEN 'OK'                                06390000
                        ELSE 'NOK'                                      06400000
                   END                                                  06410000
                || ';'                                                  06420000
                || 'TSPctfree='                                         06430000
                || CASE PCTFREE                                         06440000
                        WHEN 0 THEN 'OK'                                06450000
                        ELSE 'NOK'                                      06460000
                   END                                                  06470000
                 , CREATEDTS                                            06480000
              FROM TSDDL                                                06490000
           )                                                            06500000
SELECT GENERATE_UNIQUE()                                                06510000
     , '2Tablespace Option Check'                                       06520000
     , FAMILY                                                           06530000
     , COMMENT                                                          06540000
     , OBJECT                                                           06550000
     , OPTVALUE                                                         06560000
     , CREATEDTS                                                        06570000
  FROM RTS                                                              06580000
 ORDER BY FAMILY                                                        06590000
        , OBJECT                                                        06600000
;                                                                       06610000
INSERT INTO SESSION.TEMP                                                06620000
WITH TBDDL (  FAMILY                                                    06630000
            , DATABASE                                                  06640000
            , TSNAME                                                    06650000
            , TBNAME                                                    06660000
            , AUDIT                                                     06670000
            , DATA_CAPTURE                                              06680000
            , RESTRICT_DROP                                             06690000
            , CCID                                                      06700000
            , VOLATILE                                                  06710000
            , APPEND                                                    06720000
            , PART_NAME                                                 06730000
            , PART_TYPE                                                 06740000
            , PART_SEQ                                                  06750000
            , PART_ORDER                                                06760000
            , PARTITION                                                 06770000
            , PART_LIMITKEY                                             06780000
            , PART_LOGICALKEY                                           06790000
            , COLNO                                                     06800000
            , PARTKEYCOLNUM                                             06810000
            , COMMENT                                                   06820000
            , CREATEDTS                                                 06830000
           )                                                            06840000
        AS (SELECT EL.FAMILY                                            06850000
                 , CAST(TB.DBNAME AS CHAR(08))                          06860000
                 , TB.TSNAME                                            06870000
                 , TB.NAME                                              06880000
                 , TB.AUDITING                                          06890000
                 , TB.DATACAPTURE                                       06900000
                 , TB.CLUSTERTYPE                                       06910000
                 , TB.ENCODING_SCHEME                                   06920000
                 , TB.SPLIT_ROWS                                        06930000
                 , TB.APPEND                                            06940000
                 , TC.NAME                                              06950000
                 , TC.COLTYPE                                           06960000
                 , TC.PARTKEY_COLSEQ                                    06970000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     06980000
                             THEN ' '                                   06990000
                             ELSE TC.PARTKEY_ORDERING                   07000000
                        END                 AS CHAR(01))                07010000
                 , CAST(TP.PARTITION        AS INTEGER)                 07020000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     07030000
                             THEN '0'                                   07040000
                             ELSE STRIP(TP.LIMITKEY)                    07050000
                        END                 AS VARCHAR(765))            07060000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     07070000
                             THEN 0                                     07080000
                             ELSE TP.LOGICAL_PART                       07090000
                        END                 AS INTEGER)                 07100000
                 , COLNO                                                07110000
                 , TB.PARTKEYCOLNUM                                     07120000
                 , EL.COMMENT                                           07130000
                 , TP.CREATEDTS                                         07140000
              FROM      SESSION.ELAR        EL                          07150000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         07160000
                     ON EL.STORAR  = DB.NAME                            07170000
             INNER JOIN SYSIBM.SYSTABLES     TB                         07180000
                     ON TB.DBNAME  = DB.NAME                            07190000
                    AND TB.TYPE    = 'T'                                07200000
             INNER JOIN SYSIBM.SYSCOLUMNS    TC                         07210000
                     ON TB.NAME    = TC.TBNAME                          07220000
                    AND TB.CREATOR = TC.TBCREATOR                       07230000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         07240000
                     ON TB.TSNAME  = TS.NAME                            07250000
                    AND TB.DBID    = TS.DBID                            07260000
                    AND TS.DBID    = DB.DBID                            07270000
             INNER JOIN SYSIBM.SYSTABLEPART  TP                         07280000
                     ON TS.NAME    = TP.TSNAME                          07290000
                    AND TS.DBNAME  = TP.DBNAME                          07300000
             WHERE TC.PARTKEY_COLSEQ > 0                                07310000
               AND    DATE(TP.CREATEDTS)                                07320000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)        07330000
               AND    DATE(TP.CREATEDTS)                                07340000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE)        07350000
               ORDER BY TB.DBNAME, TB.TSNAME                            07360000
                      , TC.COLNO , TC.PARTKEY_COLSEQ                    07370000
           )                                                            07380000
   , RTB   (  FAMILY                                                    07390000
            , COMMENT                                                   07400000
            , OBJECT                                                    07410000
            , OPTVALUE                                                  07420000
            , CREATEDTS                                                 07430000
           )                                                            07440000
        AS (SELECT DISTINCT                                             07450000
                   FAMILY                                               07460000
                 , COMMENT                                              07470000
                 , CAST(DATABASE AS CHAR(08))                           07480000
                || ' '                                                  07490000
                || TSNAME                                               07500000
                || ' '                                                  07510000
                || TBNAME                                               07520000
                 , 'Audit='                                             07530000
                || CASE AUDIT                                           07540000
                        WHEN ' ' THEN 'OK'                              07550000
                        ELSE 'NOK'                                      07560000
                   END                                                  07570000
                || ';'                                                  07580000
                || 'DataCapture='                                       07590000
                || CASE DATA_CAPTURE                                    07600000
                        WHEN ' ' THEN 'OK'                              07610000
                        ELSE 'NOK'                                      07620000
                   END                                                  07630000
                || ';'                                                  07640000
                || 'RestrictOnDrop='                                    07650000
                || CASE RESTRICT_DROP                                   07660000
                        WHEN 'Y' THEN 'OK'                              07670000
                        ELSE 'NOK'                                      07680000
                   END                                                  07690000
                || ';'                                                  07700000
                || 'EncodingScheme='                                    07710000
                || CASE CCID                                            07720000
                        WHEN 'E' THEN 'OK'                              07730000
                        ELSE 'NOK'                                      07740000
                   END                                                  07750000
                || ';'                                                  07760000
                || 'Volatile='                                          07770000
                || CASE VOLATILE                                        07780000
                        WHEN 'Y' THEN 'OK'                              07790000
                        ELSE 'NOK'                                      07800000
                   END                                                  07810000
                || ';'                                                  07820000
                || 'Append='                                            07830000
                || CASE APPEND                                          07840000
                        WHEN 'Y' THEN 'OK'                              07850000
                        ELSE 'NOK'                                      07860000
                   END                                                  07870000
                || ';'                                                  07880000
                || 'PartKeyName='                                       07890000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                07900000
                        THEN CASE WHEN PART_SEQ > 0                     07910000
                                  THEN CASE PART_NAME                   07920000
                                            WHEN 'EN1PART' THEN 'OK'    07930000
                                            ELSE 'NOK'                  07940000
                                       END                              07950000
                                  ELSE 'NOK'                            07960000
                             END                                        07970000
                        ELSE 'OK'                                       07980000
                   END                                                  07990000
                || ';'                                                  08000000
                || 'PartKeyType='                                       08010000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08020000
                        THEN CASE WHEN PART_SEQ > 0                     08030000
                                  THEN CASE PART_TYPE                   08040000
                                            WHEN 'INTEGER' THEN 'OK'    08050000
                                            ELSE 'NOK'                  08060000
                                       END                              08070000
                                  ELSE 'NOK'                            08080000
                             END                                        08090000
                        ELSE 'OK'                                       08100000
                   END                                                  08110000
                || ';'                                                  08120000
                || 'PartKeyPosition='                                   08130000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08140000
                        THEN CASE WHEN PART_SEQ > 0                     08150000
                                  THEN CASE PART_SEQ                    08160000
                                            WHEN 1 THEN 'OK'            08170000
                                            ELSE 'NOK'                  08180000
                                       END                              08190000
                                  ELSE 'NOK'                            08200000
                             END                                        08210000
                        ELSE 'OK'                                       08220000
                   END                                                  08230000
                || ';'                                                  08240000
                || 'PartKeyOrder='                                      08250000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08260000
                        THEN CASE WHEN PART_SEQ > 0                     08270000
                                  THEN CASE PART_ORDER                  08280000
                                            WHEN 'A' THEN 'OK'          08290000
                                            ELSE 'NOK'                  08300000
                                       END                              08310000
                                  ELSE 'NOK'                            08320000
                             END                                        08330000
                        ELSE 'OK'                                       08340000
                   END                                                  08350000
                || ';'                                                  08360000
                || 'PartKeyValue(s)='                                   08370000
                || CASE                                                 08380000
                   WHEN SUBSTR(DATABASE,1,2) = 'XB'                     08390000
                   THEN CASE                                            08400000
                        WHEN PART_SEQ > 0                               08410000
                        THEN CASE                                       08420000
                             WHEN CHAR(PARTITION) = PART_LIMITKEY       08430000
                             THEN CASE                                  08440000
                                  WHEN   PART_LIMITKEY                  08450000
                                       = CHAR(PART_LOGICALKEY)          08460000
                                  THEN 'OK'                             08470000
                                  ELSE 'NOK'                            08480000
                                  END                                   08490000
                             ELSE 'NOK'                                 08500000
                             END                                        08510000
                        ELSE 'NOK'                                      08520000
                        END                                             08530000
                   ELSE 'OK'                                            08540000
                   END                                                  08550000
                || ';'                                                  08560000
                || 'PartKeyColNum='                                     08570000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08580000
                        THEN CASE WHEN PARTKEYCOLNUM = 1                08590000
                                  THEN 'OK'                             08600000
                                  ELSE 'NOK'                            08610000
                             END                                        08620000
                        ELSE 'OK'                                       08630000
                   END                                                  08640000
                   AS OPTVALUE                                          08650000
                 , CREATEDTS                                            08660000
              FROM TBDDL                                                08670000
           )                                                            08680000
SELECT GENERATE_UNIQUE()                                                08690000
     , '3Table Option Check'                                            08700000
     , FAMILY                                                           08710000
     , COMMENT                                                          08720000
     , OBJECT                                                           08730000
     , OPTVALUE                                                         08740000
     , CREATEDTS                                                        08750000
  FROM RTB                                                              08760000
 ORDER BY FAMILY                                                        08770000
        , OBJECT                                                        08780000
;                                                                       08790000
INSERT INTO SESSION.TEMP                                                08800000
WITH XSTMP (  FAMILY                                                    08810000
            , DATABASE                                                  08820000
            , TBNAME                                                    08830000
            , IXNAME                                                    08840000
            , IXCREATOR                                                 08850000
            , BPOOL_I                                                   08860000
            , INDEXTYPE                                                 08870000
            , PARTITION                                                 08880000
            , STOGROUP                                                  08890000
            , PRIQTY                                                    08900000
            , SECQTY                                                    08910000
            , GBPCACHE                                                  08920000
            , PGSIZE                                                    08930000
            , FREEPAGE                                                  08940000
            , PCTFREE                                                   08950000
            , COMPRESS                                                  08960000
            , CLOSE                                                     08970000
            , COPY                                                      08980000
            , DEFINE                                                    08990000
            , CLUSTERING                                                09000000
            , TSPARTITION                                               09010000
            , TPIXNAME                                                  09020000
            , PIECESIZE                                                 09030000
            , TSPGSIZE                                                  09040000
            , COMMENT                                                   09050000
            , CREATEDTS                                                 09060000
           )                                                            09070000
        AS (SELECT DISTINCT                                             09080000
                   EL.FAMILY                                            09090000
                 , DB.NAME                                              09100000
                 , IX.TBNAME                                            09110000
                 , IX.NAME                                              09120000
                 , IX.CREATOR                                           09130000
                 , IX.BPOOL                                             09140000
                 , IX.INDEXTYPE                                         09150000
                 , (SELECT MAX(TMP.PARTITION)                           09160000
                      FROM SYSIBM.SYSINDEXPART TMP                      09170000
                     WHERE TMP.IXNAME = IX.NAME                         09180000
                       AND TMP.IXCREATOR = IX.CREATOR                   09190000
                   )                                                    09200000
                 , XP.STORNAME                                          09210000
                 , XP.PQTY                                              09220000
                 , XP.SQTY                                              09230000
                 , XP.GBPCACHE                                          09240000
                 , IX.PGSIZE                                            09250000
                 , XP.FREEPAGE                                          09260000
                 , XP.PCTFREE                                           09270000
                 , IX.COMPRESS                                          09280000
                 , IX.CLOSERULE                                         09290000
                 , IX.COPY                                              09300000
                 , XP.SPACE                                             09310000
                 , IX.CLUSTERING                                        09320000
                 , (SELECT TMP.PARTITIONS                               09330000
                      FROM SYSIBM.SYSTABLESPACE TMP                     09340000
                     WHERE TMP.DBID = DB.DBID                           09350000
                       AND TMP.DBID = IX.DBID                           09360000
                       AND TMP.NAME = TB.TSNAME                         09370000
                   )                                                    09380000
                 , (SELECT TMP.IXNAME                                   09390000
                      FROM SYSIBM.SYSTABLEPART TMP                      09400000
                     WHERE TMP.TSNAME = TS.NAME                         09410000
                       AND TMP.DBNAME = TS.DBNAME                       09420000
                     FETCH FIRST 1 ROW ONLY                             09430000
                   )                                                    09440000
                 , IX.PIECESIZE                                         09450000
                 , TS.PGSIZE                                            09460000
                 , EL.COMMENT                                           09470000
                 , XP.CREATEDTS                                         09480000
              FROM      SESSION.ELAR         EL                         09490000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         09500000
                     ON EL.STORAR  = DB.NAME                            09510000
             INNER JOIN SYSIBM.SYSINDEXES    IX                         09520000
                     ON DB.DBID    = IX.DBID                            09530000
             INNER JOIN SYSIBM.SYSTABLES     TB                         09540000
                     ON IX.TBNAME   = TB.NAME                           09550000
                    AND IX.DBNAME   = TB.DBNAME                         09560000
                    AND IX.DBID     = TB.DBID                           09570000
                    AND TB.DBID     = DB.DBID                           09580000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         09590000
                     ON TB.TSNAME   = TS.NAME                           09600000
                    AND TS.DBID     = TB.DBID                           09610000
                    AND TS.DBID     = IX.DBID                           09620000
                    AND TS.DBID     = DB.DBID                           09630000
             INNER JOIN SYSIBM.SYSINDEXPART  XP                         09640000
                     ON IX.NAME    = XP.IXNAME                          09650000
                    AND IX.CREATOR = XP.IXCREATOR                       09660000
             WHERE    DATE(XP.CREATEDTS)                                09670000
                   >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)        09680000
               AND    DATE(XP.CREATEDTS)                                09690000
                   <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE)        09700000
           )                                                            09710000
   , IXDDL (  FAMILY                                                    09720000
            , DATABASE                                                  09730000
            , TBNAME                                                    09740000
            , IXNAME                                                    09750000
            , BPOOL_I                                                   09760000
            , INDEXTYPE                                                 09770000
            , PARTITION                                                 09780000
            , STOGROUP                                                  09790000
            , PRIQTY                                                    09800000
            , SECQTY                                                    09810000
            , GBPCACHE                                                  09820000
            , PGSIZE                                                    09830000
            , FREEPAGE                                                  09840000
            , PCTFREE                                                   09850000
            , COMPRESS                                                  09860000
            , CLOSE                                                     09870000
            , COPY                                                      09880000
            , DEFINE                                                    09890000
            , CLUSTERING                                                09900000
            , CNT_KEYS                                                  09910000
            , CLUSTERKEY                                                09920000
            , TSPARTITION                                               09930000
            , TPIXNAME                                                  09940000
            , PIECESIZE                                                 09950000
            , TSPGSIZE                                                  09960000
            , IXTECHBUSINESS                                            09970000
            , COMMENT                                                   09980000
            , CREATEDTS                                                 09990000
           )                                                            10000000
        AS (SELECT T1.FAMILY                                            10010000
                 , T1.DATABASE                                          10020000
                 , T1.TBNAME                                            10030000
                 , T1.IXNAME                                            10040000
                 , T1.BPOOL_I                                           10050000
                 , T1.INDEXTYPE                                         10060000
                 , T1.PARTITION                                         10070000
                 , T1.STOGROUP                                          10080000
                 , T1.PRIQTY                                            10090000
                 , T1.SECQTY                                            10100000
                 , T1.GBPCACHE                                          10110000
                 , T1.PGSIZE                                            10120000
                 , T1.FREEPAGE                                          10130000
                 , T1.PCTFREE                                           10140000
                 , T1.COMPRESS                                          10150000
                 , T1.CLOSE                                             10160000
                 , T1.COPY                                              10170000
                 , T1.DEFINE                                            10180000
                 , T1.CLUSTERING                                        10190000
                 , (SELECT MAX(SK.COLSEQ)                               10200000
                      FROM SYSIBM.SYSKEYS SK                            10210000
                     WHERE T1.IXCREATOR  = SK.IXCREATOR                 10220000
                       AND T1.IXNAME     = SK.IXNAME                    10230000
                       AND T1.CLUSTERING = 'Y'                          10240000
                       AND SK.COLSEQ     = 1                            10250000
                   ) AS CNT_KEYS                                        10260000
                 , (SELECT SK.COLNAME                                   10270000
                      FROM SYSIBM.SYSKEYS SK                            10280000
                     WHERE T1.IXCREATOR  = SK.IXCREATOR                 10290000
                       AND T1.IXNAME     = SK.IXNAME                    10300000
                       AND T1.CLUSTERING = 'Y'                          10310000
                       AND SK.COLSEQ     = 1                            10320000
                   ) AS CLUSTERKEY                                      10330000
                 , T1.TSPARTITION                                       10340000
                 , T1.TPIXNAME                                          10350000
                 , T1.PIECESIZE                                         10360000
                 , T1.TSPGSIZE                                          10370000
                 , (SELECT COUNT(*)                                     10380000
                      FROM SYSIBM.SYSKEYS IK                            10390000
                     WHERE IK.IXNAME = T1.IXNAME                        10400000
                       AND (   IK.COLNAME LIKE '%ATRN%'                 10410000
                            OR IK.COLNAME LIKE '%STRN%'                 10420000
                           )                                            10430000
                   ) AS IXTECHBUSINESS                                  10440000
                 , T1.COMMENT                                           10450000
                 , T1.CREATEDTS                                         10460000
              FROM XSTMP T1                                             10470000
           )                                                            10480000
   , RXS   (  FAMILY                                                    10490000
            , COMMENT                                                   10500000
            , OBJECT                                                    10510000
            , OPTVALUE                                                  10520000
            , CREATEDTS                                                 10530000
           )                                                            10540000
        AS (SELECT DISTINCT                                             10550000
                   FAMILY                                               10560000
                 , COMMENT                                              10570000
                 , CAST(DATABASE AS CHAR(08))                           10580000
                || ' '                                                  10590000
                || IXNAME                                               10600000
                || ' '                                                  10610000
                || TBNAME                                               10620000
                 , 'NoIndexExists='                                     10630000
                || CASE WHEN LENGTH(STRIP(IXNAME)) = 0                  10640000
                        THEN 'NOK'                                      10650000
                        ELSE 'OK'                                       10660000
                   END                                                  10670000
                || ';'                                                  10680000
                || 'NPI='                                               10690000
                || CASE WHEN PARTITION + TSPARTITION = 0                10700000
                        THEN 'OK'                                       10710000
                   ELSE CASE WHEN TSPARTITION > 0 AND PIECESIZE = 0     10720000
                             THEN 'OK'                                  10730000
                             ELSE CASE WHEN PARTITION > 0 AND           10740000
                                            PIECESIZE > 0               10750000
                                       THEN 'OK'                        10760000
                                       ELSE 'NOK'                       10770000
                                  END                                   10780000
                        END                                             10790000
                   END                                                  10800000
                || ';'                                                  10810000
                || 'Indextype='                                         10820000
                || CASE INDEXTYPE                                       10830000
                        WHEN 'D' then case when tspartition > 0         10840000
                                           then 'OK'                    10850000
                                           else 'NOK'                   10860000
                                      end                               10870000
                        WHEN 'P' then case when tspartition > 0         10880000
                                           then 'OK'                    10890000
                                           else 'NOK'                   10900000
                                      end                               10910000
                        WHEN ' ' then case when tspartition > 0         10920000
                                           then 'NOK'                   10930000
                                           else 'OK'                    10940000
                                      end                               10950000
                        WHEN '2' then case when tspartition > 0         10960000
                                           then 'NOK'                   10970000
                                           else 'OK'                    10980000
                                      end                               10990000
                        ELSE 'NOK'                                      11000000
                   END                                                  11010000
                || ';'                                                  11020000
                || 'IndexPartLimit='                                    11030000
                || CASE WHEN PARTITION > (SELECT MAXPART                11040000
                                            FROM SESSION.MAXPART        11050000
                                           WHERE PARTYPE = 'Index'      11060000
                                         )                              11070000
                        THEN 'NOK'                                      11080000
                        ELSE 'OK'                                       11090000
                   END                                                  11100000
                || ';'                                                  11110000
                || 'Bufferpool='                                        11120000
                || CASE BPOOL_I                                         11130000
                        WHEN 'BP1' THEN 'OK'                            11140000
                        ELSE 'NOK'                                      11150000
                   END                                                  11160000
                || ';'                                                  11170000
                || 'GroupBufferPool='                                   11180000
                || CASE GBPCACHE                                        11190000
                        WHEN ' ' THEN 'OK'                              11200000
                   ELSE 'NOK'                                           11210000
                   END                                                  11220000
                || ';'                                                  11230000
                || 'Pagesize='                                          11240000
                || CASE WHEN TSPGSIZE = PGSIZE                          11250000
                        THEN 'OK'                                       11260000
                        ELSE 'OK'                                       11270000
                   END                                                  11280000
                || ';'                                                  11290000
                || 'CloseOption='                                       11300000
                || CASE CLOSE                                           11310000
                        WHEN 'Y' THEN 'OK'                              11320000
                   ELSE 'NOK'                                           11330000
                   END                                                  11340000
                || ';'                                                  11350000
                || 'IdxCompressOption='                                 11360000
                || CASE COMPRESS                                        11370000
                        WHEN 'N' THEN 'OK'                              11380000
                   ELSE 'NOK'                                           11390000
                   END                                                  11400000
                || ';'                                                  11410000
                || 'StorageGroup='                                      11420000
                || CASE STOGROUP                                        11430000
                        WHEN 'GSMS1' THEN 'OK'                          11440000
                   --   WHEN 'GSMS2' THEN 'OK'                          11450099
                        WHEN 'GSMS3' THEN 'OK'                          11460000
                        WHEN 'GSMS4' THEN 'OK'                          11470000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     11480000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      11490000
                                            THEN 'OK'                   11500000
                                            ELSE 'NOK'                  11510000
                                       END                              11520000
                                  ELSE 'NOK'                            11530000
                             END                                        11540000
                   END                                                  11550000
                || ';'                                                  11560000
                || 'PrimaryQuantity='                                   11570000
                || CASE PRIQTY                                          11580000
                        WHEN -1 THEN 'OK'                               11590000
                        ELSE 'NOK'                                      11600000
                   END                                                  11610000
                || ';'                                                  11620000
                || 'SecondaryQuantity='                                 11630000
                || CASE SECQTY                                          11640000
                        WHEN -1 THEN 'OK'                               11650000
                        ELSE 'NOK'                                      11660000
                   END                                                  11670000
                || ';'                                                  11680000
                || 'Define='                                            11690000
                || CASE DEFINE                                          11700000
                        WHEN -1 THEN 'NOK'                              11710000
                        ELSE 'OK'                                       11720000
                   END                                                  11730000
                || ';'                                                  11740000
                || 'FreePage'                                           11750000
                || CASE FREEPAGE                                        11760000
                        WHEN 0 THEN '=OK'                               11770000
                        ELSE '=NOK'                                     11780000
                   END                                                  11790000
                || ';'                                                  11800000
                || 'PctFree'                                            11810000
                || CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'               11820000
                        THEN '_Metadata=OK'                             11830000
                        ELSE                                            11840000
                             CASE WHEN IXTECHBUSINESS > 0               11850000
                                  THEN CASE PCTFREE                     11860000
                                          WHEN 0 THEN '_Technical=OK'   11870000
                                          ELSE '_Technical=NOK'         11880000
                                       END                              11890000
                                  ELSE CASE PCTFREE                     11900000
                                          WHEN 10 THEN '_Business=OK'   11910000
                                          ELSE '_Business=NOK'          11920000
                                       END                              11930000
                             END                                        11940000
                   END                                                  11950000
                || ';'                                                  11960000
                || 'Copy='                                              11970000
                || CASE COPY                                            11980000
                        WHEN 'N' THEN 'OK'                              11990000
                        ELSE 'NOK'                                      12000000
                   END                                                  12010000
                 , CREATEDTS                                            12020000
              FROM IXDDL                                                12030000
           )                                                            12040000
SELECT GENERATE_UNIQUE()                                                12050000
     , '4Indexspace Option Check'                                       12060000
     , FAMILY                                                           12070000
     , COMMENT                                                          12080000
     , OBJECT                                                           12090000
     , OPTVALUE                                                         12100000
     , CREATEDTS                                                        12110000
  FROM RXS                                                              12120000
 ORDER BY FAMILY                                                        12130000
        , OBJECT                                                        12140000
;                                                                       12150000
INSERT INTO SESSION.TEMP                                                12160000
WITH IXTYPE_FAILURE   ( INDEXTYPE                                       12170000
                      )                                                 12180000
       AS     ( SELECT 'C'                                              12190000
                  FROM SYSIBM.SYSDUMMY1                                 12200000
                UNION  ALL                                              12210000
                SELECT 'N'                                              12220000
                  FROM SYSIBM.SYSDUMMY1                                 12230000
                UNION  ALL                                              12240000
                SELECT 'R'                                              12250000
                  FROM SYSIBM.SYSDUMMY1                                 12260000
                UNION  ALL                                              12270000
                SELECT 'G'                                              12280000
                  FROM SYSIBM.SYSDUMMY1                                 12290000
                UNION  ALL                                              12300000
                SELECT 'X'                                              12310000
                  FROM SYSIBM.SYSDUMMY1                                 12320000
              )                                                         12330000
   , IXTYPE_UNIQUE ( INDEXTYPE                                          12340000
                   )                                                    12350000
       AS     ( SELECT 'P'                                              12360000
                  FROM SYSIBM.SYSDUMMY1                                 12370000
                UNION ALL                                               12380000
                SELECT 'U'                                              12390000
                  FROM SYSIBM.SYSDUMMY1                                 12400000
              )                                                         12410000
   , IXTYPE   ( INDEXTYPE                                               12420000
              )                                                         12430000
       AS     ( SELECT 'C'                                              12440000
                  FROM SYSIBM.SYSDUMMY1                                 12450000
                UNION  ALL                                              12460000
                SELECT 'D'                                              12470000
                  FROM SYSIBM.SYSDUMMY1                                 12480000
                UNION  ALL                                              12490000
                SELECT 'U'                                              12500000
                  FROM SYSIBM.SYSDUMMY1                                 12510000
                UNION  ALL                                              12520000
                SELECT 'P'                                              12530000
                  FROM SYSIBM.SYSDUMMY1                                 12540000
                UNION  ALL                                              12550000
                SELECT 'N'                                              12560000
                  FROM SYSIBM.SYSDUMMY1                                 12570000
                UNION  ALL                                              12580000
                SELECT 'R'                                              12590000
                  FROM SYSIBM.SYSDUMMY1                                 12600000
                UNION  ALL                                              12610000
                SELECT 'G'                                              12620000
                  FROM SYSIBM.SYSDUMMY1                                 12630000
                UNION  ALL                                              12640000
                SELECT 'X'                                              12650000
                  FROM SYSIBM.SYSDUMMY1                                 12660000
              )                                                         12670000
   , IXLST (  FAMILY                                                    12680000
            , DATABASE                                                  12690000
            , TBNAME                                                    12700000
            , IXNAME                                                    12710000
            , IXCREATOR                                                 12720000
            , ELAR_TYPE                                                 12730000
            , ELAR_ORDER                                                12740000
            , UNIQUERULE                                                12750000
            , CLUSTERING                                                12760000
            , MAXCOL                                                    12770000
            , EN1PART                                                   12780000
            , EA1ATRN                                                   12790000
            , EA1STRN                                                   12800000
            , EN1STK1                                                   12810000
            , EN1STK2                                                   12820000
            , EATRNVON                                                  12830000
            , EATRNBIS                                                  12840000
            , COMMENT                                                   12850000
            , CREATEDTS                                                 12860000
           )                                                            12870000
        AS (SELECT DISTINCT                                             12880000
                   EL.FAMILY                                            12890000
                 , DB.NAME                                              12900000
                 , TB.NAME                                              12910000
                 , IFNULL(IX.NAME,'NOK')                                12920000
                 , IX.CREATOR                                           12930000
                 , CAST(CASE SUBSTR(TB.NAME,9,2)                        12940000
                             WHEN 'HS' THEN 'SIGNATUR'                  12950000
                             WHEN 'IT' THEN 'BODY    '                  12960000
                             WHEN 'PM' THEN 'MULTIPLE'                  12970000
                             ELSE CASE SUBSTR(TB.NAME,9,5)              12980000
                                       WHEN 'PS001' THEN 'AOP     '     12990000
                                       WHEN 'PS002' THEN 'SEP     '     13000000
                                       WHEN 'PS003' THEN 'SEP_2   '     13010000
                                       ELSE '??????? '                  13020000
                                  END                                   13030000
                        END                                             13040000
                        AS CHAR(08)                                     13050000
                       )                                                13060000
                 , CAST(CASE SUBSTR(TB.NAME,9,2)                        13070000
                             WHEN 'HS' THEN '6'                         13080000
                             WHEN 'IT' THEN '4'                         13090000
                             WHEN 'PM' THEN '5'                         13100000
                             ELSE CASE SUBSTR(TB.NAME,9,5)              13110000
                                       WHEN 'PS001' THEN '1'            13120000
                                       WHEN 'PS002' THEN '2'            13130000
                                       WHEN 'PS003' THEN '3'            13140000
                                       ELSE '7'                         13150000
                                  END                                   13160000
                        END                                             13170000
                        AS CHAR(01)                                     13180000
                       )                                                13190000
                 , IFNULL(IX.UNIQUERULE,'NOK') AS UNIQUERULE            13200000
                 , IFNULL(IX.CLUSTERING,'NOK') AS CLUSTERING            13210000
                 , (SELECT COUNT(*)                                     13220000
                      FROM SYSIBM.SYSKEYS SK                            13230000
                     WHERE IX.NAME    = SK.IXNAME                       13240000
                       AND IX.CREATOR = SK.IXCREATOR                    13250000
                   ) AS MAXCOL                                          13260000
                 , IFNULL((SELECT SK.COLSEQ                             13270000
                             FROM SYSIBM.SYSKEYS SK                     13280000
                            WHERE IX.NAME    = SK.IXNAME                13290000
                              AND IX.CREATOR = SK.IXCREATOR             13300000
                              AND SK.COLNAME = 'EN1PART'                13310000
                          ), -1) AS EN1PART                             13320000
                 , IFNULL((SELECT SK.COLSEQ                             13330000
                             FROM SYSIBM.SYSKEYS SK                     13340000
                            WHERE IX.NAME    = SK.IXNAME                13350000
                              AND IX.CREATOR = SK.IXCREATOR             13360000
                              AND SK.COLNAME = 'EA1ATRN'                13370000
                          ), -1) AS EA1ATRN                             13380000
                 , IFNULL((SELECT SK.COLSEQ                             13390000
                             FROM SYSIBM.SYSKEYS SK                     13400000
                            WHERE IX.NAME    = SK.IXNAME                13410000
                              AND IX.CREATOR = SK.IXCREATOR             13420000
                              AND SK.COLNAME = 'EA1STRN'                13430000
                          ), -1) AS EA1STRN                             13440000
                 , IFNULL((SELECT SK.COLSEQ                             13450000
                             FROM SYSIBM.SYSKEYS SK                     13460000
                            WHERE IX.NAME    = SK.IXNAME                13470000
                              AND IX.CREATOR = SK.IXCREATOR             13480000
                              AND SK.COLNAME = 'EN1STK1'                13490000
                          ), -1) AS EN1STK1                             13500000
                 , IFNULL((SELECT SK.COLSEQ                             13510000
                             FROM SYSIBM.SYSKEYS SK                     13520000
                            WHERE IX.NAME    = SK.IXNAME                13530000
                              AND IX.CREATOR = SK.IXCREATOR             13540000
                              AND SK.COLNAME = 'EN1STK2'                13550000
                          ), -1) AS EN1STK2                             13560000
                 , IFNULL((SELECT SK.COLSEQ                             13570000
                             FROM SYSIBM.SYSKEYS SK                     13580000
                            WHERE IX.NAME    = SK.IXNAME                13590000
                              AND IX.CREATOR = SK.IXCREATOR             13600000
                              AND SK.COLNAME = 'EATRNVON'               13610000
                          ), -1) AS EATRNVON                            13620000
                 , IFNULL((SELECT SK.COLSEQ                             13630000
                             FROM SYSIBM.SYSKEYS SK                     13640000
                            WHERE IX.NAME    = SK.IXNAME                13650000
                              AND IX.CREATOR = SK.IXCREATOR             13660000
                              AND SK.COLNAME = 'EATRNBIS'               13670000
                          ), -1) AS EATRNBIS                            13680000
                 , EL.COMMENT                                           13690000
                 , IFNULL(IX.CREATEDTS, '0001-01-01-00.00.00.000000')   13700000
              FROM            SESSION.ELAR         EL                   13710000
             INNER       JOIN SYSIBM.SYSDATABASE   DB                   13720000
                           ON EL.STORAR = DB.NAME                       13730000
             INNER       JOIN SYSIBM.SYSTABLES     TB                   13740000
                           ON TB.DBNAME = DB.NAME                       13750000
                          AND TB.TYPE   = 'T'                           13760000
             INNER       JOIN SYSIBM.SYSTABLESPACE TS                   13770000
                           ON TB.TSNAME = TS.NAME                       13780000
                          AND TB.DBID   = TS.DBID                       13790000
                          AND TS.DBID   = DB.DBID                       13800000
              LEFT OUTER JOIN SYSIBM.SYSINDEXES    IX                   13810000
                           ON IX.TBNAME = TB.NAME                       13820000
              LEFT OUTER JOIN IXTYPE               TY                   13830000
                           ON IX.INDEXTYPE = TY.INDEXTYPE               13840000
           )                                                            13850000
   , RXI   (  FAMILY                                                    13860000
            , COMMENT                                                   13870000
            , OBJECT                                                    13880000
            , OPTVALUE                                                  13890000
            , CREATEDTS                                                 13900000
           )                                                            13910000
        AS (SELECT FAMILY                                               13920000
                 , COMMENT                                              13930000
                 , CAST(DATABASE AS CHAR(08))                           13940000
                || ' '                                                  13950000
                || TBNAME                                               13960000
                || ' '                                                  13970000
                 , 'No'                                                 13980000
                || ' '                                                  13990000
                || 'Index'                                              14000000
                || ' '                                                  14010000
                || 'exists=NOK'                                         14020000
                || ';'                                                  14030000
                 , CREATEDTS                                            14040000
              FROM IXLST                                                14050000
             WHERE UNIQUERULE = 'NOK'                                   14060000
            UNION  ALL                                                  14070000
            SELECT FAMILY                                               14080000
                 , COMMENT                                              14090000
                 , CAST(DATABASE AS CHAR(08))                           14100000
                || ' '                                                  14110000
                || IXNAME                                               14120000
                || ' '                                                  14130000
                || TBNAME                                               14140000
                || ' '                                                  14150000
                || 'IndexType_Failure'                                  14160000
                 , 'IndexType_Failure=NOK'                              14170000
                || ';'                                                  14180000
                 , CREATEDTS                                            14190000
              FROM IXLST                                                14200000
             WHERE UNIQUERULE IN (SELECT INDEXTYPE                      14210000
                                    FROM IXTYPE_FAILURE                 14220000
                                 )                                      14230000
            UNION  ALL                                                  14240000
            SELECT FAMILY                                               14250000
                 , COMMENT                                              14260000
                 , CAST(DATABASE AS CHAR(08))                           14270000
                || ' '                                                  14280000
                || IXNAME                                               14290000
                || ' '                                                  14300000
                || TBNAME                                               14310000
                || ' '                                                  14320000
                || 'IndexRule=Unique'                                   14330000
                 , 'EN1PART_MIS='                                       14340000
                || CASE WHEN EN1PART = -1                               14350000
                        THEN 'NOK'                                      14360000
                        ELSE 'OK'                                       14370000
                   END                                                  14380000
                || ';'                                                  14390000
                || 'EN1PART_WPOS='                                      14400000
                || CASE WHEN EN1PART = 2                                14410000
                        THEN 'OK'                                       14420000
                        ELSE 'NOK'                                      14430000
                   END                                                  14440000
                || ';'                                                  14450000
                || 'EA1ARTN_MIS='                                       14460000
                || CASE WHEN EA1ATRN = -1                               14470000
                        THEN 'NOK'                                      14480000
                        ELSE 'OK'                                       14490000
                   END                                                  14500000
                || ';'                                                  14510000
                || 'EA1ARTN_WPOS='                                      14520000
                || CASE WHEN EA1ATRN = 1                                14530000
                        THEN 'OK'                                       14540000
                        ELSE 'NOK'                                      14550000
                   END                                                  14560000
                || ';'                                                  14570000
                || 'CLUSTER_DEF='                                       14580000
                || CASE CLUSTERING                                      14590000
                        WHEN 'Y' THEN 'OK'                              14600000
                        ELSE 'NOK'                                      14610000
                   END                                                  14620000
                || ';'                                                  14630000
                || 'TooManyCols='                                       14640000
                || CASE MAXCOL                                          14650000
                        WHEN 2 THEN 'OK'                                14660000
                        ELSE 'NOK'                                      14670000
                   END                                                  14680000
                || ';'                                                  14690000
                 , CREATEDTS                                            14700000
              FROM IXLST                                                14710000
             WHERE ELAR_TYPE = 'AOP'                                    14720000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      14730000
                                    FROM IXTYPE_UNIQUE                  14740000
                                 )                                      14750000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          14760000
             UNION ALL                                                  14770000
            SELECT FAMILY                                               14780000
                 , COMMENT                                              14790000
                 , CAST(DATABASE AS CHAR(08))                           14800000
                || ' '                                                  14810000
                || IXNAME                                               14820000
                || ' '                                                  14830000
                || TBNAME                                               14840000
                || ' '                                                  14850000
                || 'IndexRule=Unique'                                   14860000
                 , 'EN1PART_MIS='                                       14870000
                || CASE WHEN EN1PART = -1                               14880000
                        THEN 'NOK'                                      14890000
                        ELSE 'OK'                                       14900000
                   END                                                  14910000
                || ';'                                                  14920000
                || 'EA1SRTN_MIS='                                       14930000
                || CASE WHEN EA1STRN = -1                               14940000
                        THEN 'NOK'                                      14950000
                        ELSE 'OK'                                       14960000
                   END                                                  14970000
                || ';'                                                  14980000
                || 'EN1PART_WPOS='                                      14990000
                || CASE WHEN EN1PART = 2                                15000000
                        THEN 'OK'                                       15010000
                        ELSE 'NOK'                                      15020000
                   END                                                  15030000
                || ';'                                                  15040000
                || 'EA1SRTN_WPOS='                                      15050000
                || CASE WHEN EA1STRN = 1                                15060000
                        THEN 'OK'                                       15070000
                        ELSE 'NOK'                                      15080000
                   END                                                  15090000
                || ';'                                                  15100000
                || 'CLUSTER_DEF='                                       15110000
                || CASE CLUSTERING                                      15120000
                        WHEN 'Y' THEN 'OK'                              15130000
                        ELSE 'NOK'                                      15140000
                   END                                                  15150000
                || ';'                                                  15160000
                || 'TooManyCols='                                       15170000
                || CASE MAXCOL                                          15180000
                        WHEN 2 THEN 'OK'                                15190000
                        ELSE 'NOK'                                      15200000
                   END                                                  15210000
                || ';'                                                  15220000
                 , CREATEDTS                                            15230000
              FROM IXLST                                                15240000
             WHERE ELAR_TYPE IN ('SEP', 'SEP_2')                        15250000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      15260000
                                    FROM IXTYPE_UNIQUE                  15270000
                                 )                                      15280000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          15290000
            UNION  ALL                                                  15300000
            SELECT FAMILY                                               15310000
                 , COMMENT                                              15320000
                 , CAST(DATABASE AS CHAR(08))                           15330000
                || ' '                                                  15340000
                || IXNAME                                               15350000
                || ' '                                                  15360000
                || TBNAME                                               15370000
                || ' '                                                  15380000
                || 'IndexRule=Unique'                                   15390000
                 , 'EN1PART_MIS='                                       15400000
                || CASE WHEN EN1PART = -1                               15410000
                        THEN 'NOK'                                      15420000
                        ELSE 'OK'                                       15430000
                   END                                                  15440000
                || ';'                                                  15450000
                || 'EA1STRN_MIS='                                       15460000
                || CASE WHEN EA1STRN = -1                               15470000
                        THEN 'NOK'                                      15480000
                        ELSE 'OK'                                       15490000
                   END                                                  15500000
                || ';'                                                  15510000
                || 'EN1STK1_MIS='                                       15520000
                || CASE WHEN EN1STK1 = -1                               15530000
                        THEN 'NOK'                                      15540000
                        ELSE 'OK'                                       15550000
                   END                                                  15560000
                || ';'                                                  15570000
                || 'EN1STK2_MIS='                                       15580000
                || CASE WHEN EN1STK2 = -1                               15590000
                        THEN 'NOK'                                      15600000
                        ELSE 'OK'                                       15610000
                   END                                                  15620000
                || ';'                                                  15630000
                || 'EN1PART_WPOS='                                      15640000
                || CASE WHEN EN1PART = 4                                15650000
                        THEN 'OK'                                       15660000
                        ELSE 'NOK'                                      15670000
                   END                                                  15680000
                || ';'                                                  15690000
                || 'EA1STRN_WPOS='                                      15700000
                || CASE WHEN EA1STRN = 1                                15710000
                        THEN 'OK'                                       15720000
                        ELSE 'NOK'                                      15730000
                   END                                                  15740000
                || ';'                                                  15750000
                || 'EN1STK1_WPOS='                                      15760000
                || CASE WHEN EN1STK1 = 2                                15770000
                        THEN 'OK'                                       15780000
                        ELSE 'NOK'                                      15790000
                   END                                                  15800000
                || ';'                                                  15810000
                || 'EN1STK2_WPOS='                                      15820000
                || CASE WHEN EN1STK2 = 3                                15830000
                        THEN 'OK'                                       15840000
                        ELSE 'NOK'                                      15850000
                   END                                                  15860000
                || ';'                                                  15870000
                || 'CLUSTER_DEF='                                       15880000
                || CASE CLUSTERING                                      15890000
                        WHEN 'Y' THEN 'OK'                              15900000
                        ELSE 'NOK'                                      15910000
                   END                                                  15920000
                || ';'                                                  15930000
                || 'TooManyCols='                                       15940000
                || CASE MAXCOL                                          15950000
                        WHEN 4 THEN 'OK'                                15960000
                        ELSE 'NOK'                                      15970000
                   END                                                  15980000
                || ';'                                                  15990000
                 , CREATEDTS                                            16000000
              FROM IXLST                                                16010000
             WHERE ELAR_TYPE = 'BODY'                                   16020000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      16030000
                                    FROM IXTYPE_UNIQUE                  16040000
                                 )                                      16050000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          16060000
            UNION  ALL                                                  16070000
            SELECT FAMILY                                               16080000
                 , COMMENT                                              16090000
                 , CAST(DATABASE AS CHAR(08))                           16100000
                || ' '                                                  16110000
                || IXNAME                                               16120000
                || ' '                                                  16130000
                || TBNAME                                               16140000
                || ' '                                                  16150000
                || 'IndexRule=Unique'                                   16160000
                 , 'EN1PART_MIS='                                       16170000
                || CASE WHEN EN1PART = -1                               16180000
                        THEN 'NOK'                                      16190000
                        ELSE 'OK'                                       16200000
                   END                                                  16210000
                || ';'                                                  16220000
                || 'EA1ATRN_MIS='                                       16230000
                || CASE WHEN EA1ATRN = -1                               16240000
                        THEN 'NOK'                                      16250000
                        ELSE 'OK'                                       16260000
                   END                                                  16270000
                || ';'                                                  16280000
                || 'EN1PART_WPOS='                                      16290000
                || CASE WHEN EN1PART = 2                                16300000
                        THEN 'OK'                                       16310000
                        ELSE 'NOK'                                      16320000
                   END                                                  16330000
                || ';'                                                  16340000
                || 'EA1ATRN_MIS='                                       16350000
                || CASE WHEN EA1ATRN = 1                                16360000
                        THEN 'OK'                                       16370000
                        ELSE 'NOK'                                      16380000
                   END                                                  16390000
                || ';'                                                  16400000
                || 'CLUSTER_DEF='                                       16410000
                || CASE CLUSTERING                                      16420000
                        WHEN 'N' THEN 'OK'                              16430000
                        ELSE 'NOK'                                      16440000
                   END                                                  16450000
                || ';'                                                  16460000
                || 'TooManyCols='                                       16470000
                || CASE MAXCOL                                          16480000
                        WHEN 2 THEN 'OK'                                16490000
                        ELSE 'NOK'                                      16500000
                   END                                                  16510000
                || ';'                                                  16520000
                 , CREATEDTS                                            16530000
              FROM IXLST                                                16540000
             WHERE ELAR_TYPE = 'MULTIPLE'                               16550000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      16560000
                                    FROM IXTYPE_UNIQUE                  16570000
                                 )                                      16580000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          16590000
            UNION  ALL                                                  16600000
            SELECT FAMILY                                               16610000
                 , COMMENT                                              16620000
                 , CAST(DATABASE AS CHAR(08))                           16630000
                || ' '                                                  16640000
                || IXNAME                                               16650000
                || ' '                                                  16660000
                || TBNAME                                               16670000
                || ' '                                                  16680000
                || 'IndexRule=Unique'                                   16690000
                 , 'EN1PART_MIS='                                       16700000
                || CASE WHEN EN1PART = -1                               16710000
                        THEN 'NOK'                                      16720000
                        ELSE 'OK'                                       16730000
                   END                                                  16740000
                || ';'                                                  16750000
                || 'EATRNVON_MIS='                                      16760000
                || CASE WHEN EATRNVON = -1                              16770000
                        THEN 'NOK'                                      16780000
                        ELSE 'OK'                                       16790000
                   END                                                  16800000
                || ';'                                                  16810000
                || 'EATRNBIS_MIS='                                      16820000
                || CASE WHEN EATRNBIS = -1                              16830000
                        THEN 'NOK'                                      16840000
                        ELSE 'OK'                                       16850000
                   END                                                  16860000
                || ';'                                                  16870000
                || 'EN1PART_WPOS='                                      16880000
                || CASE WHEN EN1PART = 3                                16890000
                        THEN 'OK'                                       16900000
                        ELSE 'NOK'                                      16910000
                   END                                                  16920000
                || ';'                                                  16930000
                || 'EATRNVON_WPOS='                                     16940000
                || CASE WHEN EATRNVON = 1                               16950000
                        THEN 'OK'                                       16960000
                        ELSE 'NOK'                                      16970000
                   END                                                  16980000
                || ';'                                                  16990000
                || 'EATRNBIS_MIS='                                      17000000
                || CASE WHEN EATRNBIS = 2                               17010000
                        THEN 'OK'                                       17020000
                        ELSE 'NOK'                                      17030000
                   END                                                  17040000
                || ';'                                                  17050000
                || 'TooManyCols='                                       17060000
                || CASE MAXCOL                                          17070000
                        WHEN 3 THEN 'OK'                                17080000
                        ELSE 'NOK'                                      17090000
                   END                                                  17100000
                || ';'                                                  17110000
                || 'CLUSTER_DEF='                                       17120000
                || CASE CLUSTERING                                      17130000
                        WHEN 'N' THEN 'OK'                              17140000
                        ELSE 'NOK'                                      17150000
                   END                                                  17160000
                || ';'                                                  17170000
                 , CREATEDTS                                            17180000
              FROM IXLST                                                17190000
             WHERE ELAR_TYPE = 'SIGNATUR'                               17200000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      17210000
                                    FROM IXTYPE_UNIQUE                  17220000
                                 )                                      17230000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          17240000
            UNION  ALL                                                  17250000
            SELECT FAMILY                                               17260000
                 , COMMENT                                              17270000
                 , CAST(DATABASE AS CHAR(08))                           17280000
                || ' '                                                  17290000
                || IXNAME                                               17300000
                || ' '                                                  17310000
                || TBNAME                                               17320000
                || ' '                                                  17330000
                || 'IndexRule=Duplicate'                                17340000
                 , 'EN1PART_FAIL='                                      17350000
                || CASE WHEN EN1PART > -1                               17360000
                        THEN 'NOK'                                      17370000
                        ELSE 'OK'                                       17380000
                   END                                                  17390000
                || ';'                                                  17400000
                || 'EA1ATRN_MIS='                                       17410000
                || CASE WHEN EA1ATRN = -1                               17420000
                        THEN 'NOK'                                      17430000
                        ELSE 'OK'                                       17440000
                   END                                                  17450000
                || ';'                                                  17460000
                || 'EA1ATRN_WPOS='                                      17470000
                || CASE WHEN EA1ATRN = 1                                17480000
                        THEN 'NOK'                                      17490000
                        ELSE 'OK'                                       17500000
                   END                                                  17510000
                || ';'                                                  17520000
                || 'TooManyCols='                                       17530000
                || CASE MAXCOL                                          17540000
                        WHEN 1 THEN 'OK'                                17550000
                        ELSE 'NOK'                                      17560000
                   END                                                  17570000
                || ';'                                                  17580000
                || 'CLUSTER_DEF='                                       17590000
                || CASE CLUSTERING                                      17600000
                        WHEN 'Y' THEN 'OK'                              17610000
                        ELSE 'NOK'                                      17620000
                   END                                                  17630000
                || ';'                                                  17640000
                 , CREATEDTS                                            17650000
              FROM IXLST                                                17660000
             WHERE ELAR_TYPE = 'MULTIPLE'                               17670000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      17680000
                                    FROM IXTYPE_UNIQUE                  17690000
                                 )                                      17700000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          17710000
            UNION  ALL                                                  17720000
            SELECT FAMILY                                               17730000
                 , COMMENT                                              17740000
                 , CAST(DATABASE AS CHAR(08))                           17750000
                || ' '                                                  17760000
                || IXNAME                                               17770000
                || ' '                                                  17780000
                || TBNAME                                               17790000
                || ' '                                                  17800000
                || 'IndexRule=Duplicate'                                17810000
                 , 'EN1PART_FIAL='                                      17820000
                || CASE WHEN EN1PART > -1                               17830000
                        THEN 'NOK'                                      17840000
                        ELSE 'OK'                                       17850000
                   END                                                  17860000
                || ';'                                                  17870000
                || 'EATRNVON_MIS='                                      17880000
                || CASE WHEN EATRNVON = -1                              17890000
                        THEN 'NOK'                                      17900000
                        ELSE 'OK'                                       17910000
                   END                                                  17920000
                || ';'                                                  17930000
                || 'EATRNBIS_MIS='                                      17940000
                || CASE WHEN EATRNBIS = -1                              17950000
                        THEN 'NOK'                                      17960000
                        ELSE 'OK'                                       17970000
                   END                                                  17980000
                || ';'                                                  17990000
                || 'EATRNVON_WPOS='                                     18000000
                || CASE WHEN EATRNVON = 1                               18010000
                        THEN 'OK'                                       18020000
                        ELSE 'NOK'                                      18030000
                   END                                                  18040000
                || ';'                                                  18050000
                || 'EATRNBIS_MIS='                                      18060000
                || CASE WHEN EATRNBIS = 2                               18070000
                        THEN 'OK'                                       18080000
                        ELSE 'NOK'                                      18090000
                   END                                                  18100000
                || ';'                                                  18110000
                || 'TooManyCols='                                       18120000
                || CASE MAXCOL                                          18130000
                        WHEN 2 THEN 'OK'                                18140000
                        ELSE 'NOK'                                      18150000
                   END                                                  18160000
                || ';'                                                  18170000
                || 'CLUSTER_DEF='                                       18180000
                || CASE CLUSTERING                                      18190000
                        WHEN 'Y' THEN 'OK'                              18200000
                        ELSE 'NOK'                                      18210000
                   END                                                  18220000
                || ';'                                                  18230000
                 , CREATEDTS                                            18240000
              FROM IXLST                                                18250000
             WHERE ELAR_TYPE = 'SIGNATUR'                               18260000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      18270000
                                    FROM IXTYPE_UNIQUE                  18280000
                                 )                                      18290000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          18300000
            UNION  ALL                                                  18310000
            SELECT FAMILY                                               18320000
                 , COMMENT                                              18330000
                 , CAST(DATABASE AS CHAR(08))                           18340000
                || ' '                                                  18350000
                || IXNAME                                               18360000
                || ' '                                                  18370000
                || TBNAME                                               18380000
                || ' '                                                  18390000
                || 'IndexRule=Unknown'                                  18400000
                 , 'Index_Rule=NOK;'                                    18410000
                 , CREATEDTS                                            18420000
              FROM IXLST                                                18430000
             WHERE ELAR_TYPE = 'unknown '                               18440000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          18450000
           )                                                            18460000
SELECT GENERATE_UNIQUE()                                                18470000
     , '5Index Option Check'                                            18480000
     , FAMILY                                                           18490000
     , COMMENT                                                          18500000
     , OBJECT                                                           18510000
     , OPTVALUE                                                         18520000
     , CREATEDTS                                                        18530000
  FROM RXI                                                              18540000
 ORDER BY FAMILY                                                        18550000
        , OBJECT                                                        18560000
;                                                                       18570000
INSERT INTO SESSION.TEMP                                                18580000
SELECT GENERATE_UNIQUE()                                                18590000
     , '6ELAR meta data mismatch'                                       18600000
     , FAMILY                                                           18610000
     , ' '                                                              18620000
     , FAMILY                                                           18630000
     , 'NoDatabaseExists=NOK;'                                          18640000
     , '0001-01-01-00.00.00.000000'                                     18650000
  FROM SESSION.FAMLISTE                                                 18660000
 WHERE STORAR_N IS NULL                                                 18670000
   AND ENSEG_N  IS NULL                                                 18680000
   AND SUBSTR(DBNAME,1,3) <> 'DXB'                                      18690000
   AND SUBSTR(FAMILY,1,1) <> '?'                                        18700000
UNION  ALL                                                              18710000
SELECT GENERATE_UNIQUE()                                                18720000
     , '7ELAR meta data mismatch'                                       18730000
     , DBNAME                                                           18740000
     , ' '                                                              18750000
     , DBNAME                                                           18760000
     , 'DatabaseNoFamily=NOK;'                                          18770000
     , '0001-01-01-00.00.00.000000'                                     18780000
  FROM SESSION.FAMLISTE                                                 18790000
 WHERE DBNAME NOT IN (SELECT STORAR                                     18800000
                        FROM SESSION.ELAR                               18810000
                     )                                                  18820000
   AND SUBSTR(DBNAME,1,1) <> '?'                                        18830000
;                                                                       18840000
DECLARE GLOBAL TEMPORARY TABLE PARMVALUE                                18850000
               (  OPTION       CHAR(025)                                18860000
                , VALUE        CHAR(120)                                18870000
                , SUBORD       INTEGER                                  18880000
               )                                                        18890000
;                                                                       18900000
INSERT   INTO SESSION.PARMVALUE                                         18910000
       VALUES (  'InfoTCP'                                              18920000
               , 'Info: Table Controlled Partition'                     18930000
               , 0                                                      18940000
              )                                                         18950000
;                                                                       18960000
INSERT   INTO SESSION.PARMVALUE                                         18970000
       VALUES (  'NPI'                                                  18980000
               , 'on partitioned Object (table/Index) '                 18990000
                 || 'not allowed'                                       19000000
               , 0                                                      19010000
              )                                                         19020000
;                                                                       19030000
INSERT   INTO SESSION.PARMVALUE                                         19040000
       VALUES (  'InfoTSS'                                              19050000
               , 'Info: Segmented or Simple Table'                      19060000
               , 0                                                      19070000
              )                                                         19080000
;                                                                       19090000
INSERT   INTO SESSION.PARMVALUE                                         19100000
       VALUES (  'InfoICP'                                              19110000
               , 'Info: Index Controlled Partition'                     19120000
               , 0                                                      19130000
              )                                                         19140000
;                                                                       19150000
INSERT   INTO SESSION.PARMVALUE                                         19160000
       VALUES (  'InfoNPI'                                              19170000
               , 'Info: Non partitioned Index'                          19180000
               , 0                                                      19190000
              )                                                         19200000
;                                                                       19210000
INSERT   INTO SESSION.PARMVALUE                                         19220000
       VALUES (  'StorageGroup'                                         19230000
               , 'GSMS1, GSMS3 or GSMS4 for XB Databases '              19240099
                 || 'GSMS for ELAR Metadata allowed'                    19250000
               , 3                                                      19260000
              )                                                         19270000
;                                                                       19280000
INSERT   INTO SESSION.PARMVALUE                                         19290000
       VALUES (  'Bufferpool_DB'                                        19300000
                 ,'BP2 allowed on Datasbase definition level'           19310000
                 , 0                                                    19320000
              )                                                         19330000
;                                                                       19340000
INSERT   INTO SESSION.PARMVALUE                                         19350000
       VALUES (  'Bufferpool_DB_IX'                                     19360000
                 ,'BP1 allowed on Datasbase definition level'           19370000
                 , 1                                                    19380000
              )                                                         19390000
;                                                                       19400000
INSERT   INTO SESSION.PARMVALUE                                         19410000
       VALUES (  'Bufferpool_TS'                                        19420000
                 ,'Only BP2, BP8 and BP32K allowed for Tablespaces'     19430000
                 , 2                                                    19440000
              )                                                         19450000
;                                                                       19460000
INSERT   INTO SESSION.PARMVALUE                                         19470000
       VALUES (  'Bufferpool_SHS'                                       19480000
                 ,'Only BP32K for this Tablespaces allowed'             19490000
                 , 2                                                    19500000
              )                                                         19510000
;                                                                       19520000
INSERT   INTO SESSION.PARMVALUE                                         19530000
       VALUES (  'Bufferpool_LOB'                                       19540000
                 ,'Only BP8 for LOB Tablespaces allowed'                19550000
                 , 2                                                    19560000
              )                                                         19570000
;                                                                       19580000
INSERT   INTO SESSION.PARMVALUE                                         19590000
       VALUES (  'IndexBufferpool', 'BP1'                               19600000
               , 3                                                      19610000
              )                                                         19620000
;                                                                       19630000
INSERT   INTO SESSION.PARMVALUE                                         19640000
       VALUES (  'EncodingScheme', 'EBCDIC'                             19650000
               , 4                                                      19660000
              )                                                         19670000
;                                                                       19680000
INSERT   INTO SESSION.PARMVALUE                                         19690000
       VALUES (  'Groupbufferpool', 'Changed'                           19700000
               , 5                                                      19710000
              )                                                         19720000
;                                                                       19730000
INSERT   INTO SESSION.PARMVALUE                                         19740000
       VALUES (  'LOB Bufferpool', 'BP8'                                19750000
               , 6                                                      19760000
              )                                                         19770000
;                                                                       19780000
INSERT   INTO SESSION.PARMVALUE                                         19790000
       VALUES (  'Trackmode', 'No', 10                                  19800000
              )                                                         19810000
;                                                                       19820000
INSERT   INTO SESSION.PARMVALUE                                         19830000
       VALUES (  'LoggedOption', 'Yes', 11                              19840000
              )                                                         19850000
;                                                                       19860000
INSERT   INTO SESSION.PARMVALUE                                         19870000
       VALUES (  'DSSIZE'                                               19880000
               , 'DSSIZE must be 16GB. No other values allowed'         19890000
               , 12                                                     19900000
              )                                                         19910000
;                                                                       19920000
INSERT   INTO SESSION.PARMVALUE                                         19930000
       VALUES (  'Locksize', 'Any', 13                                  19940000
              )                                                         19950000
;                                                                       19960000
INSERT   INTO SESSION.PARMVALUE                                         19970000
       VALUES (  'LockMax', 'System', 14                                19980000
              )                                                         19990000
;                                                                       20000000
INSERT   INTO SESSION.PARMVALUE                                         20010000
       VALUES (  'CloseOption', 'Yes', 17                               20020000
              )                                                         20030000
;                                                                       20040000
INSERT   INTO SESSION.PARMVALUE                                         20050000
       VALUES (  'TblCompressOption', 'Yes', 27                         20060000
              )                                                         20070000
;                                                                       20080000
INSERT   INTO SESSION.PARMVALUE                                         20090000
       VALUES (  'IdxCompressOption', 'No', 29                          20100000
              )                                                         20110000
;                                                                       20120000
INSERT   INTO SESSION.PARMVALUE                                         20130000
       VALUES (  'PrimaryQuantity', 'Only value -1 allowed'             20140000
               , 8                                                      20150000
              )                                                         20160000
;                                                                       20170000
INSERT   INTO SESSION.PARMVALUE                                         20180000
       VALUES (  'SecondaryQuantity', 'Only value -1 allowed'           20190000
               , 9                                                      20200000
              )                                                         20210000
;                                                                       20220000
INSERT   INTO SESSION.PARMVALUE                                         20230000
       VALUES (  'DefineOption', 'Yes', 23                              20240000
              )                                                         20250000
;                                                                       20260000
INSERT   INTO SESSION.PARMVALUE                                         20270000
       VALUES (  'MaxRowsPerPage', '255', 24                            20280000
              )                                                         20290000
;                                                                       20300000
INSERT   INTO SESSION.PARMVALUE                                         20310000
       VALUES (  'Audit', 'None', 18                                    20320000
              )                                                         20330000
;                                                                       20340000
INSERT   INTO SESSION.PARMVALUE                                         20350000
       VALUES (  'DataCapture', 'None', 19                              20360000
              )                                                         20370000
;                                                                       20380000
INSERT   INTO SESSION.PARMVALUE                                         20390000
       VALUES (  'RestrictOnDrop'                                       20400000
               , 'Missing Option With Restrict on Drop'                 20410000
               , 20                                                     20420000
              )                                                         20430000
;                                                                       20440000
INSERT   INTO SESSION.PARMVALUE                                         20450000
       VALUES (  'Volatile', 'correct value is Yes', 21                 20460000
              )                                                         20470000
;                                                                       20480000
INSERT   INTO SESSION.PARMVALUE                                         20490000
       VALUES (  'Append', 'Current value is not YES', 22               20500000
              )                                                         20510000
;                                                                       20520000
INSERT   INTO SESSION.PARMVALUE                                         20530000
       VALUES (  'PartKeyName', 'EN1PART', 30                           20540000
              )                                                         20550000
;                                                                       20560000
INSERT   INTO SESSION.PARMVALUE                                         20570000
       VALUES (  'PartKeyType', 'Integer', 31                           20580000
              )                                                         20590000
;                                                                       20600000
INSERT   INTO SESSION.PARMVALUE                                         20610000
       VALUES (  'PartKeyPosition', 'First Column of Table', 32         20620000
              )                                                         20630000
;                                                                       20640000
INSERT   INTO SESSION.PARMVALUE                                         20650000
       VALUES (  'EN1PART_MIS'                                          20660000
               , 'EN1PART missing in Index', 33                         20670000
              )                                                         20680000
;                                                                       20690000
INSERT   INTO SESSION.PARMVALUE                                         20700000
       VALUES (  'EA1ARTN_MIS'                                          20710000
               , 'EA1ATRN missing in Index', 33                         20720000
              )                                                         20730000
;                                                                       20740000
INSERT   INTO SESSION.PARMVALUE                                         20750000
       VALUES (  'EA1SRTN_MIS'                                          20760000
               , 'EA1STRN missing in Index', 33                         20770000
              )                                                         20780000
;                                                                       20790000
INSERT   INTO SESSION.PARMVALUE                                         20800000
       VALUES (  'EN1STK1_MIS'                                          20810000
               , 'EN1STK1 missing in Index', 33                         20820000
              )                                                         20830000
;                                                                       20840000
INSERT   INTO SESSION.PARMVALUE                                         20850000
       VALUES (  'EN1STK2_MIS'                                          20860000
               , 'EN1STK2 missing in Index', 33                         20870000
              )                                                         20880000
;                                                                       20890000
INSERT   INTO SESSION.PARMVALUE                                         20900000
       VALUES (  'EATRNVON_MIS'                                         20910000
               , 'EATRNVON missing in Index', 33                        20920000
              )                                                         20930000
;                                                                       20940000
INSERT   INTO SESSION.PARMVALUE                                         20950000
       VALUES (  'EATRNBIS_MIS'                                         20960000
               , 'EATRNBIS missing in Index', 33                        20970000
              )                                                         20980000
;                                                                       20990000
INSERT   INTO SESSION.PARMVALUE                                         21000000
       VALUES (  'EN1PART_WPOS'                                         21010000
               , 'EN1PART wrong position in index', 33                  21020000
              )                                                         21030000
;                                                                       21040000
INSERT   INTO SESSION.PARMVALUE                                         21050000
       VALUES (  'EA1ARTN_WPOS'                                         21060000
               , 'EA1ATRN wrong position in index', 33                  21070000
              )                                                         21080000
;                                                                       21090000
INSERT   INTO SESSION.PARMVALUE                                         21100000
       VALUES (  'EA1SRTN_WPOS'                                         21110000
               , 'EA1STRN wrong position in index', 33                  21120000
              )                                                         21130000
;                                                                       21140000
INSERT   INTO SESSION.PARMVALUE                                         21150000
       VALUES (  'EN1STK1_WPOS'                                         21160000
               , 'EN1STK1 wrong position in index', 33                  21170000
              )                                                         21180000
;                                                                       21190000
INSERT   INTO SESSION.PARMVALUE                                         21200000
       VALUES (  'EN1STK2_WPOS'                                         21210000
               , 'EN1STK2 wrong position in index', 33                  21220000
              )                                                         21230000
;                                                                       21240000
INSERT   INTO SESSION.PARMVALUE                                         21250000
       VALUES (  'EATRNVON_WPOS'                                        21260000
               , 'EATRNVO wrong position in index', 33                  21270000
              )                                                         21280000
;                                                                       21290000
INSERT   INTO SESSION.PARMVALUE                                         21300000
       VALUES (  'EATRNBIS_WPOS'                                        21310000
               , 'EATRNBIS wrong position in index', 33                 21320000
              )                                                         21330000
;                                                                       21340000
INSERT   INTO SESSION.PARMVALUE                                         21350000
       VALUES (  'EN1PART_FAIL'                                         21360000
               , 'EN1PART not allowed for the index', 34                21370000
              )                                                         21380000
;                                                                       21390000
INSERT   INTO SESSION.PARMVALUE                                         21400000
       VALUES (  'CLUSTER_DEF'                                          21410000
               , 'Cluster definition not allowed, wrong context', 35    21420000
              )                                                         21430000
;                                                                       21440000
INSERT   INTO SESSION.PARMVALUE                                         21450000
       VALUES (  'TooManyCols'                                          21460000
               , 'Number of key columns not correct. Number depends'    21470000
               ||'on ELAR table type'                                   21480000
               , 35                                                     21490000
              )                                                         21500000
;                                                                       21510000
INSERT   INTO SESSION.PARMVALUE                                         21520000
       VALUES (  'TablePartLimit', 'Partition limit exceeded (' ||      21530000
                                    (SELECT STRIP(CAST(MAXPART AS       21540000
                                                       CHAR(06)         21550000
                                                      )                 21560000
                                                 )                      21570000
                                       FROM SESSION.MAXPART             21580000
                                      WHERE PARTYPE = 'Table'           21590000
                                    ) || ' Partition allowed)'          21600000
               , 39                                                     21610000
              )                                                         21620000
;                                                                       21630000
INSERT   INTO SESSION.PARMVALUE                                         21640000
       VALUES (  'IndexPartLimit', 'Maximum of ' ||                     21650000
                                    (SELECT CAST(MAXPART AS CHAR(06))   21660000
                                       FROM SESSION.MAXPART             21670000
                                      WHERE PARTYPE = 'Index'           21680000
                                    ) || ' Partition exceeded '         21690000
               , 40                                                     21700000
              )                                                         21710000
;                                                                       21720000
INSERT   INTO SESSION.PARMVALUE                                         21730000
       VALUES (  'PartKeyValue(s)'                                      21740000
               , 'only natural Numbers and one value allowed'           21750000
               , 34                                                     21760000
              )                                                         21770000
;                                                                       21780000
INSERT   INTO SESSION.PARMVALUE                                         21790000
       VALUES (  'PartKeyColNum'                                        21800000
               , 'Wrong partitioning, use classic partitioning'         21810000
               , 35                                                     21820000
              )                                                         21830000
;                                                                       21840000
INSERT   INTO SESSION.PARMVALUE                                         21850000
       VALUES (  'Indextype'                                            21860000
               , 'Unique DPSI, when Primary Index all other are DPSI'   21870000
               , 28                                                     21880000
              )                                                         21890000
;                                                                       21900000
INSERT   INTO SESSION.PARMVALUE                                         21910000
       VALUES (  'Pagesize'                                             21920000
               , 'Pagesize Tablespace <> Pagesize Indexspace'           21930000
               , 16                                                     21940000
              )                                                         21950000
;                                                                       21960000
INSERT   INTO SESSION.PARMVALUE                                         21970000
       VALUES (  'FreePage'                                             21980000
               , 'Value must be 0 for technical/business indexes'       21990000
               , 7                                                      22000000
              )                                                         22010000
;                                                                       22020000
INSERT   INTO SESSION.PARMVALUE                                         22030000
       VALUES (  'TSFreepage'                                           22040000
               , 'Value is not 0'                                       22050000
               , 7                                                      22060000
              )                                                         22070000
;                                                                       22080000
INSERT   INTO SESSION.PARMVALUE                                         22090000
       VALUES (  'PctFree_Business'                                     22100000
               , 'Value must be 10 for business Indexes'                22110000
               , 6                                                      22120000
              )                                                         22130000
;                                                                       22140000
INSERT   INTO SESSION.PARMVALUE                                         22150000
       VALUES (  'PctFree_Technical'                                    22160000
               , 'Value must be 0 for technical indexes'                22170000
               , 6                                                      22180000
              )                                                         22190000
;                                                                       22200000
INSERT   INTO SESSION.PARMVALUE                                         22210000
       VALUES (  'TSPctfree'                                            22220000
               , 'Value is not 0'                                       22230000
               , 6                                                      22240000
              )                                                         22250000
;                                                                       22260000
INSERT   INTO SESSION.PARMVALUE                                         22270000
       VALUES (  'Copy', 'No', 26                                       22280000
              )                                                         22290000
;                                                                       22300000
INSERT   INTO SESSION.PARMVALUE                                         22310000
       VALUES (  'No Index exists'                                      22320000
               , 'verify and implement an Index. Access path for all '  22330000
               || 'queries are Tablespace Scans| (Proof Monitor)'       22340000
               , 50                                                     22350000
              )                                                         22360000
;                                                                       22370000
INSERT   INTO SESSION.PARMVALUE                                         22380000
       VALUES (  'IndexType_Failure'                                    22390000
               , 'Only index type DPSI (D), Unique (U) and '            22400000
               || 'Primary (P) are allowed'                             22410000
               , 50                                                     22420000
              )                                                         22430000
;                                                                       22440000
INSERT   INTO SESSION.PARMVALUE                                         22450000
       VALUES (  'EN1PART_MIS'                                          22460000
               , 'Missing EN1PART. Must be part of PRIMARY '            22470000
                 || 'or UNIQUE INDEX (see Guideline 01.07.2013'         22480000
               , 51                                                     22490000
              )                                                         22500000
;                                                                       22510000
INSERT   INTO SESSION.PARMVALUE                                         22520000
       VALUES (  'Index_Rule'                                           22530000
               , 'no rules are defined. REASON: Unknown ELAR '          22540000
                 || 'table type (not documented, experimental type'     22550000
               , 53                                                     22560000
              )                                                         22570000
;                                                                       22580000
INSERT   INTO SESSION.PARMVALUE                                         22590000
       VALUES (  'NoDatabaseExists'                                     22600000
               , 'No DB2 Objects exists for DDL Check'                  22610000
               , 0                                                      22620000
              )                                                         22630000
;                                                                       22640000
INSERT   INTO SESSION.PARMVALUE                                         22650000
       VALUES (  'DatabaseNoFamily'                                     22660000
               , 'DB2 Objects exists but no ELAR Meta data available'   22670000
               , 0                                                      22680000
              )                                                         22690000
;                                                                       22700000
-- Preperation of result list splitting complete string into option name22710000
-- and option value. Options separated by semicolon. Option and value   22720000
-- separated by equal sign. Elimination of duplicate entries and store  22730000
-- only entries with NOK in temporary table exception.                  22740000
DECLARE GLOBAL TEMPORARY TABLE EXCEPTION                                22750000
               (  OBJECT          CHAR(60)                              22760000
                , OPTION          CHAR(24)                              22770000
                , CORRECT_VALUES  CHAR(120)                             22780000
                , FAMILY          CHAR(30)                              22790000
                , CRITERIA        CHAR(30)                              22800000
                , OPTIONNUM       INTEGER                               22810000
                , SUBORD          INTEGER                               22820000
                , COMMENT         CHAR(20)                              22830000
                , OVALUE          CHAR(03)                              22840000
                , CREATEDTS       TIMESTAMP(6)                          22850000
               )                                                        22860000
;                                                                       22870000
INSERT INTO SESSION.EXCEPTION (                                         22880000
                  OBJECT                                                22890000
                , OPTION                                                22900000
                , CORRECT_VALUES                                        22910000
                , FAMILY                                                22920000
                , CRITERIA                                              22930000
                , OPTIONNUM                                             22940000
                , SUBORD                                                22950000
                , COMMENT                                               22960000
                , OVALUE                                                22970000
                , CREATEDTS                                             22980000
                    )                                                   22990000
WITH RESULT (  SNUM                                                     23000000
             , CRITERIA                                                 23010000
             , FAMILY                                                   23020000
             , OBJECT                                                   23030000
             , OPTIONNUM                                                23040000
             , OPTION                                                   23050000
             , OVALUE                                                   23060000
             , CHECKVALUE                                               23070000
             , COMMENT                                                  23080000
             , CREATEDTS                                                23090000
            )                                                           23100000
         AS (SELECT T0.SNUM                                             23110000
                  , T0.CRITERIA                                         23120000
                  , T0.FAMILY                                           23130000
                  , T0.OBJECT                                           23140000
                  , 1                                                   23150000
                  , CASE WHEN LOCATE('=', T0.OPTVALUE) > 0              23160000
                         THEN SUBSTR(  T0.OPTVALUE                      23170000
                                     , 1                                23180000
                                     , LOCATE('=', T0.OPTVALUE) - 1     23190000
                                    )                                   23200000
                         ELSE OPTVALUE                                  23210000
                    END AS OPTION                                       23220000
                  , CASE WHEN LOCATE('=', T0.OPTVALUE) > 0              23230000
                         THEN SUBSTR(  T0.OPTVALUE                      23240000
                                     , LOCATE('=', T0.OPTVALUE) + 1     23250000
                                     , LOCATE(';', T0.OPTVALUE) -       23260000
                                       LOCATE('=', T0.OPTVALUE) - 1     23270000
                                    )                                   23280000
                         ELSE OPTVALUE                                  23290000
                    END AS OVALUE                                       23300000
                  , CASE WHEN LOCATE(';', T0.OPTVALUE) > 0              23310000
                         THEN SUBSTR(  T0.OPTVALUE                      23320000
                                     , LOCATE(';', T0.OPTVALUE) + 1     23330000
                                    )                                   23340000
                         ELSE NULL                                      23350000
                    END AS OPTVALUE                                     23360000
                  , T0.COMMENT                                          23370000
                  , T0.CREATEDTS                                        23380000
               FROM SESSION.TEMP T0                                     23390000
             UNION  ALL                                                 23400000
             SELECT T1.SNUM                                             23410000
                  , T1.CRITERIA                                         23420000
                  , T1.FAMILY                                           23430000
                  , T1.OBJECT                                           23440000
                  , T1.OPTIONNUM + 1                                    23450000
                  , CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0            23460000
                         THEN SUBSTR(  T1.CHECKVALUE                    23470000
                                     , 1                                23480000
                                     , LOCATE('=', T1.CHECKVALUE) - 1   23490000
                                    )                                   23500000
                         ELSE CHECKVALUE                                23510000
                    END AS OPTION                                       23520000
                  , CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0            23530000
                    THEN CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0       23540000
                         THEN SUBSTR(  T1.CHECKVALUE                    23550000
                                     ,   LOCATE('=', T1.CHECKVALUE)     23560000
                                       + 1                              23570000
                                     ,   LOCATE(';', T1.CHECKVALUE)     23580000
                                       - LOCATE('=', T1.CHECKVALUE)     23590000
                                       - 1                              23600000
                                    )                                   23610000
                         ELSE SUBSTR(  T1.CHECKVALUE                    23620000
                                     ,   LOCATE('=', T1.CHECKVALUE)     23630000
                                       + 1                              23640000
                                    )                                   23650000
                         END                                            23660000
                    ELSE CHECKVALUE                                     23670000
                    END AS OVALUE                                       23680000
                  , CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0            23690000
                         THEN SUBSTR(  T1.CHECKVALUE                    23700000
                                     , LOCATE(';', T1.CHECKVALUE) + 1   23710000
                                    )                                   23720000
                         ELSE NULL                                      23730000
                    END AS OPTVALUE                                     23740000
                  , T1.COMMENT                                          23750000
                  , T1.CREATEDTS                                        23760000
               FROM RESULT T1                                           23770000
              WHERE T1.CHECKVALUE IS NOT NULL                           23780000
            )                                                           23790000
SELECT DISTINCT                                                         23800000
       RE.OBJECT                                                        23810000
     , CAST(RE.OPTION AS CHAR(24)) AS OPTION                            23820000
     , PV.VALUE                    AS CORRECT_VALUES                    23830000
     , RE.FAMILY                                                        23840000
     , RE.CRITERIA                                                      23850000
     , RE.OPTIONNUM                                                     23860000
     , PV.SUBORD                                                        23870000
     , RE.COMMENT                                                       23880000
     , RE.OVALUE                                                        23890000
     , RE.CREATEDTS                                                     23900000
  FROM      RESULT RE                                                   23910000
 INNER JOIN SESSION.PARMVALUE PV                                        23920000
         ON RE.OPTION = PV.OPTION                                       23930000
 WHERE RE.OVALUE = 'NOK'                                                23940000
;                                                                       23950000
--                                                                      23960000
-- Generate final message. Three different message possible:            23970000
-- (1) Database not found => Database not created and                   23980000
-- (2) No failures  found => All check passed without failures          23990000
-- (3) Failuers found     => Not all ckecks passed without failures     24000000
--                                                                      24010000
INSERT INTO SESSION.EXCEPTION (                                         24020000
                  OBJECT                                                24030000
                , OPTION                                                24040000
                , CORRECT_VALUES                                        24050000
                , FAMILY                                                24060000
                , CRITERIA                                              24070000
                , OPTIONNUM                                             24080000
                , SUBORD                                                24090000
                , COMMENT                                               24100000
                , OVALUE                                                24110000
                , CREATEDTS                                             24120000
                    )                                                   24130000
SELECT 'Database not found => no check possible'                        24140000
     , ' '                                                              24150000
     , ' '                                                              24160000
     , ' '                                                              24170000
     , ' '                                                              24180000
     , -100                                                             24190000
     , -100                                                             24200000
     , ' '                                                              24210000
     , ' '                                                              24220000
     , '0001-01-01-00.00.00.000000'                                     24230000
  FROM SYSIBM.SYSDUMMY1                                                 24240000
 WHERE (SELECT COUNT(*)                                                 24250000
          FROM      SESSION.FAMLISTE   FAM                              24260000
         INNER JOIN SYSIBM.SYSDATABASE DB                               24270000
                 ON FAM.DBNAME = DB.NAME                                24280000
       ) = 0                                                            24290000
   AND (SELECT DBNAME FROM SESSION.FAMLISTE) IS NOT NULL                24291000
;                                                                       24300000
INSERT INTO SESSION.EXCEPTION (                                         24310000
                  OBJECT                                                24320000
                , OPTION                                                24330000
                , CORRECT_VALUES                                        24340000
                , FAMILY                                                24350000
                , CRITERIA                                              24360000
                , OPTIONNUM                                             24370000
                , SUBORD                                                24380000
                , COMMENT                                               24390000
                , OVALUE                                                24400000
                , CREATEDTS                                             24410000
                    )                                                   24420000
SELECT 'No failures found'                                              24430000
     , ' '                                                              24440000
     , ' '                                                              24450000
     , ' '                                                              24460000
     , ' '                                                              24470000
     , -101                                                             24480000
     , -101                                                             24490000
     , ' '                                                              24500000
     , ' '                                                              24510000
     , '0001-01-01-00.00.00.000000'                                     24520000
  FROM SYSIBM.SYSDUMMY1                                                 24530000
 WHERE (SELECT COUNT(*) FROM SESSION.EXCEPTION) = 0                     24540000
;                                                                       24550000
INSERT INTO SESSION.EXCEPTION (                                         24560000
                  OBJECT                                                24570000
                , OPTION                                                24580000
                , CORRECT_VALUES                                        24590000
                , FAMILY                                                24600000
                , CRITERIA                                              24610000
                , OPTIONNUM                                             24620000
                , SUBORD                                                24630000
                , COMMENT                                               24640000
                , OVALUE                                                24650000
                , CREATEDTS                                             24660000
                    )                                                   24670000
SELECT 'Failure found, send list to elar'                               24680000
     , ' '                                                              24690000
     , ' '                                                              24700000
     , ' '                                                              24710000
     , ' '                                                              24720000
     , 0                                                                24730000
     , 0                                                                24740000
     , ' '                                                              24750000
     , ' '                                                              24760000
     , '0001-01-01-00.00.00.000000'                                     24770000
  FROM SYSIBM.SYSDUMMY1                                                 24780000
 WHERE (SELECT COUNT(*)                                                 24790000
          FROM SESSION.EXCEPTION                                        24800000
         WHERE OPTIONNUM NOT IN ( -100, -101 )                          24810000
           AND SUBORD    NOT IN ( -100, -101 )                          24820000
       ) > 0                                                            24830000
;                                                                       24840000
--                                                                      24850000
-- Generate Report                                                      24860000
-- DDL-Report (Display migrated families first)                         24870000
--                                                                      24880000
SELECT OBJECT                                                           24890000
     , OPTION                                                           24900000
     , CORRECT_VALUES                                                   24910000
     , FAMILY                                                           24920000
     , COMMENT                                                          24930000
     , CRITERIA                                                         24940000
     , CREATEDTS                                                        24950000
  FROM (SELECT OBJECT           AS OBJECT                               24960000
             , OPTION           AS OPTION                               24970000
             , CORRECT_VALUES   AS CORRECT_VALUES                       24980000
             , CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM'                     24990000
                    THEN ( SELECT UCASE(EAOF)                           25000000
                             FROM BUA.TXBA131                           25010000
                            WHERE ENOF = CAST(  SUBSTR(T1.FAMILY,4,4)   25020000
                                              AS INT                    25030000
                                             ) - 1000                   25040000
                         )                                              25050000
                    ELSE FAMILY                                         25060000
               END              AS FAMILY                               25070000
             , COMMENT          AS COMMENT                              25080000
             , CRITERIA         AS CRITERIA                             25090000
             , CREATEDTS        AS CREATEDTS                            25100000
             , ORD0                                                     25110000
             , ORD1                                                     25120000
             , ORD2                                                     25130000
             , ORD3                                                     25140000
          FROM (SELECT OBJECT                                           25150000
                     , CASE WHEN LOCATE('_', OPTION) > 0                25160000
                            THEN SUBSTR(  OPTION                        25170000
                                        , 1                             25180000
                                        , LOCATE('_',OPTION) - 1        25190000
                                       )                                25200000
                            ELSE OPTION                                 25210000
                       END AS OPTION                                    25220000
                     , CORRECT_VALUES                                   25230000
                     , UCASE(FAMILY)         AS FAMILY                  25240000
                     , SUBSTR(CRITERIA,2)    AS CRITERIA                25250000
                     , SUBSTR(CRITERIA,1,1)  AS ORD1                    25260000
                     , LENGTH(STRIP(OBJECT)) AS ORD2                    25270000
                     , SUBORD                AS ORD3                    25280000
                     , COMMENT                                          25290000
                     , CASE WHEN COMMENT <> ' '                         25300000
                            THEN 0                                      25310000
                            ELSE 1                                      25320000
                       END                   AS ORD0                    25330000
                     , CHECK                                            25340000
                     , CREATEDTS                                        25350000
                  FROM (SELECT OVALUE AS CHECK                          25360000
                             , OBJECT                                   25370000
                             , OPTION                                   25380000
                             , CORRECT_VALUES                           25390000
                             , FAMILY                                   25400000
                             , CRITERIA                                 25410000
                             , SUBORD                                   25420000
                             , COMMENT                                  25430000
                             , CREATEDTS                                25440000
                          FROM SESSION.EXCEPTION                        25450000
                       ) AS T2                                          25460000
               ) AS T1                                                  25470000
        ) AS FINAL                                                      25480000
ORDER BY FAMILY                                                         25490000
       , ORD0                                                           25500000
       , ORD1                                                           25510000
       , ORD2                                                           25520000
       , ORD3                                                           25530000
WITH UR                                                                 25540000
;                                                                       25550000
}¢--- A540769.WK.SQL(ELARDDL2) cre=2013-11-28 mod=2013-11-28-16.25.52 A540769 ---
-- Zwischenspeicher der zu untersuchenden Datenbanken                   00010000
--                                                                      00020000
DECLARE GLOBAL TEMPORARY TABLE FAMLISTE                                 00030000
               (  FAMILY       CHAR(20)                                 00040000
                , DBNAME       CHAR(08)                                 00050000
                , STORAR       CHAR(03)                                 00060000
                , ENSEG        CHAR(03)                                 00070000
                , STORAR_N     INTEGER                                  00080000
                , ENSEG_N      SMALLINT                                 00090000
                , CREATE_FROM  DATE                                     00100000
                , CREATE_TO    DATE                                     00110000
               )                                                        00120000
;                                                                       00130000
-- ============ Input section (full check) ============                 00140000
-- Full check (database, table space etc.) when create_from and         00150000
-- create_to have value NULL                                            00160000
--                                                                      00170000
-- Partial check on table space level when create_from and              00180000
-- create_to have not NULL value and the values are valid date          00190000
--                                                                      00200000
INSERT INTO SESSION.FAMLISTE (  FAMILY                                  00210000
                              , DBNAME                                  00220000
                              , CREATE_FROM                             00230000
                              , CREATE_TO                               00240000
                             )                                          00250000
                      VALUES (  NULL                                    00260000
                              , NULL                                    00270000
                              , '01.10.2013'                            00280000
                              , NULL                                    00290000
                             )                                          00300000
  ;                                                                     00310000
--                                                                      00320000
-- ============ Release notes/ documentation section ============       00330000
--                                                                      00340000
-- ### INFO Version 2.3, Date: 28.11.2013                               00350000
-- ### INFO Library: actual Version only available in DSN.GENERAL.SQL   00360000
-- ### Author: A559315, Uwe Toepperwien (TCG), KIDI 61                  00370000
--                                                                      00380000
-- ============ Documentation section ============                      00390000
--                                                                      00400000
-- DDL Checker für partitionierte Datenbanken ELAR. In ELAR ist nur     00410000
-- Table controlled Partition zulässig, folglich werden Non partition   00420000
-- Tables und Index controlled Partition nicht verifiziert.             00430000
-- Grundlage sind die DDL Vereinbarungen vom 10/2010                    00440000
-- Nachfolgende DB2 Objekte werden geprüft:                             00450000
-- (1) Datenbank                                                        00460000
-- (2) Tablespaces                                                      00470000
-- (3) Tabeles                                                          00480000
-- (4) Indexspaces                                                      00490000
-- (5) Index(e) Primary DPSI/ DPSI                                      00500000
--                                                                      00510000
-- Ein DDL Check ist möglich durch Angabe der ELAR Familie und/ oder    00520000
-- der Datenbank.                                                       00530000
--                                                                      00540000
-- Ist das Result des DDL Checkers "empty", dann sind alle vereinbarten 00550000
-- DDL Parameter eingehalten.                                           00560000
--                                                                      00570000
-- Ist das Result des DDL Checkers nicht "empty", dann                  00580000
-- (a) werden alle DDL Parameter Abweichungen ausgewiesen, wenn die     00590000
--     Familie/ Datenbank vom Typ Table Controlled Partition ist        00600000
-- (b) der Fehler "DatabaseImplementation" zeigt an, das die Familie/   00610000
--     Datenbank nicht vom Typ Table Controlled Partition ist.          00620000
--                                                                      00630000
-- Parameterwert fuer maximale Anzahl Partition festlegen               00640000
-- Die maximale Anzahl Partitionen ist für Table- und Indexcontrolled   00650000
-- Partitioning vorzugeben.                                             00660000
--                                                                      00670000
-- Update: 28.11.2013, TCG                                              00680000
-- Partial check possible, when create_from and create_to is not null   00690000
--                                                                      00700000
-- Update: 08.07.2013, TCG                                              00710000
--  Generating final message which describe the state of a cekced       00720000
--  database.                                                           00730000
--  Check pctfree for technical/ business indexes use wrong             00740000
--  catalog table (sysibm.syscolumns instead of syskeys)                00750000
--                                                                      00760000
-- Update: 01.07.2013, TCG (new agreement KIDI63/ ELAR for NDBS)        00770000
--                         (see Mail from 01.07.2013 M.Streit)          00780000
--  Tablespace Option Check                                             00790000
--     (1) Check FREEPAGE, PCTFREE                                      00800000
--     (2) PARTITION = 0 not allowed for XB databases                   00810000
--  Table Option Check                                                  00820000
--     (1) option APPEND changed from NO to YES                         00830000
--     (2) no check of EN1ENTERTAG, ET1LOGPROD                          00840000
--     (3) Check on table the type of partitioning (classic)            00850000
--     (4) Check if index is index controlled partitioning (antique)    00860000
--     (5) Extend index type check, only D, U and P are allowed         00870000
--     (6) Check that EN1PART is in keylist of unique/ primary index    00880000
--     (7) Check that every table has only one unique/ primary index    00890000
--     (8) Check that cluster index based on correct columns            00900000
--     (9) Check that key columns on correct position                   00910000
--                                                                      00920000
-- Update: 17.05.2012, TCG                                              00930000
--  (1) Find database name for migrated families (migrated families     00940000
--      have a symbolic name like FAMnnmm where nn is multipler 1000    00950000
--      and mm is the family number. Exp. FAM1015 is family 15 that is  00960000
--      family DEVI.IF)                                                 00970000
--  (2) New column COMMENT describes the family                         00980000
--  (3) Result shows first families from migration and all other        00990000
--      families.                                                       01000000
--  (4) Correction of text mistakes.                                    01010000
--                                                                      01020000
-- Update: 10.05.2012, TCG                                              01030000
--  (1) New Bufferpool assignment (BP2 and BP1)                         01040000
--  (2) Check Bufferpool BP8 for LOB                                    01050000
--  (3) De-activate Partition and Index Columun check                   01060000
--      for database with prefix DXB (Elar Metadata)                    01070000
--  (4) Result set order changed to family, database, tablespace,       01080000
--      table, indexspace and index.                                    01090000
--  (5) Defined more and detailed messages.                             01100000
--                                                                      01110000
-- ============ Processing section ============                         01120000
--                                                                      01130000
--- Definition of partition limit for table- and indexspace             01140000
DECLARE GLOBAL TEMPORARY TABLE MAXPART                                  01150000
               (  PARTYPE      CHAR(05) NOT NULL                        01160000
                , MAXPART      INTEGER  NOT NULL                        01170000
               )                                                        01180000
;                                                                       01190000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART )                        01200000
                     VALUES ( 'Table', 200 )                            01210000
;                                                                       01220000
INSERT INTO SESSION.MAXPART ( PARTYPE, MAXPART )                        01230000
                     VALUES ( 'Index', 200 )                            01240000
;                                                                       01250000
UPDATE SESSION.FAMLISTE                                                 01260000
   SET STORAR   = SUBSTR(DBNAME,3,3)                                    01270000
     , ENSEG    = SUBSTR(DBNAME,6,3)                                    01280000
 WHERE SUBSTR(DBNAME,1,2) = 'XB'                                        01290000
    AND CREATE_FROM IS NULL                                             01300000
    AND CREATE_TO   IS NULL                                             01310000
;                                                                       01320000
UPDATE SESSION.FAMLISTE                                                 01330000
   SET STORAR_N = (SELECT XBA510_STORAGE_ARN                            01340000
                     FROM BUA.TXBA510                                   01350000
                    WHERE XBA510_STORAGE_ARC = STORAR                   01360000
                  )                                                     01370000
     , ENSEG_N  = (SELECT XBA510_STORAGE_ARN                            01380000
                     FROM BUA.TXBA510                                   01390000
                    WHERE XBA510_STORAGE_ARC = ENSEG                    01400000
                  )                                                     01410000
 WHERE CREATE_FROM IS NULL                                              01420000
   AND CREATE_TO   IS NULL                                              01430000
;                                                                       01440000
DECLARE GLOBAL TEMPORARY TABLE ELAR                                     01450000
               (  FAMILY       CHAR(20)                                 01460000
                , STORAR       CHAR(08)                                 01470000
                , COMMENT      CHAR(20)                                 01480000
               )                                                        01490000
;                                                                       01500000
INSERT INTO SESSION.ELAR                                                01510000
WITH TESLA (  FAMILY                                                    01520000
            , STORAR                                                    01530000
            , COMMENT                                                   01540000
           )                                                            01550000
--                                                                      01560000
-- Search over family name and retrieve database name(s)                01570000
-- 1) Import run time tables                                            01580000
-- 2) Time range run time table and family configuration                01590000
--    (no data available over(1)                                        01600000
-- 3) Migration protocol (no data available over (1) and (2)            01610000
-- 4) Family number control table. Last change to find a family,        01620000
--    while all run time and meta data are broken (broken links)        01630000
--                                                                      01640000
       AS  (SELECT C071.EAOF                                            01650000
                 , CAST ( C071.EYPREF   ||                              01660000
                          C111.ENSTORAR ||                              01670000
                          C111.ENSEG       AS CHAR(08)                  01680000
                        )                                               01690000
                 , ' ' AS COMMENT                                       01700000
              FROM            BUA.TXBC111 C111                          01710000
              FULL OUTER JOIN BUA.TXBC071 C071                          01720000
                           ON C111.ENSTORAR = C071.ENSTORAR             01730000
             INNER       JOIN SESSION.FAMLISTE    FL                    01740000
                           ON FL.FAMILY     = C071.EAOF                 01750000
             WHERE C111.ENSTORAR IS NOT NULL                            01760000
               AND C111.ENSEG    IS NOT NULL                            01770000
               AND C071.EYPREF   IS NOT NULL                            01780000
            UNION  DISTINCT                                             01790000
            SELECT BE051.EAOF                                           01800000
                 , FL.DBNAME                                            01810000
                 , ' ' AS COMMENT                                       01820000
              FROM      BUA.TXBE051 BE051                               01830000
             INNER JOIN BUA.TXBA201 BA201                               01840000
                     ON BE051.ENLIBENG = BA201.ENSTORAR                 01850000
             INNER JOIN SESSION.FAMLISTE FL                             01860000
                     ON FL.FAMILY      = BE051.EAOF                     01870000
            UNION  DISTINCT                                             01880000
            SELECT T504.XBA501_FAMNAME                                  01890000
                 , XBA504_DB                                            01900000
                 , '-- old Migration --' AS COMMENT                     01910000
              FROM      BUA.TXBA504 T504                                01920000
              LEFT JOIN BUA.TXBA511 T511                                01930000
                     ON T504.XBA501_FAMNAME =  T511.XBA501_FAMNAME      01940000
                    AND T504.XBA504_TABLE   =  T511.XBA504_TABLE        01950000
             INNER JOIN SESSION.FAMLISTE FL                             01960000
                     ON FL.FAMILY           =  T504.XBA501_FAMNAME      01970000
            UNION  DISTINCT                                             01980000
            SELECT STRIP(BA131.EAOF)                                    01990000
                 , SUBSTR(MG103.EANTABNAME,1,8)                         02000000
                 , '-- new Migration --' AS COMMENT                     02010000
              FROM      BUA.TXBMG103 MG103                              02020000
             INNER JOIN BUA.TXBA131  BA131                              02030000
                     ON MG103.ENOF = BA131.ENOF                         02040000
             INNER JOIN SESSION.FAMLISTE FL                             02050000
                     ON UCASE(BA131.EAOF) = FL.FAMILY                   02060000
--                                                                      02070000
-- Search over Database Name and retrieve family name                   02080000
-- In general same processing like search over family, but other        02090000
-- columns are relevant.                                                02100000
--                                                                      02110000
            UNION  DISTINCT                                             02120000
            SELECT C071.EAOF                                            02130000
                 , FL.DBNAME                                            02140000
                 , ' ' AS COMMENT                                       02150000
              FROM            BUA.TXBC111 C111                          02160000
              FULL OUTER JOIN BUA.TXBC071 C071                          02170000
                           ON C111.ENSTORAR = C071.ENSTORAR             02180000
             INNER       JOIN SESSION.FAMLISTE FL                       02190000
                           ON FL.STORAR = C111.ENSTORAR                 02200000
                          AND FL.ENSEG  = C111.ENSEG                    02210000
            UNION  DISTINCT                                             02220000
            SELECT BE051.EAOF                  AS FAMILY                02230000
                 , FL.DBNAME                                            02240000
                 , ' ' AS COMMENT                                       02250000
              FROM      BUA.TXBE051 BE051                               02260000
             INNER JOIN BUA.TXBA201 BA201                               02270000
                     ON BE051.ENLIBENG = BA201.ENSTORAR                 02280000
             INNER JOIN SESSION.FAMLISTE FL                             02290000
                     ON FL.STORAR_N    = BA201.ENSTORAR                 02300000
                    AND FL.ENSEG_N     = BA201.ENSEG                    02310000
            UNION  DISTINCT                                             02320000
            SELECT T504.XBA501_FAMNAME                                  02330000
                 , XBA504_DB                                            02340000
                 , ' ' AS COMMENT                                       02350000
              FROM      BUA.TXBA504 T504                                02360000
              LEFT JOIN BUA.TXBA511 T511                                02370000
                     ON T504.XBA501_FAMNAME =  T511.XBA501_FAMNAME      02380000
                    AND T504.XBA504_TABLE   =  T511.XBA504_TABLE        02390000
             INNER JOIN SESSION.FAMLISTE FL                             02400000
                     ON FL.DBNAME           =  T504.XBA504_DB           02410000
            UNION  DISTINCT                                             02420000
            SELECT UCASE(BA131.EAOF)                                    02430000
                 , FL.DBNAME                                            02440000
                 , ' ' AS COMMENT                                       02450000
                FROM      BUA.TXBA131 BA131                             02460000
               INNER JOIN BUA.TXBG081 BG181                             02470000
                       ON BA131.ENOF = BG181.ENOF                       02480000
               INNER JOIN SESSION.FAMLISTE FL                           02490000
                       ON BG181.ENSTORAR = FL.STORAR_N                  02500000
            UNION  DISTINCT                                             02510000
            SELECT UCASE(BA131.EAOF)                                    02520000
                 , FL.DBNAME                                            02530000
                 , ' ' AS COMMENT                                       02540000
              FROM      BUA.TXBA131 BA131                               02550000
             INNER JOIN BUA.TXBG081X BG181                              02560000
                     ON BA131.ENOF = BG181.ENOF                         02570000
             INNER JOIN SESSION.FAMLISTE FL                             02580000
                     ON BG181.ENSTORAR = FL.STORAR_N                    02590000
            UNION  DISTINCT                                             02600000
            SELECT 'ELAR Repo. / Base'                                  02610000
                 , DBNAME                                               02620000
                 , ' ' AS COMMENT                                       02630000
              FROM SESSION.FAMLISTE                                     02640000
             WHERE SUBSTR(DBNAME,1,3) = 'DXB'                           02650000
           )                                                            02660000
SELECT FAMILY                                                           02670000
     , STORAR                                                           02680000
     , COMMENT                                                          02690000
  FROM TESLA                                                            02700000
 WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL               02710000
   AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE) IS NULL               02720000
;                                                                       02730000
-- Add database without ELAR meta data into checklist                   02740000
--                                                                      02750000
INSERT INTO SESSION.ELAR                                                02760000
SELECT DBNAME                                                           02770000
     , DBNAME                                                           02780000
     , ' '                                                              02790000
  FROM SESSION.FAMLISTE                                                 02800000
 WHERE DBNAME NOT IN (SELECT STORAR FROM SESSION.ELAR)                  02810000
   AND DBNAME <> '?'                                                    02820000
   AND (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL               02830000
   AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE) IS NULL               02840000
;                                                                       02850000
INSERT INTO SESSION.ELAR                                                02860000
SELECT DISTINCT                                                         02870000
       '?'                                                              02880000
     , DBNAME                                                           02890000
     , DBNAME                                                           02900000
  FROM SYSIBM.SYSTABLESPACE                                             02910000
 WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE  ) IS NOT NULL         02920000
   AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE  ) IS NOT NULL         02930000
   AND DATE(CREATEDTS) >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE  )  02940000
   AND DATE(CREATEDTS) <= (SELECT CREATE_TO   FROM SESSION.FAMLISTE  )  02950000
   AND DBNAME LIKE 'XB%'                                                02960000
;                                                                       02970000
DECLARE GLOBAL TEMPORARY TABLE TEMP                                     02980000
               (  SNUM         CHAR(0013) FOR BIT DATA                  02990000
                , CRITERIA     CHAR(0030)                               03000000
                , FAMILY       CHAR(0030)                               03010000
                , COMMENT      CHAR(0020)                               03020000
                , OBJECT       CHAR(0060)                               03030000
                , OPTVALUE     VARCHAR(1024)                            03040000
                , CREATEDTS    TIMESTAMP(6)                             03050000
               )                                                        03060000
;                                                                       03070000
INSERT INTO SESSION.TEMP                                                03080000
WITH DBDDL (  FAMILY                                                    03090000
            , DATABASE                                                  03100000
            , BUFFERPOOL                                                03110000
            , INDEXPOOL                                                 03120000
            , STOGROUP                                                  03130000
            , CCID                                                      03140000
            , DBID                                                      03150000
            , COMMENT                                                   03160000
            , CREATEDTS                                                 03170000
           )                                                            03180000
        AS (SELECT DISTINCT                                             03190000
                   EL.FAMILY                                            03200000
                 , DB.NAME                                              03210000
                 , DB.BPOOL                                             03220000
                 , DB.INDEXBP                                           03230000
                 , DB.STGROUP                                           03240000
                 , DB.ENCODING_SCHEME                                   03250000
                 , DB.DBID                                              03260000
                 , EL.COMMENT                                           03270000
                 , DB.CREATEDTS                                         03280000
              FROM      SESSION.ELAR         EL                         03290000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         03300000
                     ON EL.STORAR = DB.NAME                             03310000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         03320000
                     ON DB.DBID   = TS.DBID                             03330000
           )                                                            03340000
   , RDB   (  FAMILY                                                    03350000
            , COMMENT                                                   03360000
            , OBJECT                                                    03370000
            , OPTVALUE                                                  03380000
            , CREATEDTS                                                 03390000
           )                                                            03400000
        AS (SELECT DISTINCT                                             03410000
                   FAMILY                                               03420000
                 , COMMENT                                              03430000
                 , CAST(DATABASE AS CHAR(08))                           03440000
                 , 'Bufferpool_DB='                                     03450000
                || CASE WHEN BUFFERPOOL = 'BP2'                         03460000
                             THEN 'OK'                                  03470000
                        ELSE 'NOK'                                      03480000
                   END                                                  03490000
                || ';'                                                  03500000
                || 'Bufferpool_DB_IX='                                  03510000
                || CASE WHEN INDEXPOOL = 'BP1'                          03520000
                             THEN 'OK'                                  03530000
                        ELSE 'NOK'                                      03540000
                   END                                                  03550000
                || ';'                                                  03560000
                || 'StorageGroup='                                      03570000
                || CASE STOGROUP                                        03580000
                        WHEN 'GSMS1' THEN 'OK'                          03590000
                        WHEN 'GSMS2' THEN 'OK'                          03600000
                        WHEN 'GSMS3' THEN 'OK'                          03610000
                        WHEN 'GSMS4' THEN 'OK'                          03620000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     03630000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      03640000
                                            THEN 'OK'                   03650000
                                            ELSE 'NOK'                  03660000
                                       END                              03670000
                                  ELSE 'NOK'                            03680000
                             END                                        03690000
                   END                                                  03700000
                || ';'                                                  03710000
                || 'EncodingScheme='                                    03720000
                || CASE WHEN CCID = 'E'                                 03730000
                             THEN 'OK'                                  03740000
                        ELSE 'NOK'                                      03750000
                   END                                                  03760000
                 , CREATEDTS                                            03770000
              FROM DBDDL                                                03780000
           )                                                            03790000
SELECT GENERATE_UNIQUE()                                                03800000
     , '1Database Option Check'                                         03810000
     , FAMILY                                                           03820000
     , COMMENT                                                          03830000
     , OBJECT                                                           03840000
     , OPTVALUE                                                         03850000
     , CREATEDTS                                                        03860000
  FROM RDB                                                              03870000
 ORDER BY FAMILY                                                        03880000
        , OBJECT                                                        03890000
;                                                                       03900000
INSERT INTO SESSION.TEMP                                                03910000
WITH TSDDL (  FAMILY                                                    03920000
            , DATABASE                                                  03930000
            , BPOOL_T                                                   03940000
            , TSNAME                                                    03950000
            , PARTITION                                                 03960000
            , STOGROUP                                                  03970000
            , PRIQTY                                                    03980000
            , SECQTY                                                    03990000
            , GBPCACHE                                                  04000000
            , TRACKMODE                                                 04010000
            , LOGGED                                                    04020000
            , DSSIZE                                                    04030000
            , LOCKSIZE                                                  04040000
            , LOCKMAX                                                   04050000
            , CLOSE                                                     04060000
            , COMPRESS                                                  04070000
            , CCID                                                      04080000
            , DEFINE                                                    04090000
            , MAXROWS                                                   04100000
            , TPIXNAME                                                  04110000
            , AUXTBNAME                                                 04120000
            , FREEPAGE                                                  04130000
            , PCTFREE                                                   04140000
            , COMMENT                                                   04150000
            , CREATEDTS                                                 04160000
           )                                                            04170000
        AS (SELECT DISTINCT                                             04180000
                   EL.FAMILY          AS FAMILY                         04190000
                 , DB.NAME            AS DATABASE                       04200000
                 , TS.BPOOL           AS BPOOL_T                        04210000
                 , TS.NAME            AS TSNAME                         04220000
                 , TS.PARTITIONS      AS PARTITION                      04230000
                 , TP.STORNAME        AS STOGROUP                       04240000
                 , TP.PQTY            AS PRIQTY                         04250000
                 , TP.SQTY            AS SECQTY                         04260000
                 , TP.GBPCACHE        AS GBPCACHE                       04270000
                 , TP.TRACKMOD        AS TRACKMODE                      04280000
                 , TS.LOG             AS LOGGED                         04290000
                 , TS.DSSIZE          AS DSSIZE                         04300000
                 , TS.LOCKRULE        AS LOCKSIZE                       04310000
                 , TS.LOCKMAX         AS LOCKMAX                        04320000
                 , TS.CLOSERULE       AS CLOSE                          04330000
                 , TP.COMPRESS        AS COMPRESS                       04340000
                 , TS.ENCODING_SCHEME AS CCID                           04350000
                 , TP.SPACE           AS DEFINE                         04360000
                 , TS.MAXROWS         AS MAXROWS                        04370000
                 , TP.IXNAME          AS TPIXNAME                       04380000
                 , TB.TYPE            AS AUXTBNAME                      04390000
                 , TP.FREEPAGE        AS FREEPAGE                       04400000
                 , TP.PCTFREE         AS PCTFREE                        04410000
                 , EL.COMMENT         AS COMMENT                        04420000
                 , TP.CREATEDTS       AS CREATEDTS                      04430000
              FROM      SESSION.ELAR         EL                         04440000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         04450000
                     ON EL.STORAR = DB.NAME                             04460000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         04470000
                     ON DB.DBID   = TS.DBID                             04480000
             INNER JOIN SYSIBM.SYSTABLEPART  TP                         04490000
                     ON TS.NAME   = TP.TSNAME                           04500000
                    AND TS.DBNAME = TP.DBNAME                           04510000
             INNER JOIN SYSIBM.SYSTABLES TB                             04520000
                     ON TP.DBNAME = TB.DBNAME                           04530000
                    AND TP.TSNAME = TB.TSNAME                           04540000
           )                                                            04550000
   , RTS   (  FAMILY                                                    04560000
            , COMMENT                                                   04570000
            , OBJECT                                                    04580000
            , OPTVALUE                                                  04590000
            , CREATEDTS                                                 04600000
           )                                                            04610000
        AS (SELECT DISTINCT                                             04620000
                   FAMILY                                               04630000
                 , COMMENT                                              04640000
                 , CAST(DATABASE AS CHAR(08))                           04650000
                || ' '                                                  04660000
                || TSNAME                                               04670000
                || ' '                                                  04680000
                 , CASE WHEN PARTITION > 0                              04690000
                        THEN CASE WHEN LENGTH(STRIP(TPIXNAME)) = 0      04700000
                                  THEN 'InfoTCP=OK'                     04710000
                                  ELSE 'InfoICP=OK'                     04720000
                             END                                        04730000
                        ELSE 'InfoTSS=OK'                               04740000
                   END                                                  04750000
                || ';'                                                  04760000
                || 'TablePartLimit='                                    04770000
                || CASE WHEN (SELECT DISTINCT SUBSTR(DATABASE,1,2)      04780000
                                FROM TSDDL                              04790000
                             ) = 'XB'                                   04800000
                        THEN CASE WHEN PARTITION > (SELECT MAXPART      04810000
                                            FROM SESSION.MAXPART        04820000
                                           WHERE PARTYPE = 'Table'      04830000
                                         )                              04840000
                                  THEN 'NOK'                            04850000
                                  ELSE 'OK'                             04860000
                             END                                        04870000
                        ELSE 'OK'                                       04880000
                   END                                                  04890000
                || ';'                                                  04900000
                || 'Bufferpool'                                         04910000
                || CASE BPOOL_T                                         04920000
                   WHEN 'BP2'   THEN                                    04930000
                                CASE WHEN    SUBSTR(TSNAME,1,1)         04940000
                                          || SUBSTR(  TSNAME            04950000
                                                    , (LENGTH(TSNAME)-1)04960000
                                                    , 1                 04970000
                                                   )                    04980000
                                          = 'SH'                        04990000
                                     THEN '_SHS=NOK'                    05000000
                                     ELSE '=OK'                         05010000
                                END                                     05020000
                   WHEN 'BP32K' THEN                                    05030000
                                CASE WHEN    SUBSTR(TSNAME,1,1)         05040000
                                          || SUBSTR(  TSNAME            05050000
                                                    , (LENGTH(TSNAME)-1)05060000
                                                    , 1                 05070000
                                                   )                    05080000
                                          = 'SH'                        05090000
                                THEN '=OK'                              05100000
                                ELSE CASE WHEN LENGTH(TSNAME) = 8       05110000
                                     THEN CASE WHEN   SUBSTR(TSNAME,8,1)05120000
                                                    = 'H'               05130000
                                               THEN '=OK'               05140000
                                               ELSE '_SHS=NOK'          05150000
                                               END                      05160000
                                     ELSE '_SHS=NOK'                    05170000
                                     END                                05180000
                                END                                     05190000
                   WHEN 'BP8'   THEN                                    05200000
                                CASE WHEN AUXTBNAME = 'X'               05210000
                                     THEN '=OK'                         05220000
                                     ELSE '_LOB=NOK'                    05230000
                                END                                     05240000
                   ELSE '_TS=NOK'                                       05250000
                   END                                                  05260000
                || ';'                                                  05270000
                || 'Groupbufferpool='                                   05280000
                || CASE GBPCACHE                                        05290000
                        WHEN ' ' THEN 'OK'                              05300000
                        ELSE 'NOK'                                      05310000
                  END                                                   05320000
                || ';'                                                  05330000
                || 'Trackmode='                                         05340000
                || CASE TRACKMODE                                       05350000
                        WHEN 'N' THEN 'OK'                              05360000
                        ELSE 'NOK'                                      05370000
                   END                                                  05380000
                || ';'                                                  05390000
                || 'LoggedOption='                                      05400000
                || CASE LOGGED                                          05410000
                        WHEN 'Y' THEN 'OK'                              05420000
                        ELSE 'NOK'                                      05430000
                   END                                                  05440000
                || ';'                                                  05450000
                || 'DSSIZE='                                            05460000
                || CASE WHEN PARTITION > 0                              05470000
                        THEN CASE DSSIZE                                05480000
                             WHEN 16777216 THEN 'OK'                    05490000
                                           ELSE 'NOK'                   05500000
                             END                                        05510000
                        ELSE 'OK'                                       05520000
                   END                                                  05530000
                || ';'                                                  05540000
                || 'Locksize='                                          05550000
                || CASE LOCKSIZE                                        05560000
                        WHEN 'A' THEN 'OK'                              05570000
                        ELSE 'NOK'                                      05580000
                   END                                                  05590000
                || ';'                                                  05600000
                || 'LockMax='                                           05610000
                || CASE LOCKMAX                                         05620000
                        WHEN -1 THEN 'OK'                               05630000
                        ELSE 'NOK'                                      05640000
                   END                                                  05650000
                || ';'                                                  05660000
                || 'CloseOption='                                       05670000
                || CASE CLOSE                                           05680000
                        WHEN 'Y' THEN 'OK'                              05690000
                        ELSE 'NOK'                                      05700000
                   END                                                  05710000
                || ';'                                                  05720000
                || 'TblCompressOption='                                 05730000
                || CASE COMPRESS                                        05740000
                        WHEN 'Y' THEN 'OK'                              05750000
                        ELSE 'NOK'                                      05760000
                   END                                                  05770000
                || ';'                                                  05780000
                || 'StorageGroup='                                      05790000
                || CASE STOGROUP                                        05800000
                        WHEN 'GSMS1' THEN 'OK'                          05810000
                        WHEN 'GSMS2' THEN 'OK'                          05820000
                        WHEN 'GSMS3' THEN 'OK'                          05830000
                        WHEN 'GSMS4' THEN 'OK'                          05840000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     05850000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      05860000
                                            THEN 'OK'                   05870000
                                            ELSE 'NOK'                  05880000
                                       END                              05890000
                                  ELSE 'NOK'                            05900000
                             END                                        05910000
                   END                                                  05920000
                || ';'                                                  05930000
                || 'PrimaryQuantity='                                   05940000
                || CASE PRIQTY                                          05950000
                        WHEN -1 THEN 'OK'                               05960000
                        ELSE 'NOK'                                      05970000
                   END                                                  05980000
                || ';'                                                  05990000
                || 'SecondaryQuantity='                                 06000000
                || CASE SECQTY                                          06010000
                        WHEN -1 THEN 'OK'                               06020000
                        ELSE 'NOK'                                      06030000
                   END                                                  06040000
                || ';'                                                  06050000
                || 'EncodingScheme='                                    06060000
                || CASE WHEN CCID = 'E' THEN 'OK'                       06070000
                        ELSE 'NOK'                                      06080000
                   END                                                  06090000
                || ';'                                                  06100000
                || 'DefineOption='                                      06110000
                || CASE DEFINE                                          06120000
                        WHEN -1 THEN 'NOK'                              06130000
                        ELSE 'OK'                                       06140000
                   END                                                  06150000
                || ';'                                                  06160000
                || 'MaxRowsPerPage='                                    06170000
                || CASE MAXROWS                                         06180000
                        WHEN 255 THEN 'OK'                              06190000
                        ELSE 'NOK'                                      06200000
                   END                                                  06210000
                || ';'                                                  06220000
                || 'TSFreepage='                                        06230000
                || CASE FREEPAGE                                        06240000
                        WHEN 0 THEN 'OK'                                06250000
                        ELSE 'NOK'                                      06260000
                   END                                                  06270000
                || ';'                                                  06280000
                || 'TSPctfree='                                         06290000
                || CASE PCTFREE                                         06300000
                        WHEN 0 THEN 'OK'                                06310000
                        ELSE 'NOK'                                      06320000
                   END                                                  06330000
                 , CREATEDTS                                            06340000
              FROM TSDDL                                                06350000
           )                                                            06360000
SELECT GENERATE_UNIQUE()                                                06370000
     , '2Tablespace Option Check'                                       06380000
     , FAMILY                                                           06390000
     , COMMENT                                                          06400000
     , OBJECT                                                           06410000
     , OPTVALUE                                                         06420000
     , CREATEDTS                                                        06430000
  FROM RTS                                                              06440000
 ORDER BY FAMILY                                                        06450000
        , OBJECT                                                        06460000
;                                                                       06470000
INSERT INTO SESSION.TEMP                                                06480000
WITH TBDDL (  FAMILY                                                    06490000
            , DATABASE                                                  06500000
            , TSNAME                                                    06510000
            , TBNAME                                                    06520000
            , AUDIT                                                     06530000
            , DATA_CAPTURE                                              06540000
            , RESTRICT_DROP                                             06550000
            , CCID                                                      06560000
            , VOLATILE                                                  06570000
            , APPEND                                                    06580000
            , PART_NAME                                                 06590000
            , PART_TYPE                                                 06600000
            , PART_SEQ                                                  06610000
            , PART_ORDER                                                06620000
            , PARTITION                                                 06630000
            , PART_LIMITKEY                                             06640000
            , PART_LOGICALKEY                                           06650000
            , COLNO                                                     06660000
            , PARTKEYCOLNUM                                             06670000
            , COMMENT                                                   06680000
            , CREATEDTS                                                 06690000
           )                                                            06700000
        AS (SELECT EL.FAMILY                                            06710000
                 , CAST(TB.DBNAME AS CHAR(08))                          06720000
                 , TB.TSNAME                                            06730000
                 , TB.NAME                                              06740000
                 , TB.AUDITING                                          06750000
                 , TB.DATACAPTURE                                       06760000
                 , TB.CLUSTERTYPE                                       06770000
                 , TB.ENCODING_SCHEME                                   06780000
                 , TB.SPLIT_ROWS                                        06790000
                 , TB.APPEND                                            06800000
                 , TC.NAME                                              06810000
                 , TC.COLTYPE                                           06820000
                 , TC.PARTKEY_COLSEQ                                    06830000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     06840000
                             THEN ' '                                   06850000
                             ELSE TC.PARTKEY_ORDERING                   06860000
                        END                 AS CHAR(01))                06870000
                 , CAST(TP.PARTITION        AS INTEGER)                 06880000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     06890000
                             THEN '0'                                   06900000
                             ELSE STRIP(TP.LIMITKEY)                    06910000
                        END                 AS VARCHAR(765))            06920000
                 , CAST(CASE WHEN TS.PARTITIONS = 0                     06930000
                             THEN 0                                     06940000
                             ELSE TP.LOGICAL_PART                       06950000
                        END                 AS INTEGER)                 06960000
                 , COLNO                                                06970000
                 , TB.PARTKEYCOLNUM                                     06980000
                 , EL.COMMENT                                           06990000
                 , TP.CREATEDTS                                         07000000
              FROM      SESSION.ELAR        EL                          07010000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         07020000
                     ON EL.STORAR  = DB.NAME                            07030000
             INNER JOIN SYSIBM.SYSTABLES     TB                         07040000
                     ON TB.DBNAME  = DB.NAME                            07050000
                    AND TB.TYPE    = 'T'                                07060000
             INNER JOIN SYSIBM.SYSCOLUMNS    TC                         07070000
                     ON TB.NAME    = TC.TBNAME                          07080000
                    AND TB.CREATOR = TC.TBCREATOR                       07090000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         07100000
                     ON TB.TSNAME  = TS.NAME                            07110000
                    AND TB.DBID    = TS.DBID                            07120000
                    AND TS.DBID    = DB.DBID                            07130000
             INNER JOIN SYSIBM.SYSTABLEPART  TP                         07140000
                     ON TS.NAME    = TP.TSNAME                          07150000
                    AND TS.DBNAME  = TP.DBNAME                          07160000
             WHERE TC.PARTKEY_COLSEQ > 0                                07170000
               ORDER BY TB.DBNAME, TB.TSNAME                            07180000
                      , TC.COLNO , TC.PARTKEY_COLSEQ                    07190000
           )                                                            07200000
   , RTB   (  FAMILY                                                    07210000
            , COMMENT                                                   07220000
            , OBJECT                                                    07230000
            , OPTVALUE                                                  07240000
            , CREATEDTS                                                 07250000
           )                                                            07260000
        AS (SELECT DISTINCT                                             07270000
                   FAMILY                                               07280000
                 , COMMENT                                              07290000
                 , CAST(DATABASE AS CHAR(08))                           07300000
                || ' '                                                  07310000
                || TSNAME                                               07320000
                || ' '                                                  07330000
                || TBNAME                                               07340000
                 , 'Audit='                                             07350000
                || CASE AUDIT                                           07360000
                        WHEN ' ' THEN 'OK'                              07370000
                        ELSE 'NOK'                                      07380000
                   END                                                  07390000
                || ';'                                                  07400000
                || 'DataCapture='                                       07410000
                || CASE DATA_CAPTURE                                    07420000
                        WHEN ' ' THEN 'OK'                              07430000
                        ELSE 'NOK'                                      07440000
                   END                                                  07450000
                || ';'                                                  07460000
                || 'RestrictOnDrop='                                    07470000
                || CASE RESTRICT_DROP                                   07480000
                        WHEN 'Y' THEN 'OK'                              07490000
                        ELSE 'NOK'                                      07500000
                   END                                                  07510000
                || ';'                                                  07520000
                || 'EncodingScheme='                                    07530000
                || CASE CCID                                            07540000
                        WHEN 'E' THEN 'OK'                              07550000
                        ELSE 'NOK'                                      07560000
                   END                                                  07570000
                || ';'                                                  07580000
                || 'Volatile='                                          07590000
                || CASE VOLATILE                                        07600000
                        WHEN 'Y' THEN 'OK'                              07610000
                        ELSE 'NOK'                                      07620000
                   END                                                  07630000
                || ';'                                                  07640000
                || 'Append='                                            07650000
                || CASE APPEND                                          07660000
                        WHEN 'Y' THEN 'OK'                              07670000
                        ELSE 'NOK'                                      07680000
                   END                                                  07690000
                || ';'                                                  07700000
                || 'PartKeyName='                                       07710000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                07720000
                        THEN CASE WHEN PART_SEQ > 0                     07730000
                                  THEN CASE PART_NAME                   07740000
                                            WHEN 'EN1PART' THEN 'OK'    07750000
                                            ELSE 'NOK'                  07760000
                                       END                              07770000
                                  ELSE 'NOK'                            07780000
                             END                                        07790000
                        ELSE 'OK'                                       07800000
                   END                                                  07810000
                || ';'                                                  07820000
                || 'PartKeyType='                                       07830000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                07840000
                        THEN CASE WHEN PART_SEQ > 0                     07850000
                                  THEN CASE PART_TYPE                   07860000
                                            WHEN 'INTEGER' THEN 'OK'    07870000
                                            ELSE 'NOK'                  07880000
                                       END                              07890000
                                  ELSE 'NOK'                            07900000
                             END                                        07910000
                        ELSE 'OK'                                       07920000
                   END                                                  07930000
                || ';'                                                  07940000
                || 'PartKeyPosition='                                   07950000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                07960000
                        THEN CASE WHEN PART_SEQ > 0                     07970000
                                  THEN CASE PART_SEQ                    07980000
                                            WHEN 1 THEN 'OK'            07990000
                                            ELSE 'NOK'                  08000000
                                       END                              08010000
                                  ELSE 'NOK'                            08020000
                             END                                        08030000
                        ELSE 'OK'                                       08040000
                   END                                                  08050000
                || ';'                                                  08060000
                || 'PartKeyOrder='                                      08070000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08080000
                        THEN CASE WHEN PART_SEQ > 0                     08090000
                                  THEN CASE PART_ORDER                  08100000
                                            WHEN 'A' THEN 'OK'          08110000
                                            ELSE 'NOK'                  08120000
                                       END                              08130000
                                  ELSE 'NOK'                            08140000
                             END                                        08150000
                        ELSE 'OK'                                       08160000
                   END                                                  08170000
                || ';'                                                  08180000
                || 'PartKeyValue(s)='                                   08190000
                || CASE                                                 08200000
                   WHEN SUBSTR(DATABASE,1,2) = 'XB'                     08210000
                   THEN CASE                                            08220000
                        WHEN PART_SEQ > 0                               08230000
                        THEN CASE                                       08240000
                             WHEN CHAR(PARTITION) = PART_LIMITKEY       08250000
                             THEN CASE                                  08260000
                                  WHEN   PART_LIMITKEY                  08270000
                                       = CHAR(PART_LOGICALKEY)          08280000
                                  THEN 'OK'                             08290000
                                  ELSE 'NOK'                            08300000
                                  END                                   08310000
                             ELSE 'NOK'                                 08320000
                             END                                        08330000
                        ELSE 'NOK'                                      08340000
                        END                                             08350000
                   ELSE 'OK'                                            08360000
                   END                                                  08370000
                || ';'                                                  08380000
                || 'PartKeyColNum='                                     08390000
                || CASE WHEN SUBSTR(DATABASE,1,2) = 'XB'                08400000
                        THEN CASE WHEN PARTKEYCOLNUM = 1                08410000
                                  THEN 'OK'                             08420000
                                  ELSE 'NOK'                            08430000
                             END                                        08440000
                        ELSE 'OK'                                       08450000
                   END                                                  08460000
                   AS OPTVALUE                                          08470000
                 , CREATEDTS                                            08480000
              FROM TBDDL                                                08490000
           )                                                            08500000
SELECT GENERATE_UNIQUE()                                                08510000
     , '3Table Option Check'                                            08520000
     , FAMILY                                                           08530000
     , COMMENT                                                          08540000
     , OBJECT                                                           08550000
     , OPTVALUE                                                         08560000
     , CREATEDTS                                                        08570000
  FROM RTB                                                              08580000
 ORDER BY FAMILY                                                        08590000
        , OBJECT                                                        08600000
;                                                                       08610000
INSERT INTO SESSION.TEMP                                                08620000
WITH XSTMP (  FAMILY                                                    08630000
            , DATABASE                                                  08640000
            , TBNAME                                                    08650000
            , IXNAME                                                    08660000
            , IXCREATOR                                                 08670000
            , BPOOL_I                                                   08680000
            , INDEXTYPE                                                 08690000
            , PARTITION                                                 08700000
            , STOGROUP                                                  08710000
            , PRIQTY                                                    08720000
            , SECQTY                                                    08730000
            , GBPCACHE                                                  08740000
            , PGSIZE                                                    08750000
            , FREEPAGE                                                  08760000
            , PCTFREE                                                   08770000
            , COMPRESS                                                  08780000
            , CLOSE                                                     08790000
            , COPY                                                      08800000
            , DEFINE                                                    08810000
            , CLUSTERING                                                08820000
            , TSPARTITION                                               08830000
            , TPIXNAME                                                  08840000
            , PIECESIZE                                                 08850000
            , TSPGSIZE                                                  08860000
            , COMMENT                                                   08870000
            , CREATEDTS                                                 08880000
           )                                                            08890000
        AS (SELECT DISTINCT                                             08900000
                   EL.FAMILY                                            08910000
                 , DB.NAME                                              08920000
                 , IX.TBNAME                                            08930000
                 , IX.NAME                                              08940000
                 , IX.CREATOR                                           08950000
                 , IX.BPOOL                                             08960000
                 , IX.INDEXTYPE                                         08970000
                 , (SELECT MAX(TMP.PARTITION)                           08980000
                      FROM SYSIBM.SYSINDEXPART TMP                      08990000
                     WHERE TMP.IXNAME = IX.NAME                         09000000
                       AND TMP.IXCREATOR = IX.CREATOR                   09010000
                   )                                                    09020000
                 , XP.STORNAME                                          09030000
                 , XP.PQTY                                              09040000
                 , XP.SQTY                                              09050000
                 , XP.GBPCACHE                                          09060000
                 , IX.PGSIZE                                            09070000
                 , XP.FREEPAGE                                          09080000
                 , XP.PCTFREE                                           09090000
                 , IX.COMPRESS                                          09100000
                 , IX.CLOSERULE                                         09110000
                 , IX.COPY                                              09120000
                 , XP.SPACE                                             09130000
                 , IX.CLUSTERING                                        09140000
                 , (SELECT TMP.PARTITIONS                               09150000
                      FROM SYSIBM.SYSTABLESPACE TMP                     09160000
                     WHERE TMP.DBID = DB.DBID                           09170000
                       AND TMP.DBID = IX.DBID                           09180000
                       AND TMP.NAME = TB.TSNAME                         09190000
                   )                                                    09200000
                 , (SELECT TMP.IXNAME                                   09210000
                      FROM SYSIBM.SYSTABLEPART TMP                      09220000
                     WHERE TMP.TSNAME = TS.NAME                         09230000
                       AND TMP.DBNAME = TS.DBNAME                       09240000
                     FETCH FIRST 1 ROW ONLY                             09250000
                   )                                                    09260000
                 , IX.PIECESIZE                                         09270000
                 , TS.PGSIZE                                            09280000
                 , EL.COMMENT                                           09290000
                 , XP.CREATEDTS                                         09300000
              FROM      SESSION.ELAR         EL                         09310000
             INNER JOIN SYSIBM.SYSDATABASE   DB                         09320000
                     ON EL.STORAR  = DB.NAME                            09330000
             INNER JOIN SYSIBM.SYSINDEXES    IX                         09340000
                     ON DB.DBID    = IX.DBID                            09350000
             INNER JOIN SYSIBM.SYSTABLES     TB                         09360000
                     ON IX.TBNAME   = TB.NAME                           09370000
                    AND IX.DBNAME   = TB.DBNAME                         09380000
                    AND IX.DBID     = TB.DBID                           09390000
                    AND TB.DBID     = DB.DBID                           09400000
             INNER JOIN SYSIBM.SYSTABLESPACE TS                         09410000
                     ON TB.TSNAME   = TS.NAME                           09420000
                    AND TS.DBID     = TB.DBID                           09430000
                    AND TS.DBID     = IX.DBID                           09440000
                    AND TS.DBID     = DB.DBID                           09450000
             INNER JOIN SYSIBM.SYSINDEXPART  XP                         09460000
                     ON IX.NAME    = XP.IXNAME                          09470000
                    AND IX.CREATOR = XP.IXCREATOR                       09480000
           )                                                            09490000
   , IXDDL (  FAMILY                                                    09500000
            , DATABASE                                                  09510000
            , TBNAME                                                    09520000
            , IXNAME                                                    09530000
            , BPOOL_I                                                   09540000
            , INDEXTYPE                                                 09550000
            , PARTITION                                                 09560000
            , STOGROUP                                                  09570000
            , PRIQTY                                                    09580000
            , SECQTY                                                    09590000
            , GBPCACHE                                                  09600000
            , PGSIZE                                                    09610000
            , FREEPAGE                                                  09620000
            , PCTFREE                                                   09630000
            , COMPRESS                                                  09640000
            , CLOSE                                                     09650000
            , COPY                                                      09660000
            , DEFINE                                                    09670000
            , CLUSTERING                                                09680000
            , CNT_KEYS                                                  09690000
            , CLUSTERKEY                                                09700000
            , TSPARTITION                                               09710000
            , TPIXNAME                                                  09720000
            , PIECESIZE                                                 09730000
            , TSPGSIZE                                                  09740000
            , IXTECHBUSINESS                                            09750000
            , COMMENT                                                   09760000
            , CREATEDTS                                                 09770000
           )                                                            09780000
        AS (SELECT T1.FAMILY                                            09790000
                 , T1.DATABASE                                          09800000
                 , T1.TBNAME                                            09810000
                 , T1.IXNAME                                            09820000
                 , T1.BPOOL_I                                           09830000
                 , T1.INDEXTYPE                                         09840000
                 , T1.PARTITION                                         09850000
                 , T1.STOGROUP                                          09860000
                 , T1.PRIQTY                                            09870000
                 , T1.SECQTY                                            09880000
                 , T1.GBPCACHE                                          09890000
                 , T1.PGSIZE                                            09900000
                 , T1.FREEPAGE                                          09910000
                 , T1.PCTFREE                                           09920000
                 , T1.COMPRESS                                          09930000
                 , T1.CLOSE                                             09940000
                 , T1.COPY                                              09950000
                 , T1.DEFINE                                            09960000
                 , T1.CLUSTERING                                        09970000
                 , (SELECT MAX(SK.COLSEQ)                               09980000
                      FROM SYSIBM.SYSKEYS SK                            09990000
                     WHERE T1.IXCREATOR  = SK.IXCREATOR                 10000000
                       AND T1.IXNAME     = SK.IXNAME                    10010000
                       AND T1.CLUSTERING = 'Y'                          10020000
                       AND SK.COLSEQ     = 1                            10030000
                   ) AS CNT_KEYS                                        10040000
                 , (SELECT SK.COLNAME                                   10050000
                      FROM SYSIBM.SYSKEYS SK                            10060000
                     WHERE T1.IXCREATOR  = SK.IXCREATOR                 10070000
                       AND T1.IXNAME     = SK.IXNAME                    10080000
                       AND T1.CLUSTERING = 'Y'                          10090000
                       AND SK.COLSEQ     = 1                            10100000
                   ) AS CLUSTERKEY                                      10110000
                 , T1.TSPARTITION                                       10120000
                 , T1.TPIXNAME                                          10130000
                 , T1.PIECESIZE                                         10140000
                 , T1.TSPGSIZE                                          10150000
                 , (SELECT COUNT(*)                                     10160000
                      FROM SYSIBM.SYSKEYS IK                            10170000
                     WHERE IK.IXNAME = T1.IXNAME                        10180000
                       AND (   IK.COLNAME LIKE '%ATRN%'                 10190000
                            OR IK.COLNAME LIKE '%STRN%'                 10200000
                           )                                            10210000
                   ) AS IXTECHBUSINESS                                  10220000
                 , T1.COMMENT                                           10230000
                 , T1.CREATEDTS                                         10240000
              FROM XSTMP T1                                             10250000
           )                                                            10260000
   , RXS   (  FAMILY                                                    10270000
            , COMMENT                                                   10280000
            , OBJECT                                                    10290000
            , OPTVALUE                                                  10300000
            , CREATEDTS                                                 10310000
           )                                                            10320000
        AS (SELECT DISTINCT                                             10330000
                   FAMILY                                               10340000
                 , COMMENT                                              10350000
                 , CAST(DATABASE AS CHAR(08))                           10360000
                || ' '                                                  10370000
                || IXNAME                                               10380000
                || ' '                                                  10390000
                || TBNAME                                               10400000
                 , 'NoIndexExists='                                     10410000
                || CASE WHEN LENGTH(STRIP(IXNAME)) = 0                  10420000
                        THEN 'NOK'                                      10430000
                        ELSE 'OK'                                       10440000
                   END                                                  10450000
                || ';'                                                  10460000
                || 'NPI='                                               10470000
                || CASE WHEN PARTITION + TSPARTITION = 0                10480000
                        THEN 'OK'                                       10490000
                   ELSE CASE WHEN TSPARTITION > 0 AND PIECESIZE = 0     10500000
                             THEN 'OK'                                  10510000
                             ELSE CASE WHEN PARTITION > 0 AND           10520000
                                            PIECESIZE > 0               10530000
                                       THEN 'OK'                        10540000
                                       ELSE 'NOK'                       10550000
                                  END                                   10560000
                        END                                             10570000
                   END                                                  10580000
                || ';'                                                  10590000
                || 'Indextype='                                         10600000
                || CASE INDEXTYPE                                       10610000
                        WHEN 'D' then case when tspartition > 0         10620000
                                           then 'OK'                    10630000
                                           else 'NOK'                   10640000
                                      end                               10650000
                        WHEN 'P' then case when tspartition > 0         10660000
                                           then 'OK'                    10670000
                                           else 'NOK'                   10680000
                                      end                               10690000
                        WHEN ' ' then case when tspartition > 0         10700000
                                           then 'NOK'                   10710000
                                           else 'OK'                    10720000
                                      end                               10730000
                        WHEN '2' then case when tspartition > 0         10740000
                                           then 'NOK'                   10750000
                                           else 'OK'                    10760000
                                      end                               10770000
                        ELSE 'NOK'                                      10780000
                   END                                                  10790000
                || ';'                                                  10800000
                || 'IndexPartLimit='                                    10810000
                || CASE WHEN PARTITION > (SELECT MAXPART                10820000
                                            FROM SESSION.MAXPART        10830000
                                           WHERE PARTYPE = 'Index'      10840000
                                         )                              10850000
                        THEN 'NOK'                                      10860000
                        ELSE 'OK'                                       10870000
                   END                                                  10880000
                || ';'                                                  10890000
                || 'Bufferpool='                                        10900000
                || CASE BPOOL_I                                         10910000
                        WHEN 'BP1' THEN 'OK'                            10920000
                        ELSE 'NOK'                                      10930000
                   END                                                  10940000
                || ';'                                                  10950000
                || 'GroupBufferPool='                                   10960000
                || CASE GBPCACHE                                        10970000
                        WHEN ' ' THEN 'OK'                              10980000
                   ELSE 'NOK'                                           10990000
                   END                                                  11000000
                || ';'                                                  11010000
                || 'Pagesize='                                          11020000
                || CASE WHEN TSPGSIZE = PGSIZE                          11030000
                        THEN 'OK'                                       11040000
                        ELSE 'OK'                                       11050000
                   END                                                  11060000
                || ';'                                                  11070000
                || 'CloseOption='                                       11080000
                || CASE CLOSE                                           11090000
                        WHEN 'Y' THEN 'OK'                              11100000
                   ELSE 'NOK'                                           11110000
                   END                                                  11120000
                || ';'                                                  11130000
                || 'IdxCompressOption='                                 11140000
                || CASE COMPRESS                                        11150000
                        WHEN 'N' THEN 'OK'                              11160000
                   ELSE 'NOK'                                           11170000
                   END                                                  11180000
                || ';'                                                  11190000
                || 'StorageGroup='                                      11200000
                || CASE STOGROUP                                        11210000
                        WHEN 'GSMS1' THEN 'OK'                          11220000
                        WHEN 'GSMS2' THEN 'OK'                          11230000
                        WHEN 'GSMS3' THEN 'OK'                          11240000
                        WHEN 'GSMS4' THEN 'OK'                          11250000
                        ELSE CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'     11260000
                                  THEN CASE WHEN STOGROUP = 'GSMS'      11270000
                                            THEN 'OK'                   11280000
                                            ELSE 'NOK'                  11290000
                                       END                              11300000
                                  ELSE 'NOK'                            11310000
                             END                                        11320000
                   END                                                  11330000
                || ';'                                                  11340000
                || 'PrimaryQuantity='                                   11350000
                || CASE PRIQTY                                          11360000
                        WHEN -1 THEN 'OK'                               11370000
                        ELSE 'NOK'                                      11380000
                   END                                                  11390000
                || ';'                                                  11400000
                || 'SecondaryQuantity='                                 11410000
                || CASE SECQTY                                          11420000
                        WHEN -1 THEN 'OK'                               11430000
                        ELSE 'NOK'                                      11440000
                   END                                                  11450000
                || ';'                                                  11460000
                || 'Define='                                            11470000
                || CASE DEFINE                                          11480000
                        WHEN -1 THEN 'NOK'                              11490000
                        ELSE 'OK'                                       11500000
                   END                                                  11510000
                || ';'                                                  11520000
                || 'FreePage'                                           11530000
                || CASE FREEPAGE                                        11540000
                        WHEN 0 THEN '=OK'                               11550000
                        ELSE '=NOK'                                     11560000
                   END                                                  11570000
                || ';'                                                  11580000
                || 'PctFree'                                            11590000
                || CASE WHEN SUBSTR(DATABASE,1,3) = 'DXB'               11600000
                        THEN '_Metadata=OK'                             11610000
                        ELSE                                            11620000
                             CASE WHEN IXTECHBUSINESS > 0               11630000
                                  THEN CASE PCTFREE                     11640000
                                          WHEN 0 THEN '_Technical=OK'   11650000
                                          ELSE '_Technical=NOK'         11660000
                                       END                              11670000
                                  ELSE CASE PCTFREE                     11680000
                                          WHEN 10 THEN '_Business=OK'   11690000
                                          ELSE '_Business=NOK'          11700000
                                       END                              11710000
                             END                                        11720000
                   END                                                  11730000
                || ';'                                                  11740000
                || 'Copy='                                              11750000
                || CASE COPY                                            11760000
                        WHEN 'N' THEN 'OK'                              11770000
                        ELSE 'NOK'                                      11780000
                   END                                                  11790000
                 , CREATEDTS                                            11800000
              FROM IXDDL                                                11810000
           )                                                            11820000
SELECT GENERATE_UNIQUE()                                                11830000
     , '4Indexspace Option Check'                                       11840000
     , FAMILY                                                           11850000
     , COMMENT                                                          11860000
     , OBJECT                                                           11870000
     , OPTVALUE                                                         11880000
     , CREATEDTS                                                        11890000
  FROM RXS                                                              11900000
 ORDER BY FAMILY                                                        11910000
        , OBJECT                                                        11920000
;                                                                       11930000
INSERT INTO SESSION.TEMP                                                11940000
WITH IXTYPE_FAILURE   ( INDEXTYPE                                       11950000
                      )                                                 11960000
       AS     ( SELECT 'C'                                              11970000
                  FROM SYSIBM.SYSDUMMY1                                 11980000
                UNION  ALL                                              11990000
                SELECT 'N'                                              12000000
                  FROM SYSIBM.SYSDUMMY1                                 12010000
                UNION  ALL                                              12020000
                SELECT 'R'                                              12030000
                  FROM SYSIBM.SYSDUMMY1                                 12040000
                UNION  ALL                                              12050000
                SELECT 'G'                                              12060000
                  FROM SYSIBM.SYSDUMMY1                                 12070000
                UNION  ALL                                              12080000
                SELECT 'X'                                              12090000
                  FROM SYSIBM.SYSDUMMY1                                 12100000
              )                                                         12110000
   , IXTYPE_UNIQUE ( INDEXTYPE                                          12120000
                   )                                                    12130000
       AS     ( SELECT 'P'                                              12140000
                  FROM SYSIBM.SYSDUMMY1                                 12150000
                UNION ALL                                               12160000
                SELECT 'U'                                              12170000
                  FROM SYSIBM.SYSDUMMY1                                 12180000
              )                                                         12190000
   , IXTYPE   ( INDEXTYPE                                               12200000
              )                                                         12210000
       AS     ( SELECT 'C'                                              12220000
                  FROM SYSIBM.SYSDUMMY1                                 12230000
                UNION  ALL                                              12240000
                SELECT 'D'                                              12250000
                  FROM SYSIBM.SYSDUMMY1                                 12260000
                UNION  ALL                                              12270000
                SELECT 'U'                                              12280000
                  FROM SYSIBM.SYSDUMMY1                                 12290000
                UNION  ALL                                              12300000
                SELECT 'P'                                              12310000
                  FROM SYSIBM.SYSDUMMY1                                 12320000
                UNION  ALL                                              12330000
                SELECT 'N'                                              12340000
                  FROM SYSIBM.SYSDUMMY1                                 12350000
                UNION  ALL                                              12360000
                SELECT 'R'                                              12370000
                  FROM SYSIBM.SYSDUMMY1                                 12380000
                UNION  ALL                                              12390000
                SELECT 'G'                                              12400000
                  FROM SYSIBM.SYSDUMMY1                                 12410000
                UNION  ALL                                              12420000
                SELECT 'X'                                              12430000
                  FROM SYSIBM.SYSDUMMY1                                 12440000
              )                                                         12450000
   , IXLST (  FAMILY                                                    12460000
            , DATABASE                                                  12470000
            , TBNAME                                                    12480000
            , IXNAME                                                    12490000
            , IXCREATOR                                                 12500000
            , ELAR_TYPE                                                 12510000
            , ELAR_ORDER                                                12520000
            , UNIQUERULE                                                12530000
            , CLUSTERING                                                12540000
            , MAXCOL                                                    12550000
            , EN1PART                                                   12560000
            , EA1ATRN                                                   12570000
            , EA1STRN                                                   12580000
            , EN1STK1                                                   12590000
            , EN1STK2                                                   12600000
            , EATRNVON                                                  12610000
            , EATRNBIS                                                  12620000
            , COMMENT                                                   12630000
            , CREATEDTS                                                 12640000
           )                                                            12650000
        AS (SELECT DISTINCT                                             12660000
                   EL.FAMILY                                            12670000
                 , DB.NAME                                              12680000
                 , TB.NAME                                              12690000
                 , IFNULL(IX.NAME,'NOK')                                12700000
                 , IX.CREATOR                                           12710000
                 , CAST(CASE SUBSTR(TB.NAME,9,2)                        12720000
                             WHEN 'HS' THEN 'SIGNATUR'                  12730000
                             WHEN 'IT' THEN 'BODY    '                  12740000
                             WHEN 'PM' THEN 'MULTIPLE'                  12750000
                             ELSE CASE SUBSTR(TB.NAME,9,5)              12760000
                                       WHEN 'PS001' THEN 'AOP     '     12770000
                                       WHEN 'PS002' THEN 'SEP     '     12780000
                                       WHEN 'PS003' THEN 'SEP_2   '     12790000
                                       ELSE '??????? '                  12800000
                                  END                                   12810000
                        END                                             12820000
                        AS CHAR(08)                                     12830000
                       )                                                12840000
                 , CAST(CASE SUBSTR(TB.NAME,9,2)                        12850000
                             WHEN 'HS' THEN '6'                         12860000
                             WHEN 'IT' THEN '4'                         12870000
                             WHEN 'PM' THEN '5'                         12880000
                             ELSE CASE SUBSTR(TB.NAME,9,5)              12890000
                                       WHEN 'PS001' THEN '1'            12900000
                                       WHEN 'PS002' THEN '2'            12910000
                                       WHEN 'PS003' THEN '3'            12920000
                                       ELSE '7'                         12930000
                                  END                                   12940000
                        END                                             12950000
                        AS CHAR(01)                                     12960000
                       )                                                12970000
                 , IFNULL(IX.UNIQUERULE,'NOK') AS UNIQUERULE            12980000
                 , IFNULL(IX.CLUSTERING,'NOK') AS CLUSTERING            12990000
                 , (SELECT COUNT(*)                                     13000000
                      FROM SYSIBM.SYSKEYS SK                            13010000
                     WHERE IX.NAME    = SK.IXNAME                       13020000
                       AND IX.CREATOR = SK.IXCREATOR                    13030000
                   ) AS MAXCOL                                          13040000
                 , IFNULL((SELECT SK.COLSEQ                             13050000
                             FROM SYSIBM.SYSKEYS SK                     13060000
                            WHERE IX.NAME    = SK.IXNAME                13070000
                              AND IX.CREATOR = SK.IXCREATOR             13080000
                              AND SK.COLNAME = 'EN1PART'                13090000
                          ), -1) AS EN1PART                             13100000
                 , IFNULL((SELECT SK.COLSEQ                             13110000
                             FROM SYSIBM.SYSKEYS SK                     13120000
                            WHERE IX.NAME    = SK.IXNAME                13130000
                              AND IX.CREATOR = SK.IXCREATOR             13140000
                              AND SK.COLNAME = 'EA1ATRN'                13150000
                          ), -1) AS EA1ATRN                             13160000
                 , IFNULL((SELECT SK.COLSEQ                             13170000
                             FROM SYSIBM.SYSKEYS SK                     13180000
                            WHERE IX.NAME    = SK.IXNAME                13190000
                              AND IX.CREATOR = SK.IXCREATOR             13200000
                              AND SK.COLNAME = 'EA1STRN'                13210000
                          ), -1) AS EA1STRN                             13220000
                 , IFNULL((SELECT SK.COLSEQ                             13230000
                             FROM SYSIBM.SYSKEYS SK                     13240000
                            WHERE IX.NAME    = SK.IXNAME                13250000
                              AND IX.CREATOR = SK.IXCREATOR             13260000
                              AND SK.COLNAME = 'EN1STK1'                13270000
                          ), -1) AS EN1STK1                             13280000
                 , IFNULL((SELECT SK.COLSEQ                             13290000
                             FROM SYSIBM.SYSKEYS SK                     13300000
                            WHERE IX.NAME    = SK.IXNAME                13310000
                              AND IX.CREATOR = SK.IXCREATOR             13320000
                              AND SK.COLNAME = 'EN1STK2'                13330000
                          ), -1) AS EN1STK2                             13340000
                 , IFNULL((SELECT SK.COLSEQ                             13350000
                             FROM SYSIBM.SYSKEYS SK                     13360000
                            WHERE IX.NAME    = SK.IXNAME                13370000
                              AND IX.CREATOR = SK.IXCREATOR             13380000
                              AND SK.COLNAME = 'EATRNVON'               13390000
                          ), -1) AS EATRNVON                            13400000
                 , IFNULL((SELECT SK.COLSEQ                             13410000
                             FROM SYSIBM.SYSKEYS SK                     13420000
                            WHERE IX.NAME    = SK.IXNAME                13430000
                              AND IX.CREATOR = SK.IXCREATOR             13440000
                              AND SK.COLNAME = 'EATRNBIS'               13450000
                          ), -1) AS EATRNBIS                            13460000
                 , EL.COMMENT                                           13470000
                 , IFNULL(IX.CREATEDTS, '0001-01-01-00.00.00.000000')   13480000
              FROM            SESSION.ELAR         EL                   13490000
             INNER       JOIN SYSIBM.SYSDATABASE   DB                   13500000
                           ON EL.STORAR = DB.NAME                       13510000
             INNER       JOIN SYSIBM.SYSTABLES     TB                   13520000
                           ON TB.DBNAME = DB.NAME                       13530000
                          AND TB.TYPE   = 'T'                           13540000
             INNER       JOIN SYSIBM.SYSTABLESPACE TS                   13550000
                           ON TB.TSNAME = TS.NAME                       13560000
                          AND TB.DBID   = TS.DBID                       13570000
                          AND TS.DBID   = DB.DBID                       13580000
              LEFT OUTER JOIN SYSIBM.SYSINDEXES    IX                   13590000
                           ON IX.TBNAME = TB.NAME                       13600000
              LEFT OUTER JOIN IXTYPE               TY                   13610000
                           ON IX.INDEXTYPE = TY.INDEXTYPE               13620000
           )                                                            13630000
   , RXI   (  FAMILY                                                    13640000
            , COMMENT                                                   13650000
            , OBJECT                                                    13660000
            , OPTVALUE                                                  13670000
            , CREATEDTS                                                 13680000
           )                                                            13690000
        AS (SELECT FAMILY                                               13700000
                 , COMMENT                                              13710000
                 , CAST(DATABASE AS CHAR(08))                           13720000
                || ' '                                                  13730000
                || TBNAME                                               13740000
                || ' '                                                  13750000
                 , 'No'                                                 13760000
                || ' '                                                  13770000
                || 'Index'                                              13780000
                || ' '                                                  13790000
                || 'exists=NOK'                                         13800000
                || ';'                                                  13810000
                 , CREATEDTS                                            13820000
              FROM IXLST                                                13830000
             WHERE UNIQUERULE = 'NOK'                                   13840000
            UNION  ALL                                                  13850000
            SELECT FAMILY                                               13860000
                 , COMMENT                                              13870000
                 , CAST(DATABASE AS CHAR(08))                           13880000
                || ' '                                                  13890000
                || IXNAME                                               13900000
                || ' '                                                  13910000
                || TBNAME                                               13920000
                || ' '                                                  13930000
                || 'IndexType_Failure'                                  13940000
                 , 'IndexType_Failure=NOK'                              13950000
                || ';'                                                  13960000
                 , CREATEDTS                                            13970000
              FROM IXLST                                                13980000
             WHERE UNIQUERULE IN (SELECT INDEXTYPE                      13990000
                                    FROM IXTYPE_FAILURE                 14000000
                                 )                                      14010000
            UNION  ALL                                                  14020000
            SELECT FAMILY                                               14030000
                 , COMMENT                                              14040000
                 , CAST(DATABASE AS CHAR(08))                           14050000
                || ' '                                                  14060000
                || IXNAME                                               14070000
                || ' '                                                  14080000
                || TBNAME                                               14090000
                || ' '                                                  14100000
                || 'IndexRule=Unique'                                   14110000
                 , 'EN1PART_MIS='                                       14120000
                || CASE WHEN EN1PART = -1                               14130000
                        THEN 'NOK'                                      14140000
                        ELSE 'OK'                                       14150000
                   END                                                  14160000
                || ';'                                                  14170000
                || 'EN1PART_WPOS='                                      14180000
                || CASE WHEN EN1PART = 2                                14190000
                        THEN 'OK'                                       14200000
                        ELSE 'NOK'                                      14210000
                   END                                                  14220000
                || ';'                                                  14230000
                || 'EA1ARTN_MIS='                                       14240000
                || CASE WHEN EA1ATRN = -1                               14250000
                        THEN 'NOK'                                      14260000
                        ELSE 'OK'                                       14270000
                   END                                                  14280000
                || ';'                                                  14290000
                || 'EA1ARTN_WPOS='                                      14300000
                || CASE WHEN EA1ATRN = 1                                14310000
                        THEN 'OK'                                       14320000
                        ELSE 'NOK'                                      14330000
                   END                                                  14340000
                || ';'                                                  14350000
                || 'CLUSTER_DEF='                                       14360000
                || CASE CLUSTERING                                      14370000
                        WHEN 'Y' THEN 'OK'                              14380000
                        ELSE 'NOK'                                      14390000
                   END                                                  14400000
                || ';'                                                  14410000
                || 'TooManyCols='                                       14420000
                || CASE MAXCOL                                          14430000
                        WHEN 2 THEN 'OK'                                14440000
                        ELSE 'NOK'                                      14450000
                   END                                                  14460000
                || ';'                                                  14470000
                 , CREATEDTS                                            14480000
              FROM IXLST                                                14490000
             WHERE ELAR_TYPE = 'AOP'                                    14500000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      14510000
                                    FROM IXTYPE_UNIQUE                  14520000
                                 )                                      14530000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          14540000
             UNION ALL                                                  14550000
            SELECT FAMILY                                               14560000
                 , COMMENT                                              14570000
                 , CAST(DATABASE AS CHAR(08))                           14580000
                || ' '                                                  14590000
                || IXNAME                                               14600000
                || ' '                                                  14610000
                || TBNAME                                               14620000
                || ' '                                                  14630000
                || 'IndexRule=Unique'                                   14640000
                 , 'EN1PART_MIS='                                       14650000
                || CASE WHEN EN1PART = -1                               14660000
                        THEN 'NOK'                                      14670000
                        ELSE 'OK'                                       14680000
                   END                                                  14690000
                || ';'                                                  14700000
                || 'EA1SRTN_MIS='                                       14710000
                || CASE WHEN EA1STRN = -1                               14720000
                        THEN 'NOK'                                      14730000
                        ELSE 'OK'                                       14740000
                   END                                                  14750000
                || ';'                                                  14760000
                || 'EN1PART_WPOS='                                      14770000
                || CASE WHEN EN1PART = 2                                14780000
                        THEN 'OK'                                       14790000
                        ELSE 'NOK'                                      14800000
                   END                                                  14810000
                || ';'                                                  14820000
                || 'EA1SRTN_WPOS='                                      14830000
                || CASE WHEN EA1STRN = 1                                14840000
                        THEN 'OK'                                       14850000
                        ELSE 'NOK'                                      14860000
                   END                                                  14870000
                || ';'                                                  14880000
                || 'CLUSTER_DEF='                                       14890000
                || CASE CLUSTERING                                      14900000
                        WHEN 'Y' THEN 'OK'                              14910000
                        ELSE 'NOK'                                      14920000
                   END                                                  14930000
                || ';'                                                  14940000
                || 'TooManyCols='                                       14950000
                || CASE MAXCOL                                          14960000
                        WHEN 2 THEN 'OK'                                14970000
                        ELSE 'NOK'                                      14980000
                   END                                                  14990000
                || ';'                                                  15000000
                 , CREATEDTS                                            15010000
              FROM IXLST                                                15020000
             WHERE ELAR_TYPE IN ('SEP', 'SEP_2')                        15030000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      15040000
                                    FROM IXTYPE_UNIQUE                  15050000
                                 )                                      15060000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          15070000
            UNION  ALL                                                  15080000
            SELECT FAMILY                                               15090000
                 , COMMENT                                              15100000
                 , CAST(DATABASE AS CHAR(08))                           15110000
                || ' '                                                  15120000
                || IXNAME                                               15130000
                || ' '                                                  15140000
                || TBNAME                                               15150000
                || ' '                                                  15160000
                || 'IndexRule=Unique'                                   15170000
                 , 'EN1PART_MIS='                                       15180000
                || CASE WHEN EN1PART = -1                               15190000
                        THEN 'NOK'                                      15200000
                        ELSE 'OK'                                       15210000
                   END                                                  15220000
                || ';'                                                  15230000
                || 'EA1STRN_MIS='                                       15240000
                || CASE WHEN EA1STRN = -1                               15250000
                        THEN 'NOK'                                      15260000
                        ELSE 'OK'                                       15270000
                   END                                                  15280000
                || ';'                                                  15290000
                || 'EN1STK1_MIS='                                       15300000
                || CASE WHEN EN1STK1 = -1                               15310000
                        THEN 'NOK'                                      15320000
                        ELSE 'OK'                                       15330000
                   END                                                  15340000
                || ';'                                                  15350000
                || 'EN1STK2_MIS='                                       15360000
                || CASE WHEN EN1STK2 = -1                               15370000
                        THEN 'NOK'                                      15380000
                        ELSE 'OK'                                       15390000
                   END                                                  15400000
                || ';'                                                  15410000
                || 'EN1PART_WPOS='                                      15420000
                || CASE WHEN EN1PART = 4                                15430000
                        THEN 'OK'                                       15440000
                        ELSE 'NOK'                                      15450000
                   END                                                  15460000
                || ';'                                                  15470000
                || 'EA1STRN_WPOS='                                      15480000
                || CASE WHEN EA1STRN = 1                                15490000
                        THEN 'OK'                                       15500000
                        ELSE 'NOK'                                      15510000
                   END                                                  15520000
                || ';'                                                  15530000
                || 'EN1STK1_WPOS='                                      15540000
                || CASE WHEN EN1STK1 = 2                                15550000
                        THEN 'OK'                                       15560000
                        ELSE 'NOK'                                      15570000
                   END                                                  15580000
                || ';'                                                  15590000
                || 'EN1STK2_WPOS='                                      15600000
                || CASE WHEN EN1STK2 = 3                                15610000
                        THEN 'OK'                                       15620000
                        ELSE 'NOK'                                      15630000
                   END                                                  15640000
                || ';'                                                  15650000
                || 'CLUSTER_DEF='                                       15660000
                || CASE CLUSTERING                                      15670000
                        WHEN 'Y' THEN 'OK'                              15680000
                        ELSE 'NOK'                                      15690000
                   END                                                  15700000
                || ';'                                                  15710000
                || 'TooManyCols='                                       15720000
                || CASE MAXCOL                                          15730000
                        WHEN 4 THEN 'OK'                                15740000
                        ELSE 'NOK'                                      15750000
                   END                                                  15760000
                || ';'                                                  15770000
                 , CREATEDTS                                            15780000
              FROM IXLST                                                15790000
             WHERE ELAR_TYPE = 'BODY'                                   15800000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      15810000
                                    FROM IXTYPE_UNIQUE                  15820000
                                 )                                      15830000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          15840000
            UNION  ALL                                                  15850000
            SELECT FAMILY                                               15860000
                 , COMMENT                                              15870000
                 , CAST(DATABASE AS CHAR(08))                           15880000
                || ' '                                                  15890000
                || IXNAME                                               15900000
                || ' '                                                  15910000
                || TBNAME                                               15920000
                || ' '                                                  15930000
                || 'IndexRule=Unique'                                   15940000
                 , 'EN1PART_MIS='                                       15950000
                || CASE WHEN EN1PART = -1                               15960000
                        THEN 'NOK'                                      15970000
                        ELSE 'OK'                                       15980000
                   END                                                  15990000
                || ';'                                                  16000000
                || 'EA1ATRN_MIS='                                       16010000
                || CASE WHEN EA1ATRN = -1                               16020000
                        THEN 'NOK'                                      16030000
                        ELSE 'OK'                                       16040000
                   END                                                  16050000
                || ';'                                                  16060000
                || 'EN1PART_WPOS='                                      16070000
                || CASE WHEN EN1PART = 2                                16080000
                        THEN 'OK'                                       16090000
                        ELSE 'NOK'                                      16100000
                   END                                                  16110000
                || ';'                                                  16120000
                || 'EA1ATRN_MIS='                                       16130000
                || CASE WHEN EA1ATRN = 1                                16140000
                        THEN 'OK'                                       16150000
                        ELSE 'NOK'                                      16160000
                   END                                                  16170000
                || ';'                                                  16180000
                || 'CLUSTER_DEF='                                       16190000
                || CASE CLUSTERING                                      16200000
                        WHEN 'N' THEN 'OK'                              16210000
                        ELSE 'NOK'                                      16220000
                   END                                                  16230000
                || ';'                                                  16240000
                || 'TooManyCols='                                       16250000
                || CASE MAXCOL                                          16260000
                        WHEN 2 THEN 'OK'                                16270000
                        ELSE 'NOK'                                      16280000
                   END                                                  16290000
                || ';'                                                  16300000
                 , CREATEDTS                                            16310000
              FROM IXLST                                                16320000
             WHERE ELAR_TYPE = 'MULTIPLE'                               16330000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      16340000
                                    FROM IXTYPE_UNIQUE                  16350000
                                 )                                      16360000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          16370000
            UNION  ALL                                                  16380000
            SELECT FAMILY                                               16390000
                 , COMMENT                                              16400000
                 , CAST(DATABASE AS CHAR(08))                           16410000
                || ' '                                                  16420000
                || IXNAME                                               16430000
                || ' '                                                  16440000
                || TBNAME                                               16450000
                || ' '                                                  16460000
                || 'IndexRule=Unique'                                   16470000
                 , 'EN1PART_MIS='                                       16480000
                || CASE WHEN EN1PART = -1                               16490000
                        THEN 'NOK'                                      16500000
                        ELSE 'OK'                                       16510000
                   END                                                  16520000
                || ';'                                                  16530000
                || 'EATRNVON_MIS='                                      16540000
                || CASE WHEN EATRNVON = -1                              16550000
                        THEN 'NOK'                                      16560000
                        ELSE 'OK'                                       16570000
                   END                                                  16580000
                || ';'                                                  16590000
                || 'EATRNBIS_MIS='                                      16600000
                || CASE WHEN EATRNBIS = -1                              16610000
                        THEN 'NOK'                                      16620000
                        ELSE 'OK'                                       16630000
                   END                                                  16640000
                || ';'                                                  16650000
                || 'EN1PART_WPOS='                                      16660000
                || CASE WHEN EN1PART = 3                                16670000
                        THEN 'OK'                                       16680000
                        ELSE 'NOK'                                      16690000
                   END                                                  16700000
                || ';'                                                  16710000
                || 'EATRNVON_WPOS='                                     16720000
                || CASE WHEN EATRNVON = 1                               16730000
                        THEN 'OK'                                       16740000
                        ELSE 'NOK'                                      16750000
                   END                                                  16760000
                || ';'                                                  16770000
                || 'EATRNBIS_MIS='                                      16780000
                || CASE WHEN EATRNBIS = 2                               16790000
                        THEN 'OK'                                       16800000
                        ELSE 'NOK'                                      16810000
                   END                                                  16820000
                || ';'                                                  16830000
                || 'TooManyCols='                                       16840000
                || CASE MAXCOL                                          16850000
                        WHEN 3 THEN 'OK'                                16860000
                        ELSE 'NOK'                                      16870000
                   END                                                  16880000
                || ';'                                                  16890000
                || 'CLUSTER_DEF='                                       16900000
                || CASE CLUSTERING                                      16910000
                        WHEN 'N' THEN 'OK'                              16920000
                        ELSE 'NOK'                                      16930000
                   END                                                  16940000
                || ';'                                                  16950000
                 , CREATEDTS                                            16960000
              FROM IXLST                                                16970000
             WHERE ELAR_TYPE = 'SIGNATUR'                               16980000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      16990000
                                    FROM IXTYPE_UNIQUE                  17000000
                                 )                                      17010000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          17020000
            UNION  ALL                                                  17030000
            SELECT FAMILY                                               17040000
                 , COMMENT                                              17050000
                 , CAST(DATABASE AS CHAR(08))                           17060000
                || ' '                                                  17070000
                || IXNAME                                               17080000
                || ' '                                                  17090000
                || TBNAME                                               17100000
                || ' '                                                  17110000
                || 'IndexRule=Duplicate'                                17120000
                 , 'EN1PART_FAIL='                                      17130000
                || CASE WHEN EN1PART > -1                               17140000
                        THEN 'NOK'                                      17150000
                        ELSE 'OK'                                       17160000
                   END                                                  17170000
                || ';'                                                  17180000
                || 'EA1ATRN_MIS='                                       17190000
                || CASE WHEN EA1ATRN = -1                               17200000
                        THEN 'NOK'                                      17210000
                        ELSE 'OK'                                       17220000
                   END                                                  17230000
                || ';'                                                  17240000
                || 'EA1ATRN_WPOS='                                      17250000
                || CASE WHEN EA1ATRN = 1                                17260000
                        THEN 'NOK'                                      17270000
                        ELSE 'OK'                                       17280000
                   END                                                  17290000
                || ';'                                                  17300000
                || 'TooManyCols='                                       17310000
                || CASE MAXCOL                                          17320000
                        WHEN 1 THEN 'OK'                                17330000
                        ELSE 'NOK'                                      17340000
                   END                                                  17350000
                || ';'                                                  17360000
                || 'CLUSTER_DEF='                                       17370000
                || CASE CLUSTERING                                      17380000
                        WHEN 'Y' THEN 'OK'                              17390000
                        ELSE 'NOK'                                      17400000
                   END                                                  17410000
                || ';'                                                  17420000
                 , CREATEDTS                                            17430000
              FROM IXLST                                                17440000
             WHERE ELAR_TYPE = 'MULTIPLE'                               17450000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      17460000
                                    FROM IXTYPE_UNIQUE                  17470000
                                 )                                      17480000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          17490000
            UNION  ALL                                                  17500000
            SELECT FAMILY                                               17510000
                 , COMMENT                                              17520000
                 , CAST(DATABASE AS CHAR(08))                           17530000
                || ' '                                                  17540000
                || IXNAME                                               17550000
                || ' '                                                  17560000
                || TBNAME                                               17570000
                || ' '                                                  17580000
                || 'IndexRule=Duplicate'                                17590000
                 , 'EN1PART_FIAL='                                      17600000
                || CASE WHEN EN1PART > -1                               17610000
                        THEN 'NOK'                                      17620000
                        ELSE 'OK'                                       17630000
                   END                                                  17640000
                || ';'                                                  17650000
                || 'EATRNVON_MIS='                                      17660000
                || CASE WHEN EATRNVON = -1                              17670000
                        THEN 'NOK'                                      17680000
                        ELSE 'OK'                                       17690000
                   END                                                  17700000
                || ';'                                                  17710000
                || 'EATRNBIS_MIS='                                      17720000
                || CASE WHEN EATRNBIS = -1                              17730000
                        THEN 'NOK'                                      17740000
                        ELSE 'OK'                                       17750000
                   END                                                  17760000
                || ';'                                                  17770000
                || 'EATRNVON_WPOS='                                     17780000
                || CASE WHEN EATRNVON = 1                               17790000
                        THEN 'OK'                                       17800000
                        ELSE 'NOK'                                      17810000
                   END                                                  17820000
                || ';'                                                  17830000
                || 'EATRNBIS_MIS='                                      17840000
                || CASE WHEN EATRNBIS = 2                               17850000
                        THEN 'OK'                                       17860000
                        ELSE 'NOK'                                      17870000
                   END                                                  17880000
                || ';'                                                  17890000
                || 'TooManyCols='                                       17900000
                || CASE MAXCOL                                          17910000
                        WHEN 2 THEN 'OK'                                17920000
                        ELSE 'NOK'                                      17930000
                   END                                                  17940000
                || ';'                                                  17950000
                || 'CLUSTER_DEF='                                       17960000
                || CASE CLUSTERING                                      17970000
                        WHEN 'Y' THEN 'OK'                              17980000
                        ELSE 'NOK'                                      17990000
                   END                                                  18000000
                || ';'                                                  18010000
                 , CREATEDTS                                            18020000
              FROM IXLST                                                18030000
             WHERE ELAR_TYPE = 'SIGNATUR'                               18040000
               AND UNIQUERULE IN (SELECT INDEXTYPE                      18050000
                                    FROM IXTYPE_UNIQUE                  18060000
                                 )                                      18070000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          18080000
            UNION  ALL                                                  18090000
            SELECT FAMILY                                               18100000
                 , COMMENT                                              18110000
                 , CAST(DATABASE AS CHAR(08))                           18120000
                || ' '                                                  18130000
                || IXNAME                                               18140000
                || ' '                                                  18150000
                || TBNAME                                               18160000
                || ' '                                                  18170000
                || 'IndexRule=Unknown'                                  18180000
                 , 'Index_Rule=NOK;'                                    18190000
                 , CREATEDTS                                            18200000
              FROM IXLST                                                18210000
             WHERE ELAR_TYPE = 'unknown '                               18220000
               AND SUBSTR(DATABASE,1,2) = 'XB'                          18230000
           )                                                            18240000
SELECT GENERATE_UNIQUE()                                                18250000
     , '5Index Option Check'                                            18260000
     , FAMILY                                                           18270000
     , COMMENT                                                          18280000
     , OBJECT                                                           18290000
     , OPTVALUE                                                         18300000
     , CREATEDTS                                                        18310000
  FROM RXI                                                              18320000
 ORDER BY FAMILY                                                        18330000
        , OBJECT                                                        18340000
;                                                                       18350000
INSERT INTO SESSION.TEMP                                                18360000
SELECT GENERATE_UNIQUE()                                                18370000
     , '6ELAR meta data mismatch'                                       18380000
     , FAMILY                                                           18390000
     , ' '                                                              18400000
     , FAMILY                                                           18410000
     , 'NoDatabaseExists=NOK;'                                          18420000
     , '0001-01-01-00.00.00.000000'                                     18430000
  FROM SESSION.FAMLISTE                                                 18440000
 WHERE STORAR_N IS NULL                                                 18450000
   AND ENSEG_N  IS NULL                                                 18460000
   AND SUBSTR(DBNAME,1,3) <> 'DXB'                                      18470000
   AND SUBSTR(FAMILY,1,1) <> '?'                                        18480000
UNION  ALL                                                              18490000
SELECT GENERATE_UNIQUE()                                                18500000
     , '7ELAR meta data mismatch'                                       18510000
     , DBNAME                                                           18520000
     , ' '                                                              18530000
     , DBNAME                                                           18540000
     , 'DatabaseNoFamily=NOK;'                                          18550000
     , '0001-01-01-00.00.00.000000'                                     18560000
  FROM SESSION.FAMLISTE                                                 18570000
 WHERE DBNAME NOT IN (SELECT STORAR                                     18580000
                        FROM SESSION.ELAR                               18590000
                     )                                                  18600000
   AND SUBSTR(DBNAME,1,1) <> '?'                                        18610000
;                                                                       18620000
DECLARE GLOBAL TEMPORARY TABLE PARMVALUE                                18630000
               (  OPTION       CHAR(025)                                18640000
                , VALUE        CHAR(120)                                18650000
                , SUBORD       INTEGER                                  18660000
               )                                                        18670000
;                                                                       18680000
INSERT   INTO SESSION.PARMVALUE                                         18690000
       VALUES (  'InfoTCP'                                              18700000
               , 'Info: Table Controlled Partition'                     18710000
               , 0                                                      18720000
              )                                                         18730000
;                                                                       18740000
INSERT   INTO SESSION.PARMVALUE                                         18750000
       VALUES (  'NPI'                                                  18760000
               , 'on partitioned Object (table/Index) '                 18770000
                 || 'not allowed'                                       18780000
               , 0                                                      18790000
              )                                                         18800000
;                                                                       18810000
INSERT   INTO SESSION.PARMVALUE                                         18820000
       VALUES (  'InfoTSS'                                              18830000
               , 'Info: Segmented or Simple Table'                      18840000
               , 0                                                      18850000
              )                                                         18860000
;                                                                       18870000
INSERT   INTO SESSION.PARMVALUE                                         18880000
       VALUES (  'InfoICP'                                              18890000
               , 'Info: Index Controlled Partition'                     18900000
               , 0                                                      18910000
              )                                                         18920000
;                                                                       18930000
INSERT   INTO SESSION.PARMVALUE                                         18940000
       VALUES (  'InfoNPI'                                              18950000
               , 'Info: Non partitioned Index'                          18960000
               , 0                                                      18970000
              )                                                         18980000
;                                                                       18990000
INSERT   INTO SESSION.PARMVALUE                                         19000000
       VALUES (  'StorageGroup'                                         19010000
               , 'GSMS1, GSMS2, GSMS3 or GSMS4 for XB Databases '       19020000
                 || 'GSMS for ELAR Metadata allowed'                    19030000
               , 3                                                      19040000
              )                                                         19050000
;                                                                       19060000
INSERT   INTO SESSION.PARMVALUE                                         19070000
       VALUES (  'Bufferpool_DB'                                        19080000
                 ,'BP2 allowed on Datasbase definition level'           19090000
                 , 0                                                    19100000
              )                                                         19110000
;                                                                       19120000
INSERT   INTO SESSION.PARMVALUE                                         19130000
       VALUES (  'Bufferpool_DB_IX'                                     19140000
                 ,'BP1 allowed on Datasbase definition level'           19150000
                 , 1                                                    19160000
              )                                                         19170000
;                                                                       19180000
INSERT   INTO SESSION.PARMVALUE                                         19190000
       VALUES (  'Bufferpool_TS'                                        19200000
                 ,'Only BP2, BP8 and BP32K allowed for Tablespaces'     19210000
                 , 2                                                    19220000
              )                                                         19230000
;                                                                       19240000
INSERT   INTO SESSION.PARMVALUE                                         19250000
       VALUES (  'Bufferpool_SHS'                                       19260000
                 ,'Only BP32K for this Tablespaces allowed'             19270000
                 , 2                                                    19280000
              )                                                         19290000
;                                                                       19300000
INSERT   INTO SESSION.PARMVALUE                                         19310000
       VALUES (  'Bufferpool_LOB'                                       19320000
                 ,'Only BP8 for LOB Tablespaces allowed'                19330000
                 , 2                                                    19340000
              )                                                         19350000
;                                                                       19360000
INSERT   INTO SESSION.PARMVALUE                                         19370000
       VALUES (  'IndexBufferpool', 'BP1'                               19380000
               , 3                                                      19390000
              )                                                         19400000
;                                                                       19410000
INSERT   INTO SESSION.PARMVALUE                                         19420000
       VALUES (  'EncodingScheme', 'EBCDIC'                             19430000
               , 4                                                      19440000
              )                                                         19450000
;                                                                       19460000
INSERT   INTO SESSION.PARMVALUE                                         19470000
       VALUES (  'Groupbufferpool', 'Changed'                           19480000
               , 5                                                      19490000
              )                                                         19500000
;                                                                       19510000
INSERT   INTO SESSION.PARMVALUE                                         19520000
       VALUES (  'LOB Bufferpool', 'BP8'                                19530000
               , 6                                                      19540000
              )                                                         19550000
;                                                                       19560000
INSERT   INTO SESSION.PARMVALUE                                         19570000
       VALUES (  'Trackmode', 'No', 10                                  19580000
              )                                                         19590000
;                                                                       19600000
INSERT   INTO SESSION.PARMVALUE                                         19610000
       VALUES (  'LoggedOption', 'Yes', 11                              19620000
              )                                                         19630000
;                                                                       19640000
INSERT   INTO SESSION.PARMVALUE                                         19650000
       VALUES (  'DSSIZE'                                               19660000
               , 'DSSIZE must be 16GB. No other values allowed'         19670000
               , 12                                                     19680000
              )                                                         19690000
;                                                                       19700000
INSERT   INTO SESSION.PARMVALUE                                         19710000
       VALUES (  'Locksize', 'Any', 13                                  19720000
              )                                                         19730000
;                                                                       19740000
INSERT   INTO SESSION.PARMVALUE                                         19750000
       VALUES (  'LockMax', 'System', 14                                19760000
              )                                                         19770000
;                                                                       19780000
INSERT   INTO SESSION.PARMVALUE                                         19790000
       VALUES (  'CloseOption', 'Yes', 17                               19800000
              )                                                         19810000
;                                                                       19820000
INSERT   INTO SESSION.PARMVALUE                                         19830000
       VALUES (  'TblCompressOption', 'Yes', 27                         19840000
              )                                                         19850000
;                                                                       19860000
INSERT   INTO SESSION.PARMVALUE                                         19870000
       VALUES (  'IdxCompressOption', 'No', 29                          19880000
              )                                                         19890000
;                                                                       19900000
INSERT   INTO SESSION.PARMVALUE                                         19910000
       VALUES (  'PrimaryQuantity', 'Only value -1 allowed'             19920000
               , 8                                                      19930000
              )                                                         19940000
;                                                                       19950000
INSERT   INTO SESSION.PARMVALUE                                         19960000
       VALUES (  'SecondaryQuantity', 'Only value -1 allowed'           19970000
               , 9                                                      19980000
              )                                                         19990000
;                                                                       20000000
INSERT   INTO SESSION.PARMVALUE                                         20010000
       VALUES (  'DefineOption', 'Yes', 23                              20020000
              )                                                         20030000
;                                                                       20040000
INSERT   INTO SESSION.PARMVALUE                                         20050000
       VALUES (  'MaxRowsPerPage', '255', 24                            20060000
              )                                                         20070000
;                                                                       20080000
INSERT   INTO SESSION.PARMVALUE                                         20090000
       VALUES (  'Audit', 'None', 18                                    20100000
              )                                                         20110000
;                                                                       20120000
INSERT   INTO SESSION.PARMVALUE                                         20130000
       VALUES (  'DataCapture', 'None', 19                              20140000
              )                                                         20150000
;                                                                       20160000
INSERT   INTO SESSION.PARMVALUE                                         20170000
       VALUES (  'RestrictOnDrop'                                       20180000
               , 'Missing Option With Restrict on Drop'                 20190000
               , 20                                                     20200000
              )                                                         20210000
;                                                                       20220000
INSERT   INTO SESSION.PARMVALUE                                         20230000
       VALUES (  'Volatile', 'correct value is Yes', 21                 20240000
              )                                                         20250000
;                                                                       20260000
INSERT   INTO SESSION.PARMVALUE                                         20270000
       VALUES (  'Append', 'Current value is not YES', 22               20280000
              )                                                         20290000
;                                                                       20300000
INSERT   INTO SESSION.PARMVALUE                                         20310000
       VALUES (  'PartKeyName', 'EN1PART', 30                           20320000
              )                                                         20330000
;                                                                       20340000
INSERT   INTO SESSION.PARMVALUE                                         20350000
       VALUES (  'PartKeyType', 'Integer', 31                           20360000
              )                                                         20370000
;                                                                       20380000
INSERT   INTO SESSION.PARMVALUE                                         20390000
       VALUES (  'PartKeyPosition', 'First Column of Table', 32         20400000
              )                                                         20410000
;                                                                       20420000
INSERT   INTO SESSION.PARMVALUE                                         20430000
       VALUES (  'EN1PART_MIS'                                          20440000
               , 'EN1PART missing in Index', 33                         20450000
              )                                                         20460000
;                                                                       20470000
INSERT   INTO SESSION.PARMVALUE                                         20480000
       VALUES (  'EA1ARTN_MIS'                                          20490000
               , 'EA1ATRN missing in Index', 33                         20500000
              )                                                         20510000
;                                                                       20520000
INSERT   INTO SESSION.PARMVALUE                                         20530000
       VALUES (  'EA1SRTN_MIS'                                          20540000
               , 'EA1STRN missing in Index', 33                         20550000
              )                                                         20560000
;                                                                       20570000
INSERT   INTO SESSION.PARMVALUE                                         20580000
       VALUES (  'EN1STK1_MIS'                                          20590000
               , 'EN1STK1 missing in Index', 33                         20600000
              )                                                         20610000
;                                                                       20620000
INSERT   INTO SESSION.PARMVALUE                                         20630000
       VALUES (  'EN1STK2_MIS'                                          20640000
               , 'EN1STK2 missing in Index', 33                         20650000
              )                                                         20660000
;                                                                       20670000
INSERT   INTO SESSION.PARMVALUE                                         20680000
       VALUES (  'EATRNVON_MIS'                                         20690000
               , 'EATRNVON missing in Index', 33                        20700000
              )                                                         20710000
;                                                                       20720000
INSERT   INTO SESSION.PARMVALUE                                         20730000
       VALUES (  'EATRNBIS_MIS'                                         20740000
               , 'EATRNBIS missing in Index', 33                        20750000
              )                                                         20760000
;                                                                       20770000
INSERT   INTO SESSION.PARMVALUE                                         20780000
       VALUES (  'EN1PART_WPOS'                                         20790000
               , 'EN1PART wrong position in index', 33                  20800000
              )                                                         20810000
;                                                                       20820000
INSERT   INTO SESSION.PARMVALUE                                         20830000
       VALUES (  'EA1ARTN_WPOS'                                         20840000
               , 'EA1ATRN wrong position in index', 33                  20850000
              )                                                         20860000
;                                                                       20870000
INSERT   INTO SESSION.PARMVALUE                                         20880000
       VALUES (  'EA1SRTN_WPOS'                                         20890000
               , 'EA1STRN wrong position in index', 33                  20900000
              )                                                         20910000
;                                                                       20920000
INSERT   INTO SESSION.PARMVALUE                                         20930000
       VALUES (  'EN1STK1_WPOS'                                         20940000
               , 'EN1STK1 wrong position in index', 33                  20950000
              )                                                         20960000
;                                                                       20970000
INSERT   INTO SESSION.PARMVALUE                                         20980000
       VALUES (  'EN1STK2_WPOS'                                         20990000
               , 'EN1STK2 wrong position in index', 33                  21000000
              )                                                         21010000
;                                                                       21020000
INSERT   INTO SESSION.PARMVALUE                                         21030000
       VALUES (  'EATRNVON_WPOS'                                        21040000
               , 'EATRNVO wrong position in index', 33                  21050000
              )                                                         21060000
;                                                                       21070000
INSERT   INTO SESSION.PARMVALUE                                         21080000
       VALUES (  'EATRNBIS_WPOS'                                        21090000
               , 'EATRNBIS wrong position in index', 33                 21100000
              )                                                         21110000
;                                                                       21120000
INSERT   INTO SESSION.PARMVALUE                                         21130000
       VALUES (  'EN1PART_FAIL'                                         21140000
               , 'EN1PART not allowed for the index', 34                21150000
              )                                                         21160000
;                                                                       21170000
INSERT   INTO SESSION.PARMVALUE                                         21180000
       VALUES (  'CLUSTER_DEF'                                          21190000
               , 'Cluster definition not allowed, wrong context', 35    21200000
              )                                                         21210000
;                                                                       21220000
INSERT   INTO SESSION.PARMVALUE                                         21230000
       VALUES (  'TooManyCols'                                          21240000
               , 'Number of key columns not correct. Number depends'    21250000
               ||'on ELAR table type'                                   21260000
               , 35                                                     21270000
              )                                                         21280000
;                                                                       21290000
INSERT   INTO SESSION.PARMVALUE                                         21300000
       VALUES (  'TablePartLimit', 'Partition limit exceeded (' ||      21310000
                                    (SELECT STRIP(CAST(MAXPART AS       21320000
                                                       CHAR(06)         21330000
                                                      )                 21340000
                                                 )                      21350000
                                       FROM SESSION.MAXPART             21360000
                                      WHERE PARTYPE = 'Table'           21370000
                                    ) || ' Partition allowed)'          21380000
               , 39                                                     21390000
              )                                                         21400000
;                                                                       21410000
INSERT   INTO SESSION.PARMVALUE                                         21420000
       VALUES (  'IndexPartLimit', 'Maximum of ' ||                     21430000
                                    (SELECT CAST(MAXPART AS CHAR(06))   21440000
                                       FROM SESSION.MAXPART             21450000
                                      WHERE PARTYPE = 'Index'           21460000
                                    ) || ' Partition exceeded '         21470000
               , 40                                                     21480000
              )                                                         21490000
;                                                                       21500000
INSERT   INTO SESSION.PARMVALUE                                         21510000
       VALUES (  'PartKeyValue(s)'                                      21520000
               , 'only natural Numbers and one value allowed'           21530000
               , 34                                                     21540000
              )                                                         21550000
;                                                                       21560000
INSERT   INTO SESSION.PARMVALUE                                         21570000
       VALUES (  'PartKeyColNum'                                        21580000
               , 'Wrong partitioning, use classic partitioning'         21590000
               , 35                                                     21600000
              )                                                         21610000
;                                                                       21620000
INSERT   INTO SESSION.PARMVALUE                                         21630000
       VALUES (  'Indextype'                                            21640000
               , 'Unique DPSI, when Primary Index all other are DPSI'   21650000
               , 28                                                     21660000
              )                                                         21670000
;                                                                       21680000
INSERT   INTO SESSION.PARMVALUE                                         21690000
       VALUES (  'Pagesize'                                             21700000
               , 'Pagesize Tablespace <> Pagesize Indexspace'           21710000
               , 16                                                     21720000
              )                                                         21730000
;                                                                       21740000
INSERT   INTO SESSION.PARMVALUE                                         21750000
       VALUES (  'FreePage'                                             21760000
               , 'Value must be 0 for technical/business indexes'       21770000
               , 7                                                      21780000
              )                                                         21790000
;                                                                       21800000
INSERT   INTO SESSION.PARMVALUE                                         21810000
       VALUES (  'TSFreepage'                                           21820000
               , 'Value is not 0'                                       21830000
               , 7                                                      21840000
              )                                                         21850000
;                                                                       21860000
INSERT   INTO SESSION.PARMVALUE                                         21870000
       VALUES (  'PctFree_Business'                                     21880000
               , 'Value must be 10 for business Indexes'                21890000
               , 6                                                      21900000
              )                                                         21910000
;                                                                       21920000
INSERT   INTO SESSION.PARMVALUE                                         21930000
       VALUES (  'PctFree_Technical'                                    21940000
               , 'Value must be 0 for technical indexes'                21950000
               , 6                                                      21960000
              )                                                         21970000
;                                                                       21980000
INSERT   INTO SESSION.PARMVALUE                                         21990000
       VALUES (  'TSPctfree'                                            22000000
               , 'Value is not 0'                                       22010000
               , 6                                                      22020000
              )                                                         22030000
;                                                                       22040000
INSERT   INTO SESSION.PARMVALUE                                         22050000
       VALUES (  'Copy', 'No', 26                                       22060000
              )                                                         22070000
;                                                                       22080000
INSERT   INTO SESSION.PARMVALUE                                         22090000
       VALUES (  'No Index exists'                                      22100000
               , 'verify and implement an Index. Access path for all '  22110000
               || 'queries are Tablespace Scans| (Proof Monitor)'       22120000
               , 50                                                     22130000
              )                                                         22140000
;                                                                       22150000
INSERT   INTO SESSION.PARMVALUE                                         22160000
       VALUES (  'IndexType_Failure'                                    22170000
               , 'Only index type DPSI (D), Unique (U) and '            22180000
               || 'Primary (P) are allowed'                             22190000
               , 50                                                     22200000
              )                                                         22210000
;                                                                       22220000
INSERT   INTO SESSION.PARMVALUE                                         22230000
       VALUES (  'EN1PART_MIS'                                          22240000
               , 'Missing EN1PART. Must be part of PRIMARY '            22250000
                 || 'or UNIQUE INDEX (see Guideline 01.07.2013'         22260000
               , 51                                                     22270000
              )                                                         22280000
;                                                                       22290000
INSERT   INTO SESSION.PARMVALUE                                         22300000
       VALUES (  'Index_Rule'                                           22310000
               , 'no rules are defined. REASON: Unknown ELAR '          22320000
                 || 'table type (not documented, experimental type'     22330000
               , 53                                                     22340000
              )                                                         22350000
;                                                                       22360000
INSERT   INTO SESSION.PARMVALUE                                         22370000
       VALUES (  'NoDatabaseExists'                                     22380000
               , 'No DB2 Objects exists for DDL Check'                  22390000
               , 0                                                      22400000
              )                                                         22410000
;                                                                       22420000
INSERT   INTO SESSION.PARMVALUE                                         22430000
       VALUES (  'DatabaseNoFamily'                                     22440000
               , 'DB2 Objects exists but no ELAR Meta data available'   22450000
               , 0                                                      22460000
              )                                                         22470000
;                                                                       22480000
-- Preperation of result list splitting complete string into option name22490000
-- and option value. Options separated by semicolon. Option and value   22500000
-- separated by equal sign. Elimination of duplicate entries and store  22510000
-- only entries with NOK in temporary table exception.                  22520000
DECLARE GLOBAL TEMPORARY TABLE EXCEPTION                                22530000
               (  OBJECT          CHAR(60)                              22540000
                , OPTION          CHAR(24)                              22550000
                , CORRECT_VALUES  CHAR(120)                             22560000
                , FAMILY          CHAR(30)                              22570000
                , CRITERIA        CHAR(30)                              22580000
                , OPTIONNUM       INTEGER                               22590000
                , SUBORD          INTEGER                               22600000
                , COMMENT         CHAR(20)                              22610000
                , OVALUE          CHAR(03)                              22620000
                , CREATEDTS       TIMESTAMP(6)                          22630000
               )                                                        22640000
;                                                                       22650000
INSERT INTO SESSION.EXCEPTION (                                         22660000
                  OBJECT                                                22670000
                , OPTION                                                22680000
                , CORRECT_VALUES                                        22690000
                , FAMILY                                                22700000
                , CRITERIA                                              22710000
                , OPTIONNUM                                             22720000
                , SUBORD                                                22730000
                , COMMENT                                               22740000
                , OVALUE                                                22750000
                , CREATEDTS                                             22760000
                    )                                                   22770000
WITH RESULT (  SNUM                                                     22780000
             , CRITERIA                                                 22790000
             , FAMILY                                                   22800000
             , OBJECT                                                   22810000
             , OPTIONNUM                                                22820000
             , OPTION                                                   22830000
             , OVALUE                                                   22840000
             , CHECKVALUE                                               22850000
             , COMMENT                                                  22860000
             , CREATEDTS                                                22870000
            )                                                           22880000
         AS (SELECT T0.SNUM                                             22890000
                  , T0.CRITERIA                                         22900000
                  , T0.FAMILY                                           22910000
                  , T0.OBJECT                                           22920000
                  , 1                                                   22930000
                  , CASE WHEN LOCATE('=', T0.OPTVALUE) > 0              22940000
                         THEN SUBSTR(  T0.OPTVALUE                      22950000
                                     , 1                                22960000
                                     , LOCATE('=', T0.OPTVALUE) - 1     22970000
                                    )                                   22980000
                         ELSE OPTVALUE                                  22990000
                    END AS OPTION                                       23000000
                  , CASE WHEN LOCATE('=', T0.OPTVALUE) > 0              23010000
                         THEN SUBSTR(  T0.OPTVALUE                      23020000
                                     , LOCATE('=', T0.OPTVALUE) + 1     23030000
                                     , LOCATE(';', T0.OPTVALUE) -       23040000
                                       LOCATE('=', T0.OPTVALUE) - 1     23050000
                                    )                                   23060000
                         ELSE OPTVALUE                                  23070000
                    END AS OVALUE                                       23080000
                  , CASE WHEN LOCATE(';', T0.OPTVALUE) > 0              23090000
                         THEN SUBSTR(  T0.OPTVALUE                      23100000
                                     , LOCATE(';', T0.OPTVALUE) + 1     23110000
                                    )                                   23120000
                         ELSE NULL                                      23130000
                    END AS OPTVALUE                                     23140000
                  , T0.COMMENT                                          23150000
                  , T0.CREATEDTS                                        23160000
               FROM SESSION.TEMP T0                                     23170000
             UNION  ALL                                                 23180000
             SELECT T1.SNUM                                             23190000
                  , T1.CRITERIA                                         23200000
                  , T1.FAMILY                                           23210000
                  , T1.OBJECT                                           23220000
                  , T1.OPTIONNUM + 1                                    23230000
                  , CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0            23240000
                         THEN SUBSTR(  T1.CHECKVALUE                    23250000
                                     , 1                                23260000
                                     , LOCATE('=', T1.CHECKVALUE) - 1   23270000
                                    )                                   23280000
                         ELSE CHECKVALUE                                23290000
                    END AS OPTION                                       23300000
                  , CASE WHEN LOCATE('=', T1.CHECKVALUE) > 0            23310000
                    THEN CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0       23320000
                         THEN SUBSTR(  T1.CHECKVALUE                    23330000
                                     ,   LOCATE('=', T1.CHECKVALUE)     23340000
                                       + 1                              23350000
                                     ,   LOCATE(';', T1.CHECKVALUE)     23360000
                                       - LOCATE('=', T1.CHECKVALUE)     23370000
                                       - 1                              23380000
                                    )                                   23390000
                         ELSE SUBSTR(  T1.CHECKVALUE                    23400000
                                     ,   LOCATE('=', T1.CHECKVALUE)     23410000
                                       + 1                              23420000
                                    )                                   23430000
                         END                                            23440000
                    ELSE CHECKVALUE                                     23450000
                    END AS OVALUE                                       23460000
                  , CASE WHEN LOCATE(';', T1.CHECKVALUE) > 0            23470000
                         THEN SUBSTR(  T1.CHECKVALUE                    23480000
                                     , LOCATE(';', T1.CHECKVALUE) + 1   23490000
                                    )                                   23500000
                         ELSE NULL                                      23510000
                    END AS OPTVALUE                                     23520000
                  , T1.COMMENT                                          23530000
                  , T1.CREATEDTS                                        23540000
               FROM RESULT T1                                           23550000
              WHERE T1.CHECKVALUE IS NOT NULL                           23560000
            )                                                           23570000
SELECT DISTINCT                                                         23580000
       RE.OBJECT                                                        23590000
     , CAST(RE.OPTION AS CHAR(24)) AS OPTION                            23600000
     , PV.VALUE                    AS CORRECT_VALUES                    23610000
     , RE.FAMILY                                                        23620000
     , RE.CRITERIA                                                      23630000
     , RE.OPTIONNUM                                                     23640000
     , PV.SUBORD                                                        23650000
     , RE.COMMENT                                                       23660000
     , RE.OVALUE                                                        23670000
     , RE.CREATEDTS                                                     23680000
  FROM      RESULT RE                                                   23690000
 INNER JOIN SESSION.PARMVALUE PV                                        23700000
         ON RE.OPTION = PV.OPTION                                       23710000
 WHERE RE.OVALUE = 'NOK'                                                23720000
;                                                                       23730000
--                                                                      23740000
-- Generate final message. Three different message possible:            23750000
-- (1) Database not found => Database not created and                   23760000
-- (2) No failures  found => All check passed without failures          23770000
-- (3) Failuers found     => Not all ckecks passed without failures     23780000
--                                                                      23790000
INSERT INTO SESSION.EXCEPTION (                                         23800000
                  OBJECT                                                23810000
                , OPTION                                                23820000
                , CORRECT_VALUES                                        23830000
                , FAMILY                                                23840000
                , CRITERIA                                              23850000
                , OPTIONNUM                                             23860000
                , SUBORD                                                23870000
                , COMMENT                                               23880000
                , OVALUE                                                23890000
                , CREATEDTS                                             23900000
                    )                                                   23910000
SELECT 'Database not found => no check possible'                        23920000
     , ' '                                                              23930000
     , ' '                                                              23940000
     , ' '                                                              23950000
     , ' '                                                              23960000
     , -100                                                             23970000
     , -100                                                             23980000
     , ' '                                                              23990000
     , ' '                                                              24000000
     , '0001-01-01-00.00.00.000000'                                     24010000
  FROM SYSIBM.SYSDUMMY1                                                 24020000
 WHERE (SELECT COUNT(*)                                                 24030000
          FROM      SESSION.FAMLISTE   FAM                              24040000
         INNER JOIN SYSIBM.SYSDATABASE DB                               24050000
                 ON FAM.DBNAME = DB.NAME                                24060000
       ) = 0                                                            24070000
;                                                                       24080000
INSERT INTO SESSION.EXCEPTION (                                         24090000
                  OBJECT                                                24100000
                , OPTION                                                24110000
                , CORRECT_VALUES                                        24120000
                , FAMILY                                                24130000
                , CRITERIA                                              24140000
                , OPTIONNUM                                             24150000
                , SUBORD                                                24160000
                , COMMENT                                               24170000
                , OVALUE                                                24180000
                , CREATEDTS                                             24190000
                    )                                                   24200000
SELECT 'No failures found'                                              24210000
     , ' '                                                              24220000
     , ' '                                                              24230000
     , ' '                                                              24240000
     , ' '                                                              24250000
     , -101                                                             24260000
     , -101                                                             24270000
     , ' '                                                              24280000
     , ' '                                                              24290000
     , '0001-01-01-00.00.00.000000'                                     24300000
  FROM SYSIBM.SYSDUMMY1                                                 24310000
 WHERE (SELECT COUNT(*) FROM SESSION.EXCEPTION) = 0                     24320000
;                                                                       24330000
INSERT INTO SESSION.EXCEPTION (                                         24340000
                  OBJECT                                                24350000
                , OPTION                                                24360000
                , CORRECT_VALUES                                        24370000
                , FAMILY                                                24380000
                , CRITERIA                                              24390000
                , OPTIONNUM                                             24400000
                , SUBORD                                                24410000
                , COMMENT                                               24420000
                , OVALUE                                                24430000
                , CREATEDTS                                             24440000
                    )                                                   24450000
SELECT 'Failure found, send list to elar'                               24460000
     , ' '                                                              24470000
     , ' '                                                              24480000
     , ' '                                                              24490000
     , ' '                                                              24500000
     , 0                                                                24510000
     , 0                                                                24520000
     , ' '                                                              24530000
     , ' '                                                              24540000
     , '0001-01-01-00.00.00.000000'                                     24550000
  FROM SYSIBM.SYSDUMMY1                                                 24560000
 WHERE (SELECT COUNT(*)                                                 24570000
          FROM SESSION.EXCEPTION                                        24580000
         WHERE OPTIONNUM NOT IN ( -100, -101 )                          24590000
           AND SUBORD    NOT IN ( -100, -101 )                          24600000
       ) > 0                                                            24610000
;                                                                       24620000
--                                                                      24630000
-- Generate Report                                                      24640000
-- DDL-Report (Display migrated families first)                         24650000
--                                                                      24660000
SELECT OBJECT                                                           24670000
     , OPTION                                                           24680000
     , CORRECT_VALUES                                                   24690000
     , FAMILY                                                           24700000
     , COMMENT                                                          24710000
     , CRITERIA                                                         24720000
     , CREATEDTS                                                        24730000
  FROM (SELECT OBJECT           AS OBJECT                               24740000
             , OPTION           AS OPTION                               24750000
             , CORRECT_VALUES   AS CORRECT_VALUES                       24760000
             , CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM'                     24770000
                    THEN ( SELECT UCASE(EAOF)                           24780000
                             FROM BUA.TXBA131                           24790000
                            WHERE ENOF = CAST(  SUBSTR(T1.FAMILY,4,4)   24800000
                                              AS INT                    24810000
                                             ) - 1000                   24820000
                         )                                              24830000
                    ELSE FAMILY                                         24840000
               END              AS FAMILY                               24850000
             , COMMENT          AS COMMENT                              24860000
             , CRITERIA         AS CRITERIA                             24870000
             , CREATEDTS        AS CREATEDTS                            24880000
             , ORD0                                                     24890000
             , ORD1                                                     24900000
             , ORD2                                                     24910000
             , ORD3                                                     24920000
          FROM (SELECT OBJECT                                           24930000
                     , CASE WHEN LOCATE('_', OPTION) > 0                24940000
                            THEN SUBSTR(  OPTION                        24950000
                                        , 1                             24960000
                                        , LOCATE('_',OPTION) - 1        24970000
                                       )                                24980000
                            ELSE OPTION                                 24990000
                       END AS OPTION                                    25000000
                     , CORRECT_VALUES                                   25010000
                     , UCASE(FAMILY)         AS FAMILY                  25020000
                     , SUBSTR(CRITERIA,2)    AS CRITERIA                25030000
                     , SUBSTR(CRITERIA,1,1)  AS ORD1                    25040000
                     , LENGTH(STRIP(OBJECT)) AS ORD2                    25050000
                     , SUBORD                AS ORD3                    25060000
                     , COMMENT                                          25070000
                     , CASE WHEN COMMENT <> ' '                         25080000
                            THEN 0                                      25090000
                            ELSE 1                                      25100000
                       END                   AS ORD0                    25110000
                     , CHECK                                            25120000
                     , CREATEDTS                                        25130000
                  FROM (SELECT OVALUE AS CHECK                          25140000
                             , OBJECT                                   25150000
                             , OPTION                                   25160000
                             , CORRECT_VALUES                           25170000
                             , FAMILY                                   25180000
                             , CRITERIA                                 25190000
                             , SUBORD                                   25200000
                             , COMMENT                                  25210000
                             , CREATEDTS                                25220000
                          FROM SESSION.EXCEPTION                        25230000
                       ) AS T2                                          25240000
               ) AS T1                                                  25250000
         WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NULL       25260000
           AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE) IS NULL       25270000
        UNION  ALL                                                      25280000
        SELECT OBJECT           AS OBJECT                               25290000
             , OPTION           AS OPTION                               25300000
             , CORRECT_VALUES   AS CORRECT_VALUES                       25310000
             , CASE WHEN SUBSTR(FAMILY,1,3) = 'FAM'                     25320000
                    THEN ( SELECT UCASE(EAOF)                           25330000
                             FROM BUA.TXBA131                           25340000
                            WHERE ENOF = CAST(  SUBSTR(T1.FAMILY,4,4)   25350000
                                              AS INT                    25360000
                                             ) - 1000                   25370000
                         )                                              25380000
                    ELSE FAMILY                                         25390000
               END              AS FAMILY                               25400000
             , COMMENT          AS COMMENT                              25410000
             , CRITERIA         AS CRITERIA                             25420000
             , CREATEDTS        AS CREATEDTS                            25430000
             , ORD0                                                     25440000
             , ORD1                                                     25450000
             , ORD2                                                     25460000
             , ORD3                                                     25470000
          FROM (SELECT OBJECT                                           25480000
                     , CASE WHEN LOCATE('_', OPTION) > 0                25490000
                            THEN SUBSTR(  OPTION                        25500000
                                        , 1                             25510000
                                        , LOCATE('_',OPTION) - 1        25520000
                                       )                                25530000
                            ELSE OPTION                                 25540000
                       END AS OPTION                                    25550000
                     , CORRECT_VALUES                                   25560000
                     , UCASE(FAMILY)         AS FAMILY                  25570000
                     , SUBSTR(CRITERIA,2)    AS CRITERIA                25580000
                     , SUBSTR(CRITERIA,1,1)  AS ORD1                    25590000
                     , LENGTH(STRIP(OBJECT)) AS ORD2                    25600000
                     , SUBORD                AS ORD3                    25610000
                     , COMMENT                                          25620000
                     , CASE WHEN COMMENT <> ' '                         25630000
                            THEN 0                                      25640000
                            ELSE 1                                      25650000
                       END                   AS ORD0                    25660000
                     , CHECK                                            25670000
                     , CREATEDTS                                        25680000
                  FROM (SELECT OVALUE AS CHECK                          25690000
                             , OBJECT                                   25700000
                             , OPTION                                   25710000
                             , CORRECT_VALUES                           25720000
                             , FAMILY                                   25730000
                             , CRITERIA                                 25740000
                             , SUBORD                                   25750000
                             , COMMENT                                  25760000
                             , CREATEDTS                                25770000
                          FROM SESSION.EXCEPTION                        25780000
                       ) AS T2                                          25790000
               ) AS T1                                                  25800000
         WHERE (SELECT CREATE_FROM FROM SESSION.FAMLISTE) IS NOT NULL   25810000
           AND (SELECT CREATE_TO   FROM SESSION.FAMLISTE) IS NOT NULL   25820000
           AND    DATE(CREATEDTS)                                       25830000
               >= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)            25840000
           AND    DATE(CREATEDTS)                                       25850000
               <= (SELECT CREATE_FROM FROM SESSION.FAMLISTE)            25860000
        ) AS FINAL                                                      25870000
ORDER BY FAMILY                                                         25880000
       , ORD0                                                           25890000
       , ORD1                                                           25900000
       , ORD2                                                           25910000
       , ORD3                                                           25920000
WITH UR                                                                 25930000
;                                                                       25940000
}¢--- A540769.WK.SQL(ELARIX) cre=2011-02-04 mod=2011-02-04-15.34.27 A540769 ----
-- find tables with columns         EN1CIFINH, EN1VALOR, ET1LOGPROD
--     but no index with these columns in the beginning
-- we select these table and the best index
--     #k = number of these columns in index
--
with t (tc, tb)  as
(  select creator, name
     from sysibm.sysTables t
     where 3 = ( select count(distinct name)
                     from sysibm.sysColumns c
                     where   c.tbCreator = t.creator
                         and c.tbName    = t.name
                         and c.name
                             in ('EN1CIFINH','EN1VALOR','ET1LOGPROD')
               )
)
, k (tc, tb, cr, ix, sq, ky) as
( select t.*, i.creator, i.name, 0, varchar('',100)
    from t
        left join sysibm.sysIndexes i
        on      i.tbCreator = t.tc
            and i.tbName = t.tb
  union all select tc, tb, cr, ix, sq+1, ky || ' ' || strip(y.colName)
      from sysibm.sysKeys y, k
      where   y.ixCreator = k.cr
          and y.ixName = k.ix
          and y.colSeq = k.sq + 1
          and y.colName in ('EN1CIFINH','EN1VALOR','ET1LOGPROD')
          and k.sq < 999
)
select max(right('   ' || strip(char(sq)), 3) || ' '
       || left(strip(tc) || '.' || tb, 30)
       || left(strip(cr) || '.' || ix, 30)
       || ky) " #k tb                            best index"
    from k
    group by tc, tb
    order by 1 asc
;
-- find tables with columns in ('EN1TRANSACTNO', 'ET1LOGPROD')
--     but no index with these columns in the beginning
-- we select these table and the best index
--     #k = number of these columns in index
--
with t (tc, tb)  as
(  select creator, name
     from sysibm.sysTables t
     where 2 = ( select count(distinct name)
                     from sysibm.sysColumns c
                     where   c.tbCreator = t.creator
                         and c.tbName    = t.name
                         and c.name
                             in ('EN1TRANSACTNO', 'ET1LOGPROD')
               )
)
, k (tc, tb, cr, ix, sq, ky) as
( select t.*, i.creator, i.name, 0, varchar('',100)
    from t
        left join sysibm.sysIndexes i
        on      i.tbCreator = t.tc
            and i.tbName = t.tb
  union all select tc, tb, cr, ix, sq+1, ky || ' ' || strip(y.colName)
      from sysibm.sysKeys y, k
      where   y.ixCreator = k.cr
          and y.ixName = k.ix
          and y.colSeq = k.sq + 1
          and y.colName in ('EN1TRANSACTNO', 'ET1LOGPROD')
          and k.sq < 999
)
select max(right('   ' || strip(char(sq)), 3) || ' '
       || left(strip(tc) || '.' || tb, 30)
       || left(strip(cr) || '.' || ix, 30)
       || ky) " #k tb                            best index"
    from k
    group by tc, tb
    order by 1 asc
;
}¢--- A540769.WK.SQL(ELARIXOL) cre=2010-06-01 mod=2011-02-04-15.34.31 A540769 ---
-- find tables with columns         EN1CIFINH, EN1VALOR, ET1LOGPROD
--     but no index with these columns in the beginning
-- we select these table and the best index
--     #k = number of these columns in index
--     sq = 100 - max(colSeq of these columns in index)
--
with ix as
( select ( select substr(
                 right('   '||strip(char(count(distinct k.colName))),3)
                 || right('   ' || strip(char( 100-max(k.colSeq))), 3)
                 ,1 , 6)
               from SYSIBM.SYSKEYS K
               where   K.IXCREATOR  = I.CREATOR
                   and K.IXNAME  = I.NAME
                   and k.colNAME
                        in ('EN1CIFINH','EN1VALOR','ET1LOGPROD')
         ) ks, i.*
      from SYSIBM.SYSINDEXES I
)
select SUBSTR(STRIP(T.CREATOR) ||'.'|| T.NAME, 1, 30) "table",
       max(substr(ks || ' ' || strip(ix.creator) ||'.'|| ix.name
            , 1, 40)) " #k sq bestIndex"
    FROM SYSIBM.SYSTABLES T, ix
    WHERE  1=1
          -- and T.CREATOR = 'BUA' AND T.NAME = 'XBCGZ064PS001001'
      AND 3 <= (select count(distinct c1.name)
                  FROM SYSIBM.SYSCOLUMNS C1
           WHERE  C1.NAME in ('EN1CIFINH','EN1VALOR','ET1LOGPROD')
             AND C1.TBNAME   = T.NAME
             AND C1.TBCREATOR  = T.CREATOR )
      and ix.tbCreator = t.creator
      and ix.tbName    = t.name
    group by t.creator, t.name
    ORDER BY value(max(left(ks, 6)), ''), t.CREATOR, t.NAME
    with ur
;
-- find tables with columns         EN1TRANSACTNO, ET1LOGPROD
--     but no index with these columns in the beginning
-- we select these table and the best index
--     #k = number of these columns in index
--     sq = 100 - max(colSeq of these columns in index)
--
with ix as
( select ( select substr(
                 right('   '||strip(char(count(distinct k.colName))),3)
                 || right('   ' || strip(char( 100-max(k.colSeq))), 3)
                 ,1 , 6)
               from SYSIBM.SYSKEYS K
               where   K.IXCREATOR  = I.CREATOR
                   and K.IXNAME  = I.NAME
                   and k.colNAME in ('EN1TRANSACTNO', 'ET1LOGPROD')
         ) ks, i.*
      from SYSIBM.SYSINDEXES I
)
select SUBSTR(STRIP(T.CREATOR) ||'.'|| T.NAME, 1, 30) "table",
       max(substr(ks || ' ' || strip(ix.creator) ||'.'|| ix.name
            , 1, 40)) " #k sq bestIndex"
    FROM SYSIBM.SYSTABLES T, ix
    WHERE  1=1
          -- and T.CREATOR = 'BUA' AND T.NAME = 'XBCGZ064PS001001'
      AND 2 <= (select count(distinct c1.name)
                  FROM SYSIBM.SYSCOLUMNS C1
           WHERE  C1.NAME in ('EN1TRANSACTNO', 'ET1LOGPROD')
             AND C1.TBNAME   = T.NAME
             AND C1.TBCREATOR  = T.CREATOR )
      and ix.tbCreator = t.creator
      and ix.tbName    = t.name
    group by t.creator, t.name
    ORDER BY value(max(left(ks, 6)), ''), t.CREATOR, t.NAME
    with ur
;x;

-- alte Version, nur auf hdb abfragen
  SELECT   SUBSTR(STRIP(CREATOR) ||'.'|| STRIP(NAME),1,30)
         , CREATEDTS
    FROM SYSIBM.SYSTABLES T
    WHERE 1=1
      AND EXISTS
        (SELECT 1 FROM SYSIBM.SYSCOLUMNS C1
           WHERE  C1.NAME = 'EN1TRANSACTNO'
             AND C1.TBNAME   = T.NAME
             AND C1.TBCREATOR  = T.CREATOR )
      AND EXISTS
        (SELECT 1 FROM SYSIBM.SYSCOLUMNS C2
           WHERE  C2.NAME = 'ET1LOGPROD'
             AND C2.TBNAME   = T.NAME
             AND C2.TBCREATOR  = T.CREATOR )
      AND NOT EXISTS
        (SELECT 1 FROM SYSIBM.SYSINDEXES I
           WHERE  I.NAME = T.NAME || '_HBD'
             AND I.TBNAME   = T.NAME
             AND I.TBCREATOR  = T.CREATOR )
--    AND T.CREATEDTS > CURRENT TIMESTAMP - 9  MONTHS
--    AND T.CREATEDTS < CURRENT TIMESTAMP - 8  MONTHS
--    AND T.NAME LIKE 'XBCVK%'
--    AND T.NAME NOT LIKE 'XBAOV007%'
    ORDER BY 1
--  FETCH FIRST 10 ROWS ONLY
    ;
}¢--- A540769.WK.SQL(ELAR200) cre=2014-07-17 mod=2014-07-17-13.04.48 A540769 ---
 SELECT DBNAME, NAME, PARTITIONS
   FROM SYSIBM.SYSTABLESPACE
  WHERE PARTITIONS > 200
  AND DBNAME not LIKE 'XB%'
 ORDER BY PARTITIONS DESC
 WITH UR
;
}¢--- A540769.WK.SQL(ELCOMA2) cre=2011-03-11 mod=2011-02-11-20.11.05 A540769 ---
  SET CURRENT SQLID='S100447';
--
  CREATE INDEX OA1P.iElKs835A10c4
    ON OA1P.telks835c4
     (KS835030              ASC,
      KS835040              ASC,
      KS835010              ASC,
      KS835080              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER YES
    DEFINE YES
    PIECESIZE 2 G;
--
--
  CREATE INDEX OA1P.iElKs835A4c4
    ON OA1P.telks835c4
     (KS835020              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 30
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER YES
    DEFINE YES;
--
  COMMIT;
--
  CREATE INDEX OA1P.iElKs835A9TEMPc4
    ON OA1P.telks835c4
     (KS835070              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 30
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER YES
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
  CREATE INDEX OA1P.iElKs838A2c4
    ON OA1P.telks838c4
     (KS838080              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 30
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER YES
    DEFINE YES;
--
  COMMIT;
--
  CREATE INDEX OA1P.iElKs846A4c4
    ON OA1P.telks846c4
     (KS846006              ASC,
      KS846003              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 2 PCTFREE 50
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER YES
    DEFINE YES;
--
  COMMIT;
--
}¢--- A540769.WK.SQL(ELCOMP) cre=2011-03-11 mod=2011-02-11-20.13.16 A540769 ----
-- show index with list of columns
--          plus hexKey for colDist etc.
with t  (tc , tb) as
( select creator, name
    from sysibm.sysTables
    where Creator = 'OA1P'
        and (name like 'TKS%A%' or Name like 'TELKS%')
)
, i (tc, tb, cr, ix, colC, seq, keys, kHex) as
( select tc, tb, value(creator, 'noIndex'), value(name, 'noIndex'),
         colCount, 0, varchar('',999), varchar('',999)
    from t left join sysibm.sysindexes i
      on tbCreator = tc and tbName = tb
  union all select tc, tb, cr, ix, colC, seq+1,
        keys || case when length(strip(k.colName)) <= 15
                     then strip(k.colName)
                     else strip(char(k.colNo)) end || ' ',
        kHex || hex(k.colNo)
      from i join sysibm.sysKeys k
          on k.ixCreator = i.cr and k.ixName = i.ix
          and k.colSeq = i.seq + 1 and i.seq < i.colC
                                   and i.seq < 999
)
, j as
(
select strip(tc) || '.' || strip(tb) || ' '
    || strip(cr) || '.' || strip(ix)|| ' ' || keys tx, i.*
    from i
    where seq = colc or colc is null
)
, e as
( select 'e' ty, tb eTb, j.*
      from j where tb like 'TELKS%'
)
, k as
(
  select 'k' ty, 'TELKS' || substr(tb,4,3) || 'C4' eTb, j.*
    from j
    where (cr, 'TELKS' || substr(tb,4,3) || 'C4')
       in (select cr, tb from e)
)
select case when e.ty is null then k.ty
            when k.ty is null then e.ty
            else 'b' end ty,
       substr(value(strip(e.tc) || '.' || strip(e.tb),
                    strip(k.tc) || '.' || strip(k.tb)), 1, 20) tb,
       substr(value(strip(e.cr) || '.' || strip(e.ix),
                    strip(k.cr) || '.' || strip(k.ix)), 1, 20) ix,
       value(e.keys, k.keys) keys,
       e.*, k.*
    from e
      full join k
      on e.cr = k.cr and e.eTb = k.eTb and e.keys = k.keys
    order by 1 desc, 2, 3, 4
;
}¢--- A540769.WK.SQL(ELENA) cre=2012-08-28 mod=2012-08-28-11.11.20 A540769 -----
select FileGroupID
                          , RegisterTime
                          , DSNPrio
                          , DSNEnv
                          , DSNApplQual1
                          , DSNApplQual2
                          , DSNDateQual
                          , DSNTimeQual
                          , DSNSecurity
                       from oa1t.TPV601A1
                      where FileID = ?
                      for read only
;
select FileGroupID
                          , RegisterTime
                          , DSNPrio
                          , DSNEnv
                          , DSNApplQual1
                          , DSNApplQual2
                          , DSNDateQual
                          , DSNTimeQual
                          , DSNSecurity
                       into :TPV601A1_FileGroupID
                          , :TPV601A1_RegisterTime
                          , :TPV601A1_DSNPrio
                          , :TPV601A1_DSNEnv
                          , :TPV601A1_DSNApplQual1
                          , :TPV601A1_DSNApplQual2
                          , :TPV601A1_DSNDateQual
                          , :TPV601A1_DSNTimeQual
                          , :TPV601A1_DSNSecurity
                       from oa1t.TPV601A1
                      where FileID = :TPV601A1_ParentFileID
                      for read only

}¢--- A540769.WK.SQL(ELSER) cre= mod= ------------------------------------------
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-12-12 14:29 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=S100A In Database DGDB0338    --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=CW10A1A   Stogroup=GSMS
-- Tablespace=CW10A1A.A100A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A100A
    IN CW10A1A
    USING STOGROUP GSMS
    PRIQTY 12 SECQTY 12
    ERASE  NO
    FREEPAGE 0 PCTFREE 15
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 8
    BUFFERPOOL BP0
    LOCKSIZE PAGE
    LOCKMAX 0
    CLOSE YES
    COMPRESS NO
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 3;
--
------------------------------------------------------------------------
--    Table=OA1A.TCW100A1 In CW10A1A.A100A
------------------------------------------------------------------------
--
  CREATE TABLE OA1A.TCW100A1
     (CW10000              INTEGER NOT NULL,
      CW10001              CHAR(4) FOR SBCS DATA NOT NULL,
      CW10002              CHAR(20) FOR SBCS DATA NOT NULL,
      CW10003              CHAR(18) FOR SBCS DATA NOT NULL,
      CW10004              CHAR(16) FOR SBCS DATA NOT NULL,
      CW10005              CHAR(3) FOR SBCS DATA NOT NULL,
      CW10006              CHAR(3) FOR SBCS DATA NOT NULL,
      CW10007              CHAR(4) FOR SBCS DATA NOT NULL,
      CW10008              CHAR(4) FOR SBCS DATA NOT NULL,
      CW10009              TIMESTAMP NOT NULL,
      CW10010              TIMESTAMP NOT NULL,
      CW10011              INTEGER NOT NULL,
      CW10012              INTEGER NOT NULL,
      CW10013              INTEGER NOT NULL,
      CW10014              CHAR(10) FOR SBCS DATA NOT NULL,
      CW10015D             TIMESTAMP NOT NULL,
      CW10016D             TIMESTAMP NOT NULL,
      CW10017D             TIMESTAMP NOT NULL,
      CW10018D             TIMESTAMP NOT NULL,
      CW10019D             TIMESTAMP NOT NULL,
      CW10020D             TIMESTAMP NOT NULL,
      CW10021D             TIMESTAMP NOT NULL,
      CW10022D             TIMESTAMP NOT NULL,
      CW10023D             TIMESTAMP NOT NULL,
      CW10024D             TIMESTAMP NOT NULL,
      CW10025              CHAR(12) FOR SBCS DATA NOT NULL,
      CW10026              CHAR(5) FOR SBCS DATA NOT NULL,
      CW10027              CHAR(1) FOR SBCS DATA NOT NULL,
      CW10028              DECIMAL(15, 3) NOT NULL,
      CW10029              CHAR(3) FOR SBCS DATA NOT NULL,
      CW10030              CHAR(3) FOR SBCS DATA NOT NULL,
      CW10031              CHAR(12) FOR SBCS DATA NOT NULL,
      CW10032              DECIMAL(15, 3) NOT NULL,
      CW10033              CHAR(18) FOR SBCS DATA NOT NULL,
      CW10034              CHAR(8) FOR SBCS DATA NOT NULL,
      CONSTRAINT CW10000
      PRIMARY KEY (CW10000))
    IN CW10A1A.A100A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE OA1A.TCW100A1 IS 'STEUERUNGSDATEN CW2-AUFTR_MAN';
--
  LABEL ON OA1A.TCW100A1
   (CW10033 IS 'DATUM POSITIONSEROEFFNUNG     ',
    CW10032 IS 'CASH-ABRECHNUNG               ',
    CW10031 IS 'CIF-NUMMER                    ',
    CW10030 IS 'DEPOTART                      ',
    CW10029 IS 'TITELART                      ',
    CW10028 IS 'BESTAND NOMINAL/STÜCK         ',
    CW10027 IS 'POSITIONSKATEGORIE            ',
    CW10026 IS 'POSITIONSSEQUENZ              ',
    CW10025 IS 'VALORENNUMMER                 ',
    CW10024D IS 'SERVICE 10 VERARB.-TIMESTAMP  ',
    CW10023D IS 'SERVICE 09 VERARB.-TIMESTAMP  ',
    CW10022D IS 'SERVICE 08 VERARB.-TIMESTAMP  ',
    CW10021D IS 'SERVICE 07 VERARB.-TIMESTAMP  ',
    CW10020D IS 'SERVICE 06 VERARB.-TIMESTAMP  ',
    CW10019D IS 'SERVICE 05 VERARB.-TIMESTAMP  ',
    CW10018D IS 'SERVICE 04 VERARB.-TIMESTAMP  ',
    CW10017D IS 'SERVICE 03 VERARB.-TIMESTAMP  ',
    CW10016D IS 'SERVICE 02 VERARB.-TIMESTAMP  ',
    CW10015D IS 'SERVICE 01 VERARB.-TIMESTAMP  ',
    CW10014 IS 'SERVICES ZEIGER               ',
    CW10013 IS 'TYP DES DB2-EINTRAGES         ',
    CW10012 IS 'BESTAND-MERKMALE              ',
    CW10011 IS 'PROZESS-MERKMALE              ',
    CW10010 IS 'MUTATIONS TIMESTAMP           ',
    CW10009 IS 'ERSTELLUNGS TIMESTAMP         ',
    CW10008 IS 'RUBRIK                        ',
    CW10007 IS 'DEPOTSTELLE                   ',
    CW10006 IS 'KUNDENDOMIZIL                 ',
    CW10005 IS 'KUNDENART                     ',
    CW10004 IS 'DEPOTNUMMER                   ',
    CW10003 IS 'AUFTRAGSNR                    ',
    CW10002 IS 'AKTIONSHEADERNR               ',
    CW10001 IS 'MANDANT                       ',
    CW10000 IS 'ZUFALLSZAHL                   ');
--
------------------------------------------------------------------------
-- Database=CW10A1A
--    Index=OA1A.ICW100A6 On OA1A.TCW100A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1A.ICW100A6
    ON OA1A.TCW100A1
     (CW10031               ASC,
      CW10012               ASC,
      CW10014               ASC)
    USING STOGROUP GSMS
    PRIQTY 100 SECQTY 152
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
--    Index=OA1A.ICW100A5 On OA1A.TCW100A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1A.ICW100A5
    ON OA1A.TCW100A1
     (CW10002               ASC,
      CW10012               ASC,
      CW10014               ASC)
    USING STOGROUP GSMS
    PRIQTY 100 SECQTY 152
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
--    Index=OA1A.ICW100A3 On OA1A.TCW100A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1A.ICW100A3
    ON OA1A.TCW100A1
     (CW10009               ASC)
    USING STOGROUP GSMS
    PRIQTY 100 SECQTY 152
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
--    Index=OA1A.ICW100A2 On OA1A.TCW100A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1A.ICW100A2
    ON OA1A.TCW100A1
     (CW10002               ASC,
      CW10004               ASC)
    USING STOGROUP GSMS
    PRIQTY 100 SECQTY 152
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
--    Index=OA1A.ICW100A1 On OA1A.TCW100A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1A.ICW100A1
    ON OA1A.TCW100A1
     (CW10003               ASC)
    USING STOGROUP GSMS
    PRIQTY 100 SECQTY 152
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=CW10A1A
--    Index=OA1A.ICW100A0 On OA1A.TCW100A1
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX OA1A.ICW100A0
    ON OA1A.TCW100A1
     (CW10000               ASC)
    USING STOGROUP GSMS
    PRIQTY 100 SECQTY 152
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(EL013) cre=2011-07-28 mod=2011-07-28-12.54.22 A540769 -----
select date(EL013CTS), count(*)
    FROM oa1t.tel013a1
    group by date(el013cts)
    order by 1 desc
    with ur
}¢--- A540769.WK.SQL(ER910) cre=2009-08-21 mod=2009-08-21-09.24.54 A540769 -----
set current sqlid = 's100447';
set current path = sysibm, sysproc;
create view a540769.er910Spufi as select * from sysibm.sysDummy1;
commit
}¢--- A540769.WK.SQL(EUREBIND) cre=2012-04-11 mod=2012-04-11-15.18.48 A540769 ---
$#@
call sqlConnect dbof
$;
$>.fEdit(':v')
$<=¢
--     extract sql statement text from sysPackStmt
--     concatenate statement texts if split in multiple junks
--          (up to 29000 bytes)
--     convert from utf8 to ebcdic if necessary
--          (we simply check first character for >='a')
-- attention:
--     where clause cannot be moved from  recursive tableExpr stT
--         because optimizer doesn't optimize it as needed|
--     DSNTIAUL gets an error on this view, and
--     SPUFI does not handle so long characters,
--     thus, use WSH catStmtW in a DSN with very long recSize
--
set current sqlid = 'S100447';
set current path = 'OA1P';
with p as
( -- select newest packages --------------------------------------------
  select 'rebind package(' || collid || '.' || name
            || '(' || version || '))' rb, n.*
      from sysibm.sysPackage n
          -- select here |
      where location = '' and name in ('YCDSGET'
                                      ,'YCDX011'
                                      ,'YCDX031'
                                      ,'YCIG600'
                                      ,'YDIEURE'
                                      ,'YDIT001'
                                      ,'YDIT002'
                                      ,'YDIT003'
                                      ,'YDIT004'
                                      ,'YGMSTEU'
                                      ,'YGMTXIO'
                                      ,'YOE2BU '
                                      ,'YOE2GET'
                                      ,'YOOAIE3'
                                      ,'YSVEUTV'
                                      ,'YSVG502'
                                      ,'YSVIDAT'
                                      ,'YVVSQLE'
                                      ,'YWPRCBX'
                                      ,'YWPR1B2'
                                      ,'YWPR2D1'
                                      ,'YWPR7HX'
                                      ,'YWUPARM'
                                      ,'YWUPUT '
                                      ,'YWUSTEU'
                                      ,'YYCRCXE'

                                      )
          and  ( pcTimestamp = (select max(pcTimestamp)
                   from sysibm.sysPackage a
                   where a.location = n.location
                       and a.collid = n.collid and a.name = n.name
                   )
              or pcTimestamp = (select max(pcTimestamp)
                   from sysibm.sysPackage a
                   where a.location = n.location
                       and a.collid = n.collid and a.name = n.name
                       and a.version not like '%MVS%'
                   )
              or pcTimestamp = (select max(pcTimestamp)
                   from sysibm.sysPackage a
                   where a.location = n.location
                       and a.collid = n.collid and a.name = n.name
                       and a.version not like '%CICS%'
                   )
              or pcTimestamp = (select max(pcTimestamp)
                   from sysibm.sysPackage a
                   where a.location = n.location
                       and a.collid = n.collid and a.name = n.name
                       and a.version not like '%CICS%'
                       and a.version not like '%MVS%'
               )   )
)
select * from p
$! call sqlStmts
$#out                                              20120411 15:17:17
$#out                                              20120411 15:16:38
$#out                                              20120411 15:14:48
$#out                                              20120411 15:12:45
$#out                                              20120411 15:10:07
$#out                                              20120411 15:09:46
$#out                                              20120411 15:07:49
$#out                                              20120411 15:07:35
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(V b) lrecl(32756) block(32760) mgmt
$#out                                              20120411 15:07:23
*** run error ***
scanErr ending Apostroph(') missing
last token  scanPosition '%MVS%
pos 47 in line 53:                        and n.version not like '%MVS%
$#out                                              20120411 15:05:17
$#out                                              20120411 14:05:03
$#out                                              20120411 14:04:49
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
    COMPATIBLE ARGUMENTS WAS FOUND
stmt =  execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
     from :src = with p as
$#out                                              20120411 14:04:41
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(V b) lrecl(32756) block(32760) mgmt
$#out                                              20120411 13:44:11
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(V b) lrecl(32756) block(32760) mgmt
$#out                                              20120411 13:44:04
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
    COMPATIBLE ARGUMENTS WAS FOUND
stmt =  execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
     from :src = with p as
$#out                                              20120411 13:43:48
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
    0000000C, 00F30006
stmt =  connect DBXF
$#out                                              20120411 13:43:45
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
    0000000C, 00F30006
stmt =  connect DBXF
$#out                                              20120411 13:40:34
$#out                                              20120411 13:40:26
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(V b) lrecl(32756) block(32760) mgmt
$#out                                              20120411 13:40:08
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
    COMPATIBLE ARGUMENTS WAS FOUND
stmt =  execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
     from :src = with p as
$#out                                              20120411 13:39:58
*** run error ***
tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(V b) lrecl(32756) block(32760) mgmt
$#out                                              20120411 13:39:51
*** run error ***
SQLCODE = -440: NO AUTHORIZED FUNCTION NAMED FOSC2I4 HAVING
    COMPATIBLE ARGUMENTS WAS FOUND
stmt =  execSql prepare s11 into :M.SQL.11.D from :src
with into :M.SQL.11.D = M.SQL.11.D
     from :src = with p as
$#out                                              20120307 13:38:24
$#out                                              20120307 13:35:51
$#out                                              20120307 13:31:10
$#out                                              20120307 13:30:58
}¢--- A540769.WK.SQL(EW43) cre=2013-05-13 mod=2013-05-13-20.05.58 A540769 ------
set current sqlid = 'S100447';
select substr(strip(dbName) || '.' || strip(tsName), 1, 15), partition,
     row_number() over(partition by dbName, tsName
                       order by partition desc) rn
     from sysibm.systablepart
     where dbName like 'MF%' and partition < 10

;
with ts as
(
  select dbName db, name ts
       , 'ts' ty, dbName qu, name nm, '' err
       , strip(dbName) || '.' || strip(name) pa
       , ts.*
    from sysibm.sysTablespace ts
)
, t as
(
  select dbName db, tsName ts, 't' ty, creator qu, name nm, '' err
       ,  strip(dbName) || '.' || strip(tsName)
         || '.' || strip(creator) || '.' || strip(name) pa
       , tb.*
    from sysibm.sysTables tb
    where type not in ('A', 'V')
)
, v1 (db, ts, ty, qu, nm, pa, lv) as
(
  select db, ts, ty, qu, nm, varchar(pa, 200), 0
    from t
  union all select db, ts, dType, dCreator, dName
       , case when length(pa) < 70 then pa || '.'
                                   else left(pa, 65) || '.....' end
         || strip(dCreator) || '.' || strip(dName)
       , lv+1
    from v1 join sysibm.sysViewDep d
      on d.bCreator = v1.qu and d.bName = v1.nm
    where lv < 1000
)
, v2 as
(
  select row_number() over (partition by qu, nm
                            order by lv, pa) rn
      , v1.*
      from v1
)
select * from v2
    where db like 'VV24%' and ts like 'VDPS168%'
 -- order by qu, nm, lv, pa
;
}¢--- A540769.WK.SQL(EW65) cre=2016-02-08 mod=2016-02-08-07.56.57 A540769 ------
--              error ew65  if left(...) erroneously fails
--                   with sqlcode=-579 FUNCTION ATTEMPTED TO READ DATA
--
set current sqlid = 'S100447';
drop   function oa1p.ew65(i varchar(10));
drop   function oa1p.ew65ca(i varchar(10));
--#SET TERMINATOR #
create function oa1p.ew65(i varchar(10))
    returns varchar(5)
    deterministic no external action contains sql
    begin
    if i like 'l%' then
        return left(i, 5);
    elseif left(i, 1) = 'r' then
        return right(i, 5);
    else
        return 'else';
    end if;
    end #
create function oa1p.ew65ca(i varchar(10))
    returns varchar(5)
    deterministic no external action contains sql
    begin
    return case when i like 'l%' then left(i, 5)
                when left(i, 1) = 'r' then right(i, 5)
                else 'else' end;
    end #
--#SET TERMINATOR ;
select oa1p.ew65ca('l234567890') from sysibm.sysDummy1;
select oa1p.ew65ca('r234567890') from sysibm.sysDummy1;
select oa1p.ew65ca('1234567890') from sysibm.sysDummy1;
select oa1p.ew65('l234567890') from sysibm.sysDummy1;
select oa1p.ew65('r234567890') from sysibm.sysDummy1;
select oa1p.ew65('1234567890') from sysibm.sysDummy1;
}¢--- A540769.WK.SQL(EXARCHIV) cre=2015-09-01 mod=2015-09-01-11.29.51 A540769 ---
set current application compatibility 'V11R1';
SELECT SYSIBMADM.MOVE_TO_ARCHIVE FROM SYSIBM.SYSDUMMY1;
}¢--- A540769.WK.SQL(EXCAST) cre=2013-08-19 mod=2013-08-19-10.40.50 A540769 ----
with a as
(
select cast(x'85828384F1F2F340' as char(8) for bit data) bitEbc
     , cast(x'756E696331323320' as char(8) for bit data) bitUni
    from sysibm.sysDummy1
)
select bitEbc, hex(bitEbc)
     , cast(bitebc as char(8) ccsid ebcdic)  ebcBitEbc
     , cast(bitEbc as char(8) ccsid unicode) uniBitEbc
     , cast(bitEbc as char(8) ccsid 500 )    "500BitEbc"
     , cast(bitEbc as char(8) ccsid 1208)    "1208BitEbc"
     , bitUni, hex(bitUni)
     , cast(bitUni as char(8) ccsid ebcdic)  ebcBitUni
     , cast(bitUni as char(8) ccsid unicode) uniBitUni
     , CAST(bitUni AS CHAR(8) CCSID   500)   "500BitUni"
     , CAST(bitUni AS CHAR(8) CCSID 1208)    "1208BitUni"
     , CCSID_ENCODING(1208) enc1208
     , CCSID_ENCODING(500) enc500
    from a
;
with a as
( select 'abcXYZ' a from sysibm.sysDummyE)
, b as
( select
    cast( a as char(6) ccsid ebcdic ) ebc
  , cast( a as char(6) ccsid unicode) uni
  from a
)
, c as
( select ebc, uni
  , cast( ebc as binary(6)) binEbc
  , cast( uni as binary(6)) binUni
  from b
)
select           'ebc=ebc', l.ebc, r.ebc
    from c l left join c r on l.ebc = r.ebc
union all select 'ebc=uni', l.ebc, r.ebc
    from c l left join c r on l.ebc = r.uni
union all select 'ebc=binEbc', l.ebc, r.ebc
    from c l left join c r on binary(l.ebc) = r.binEbc
union all select 'ebc=binUni', l.ebc, r.ebc
    from c l left join c r on binary(l.ebc) = r.binUni
;
with a as
( select 'abcXYZ' a from sysibm.sysDummyE)
, b as
( select
    cast( a as char(6) ccsid ebcdic ) ebc
  , cast( a as char(6) ccsid unicode) uni
  from a
)
, c as
( select ebc, uni
  , cast( ebc as binary(6)) binEbc
  , cast( uni as binary(6)) binUni
  , cast( ebc as char(6) for bit data) bitEbc
  , cast( uni as char(6) for bit data) bitUni
  from b
)
select ebc, hex(ebc), uni, hex(uni)
    ,  binebc, hex(binebc)
    ,  binuni, hex(binuni)
    ,  bitebc, hex(bitebc)
    ,  bituni, hex(bituni)
    ,  cast(bitEbc as char(6) ccsid ebcdic )  ebcBitEbc
    ,  cast(bitEbc as char(6) ccsid unicode)  uniBitEbc
    ,  cast(bitUni as char(6) ccsid ebcdic )  ebcBitUni
    ,  cast(bitUni as char(6) ccsid unicode)  uniBitUni
    from c
;x;
select hex(cast('ebcdic  12' as char(12) ccsid ebcdic))
    ,  hex(cast('unicode 12' as char(12) ccsid unicode))
    from sysibm.sysDummy1
;x;
;;
}¢--- A540769.WK.SQL(EXCCSID) cre=2015-11-18 mod=2015-11-18-10.15.36 A540769 ---
with u (a) as
(
   select 'a' from sysibm.sysDummy1
   union all select 'A' from sysibm.sysDummy1
   union all select '2' from sysibm.sysDummy1
)
select * from u
    order by cast(a as varchar(100) ccsid ebcdic )
}¢--- A540769.WK.SQL(EXCEP) cre=2007-12-18 mod=2007-12-18-15.12.48 F540769 -----
  SET CURRENT SQLID='S100447';
  drop tablespace dgdb9998.except;
--drop tablespace DA540769.except;
  commit;
  CREATE TABLESPACE  except
    IN DGDB9998
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 100
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 8
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  CREATE TABLE GDB9998.except
     (pri       smallint not null with default 20,
      db        char(8) not null,
      ts        char(8) not null,
      ix        char(16) not null with default ,
      fun       char(8) not null,
      code      char(8) not null,
      wert      float   not null with default -1,
      info      char(50) not null with default
      )
    IN DGDB9998.except
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
}¢--- A540769.WK.SQL(EXCEPINS) cre=2007-12-18 mod=2007-12-18-17.51.43 F540769 ---
delete from gdb9998.except;
insert into gdb9998.except values(
  10, 'DGDB9998', 'EXCEPT', '', 'GB64', 'a', 17, '10== = a 17');
insert into gdb9998.except values(
  10, 'DGDB9998', 'EXCEPT', '', 'GB*', 'a', 17,  '10== * a 18');
insert into gdb9998.except values(
  77, 'DGDB9998', '*     ', '', 'GB64', 'a', 17, '10=* = a 19');
insert into gdb9998.except values(
  10, 'DGDB9*  ', 'EXCEPT', '', 'GB64', 'a', 17, '10*= = a 19');
insert into gdb9998.except values(
  51, 'DGDB9998', 'EXCEPT', '', 'GB64', 'a', 17, '10== = a 99');
}¢--- A540769.WK.SQL(EXCEPSEL) cre=2007-12-18 mod=2007-12-18-17.50.51 F540769 ---
with ex as
( select  pri,
    db,  case when posstr(db,  '*') > 0
              then posstr(db,  '*') - 1 else 8 end dbLen,
    ts,  case when posstr(ts,  '*') > 0
              then posstr(ts,  '*') - 1 else 8 end tsLen,
    ix,  case when posstr(ix,  '*') > 0
              then posstr(ix,  '*') - 1 else 16 end ixLen,
    fun, case when posstr(fun, '*') > 0
              then posstr(fun, '*') else 8 end funLen,
    code, wert, info,
         char(right('000' || strip(char(pri)), 4) || ' '
         || translate(db || ts || ix || fun, x'01', '*') , 44) cat
    from gdb9998.except
)
select e.*, s.*
     from sysibm.systablespace s, ex e
     where s.dbName = 'DGDB9998' and
         e.cat = (select max(cat) from ex f where
                      left(f.db, f.dbLen) = left(s.dbName, f.dbLen)
                 and  left(f.ts, f.tsLen) = left(s.Name, f.tsLen)
                 and  f.ix = ''
                 and  f.fun like 'GB%'
                 )
  order by cat
}¢--- A540769.WK.SQL(EXCEPSE0) cre=2007-12-18 mod=2007-12-18-17.50.04 F540769 ---
--select hex(' -@_#*%''') " -@_#*%'",
--     hex(' ') sp,hex('*') "*", hex('a') "a", hex('A') A, hex('0') "0"
--     from sysibm.sysDummyU;
with l1 as
( select  pri,
    db,  case when posstr(db,  '*') > 0
              then posstr(db,  '*') - 1 else 8 end dbLen,
    ts,  case when posstr(ts,  '*') > 0
              then posstr(ts,  '*') - 1 else 8 end tsLen,
    ix,  case when posstr(ix,  '*') > 0
              then posstr(ix,  '*') - 1 else 16 end ixLen,
    fun, case when posstr(fun, '*') > 0
              then posstr(fun, '*') else 8 end funLen,
    code, wert, info,
         char(right('000' || strip(char(pri)), 4) || ' '
         || translate(db || ts || ix || fun, x'01', '*') , 44) cat
    from gdb9998.except
),
l2 as
( select (((pri*100+dbLen) *10+tsLen) *100+ixLen) *10+funLen priLen,
  char(substr('abcdefghijklmnopqrstuvwxyz'
           || 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 1 + pri,    1)
     ||substr('abcdefghijklmnopqrstuvwxyz', 1 + dbLen,  1)
     ||substr('abcdefghijklmnopqrstuvwxyz', 1 + tsLen,  1)
     ||substr('abcdefghijklmnopqrstuvwxyz', 1 + ixLen,  1)
     ||substr('abcdefghijklmnopqrstuvwxyz', 1 + funLen, 1), 5) priTot,
        l1.*
  from l1
),
l3 as
( select char(priTot || db || ts || ix || fun, 50) cat, l2.*
      from l2
),
l4 as
( select char(
         right('000' || strip(char(pri)), 4) || ' '
         || translate(db || ts || ix || fun, x'00', '*') , 50) cat,
         l1.*
      from l1
)
select e.*, s.*
     from sysibm.systablespace s, l1 e
     where s.dbName = 'DGDB9998' and
         e.cat = (select max(cat) from l1 f where
                      left(f.db, f.dbLen) = left(s.dbName, f.dbLen)
                 and  left(f.ts, f.tsLen) = left(s.Name, f.tsLen)
                 and  f.ix = ''
                 and  f.fun like 'GB%'
                 )
  order by cat
}¢--- A540769.WK.SQL(EXCEPSTS) cre=2007-12-21 mod=2007-12-21-15.41.10 F540769 ---
select * from A540769.vExceptions_TS
;
select s.dbName, s.tsname, s.partition, remark, e.*
    from sysibm.sysTablePart s, A540769.vExceptions_TS e
    where (s.dbName like 'MF%' or dbName = 'MC03A1A')
          and s.partition < 20
          and e.key = (select max(key) from A540769.vExceptions_TS f
             where left(f.db, f.dbLen) = left(s.dbName, f.dbLen)
              and  left(f.ts, f.tsLen) = left(s.tsName, f.tsLen)
              and  left(f.part, f.partLen) =
                   left(right('00000' || strip(char(s.partition)), 5)
                              , f.partLen)
              and guVon <= current date
              and guBis >= current date
          )
    order by s.dbName, s.tsName, s.partition, e.key
;
select s.dbName, s.name, remark, e.*
    from sysibm.sysTablespace s, A540769.vExceptions_TS e
    where (s.dbName like 'MF%' or dbName = 'MC03A1A')
          and e.key = (select max(key) from A540769.vExceptions_TS f
             where left(f.db, f.dbLen) = left(s.dbName, f.dbLen)
              and  left(f.ts, f.tsLen) = left(s.Name, f.tsLen)
              and  f.part = '*'
              and guVon <= current date
              and guBis >= current date
          )
    order by s.dbName, s.Name, e.key
;
}¢--- A540769.WK.SQL(EXCEPTS) cre=2007-12-21 mod=2007-12-21-15.27.45 F540769 ---
  set current sqlid = 'S100447';
  drop   VIEW A540769.VEXCEPTIONS_TS ;
  CREATE VIEW A540769.VEXCEPTIONS_TS as
    SELECT prio, db, ts, part, REORG, REMARK, UNCLUST, FARINDREF,
           NEARINDREF, EXTENTS, REORGDAYS, INSERTS, UPDATES, DELETES,
           case when posstr(db,   '*') > 0
                then posstr(db,   '*') - 1 else 8 end dbLen,
           case when posstr(ts,   '*') > 0
                then posstr(ts,   '*') - 1 else 8 end tsLen,
           case when posstr(part, '*') > 0
                     then posstr(part,  '*') - 1 else 5 end partLen,
           char(right('00' || strip(char(prio)), 3) || ' '
                || translate(db || ts || part , x'01', '*') , 25) key,
           guVon, guBis,
           INSERTTIMESTAMP
      FROM A540769.TEXCEPTIONS_TS ;
--
  LABEL ON TABLE A540769.VEXCEPTIONS_TS IS 'RTS TABLESPACE EXCEPTIONS';
--
  COMMENT ON TABLE A540769.VEXCEPTIONS_TS
    IS 'RTS TABLESPACE EXCEPTIONS';
--
  LABEL ON A540769.VEXCEPTIONS_TS
   (INSERTTIMESTAMP IS 'INSERT TIMESTAMP',
    DELETES IS 'SCHWELLWERT FÜR DELETES %',
    UPDATES IS 'SCHWELLWERT FÜR UPDATES %',
    INSERTS IS 'SCHWELLWERT FÜR INSERTS %',
    REORGDAYS IS 'NACH X DAYS REORG',
    EXTENTS IS 'EXTENTS PRO TS/PARTITION',
    NEARINDREF IS 'OVERFLOW NEAR (<16 PAGES)',
    FARINDREF IS 'OVERFLOW FAR  (>16 PAGES)',
    UNCLUST IS 'SCHWELLWERT FÜR CLUSTERING %',
    REMARK IS 'BESCHREIBUNG',
    REORG IS 'ALWAYS,NEVER,THRESHOLD,DEFAULT',
    ts IS 'TABLESPACENAME',
    db IS 'DATENBANKNAME');
--
  COMMIT;
x
--drop   TABLESPACE dA540769.EXCEpTTS;
  commit;
  CREATE TABLESPACE EXCEpTTS
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  COMMIT;
--
------------------------------------------------------------------------
--    Table=A540769.TEXCEPTIONS_TS In DA540769.EXCEpTTS
------------------------------------------------------------------------
--
  CREATE TABLE A540769.TEXCEPTIONS_TS
     (prio                 smallint not null default 0,
      db                   CHAR(8) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      ts                   CHAR(8) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      part                 CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT '*',
      guVon                date not null with default '01.01.2000',
      guBis                date not null with default '01.01.9999',
      REORG                CHAR(12) FOR SBCS DATA NOT NULL
        WITH DEFAULT 'THRESHOLD',
      UNCLUST              INTEGER WITH DEFAULT NULL,
      INSERTS              INTEGER WITH DEFAULT NULL,
      UPDATES              INTEGER WITH DEFAULT NULL,
      DELETES              INTEGER WITH DEFAULT NULL,
      FARINDREF            INTEGER WITH DEFAULT NULL,
      NEARINDREF           INTEGER WITH DEFAULT NULL,
      EXTENTS              SMALLINT WITH DEFAULT NULL,
      INSERTTIMESTAMP      TIMESTAMP NOT NULL WITH DEFAULT,
      REMARK               CHAR(150) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      REORGDAYS            INTEGER WITH DEFAULT NULL,
      CONSTRAINT REORG
        CHECK (REORG='ALWAYS' OR REORG='NEVER' OR REORG='THRESHOLD'OR RE
ORG='DEFAULT'),
      CONSTRAINT PRIO
        CHECK (prio >= 0 and prio <= 999),
      CONSTRAINT guBis
        check (guBis >= guVon)
)
    IN DA540769.EXCEpTTS
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE A540769.TEXCEPTIONS_TS
    IS 'AUSNAHMEN FüR REORGS MIT RTS';
--
  COMMENT ON TABLE A540769.TEXCEPTIONS_TS
    IS 'IN DIESER TABELLE MüSSEN ALLE TABLESPACES AUFGEFüHRT WERDEN, DIE
 NICHT MIT STANDARD-SCHWELLWERTEN REORGANISIERT WERDEN SOLLEN.';
--
  COMMENT ON A540769.TEXCEPTIONS_TS
   (EXTENTS IS 'EXTENTS PRO TS/PARTITION > NN',
    NEARINDREF IS '((REORGNEARINDREF*100)/TOTALROWS) > NN',
    FARINDREF IS '((REORGFARINDREF*100)/TOTALROWS) > NN',
    DELETES IS '((REORGDELETES*100)/TOTALROWS) > NN',
    UPDATES IS '((REORGUPDATES*100)/TOTALROWS) > NN',
    INSERTS IS '((REORGINSERTS*100)/TOTALROWS) > NN',
    UNCLUST IS '((REORGUNCLUSTINS*100)/TOTALROWS) > NN',
    REORG IS 'ALWAYS,NEVER,TRESHHOLD,DEFAULT');
--
  LABEL ON A540769.TEXCEPTIONS_TS
   (REORGDAYS IS 'NACH X DAYS REORG',
    REMARK IS 'BESCHREIBUNG',
    INSERTTIMESTAMP IS 'INSERT TIMESTAMP',
    EXTENTS IS 'EXTENTS PRO TS/PARTITION',
    NEARINDREF IS 'OVERFLOW NEAR (<16 PAGES)',
    FARINDREF IS 'OVERFLOW FAR (>16 PAGES)',
    DELETES IS 'SCHWELLWERT FÜR DELETES %',
    UPDATES IS 'SCHWELLWERT FÜR UPDATES %',
    INSERTS IS 'SCHWELLWERT FÜR DELETES %',
    UNCLUST IS 'SCHWELLWERT FÜR CLUSTERING %',
    REORG IS 'ALWAYS,NEVER,THRESHOLD,DEFAULT',
    ts IS 'TABLESPACENAME',
    db IS 'DATENBANKNAME');
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=DA540769
--    Index=A540769.IEXCEPTIONS_TS On A540769.TEXCEPTIONS_TS
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX A540769.IEXCEPTIONS_TS
    ON A540769.TEXCEPTIONS_TS
     (prio                  ASC,
      db                    ASC,
      ts                    ASC,
      part                  asc)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
--    View=A540769.VEXCEPTIONS_TS
------------------------------------------------------------------------
--
--
}¢--- A540769.WK.SQL(EXCEPTSI) cre=2007-12-21 mod=2007-12-21-13.07.54 F540769 ---
  insert into A540769.TEXCEPTIONS_TS
     (prio, db, ts, reorg, unclust, inserts,updates, deletes,
      farindRef, nearIndRef, extents, remark, reorgdays)
     select
      10, dbName, tsName, reorg, unclust, inserts,updates, deletes,
      farindRef, nearIndRef, extents, remark, reorgdays
     from s100447.texceptions_ts;
}¢--- A540769.WK.SQL(EXCEPTSS) cre=2007-12-21 mod=2007-12-21-13.09.16 F540769 ---
select * from s100447.vExceptions_TS;
}¢--- A540769.WK.SQL(EXDATE) cre=2012-01-25 mod=2012-01-25-08.29.12 A540769 ----
select current date
     , char(current date, local) local
     , char(current date, iso  ) iso
     , char(current date, eur  ) eur
     , char(current date, jis  ) jis
     , char(current date, usa  ) usa
    from sysibm.sysdummy1
}¢--- A540769.WK.SQL(EXDB2SEL) cre=2012-07-26 mod=2012-07-27-23.20.41 A540769 ---
with f (fr, to) as
(  select min(timestamp), max(timestamp)
    from A540769.tadm60a1
)
, a as
(
select a.*, row_number() over(order by ssid, timestamp) ano
    from oa1a.tadm60a1 a join f
        on a.timestamp >= f.fr and a.timestamp <= f.to
    where ssid like 'DTB%'
)
, w as
(
select w.*, row_number() over(order by ssid, timestamp) wno
    from A540769.tadm60a1 w
)
select aNo, wNo,
       case when a.event_Type = w.event_type then 't' else '|' end
  ||   case when a.victim_plan = w.victim_plan then 'p' else '|' end
  ||   case when a.VICTIM_CORR_ID=w.VICTIM_CORR_ID then 'r' else '|' end
  ||   case when a.VICTIM_CONN_ID=w.VICTIM_CONN_ID then 'n' else '|' end
  ||   case when a.source_plan = w.source_plan then 'P' else '|' end
  ||   case when a.source_CORR_ID=w.source_CORR_ID then 'R' else '|' end
  ||   case when a.source_CONN_ID=w.source_CONN_ID then 'N' else '|' end
  ||   case when a.reason_COde = w.reason_code then 'e'
            when a.reason_COde = ''            then '+' else '|' end
  ||   case when a.type        = w.type        then 't'
            when a.type        = ''            then '+' else '|' end
  ||   case when a.name        = w.name        then 'n'
            when a.name = left(w.name, length(strip(a.name))) then '+'
                                             else '|' end
, a.*, w.*
    from w full outer join a
      on w.ssid = a.ssid and w.timestamp = a.timestamp
          and w.VICTIM_CORR_ID = a.VICTIM_CORR_ID
          and w.source_CORR_ID = a.source_CORR_ID
          and w.VICTIM_COnn_ID = a.VICTIM_COnn_ID
          and w.source_COnn_ID = a.source_COnn_ID
    order by value(w.ssid, a.ssid)
           , value(w.timestamp, a.timestamp)
           , value(w.VICTIM_CORR_ID, a.VICTIM_CORR_ID)
           , value(w.source_CORR_ID, a.source_CORR_ID)
           , value(w.VICTIM_COnn_ID, a.VICTIM_COnn_ID)
           , value(w.source_COnn_ID, a.source_COnn_ID)
 ;x;
select count(*)
    from A540769.tadm60a1;

select *
    from A540769.tadm60a1;

delete
    from A540769.tadm60a1;
}¢--- A540769.WK.SQL(EXDRDA) cre=2007-06-23 mod=2016-08-03-14.15.25 A540769 ----
select location from sysibm.locations
;
select current server, count(*), max(name)
    from              sysibm.systables
;
select current server, count(*), max(name)
    from chroi00zde0g.sysibm.systables
;
select current server, count(*), max(name)
    from chroi00zdevg.sysibm.systables
;
select current server, count(*), max(name)
    from CHSKA000DP4G.sysibm.systables
;
$#out                                              20160803 14:14:28
LOCATION
CHSKA000DBII
CHSKA000DBOF
CHSKA000DP2G
CHSKA000DVBP
GR01A1P
L204AI1
L204AI5
L50A0I5
L568BI1
L6E73I1
L9517I1
LA5B8I1
LC501I1
X6482I1
XB128I1
XB129I1
XB129I2
XB129I3
XB129I4
XC930I1
20 rows fetched: select location from sysibm.locations
COL1         COL2 COL3
CHSKA000DBOL 2194 XXRVSMS
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
fatal error in WSH: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
    STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name)                             ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
$#out                                              20160803 14:14:02
LOCATION
IDAA7001
1 rows fetched: select location from sysibm.locations
COL1         COL2 COL3
CHSKA000DP4G 4476 XXRTSUB
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
fatal error in WSH: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
    STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name)                             ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
$#out                                              20160803 14:13:51
LOCATION
IDAA7001
1 rows fetched: select location from sysibm.locations
COL1         COL2 COL3
CHSKA000DP4G 4476 XXRTSUB
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
fatal error in WSH: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
    STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name)                             ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
$#out                                              20160729 12:58:04
LOCATION
CHROI00ZDE0G
CHROI00ZDEVG
2 rows fetched: select location from sysibm.locations
COL1          COL2 COL3
CHROI00ZDE0G 21296 YBWAHDUTDG031
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
COL1          COL2 COL3
CHROI00ZDE0G 21296 YBWAHDUTDG031
1 rows fetched: select current server, count(*), max(name) from chroi00zde...
COL1          COL2 COL3
CHROI00ZDEVG 10457 XSRPROPERTY
1 rows fetched: select current server, count(*), max(name) from chroi00zde...
fatal error in WST: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
    STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name)                             ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
from RZZ Z24 DE0G
$#out                                              20160729 12:57:46
LOCATION
IDAA7001
1 rows fetched: select location from sysibm.locations
COL1         COL2 COL3
CHSKA000DP4G 4512 XXRTSUB
1 rows fetched: select current server, count(*), max(name) from sysibm.sys...
fatal error in WST: SQLCODE = -950: THE LOCATION NAME SPECIFIED IN THE CONNECT
    STATEMENT IS INVALID OR NOT LISTED IN THE COMMUNICATIONS DATABASE
sql = select current server, count(*), max(name)                             ...
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
sqlCode 0: rollback
$#out
}¢--- A540769.WK.SQL(EXENCRY) cre=2011-12-06 mod=2011-12-06-11.49.56 A540769 ---
set encryption password = 'geheim' ;
with e as
(
select encrypt_tdes('abc', 'geheim', 'versteckt') e
    from sysibm.sysdummy1
union all select encrypt_tdes('123abc', 'GeheiM', 'versteckt') e
    from sysibm.sysdummy1
)
select getHint(e), decrypt_char(e, 'geheim') dr
                 , decrypt_char(e          ) do
                 , decrypt_char(e, 'falsch') df
                 , e
    from e
}¢--- A540769.WK.SQL(EXFEFIDE) cre=2011-11-11 mod=2011-11-14-16.39.37 A540769 ---
select count(*) from A540769.TWK600A021
;                          --  beschränktes delete 1
delete from A540769.TWK600A021
    where (i1, v2) in
          (select r.i1, r.v2
             from A540769.TWK600A021 r
             order by r.i1, r.v2
             fetch first 100 rows only
          )
;
select count(*) from A540769.TWK600A021
;
delete from A540769.TWK600A021
    where (i1, v2) in
          (select r.i1, r.v2
             from A540769.TWK600A021 r
             order by r.i1, r.v2
             fetch first 100 rows only
          )
;
select count(*) from A540769.TWK600A021
;
rollback;
}¢--- A540769.WK.SQL(EXFEFIRS) cre=2011-11-11 mod=2011-11-14-16.37.24 A540769 ---
}¢--- A540769.WK.SQL(EXFINAL) cre=2011-11-14 mod=2011-11-14-17.58.06 A540769 ---
select *                        -- final table
    from final table
    (
      insert into A540769.twk600a011 (PART, i1, i2, v2, v3)
          select PART, i1, i2, v2, v3
              from A540769.twk600a011
              where part = 7
              fetch first 5 rows only
    )
;
select *                        -- final table with include
    from final table
    (
      insert into A540769.twk600a011 (PART, i1, i2, v2, v3)
          include(frueher date, v1Old varchar(1000))
          select PART, i1, i2, v2, v3
                 , current date - row_number() over () days, v1
              from A540769.twk600a011
              where part = 7
              fetch first 5 rows only
    )
;
select *                        -- old table
    from old table
    (
      delete from A540769.twk600a011
              where part = 7 and v1 is null
    )
}¢--- A540769.WK.SQL(EXFUTB) cre=2013-08-02 mod=2013-08-05-13.57.02 A540769 ----
set current sqlid = 'S100447';
drop   function A540769.tst012(timestamp, timestamp)
;
create function A540769.tst012(t1 timestamp, t2 timestamp)
    returns table (t timestamp)
    language sql  deterministic called on null input
    reads sql data
 return
    select t1 from sysibm.sysDummy1 where t1 is not null
    union all select t2 from sysibm.sysDummy1 where t2 is not null
;
select * from table(
    A540769.tst012(current timestamp, current timestamp + 1 month)
    ) a
;
select * from table(
    A540769.tst012(timestamp(current date), current timestamp + 1 month)
    ) a
;
select * from table(
    A540769.tst012(timestamp(current date), case when 1=0
            then current timestamp else null end)
    ) a
;x;
drop   function A540769.one2n( int);
create function A540769.one2n(cnt int)
    returns table (n int)
    language sql  deterministic reads sql data
  return
  with rr (n) as
  (
     select 1 from sysibm.sysDummy1 where cnt >= 1
     union all select n+1 from rr where n < cnt
  )
  select * from rr
;
select * from table(A540769.one2n(5)) a ;
select * from table(A540769.one2n(0)) a ;
select * from table(A540769.one2n(1)) a ;

          with view infinite loop ||||||||||||||||
with rr (n) as
  (
     select 1 from sysibm.sysDummy1
     union all select n+1 from rr
  )
  select * from rr where n < 5
}¢--- A540769.WK.SQL(EXGLOVAR) cre=2016-04-14 mod=2016-04-15-10.36.01 A540769 ---
set current application compatibility 'V11R1';
select SYSIBMADM.GET_ARCHIVE
       from sysibm.sysdummy1
;
select SYSIBMADM.move_to_archive
       from sysibm.sysdummy1
;
set SYSIBMADM.move_to_archive = 'Y';
select SYSIBMADM.move_to_archive
       from sysibm.sysdummy1
;
}¢--- A540769.WK.SQL(EXGROUP) cre=2015-07-08 mod=2015-10-23-14.27.39 A540769 ---
            -- example group by rollup/cube/grouping sets
            -- ein klassische group by
select tsName, count(*) cnt, sum(spaceF) spc
    from sysibm.sysTablePart
    where dbName = 'QZ01A1P' and tsname < 'A02'
    group by tsName
;
            -- eine total Zeile waere doch schoen
            -- das braucht aber DB2 V11 Kompatibilitaet
set current application compatibility 'V11R1';
select tsName, count(*) cnt, sum(spaceF) spc
    from sysibm.sysTablePart
    where dbName = 'QZ01A1P' and tsname < 'A02'
    group by rollup (tsName)
;
            -- das geht auch mehrstufig mit ZwischenTotalen
select left(tsName, 3), tsName, partition
      , count(*) cnt, sum(spaceF) spc
    from sysibm.sysTablePart
    where dbName = 'QZ01A1P' and tsname < 'A02'
                             and partition < 5
    group by rollup ( left(tsName, 3), tsName, partition )
;
            -- mit ORDER kriegen wir die Zwischentotale
            --      direkt hinter die summierten Daten
select left(tsName, 3), tsName, partition
      , count(*) cnt, sum(spaceF) spc
    from sysibm.sysTablePart
    where dbName = 'QZ01A1P' and tsname < 'A02'
                             and partition < 5
    group by rollup ( left(tsName, 3), tsName, partition )
    order by left(tsName, 3)
           , value(tsName, x'ff')
           , value(partition, 9999)
;
            -- mit ORDER kriegen wir die Zwischentotale
            --      oder auch vor die summierten Daten
select left(tsName, 3), tsName, partition
      , count(*) cnt, sum(spaceF) spc
    from sysibm.sysTablePart
    where dbName = 'QZ01A1P' and tsname < 'A02'
                             and partition < 5
    group by rollup ( left(tsName, 3), tsName, partition )
    order by value(left(tsName, 3), '')
           , value(tsName, '')
           , value(partition, -9999)
;
            -- mit rollup kriegten wir 3+1 =4 Total Kombinationen
            -- mit cube   aber         2**3=8 Total Kombinationen
select left(tsName, 3), tsName, partition
      , count(*) cnt, sum(spaceF) spc
    from sysibm.sysTablePart
    where dbName = 'QZ01A1P' and tsname < 'A02'
                             and partition < 5
    group by cube ( left(tsName, 3), tsName, partition )
;
            -- wir können die Kombinationen aber auch explizit schreiben
select left(tsName, 3), partition
      , count(*) cnt, sum(spaceF) spc
    from sysibm.sysTablePart
    where dbName = 'QZ01A1P' and tsname < 'A02'
                             and partition < 5
    group by grouping sets ( (left(tsName, 3)), (partition) )
;
            -- ein () liefert noch das grand total
select left(tsName, 3), partition
      , count(*) cnt, sum(spaceF) spc
    from sysibm.sysTablePart
    where dbName = 'QZ01A1P' and tsname < 'A02'
                             and partition < 5
    group by grouping sets ( (left(tsName, 3)), (partition), () )
;
            -- group by expressions, rollup, cube, und grouping sets
            --    können kombiniert und verschachtelt werden
select dbName, left(tsName, 3), tsName, partition
      , count(*) cnt, sum(spaceF) spc
    from sysibm.sysTablePart
    where dbName = 'QZ01A1P' and tsname < 'A02'
                             and partition < 5
    group by dbName, grouping sets(rollup(left(tsName, 3), tsName)
                                         , (partition ))
;
       -- noch ein cube
select left(tsName, 3), s.type, partition
       , count(*) cnt, sum(p.spaceF) spc
    from sysibm.sysTablePart p join sysibm.sysTablespace s
        on p.dbName = s.dbName and p.tsName = s.name
    where p.dbName = 'QZ01A1P' and p.tsname < 'A02'
                               and p.partition < 5
    group by cube( left(tsName, 3), partition, s.type)
;
       -- und verschiedene Kombinationen
with a (a, b, c) as
(
            select 'A', 'b',   1 from sysibm.sysDummy1
  union all select 'A', 'c',   2 from sysibm.sysDummy1
  union all select 'A', 'c',   3 from sysibm.sysDummy1
  union all select 'B', 'd',  14 from sysibm.sysDummy1
  union all select 'B', 'e',  15 from sysibm.sysDummy1
  union all select 'B', 'f',  16 from sysibm.sysDummy1
  union all select 'B', 'g',  17 from sysibm.sysDummy1
)
select           a, b, sum(c) sumC, '1 set: ((a, b))'
    from a
    group by grouping sets ((a, b))
union all select a, b, sum(c) sumC, 'sets : ((a, b), a, b, ())'
    from a
    group by grouping sets ((a, b), a, b, ())
union all select a, b, sum(c) sumC, 'rollU: (rollup (a, b))'
    from a
    group by grouping sets (rollup (a, b))
union all select a, b, sum(c) sumC, 'cube : (cube (a, b))'
    from a
    group by grouping sets (cube (a, b))
}¢--- A540769.WK.SQL(EXHANOI) cre=2011-11-21 mod=2011-11-24-11.06.08 A540769 ---
-- tower of hanoi                                                       00010060
--                                                                      00020060
--     1                                             1                  00030060
--    222                        =====>             222                 00040060
--   33333                                         33333                00050060
--  *links*  *mitte*  *rechts*           *links*  *mitte*  *rechts*     00060060
--                                                                      00070060
--  Regeln: immer nur ein Scheibe bewegen, immer auf grössere legen     00080060
--                                                                      00090060
--  Lösung wir benutzen Rekursion mit From, To und Help Stapel          00100061
--      1: rekursiv die n-1 obersten Scheiben von From auf Help Stapel  00110064
--      2: die jetzt oberste (ursprünglich n.) Scheibe vom From auf To  00120064
--      3: (rekursiv) die n-1 obersten Scheiben von Help auf To Stapel  00130064
--  erst am Schluss schauen wir, was Links Mitte und Rechts war         00140064
--      (Trick: zuunterst in jedem Stapel fixe Scheibe l, m, bzw. r)    00141065
--                                                                      00150064
with h (f, t, h, anz, seq, lev) as                                      00160064
(                               -- start:                               00170064
     select cast('123456l' as varchar(9)),                              00180064
            cast('m'    as varchar(9)),                                 00190064
            cast('r'    as varchar(9)),                                 00200064
            5, cast(''    as varchar(9)), 0                             00210064
         from sysibm.sysDummy1                                          00220064
                                -- Schritt 1 :                          00230064
                                --   rekursiv anz-1 Scheiben von f auf h00240064
 union all select f, h, t, anz-1, seq || 'x', lev+1                     00250064
     from h                                                             00260064
     where anz > 1 and lev < 9                                          00270064
                                -- Schritt 2+3 :                        00280064
                                --   anz-te Scheibe von f nach t        00290064
                                --   rekursiv anz-1 Scheiben von h auf t00300064
 union all select left(f, anz-1) || h,                                  00310064
                  substr(f, anz, 1) || t,                               00320064
                  substr(f, anz+1),                                     00330064
         anz-1, seq || 'y', lev+1                                       00340064
     from h                                                             00350064
     where anz > 0 and lev < 9                                          00360060
)                               --- f,t,h auf Links Mitte Rechts legen  00370060
, lmr as                                                                00380054
( select  case when right(f, 1) = 'l' then f                            00390054
               when right(t, 1) = 'l' then t                            00400054
               when right(h, 1) = 'l' then h else '?' end l,            00410054
          case when right(f, 1) = 'm' then f                            00420054
               when right(t, 1) = 'm' then t                            00430054
               when right(h, 1) = 'm' then h else '?' end m,            00440054
          case when right(f, 1) = 'r' then f                            00450054
               when right(t, 1) = 'r' then t                            00460054
               when right(h, 1) = 'r' then h else '?' end r,            00470054
          h.*                                                           00480037
      from h                                                            00490037
)                               --- l,m,r rechtsbündig anzeigen         00500061
select substr('         ' || l, length(l), 9) l,                        00510059
       substr('         ' || m, length(m), 9) m,                        00520059
       substr('         ' || r, length(r), 9) r,                        00530059
       anz, seq, lev, f, t, h                                           00540058
    from lmr                                                            00550055
    where right(seq, 1) <> 'x'                                          00560053
    order by seq                                                        00570037
;                                                                       00580062
--                                                                      00590062
-- tower of hanoi                                                       00600061
-- muehsamere Lösung: wir arbeiten mit Links Mitte und Rechts           00610061
--     und müssen in der Rekursion alle Permutationen ausprogrammieren  00620061
--                                                                      00630061
with h (l, m, r, fth, anz, seq, lev) as                                 00640061
(                               -- start bewege Turm von links -> Mitte 00650063
     select cast('123456' as varchar(9)),                               00660037
            cast(''    as varchar(9)),                                  00670037
            cast(''    as varchar(9)),                                  00680037
            'lmr', 4,                                                   00690061
            cast(''    as varchar(9)), 0                                00700037
         from sysibm.sysDummy1                                          00710037
 union all select l, m, r ,     -- Schritt 1 anz-1 Scheiben von f auf h 00720063
         translate('132', fth, '123'),                                  00730037
         anz-1, seq || 'x', lev+1                                       00740037
     from h                                                             00750037
     where anz > 1 and lev < 9                                          00760037
                                -- Schritt f -> t und h -> t für lmr    00770063
 union all select substr(l, anz+1),                                     00780061
                  substr(l, anz, 1) || m,                               00790061
                  left(l, anz-1) || r,                                  00800061
                                                                        00810037
        'rml', anz-1, seq || 'y', lev+1                                 00820061
     from h                                                             00830037
     where anz > 0 and lev < 9 and fth = 'lmr'                          00840061
                                -- Schritt f -> t und h -> t für lrm    00850063
 union all select substr(l, anz+1),                                     00860061
                  left(l, anz-1) || m,                                  00870061
                  substr(l, anz, 1) || r,                               00880061
        'mrl', anz-1, seq || 'y', lev+1                                 00890061
     from h                                                             00900037
     where anz > 0 and lev < 9 and fth = 'lrm'                          00910061
                                -- Schritt f -> t und h -> t für mlr    00920063
 union all select substr(m, anz, 1) || l,                               00930061
                  substr(m, anz+1),                                     00940061
                  left(m, anz-1) || r,                                  00950061
        'rlm', anz-1, seq || 'y', lev+1                                 00960061
     from h                                                             00970037
     where anz > 0 and lev < 9 and fth = 'mlr'                          00980061
                                -- Schritt f -> t und h -> t für mrl    00990063
 union all select left(m, anz-1) || l,                                  01000061
                  substr(m, anz+1),                                     01010061
                  substr(m, anz, 1) || r,                               01020061
        'lrm', anz-1, seq || 'y', lev+1                                 01030061
     from h                                                             01040037
     where anz > 0 and lev < 9 and fth = 'mrl'                          01050061
                                -- Schritt f -> t und h -> t für rlm    01060063
 union all select substr(r, anz, 1) || l,                               01070061
                  left(r, anz-1) || m,                                  01080061
                  substr(r, anz+1),                                     01090061
        'mlr', anz-1, seq || 'y', lev+1                                 01100061
     from h                                                             01110037
     where anz > 0 and lev < 9 and fth = 'rlm'                          01120061
                                -- Schritt f -> t und h -> t für rml    01130063
 union all select left(r, anz-1) || l,                                  01140061
                  substr(r, anz, 1) || m,                               01150061
                  substr(r, anz+1),                                     01160061
        'lmr', anz-1, seq || 'y', lev+1                                 01170061
     from h                                                             01180037
     where anz > 0 and lev < 9 and fth = 'rml'                          01190061
)                                                                       01200037
select substr('         ' || l, 1+length(l), 9) l,                      01210061
       substr('         ' || m, 1+length(m), 9) m,                      01220061
       substr('         ' || r, 1+length(r), 9) r,                      01230061
       fth, anz, seq, lev                                               01240037
    from h                                                              01250037
--  where right(seq, 1) <> 'x'                                          01260041
    order by seq                                                        01270037
}¢--- A540769.WK.SQL(EXHEX) cre=2015-06-17 mod=2015-06-17-17.15.27 A540769 -----
select hex(257), hex(-7) from sysibm.sysDummy1
}¢--- A540769.WK.SQL(EXLIKE) cre=2009-07-10 mod=2015-07-02-13.38.39 A540769 ----
with d (d) as                                                           00001004
(                                                                       00002004
            select 'ab%cd_ef' from sysibm.sysDummy1                     00003004
  union all select 'ab?cd?ef' from sysibm.sysDummy1                     00004004
)                                                                       00005004
select d                                                                00006004
    , case when d like 'ab%' then 'ab% Li' else 'ab% No' end            00007004
    , case when d like 'ab\%c%f' escape '\'                             00008004
         then 'ab\%c%f Li' else 'ab\%c%f No' end                        00009004
    , case when d like 'a%\__f' escape '\'                              00009104
         then 'a%\__f Li' else 'a%\__f No' end                          00009204
    from d                                                              00009304
;xx;                                                                    00009404
select name                                                             00010000
    from sysibm.sysTables                                               00020000
    where dbName = 'DGDB9998'                                           00030001
        and   name like strip('TWK4% ')                                 00040003
    order by name                                                       00050000
}¢--- A540769.WK.SQL(EXLOB) cre=2014-02-03 mod=2014-02-03-11.34.06 A540769 -----


 SET CURRENT SQLID = 'S100447';


    drop   tablespace dA540769.exloblob;
    commit;
    CREATE LOB TABLESPACE EXLOBLOB
           IN DA540769
           USING STOGROUP "GSMS    "
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP8
           DSSIZE 4G
           CLOSE YES
           LOCKMAX 0
           GBPCACHE CHANGED
           DEFINE YES
           LOGGED
           LOCKSIZE LOB;



    CREATE TABLESPACE EXLOBNTR
           IN DA540769
           USING STOGROUP "GSMS    "
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP2
           CLOSE NO
           LOCKMAX SYSTEM
           SEGSIZE 32
           FREEPAGE 5
           PCTFREE 20
           GBPCACHE CHANGED
           DEFINE YES
           LOGGED
           TRACKMOD YES
           COMPRESS NO
           LOCKSIZE ANY
           MAXROWS 255
           CCSID EBCDIC;


    CREATE TABLE A540769.EXLOBNTRIES
        (BROKERUUID CHARACTER(16) FOR BIT DATA
                                                        NOT NULL
        ,ACCESSID CHARACTER(60) FOR BIT DATA
                                                        NOT NULL
        ,QOPLEVEL CHARACTER(2) FOR BIT DATA
  WITH DEFAULT NULL
        ,PERMISSIONS INTEGER
  WITH DEFAULT NULL
        ,EXLOBNTRIES_ROWID ROWID
                                                        NOT NULL
  GENERATED ALWAYS
        ,TOPIC BLOB(1G)
  WITH DEFAULT NULL
        ,PRINCIPAL VARCHAR(128) FOR BIT DATA
                                                        NOT NULL
        ,CONSTRAINT BROKERUUID PRIMARY KEY
        (BROKERUUID
        ,ACCESSID
        )
        )
        IN DA540769.EXLOBNTR
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE NONE
   AUDIT NONE
   CCSID EBCDIC;


    CREATE        UNIQUE INDEX A540769.EXLOBNTRIES
           ON A540769.EXLOBNTRIES
          (BROKERUUID ASC
          ,ACCESSID ASC
          )
           CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP "GSMS    "
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 5
           PCTFREE 30
           GBPCACHE CHANGED
           PIECESIZE 2097152K;

    CREATE AUXILIARY TABLE A540769.EXLOBNTRIES_LOBAUX
        IN DA540769.EXLOBLOB
        STORES A540769.EXLOBNTRIES
        APPEND NO
        COLUMN TOPIC;


    CREATE        UNIQUE INDEX A540769.EXLOBNTRIES_LOB_I2
           ON A540769.EXLOBNTRIES_LOBAUX
           PADDED
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE YES
           COPY NO
           USING STOGROUP "GSMS    "
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 4194304K;


}¢--- A540769.WK.SQL(EXLOBINS) cre=2014-02-03 mod=2014-02-03-13.05.12 A540769 ---
call sqlConnect dp4g
call sqlUpdate , "delete from A540769.EXLOBNTRIES"
do ix = 0 to 10
call sqlUpdate , "insert into A540769.EXLOBNTRIES" ,
     "(brokeruuid, accessid, qoplevel, permissions, topic, principal)",
     "values('uuid"ix"', 'acces"ix"', 'qo'," ix,
     ",   blob(repeat('topic" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi2" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi3" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi4" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi5" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi6" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi7" ix       "'," 2**ix")), 'principal"ix"')"
    end
call sqlCommit
$#out                                              20140203 13:05:08
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out                                              20140203 12:21:50
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out                                              20140203 12:14:32
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out                                              20140203 12:09:04
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out                                              20140203 12:08:28
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  4=W no where
sql = delete from A540769.EXLOBNTRIES
$#out                                              20140203 12:07:09
}¢--- A540769.WK.SQL(EXLOBIN2) cre=2014-02-03 mod=2014-02-03-13.34.25 A540769 ---
delete from A540769.EXLOBNTRIES;
insert into A540769.EXLOBNTRIES
(brokeruuid, accessid, qoplevel, permissions, topic, principal)
with u (ix, ll) as
(
   select -1, cast(null as blob) from sysibm.sysDummy1
   union all select 0, cast('' as blob) from sysibm.sysDummy1
   union all select ix+1
      , ll || blob(' <<< cat ix ' || char(ix) || ' >>> ') || ll
       from u where ix < 22 and ix >= 0
 )
select 'uuid ' || strip(ix)
     , 'acce ' || strip(ix)
     , 'qo', ix, ll
     , 'princ ' || strip(ix)
    from u
;
commit
;
call sqlUpdate , "insert into A540769.EXLOBNTRIES" ,
     "(brokeruuid, accessid, qoplevel, permissions, topic, principal)",
     "values('uuid"ix"', 'acces"ix"', 'qo'," ix,
     ",   blob(repeat('topic" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi2" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi3" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi4" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi5" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi6" ix"        '," 2**ix"))" ,
     " || blob(repeat('topi7" ix       "'," 2**ix")), 'principal"ix"')"
    end
call sqlCommit
$#out                                              20140203 13:33:45
}¢--- A540769.WK.SQL(EXLOBLOA) cre=2014-02-03 mod=2014-02-03-13.21.28 A540769 ---
//A540769L JOB (CP00,KE50),
//       'CATALOG',MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//*
//***************************************************
//*  UNLOAD COPY
//***************************************************
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
//   PARM=(DP4G,'A540769L.LOAD'),
//   REGION=0M
//*DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSTEMPL  DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
TEMPLATE INP
     DSN('DP4G.DA540769.EXLOBNTR.P00000.D140203.REC')
     DISP(OLD,KEEP,KEEP)
LISTDEF LST
    INCLUDE TABLESPACE DA540769.EXLOBNTR PARTLEVEL ALL
LOAD DATA LOG NO RESUME NO REPLACE
    SORTKEYS
    -- ENFORCE NO
    SORTDEVT DISK
    WORKDDN(TSYUTD,TSOUTD)
    INDDN INP
    EBCDIC  CCSID(00500,00000,00000)
    FORMAT SPANNED YES
    INTO TABLE
    "A540769".
    "EXLOBNTRIES"
    WHEN(00001:00002) = X'0027'
    NUMRECS                   11
    IGNOREFIELDS YES
    ( "BROKERUUID"
     POSITION(  00003:00018) CHAR(00016)
    , "ACCESSID"
     POSITION(  00019:00078) CHAR(00060)
    , "QOPLEVEL"
     POSITION(  00080:00081) CHAR(00002)
                             NULLIF(00079)=X'FF'
    , "PERMISSIONS"
     POSITION(  00083:00086) INTEGER
                             NULLIF(00082)=X'FF'
    , "PRINCIPAL"
     POSITION(  00087)       VARCHAR
    , "DSN_NULL_IND_00006" POSITION(  *)           CHAR(1)
    , "TOPIC"
     POSITION(  *)           BLOB
                             NULLIF(DSN_NULL_IND_00006)=X'FF'
    )
COPY LIST LST COPYDDN(TCOPYD)
    PARALLEL
    SHRLEVEL CHANGE
//*
}¢--- A540769.WK.SQL(EXLOBSEL) cre=2014-02-03 mod=2014-02-03-11.51.28 A540769 ---
select length(topic) toplen
     , length(principal) prinlen
     , principal
     , substr(topic, 1, 100)
     from A540769.EXLOBNTRIES
;
}¢--- A540769.WK.SQL(EXLOBUNL) cre=2014-02-03 mod=2014-02-03-17.20.25 A540769 ---
//A540769V JOB (CP00,KE50),
//       'CATALOG',MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//*
//***************************************************
//*  UNLOAD COPY
//***************************************************
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
//   PARM=(DP4G,'A540769V.UNLOAC'),
//   REGION=0M
//*DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSTEMPL  DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
UNLOAD DATA
       PUNCHDDN TPUNCH UNLDDN TSRECD  SPANNED YES MAXERR 20
         SHRLEVEL CHANGE
  FROM TABLE A540769.EXLOBNTRIES
     ( BROKERUUID
     , ACCESSID
     , QOPLEVEL
     , PERMISSIONS
     , PRINCIPAL
     , TOPIC BLOB
     )
}¢--- A540769.WK.SQL(EXLPAD) cre=2014-09-29 mod=2014-09-29-10.34.16 A540769 ----
with l (t, l) as
( select 'eins', 0 from sysibm.sysDummy1
  union all select t, l+1 from l where l < 8
)
select t, l
    ,'<' || lPad(t, l) || '>'
    from l
}¢--- A540769.WK.SQL(EXNULL) cre=2014-11-15 mod=2014-11-18-13.42.12 A540769 ----
with u (u) as
( select 1 from sysibm.sysdummy1
  union all select 9 from sysibm.sysdummy1
  union all select cast( null as int) from sysibm.sysdummy1
)
select u
  , case when u  in (1,5) then 'in' else 'in else' end
  , case when u not in (1,5) then 'not in' else 'not in else' end
  , case when 1=0 or u in (1,5) then 'or in' else 'or in else' end
    from u
 -- where u not in (1,5)
;x;
}¢--- A540769.WK.SQL(EXOLAP) cre=2011-11-11 mod=2013-07-16-17.06.48 A540769 ----
with d(a, rest, lev) as
( select ' ', 'abccdefffgh', 0 from sysibm.sysDummy1
  union all select substr(rest, lev+1, 1), rest, lev+1
      from d where lev < 999 and lev < length(rest)
)
select a
     , row_number() over(order by a)  "rowNum"
     , rank      () over(order by a)  "rank"
     , dense_rank() over(order by a)  "denseRank"
from d
;x;
                                -- row_number
select row_number() over ()
        , card, strip(creator) || '.' || name
    from sysibm.sysTables
    where dbName like 'U%'
    order by dbName, name
    with ur
;
with t as                       -- row_number in Select
(                               --    braucht with
select row_number() over () row
     , strip(creator) || '.' || strip(name) tb
    from sysibm.sysTables
    where dbName like 'U%'
    order by creator, name
)
select *
    from t
    where mod(row,  20) = 0
    with ur
;
with t as                       -- vergleich in %
(                               --     mit nächst kleinerem
select row_number() over (partition by dbName order by card desc) row
      , card, dbName db, name tb
    from sysibm.sysTables
    where dbName like 'U%'
)
select case when k.db is null or k.card < 1 then null
            else smallint(real(g.card)*100/k.card) end
       , g.*
    from t g
    left join t k
    on g.db = k.db and g.row+1 = k.row
    order by g.db, g.row
    with ur
}¢--- A540769.WK.SQL(EXOLAP1) cre=2011-11-09 mod=2011-11-09-18.05.47 A540769 ---
with a (n,s,r, rdb, rts, aas, ade, chtst, db) as
(
select substr(name,1, 12) tb, real(spacef) spacef
  , int(row_number () over ())
  , smallint(row_number () over (partition by dbname
                        order by spacef  desc))
  , smallint(row_number () over (partition by tsname
                        order by spacef desc ))
  , smallint(rank       () over (partition by dbname
                        order by spacef  asc))
  , smallint(rank       () over (partition by dbname
                        order by spacef desc ))
  , row change timestamp for t
  , dbName
    from sysibm.systables t
    where dbName like 'M%' and type = 'T'
)
select * from a
    where rdb < 5
    order by db, s
    fetch first 100 rows only
;
}¢--- A540769.WK.SQL(EXOLAP2) cre=2011-11-11 mod=2011-11-14-17.56.52 A540769 ---
select  substr(dbName, 1, 8) db
      , substr(name, 1, 10) tb
      , card
      , smallint(row_number() over (partition by dbName
                          order by dbName, card desc nulls last)) row
      , smallint(rank      () over (partition by dbName
                           order by dbName, card desc nulls last)) rnk
      , smallint(dense_rank() over (partition by dbName
                           order by dbName, card desc nulls last)) den
    from sysibm.sysTables
    where dbName like 'U%'
    order by dbName, card desc
;;
      , smallint(row_number() over (
                          order by dbName, card desc nulls last)) trow
      , smallint(rank      () over (
                           order by dbName, card desc nulls last)) trnk
      , smallint(dense_rank() over (
                           order by dbName, card desc nulls last)) tden
}¢--- A540769.WK.SQL(EXPACK) cre=2014-02-14 mod=2014-02-14-13.16.38 A540769 ----
declare global temporary table  session.p(p varbinary(1000));
insert into session.p values(
    pack(ccsid 1208, 'ein name', 123, 'und etwas mehr text'));
select unpack(p).*
          as (name char(16) ccsid unicode
             , num int, text varchar(30) ccsid unicode)
      , hex(p)
      , hex(cast('ein name' as char(10) ccsid unicode))
    from session.p
;
select unpack(p).*
          as (name char(16)
             , num int, text varchar(30) )
    from session.p
}¢--- A540769.WK.SQL(EXPLAGRO) cre=2008-11-28 mod=2008-11-28-11.54.15 F540769 ---
select max(bind_time) from cmnbatch.plan_table
    where progName = 'YAVX016'
;
select * from cmnbatch.plan_view5a
    where progName = 'YAVX016'
                   and queryno in (159)
                   and bind_time = '2008-11-17-16.51.59.801961'
    order by applname, progname, queryNo, qblockno, planno
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 111 for
 SELECT h_res1.h_code                    as h_analyse
       ,sum(h_res1.h_val)                as h_valReprt
       ,sum(h_res1.h_valComp)            as h_valComp
       ,round(float(sum(h_res1.h_val))
        / float(4.23)
        * 100,2)                         as h_perc
 from
    (select AssetMainClass                as h_code
            ,coalesce(MktValInCompCcy,0)
             + AccrIntInCompCcy             as h_valComp
            ,coalesce(MktValInReprtCcy,0)
             + AccrIntInReprtCcy            as h_val
       from  oa1t.VAV150A2
       Where ReprtUuid   = ?
       And   PartitionId = ?
       And   ObjectTypeCd NOT IN(131,141)
       And  ((coalesce(MktValInReprtCcy,0)
             + AccrIntInReprtCcy) > 0))  as h_res1
    group by h_res1.h_code
    order by h_valComp desc
    for fetch only
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(EXPLAHAR) cre=2008-09-18 mod=2008-09-18-12.32.47 F540769 ---
set current sqlId = 'A540769';
select char(left(v.version, 10), 10), v.* from cmnbatch.plan_view5a v
    where v.progName = 'YYWM05E'
              and v.version in ('A18Q002827','WSIN000043','WSIN000056')
              and v.bind_time in
                         ('2008-09-11-13.36.40.058999',
                          '2008-02-07-15.41.51.027494')
    order by v.applname, v.progname,
        v.queryNo, v.version, v.qblockno, v.planno
    with ur
;
   ;
x
select * from cmnbatch.plan_view5
    where progName = 'YUU1022'
     --   and stmt   = '000982'
      -- and version = 'WS8B000620'
      -- and bind_time = '2008-05-19-08.34.31.808699'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
sdf
xelect PROCMS, PROCSU, float(procSu) / float(procMs) * 1000
    from cmnbatch.dsn_statemnt_table
--  where progname = 'MF7270' and queryNo = 149
    where group_member = 'DOF1' and procMS > 1000
    fetch first 100 rows only
;
x
delete   from A540769.plan_table
;
explain plan for -- set queryno = 149 for
SELECT count(*)
    FROM oa1p.TWM005A1
    WHERE D$GUEA <= ?  AND D$GUEB >= ?
        AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
       AND CKAT = ? AND NVALOR = ? QUERYNO 149
     for fetch only
    ;
select * from plan_view5
    where queryno in ( 149, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select * from cmnbatch.plan_view5
    where progName = 'YYWM51E'
          and stmt   = '000149'
      -- and version = 'WS8B000620'
      -- and bind_time = '2008-05-19-08.34.31.808699'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
------- dangelmeier
xelect * from cmnbatch.plan_view5a
    where progName = 'YDWGBG'--   and timestamp > '200802'
          and stmt   = '000754'
         and version = 'DEPO0000535AA7DD34MVS'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
xelect *
    from sysibm.syscoldist
    where tbname like 'TWU11%'
     --   and name = 'WU111003'
;
xelect a.* , b.*
    from
        (select case when 1=0 then 1 else null end k, 'a' t
             from sysibm.sysdummy1 ) a
      join
        (select case when 1=0 then 1 else null end k, 'b' t
             from sysibm.sysdummy1 ) b
      on  a.k = b.k --or (a.k is null and b.k is null)
;
x
select count(*), wu110021
    from oa1p.twu110a1
    group by wu110021
    order by 1 desc
    with ur
;
xelect count(*), wu111003
    from oa1p.twu111a1
    group by wu111003
    order by 1 desc
    with ur
;
x
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
     select T111.auftrnr,                    -- /* Alle Daten        */
            t111.rectyp,
            t111.ahnr,
            t111.shlnr,
            t111.shbu,
            t111.uuid,
            t111.bestauftr,
            t111.briefnr,
            t111.briefvar,
            t111.antnr,
            t111.antvar,
            t111.antterm,
            t111.sprache,
            t111.verarbstat,
            t111.ausgrund,
            t110.paketid

     from  oa1p.VWU110A1V T110,              --  /* Bestandestable    */
           oa1p.VWU111A1V T111               --  /* Auftragstable     */

     where t110.auftrnr    =  t111.auftrnr  --  /* Auftragsnummer    */
     and   t111.ahnr       = 'abcdefgh'    --  /* Aktionsheader     */
     and   t110.paketid    = 'abcedef'      --  Paket-Nummer      */
     and   t111.verarbstat = 123            --  /* Status            */

     group by  T111.auftrnr,               --      je Gruppe einmal
               t111.rectyp,
               t111.ahnr,
               t111.shlnr,
               t111.shbu,
               t111.uuid,
               t111.bestauftr,
               t111.briefnr,
               t111.briefvar,
               t111.antnr,
               t111.antvar,
               t111.antterm,
               t111.sprache,
               t111.verarbstat,
               t111.ausgrund,
               t110.paketid
     order by  t111.ahnr,                  --      Sortierreihenfolge
               t111.shlnr,
               t111.shbu,
               t111.auftrnr
     for fetch only
    ;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
xelect queryNo, qBlockno, planno, timestamp, bind_time, version
   from cmnbatch.plan_table
    where progName = 'YDWGBG'--   and timestamp > '200802'
      --  and stmt   = '000754'
    order by applname, progname, version , timestamp ,
        queryNo, qblockno, planno
;
select * from cmnbatch.plan_view5
    where progName = 'YDWGBG'--   and timestamp > '200802'
      --  and stmt   = '000754'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
x -- Härdi 16.5.08
select * from cmnbatch.plan_view5
    where progName = 'YYWM51E'--   and timestamp > '200802'
          and stmt   = '000153'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
x
select ckat, count(*) from oa1p.tWM005A1
    group by ckat
    order by 2 desc
;
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
  select
      c.dbname, c.tsName, c.dsNum, s.pgSize,
      icType, copyPagesf, dsName, timestamp,
      case when timestamp > current timestamp - 24 hours   then 'h'
           else 'g' end gest
      from sysibm.syscopy c, sysibm.systablespace s
      where icType in ('F', 'I') and c.dbName like 'M%'
          and s.dbName = c.dbName and s.name = c.tsName
;
explain plan set queryno = 222 for
  select
      c.dbname, c.tsName, c.dsNum, s.pgSize,
      icType, copyPagesf, dsName, timestamp,
      case when timestamp > current timestamp - 24 hours   then 'h'
           else 'g' end gest
      from sysibm.syscopy c, sysibm.systablespace s
      where icType in ('F', 'I') and c.dbName like 'M%'
          and s.dbName = c.dbName and s.name = c.tsName
      order by 1, 2,3, timestamp desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
 x
      select count(*), jobname, max(partition), min(partition)
          from sysibm.syscopy c, sysibm.systablepart p
          where c.dbName = p.dbName and c.tsName = p.tsname
              and c.dsNum in (0, p.partition)
          group by jobName
          order by 1 desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
    from CMNBATCH.plan_view5
    where progName = 'DBWK3'
    order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
    from oa1t.vpw210a1V
    group by auftrags_nummer, pm_id
    order by 1 desc
;
--select count(*) from oa1t.TSN100A1
--    with ur
--    ;
select *
    from CMNBATCH.plan_view5
    where progName = 'YPW2KPI' and queryNo = 4235
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
 explain plan set queryno = 111 for
         SELECT T.* FROM oa1t.VNI600A101A C
               , oa1t.VNI203A101A T
           WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
           AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
    WITH NI600 (PERENDDT) AS
            (SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
               FROM oa1t.VNI600A101A C
               WHERE C.CTRLID = 'NI6220R'
             )
             SELECT T.* FROM NI600
                   ,oa1t.VNI203A101A T
               WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
    from cmnbatch.plan_view5
    where progName = 'YRPNIMP' and queryNo = 866
    order by applname, progname, queryNo, qblockno, planno
;
x
         d.bType, p.collid, p.Name, p.version,
 p.conToken, p.timeStamp, p.type,
 p.validate, p.isolation, p.valid, p.operative,
 p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
 on p.location = d.dLocation and p.collid = d.dCollid
     and p.name = d.dName and  p.conToken = d.dConToken     2.22.129867'
re
 (bQualifier, bName, bType) in
 (  select dbName, name, 'R'
         from sysIbm.sysTablespace
         where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
 )
     from gdb0283.vnz240a1v
    where    SearchValue01            = ?
          -- dec(SearchValue01,15,3)  = ?
      and CreateDateTime           < ?
      and dec(SearchValue02,15,3) >= ?
      and dec(SearchValue02,15,3) <= ?
      and Objtype                 ^= 'PORDSPLT'
    order by CreateDateTime
    fetch first 101 rows only
    optimize for 101 rows
    with ur
;
select * from plan_view5A
    where queryno = 999
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIBP) cre=2011-01-19 mod=2014-08-05-18.13.58 A540769 ---
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 713 for
SELECT A.BP20401, A.BP20404, A.BP20410, A.BP20411, B.BP20004,
    B.BP20017, B.BP20013, B.BP20022, C.BP20501, C.BP20504, C.BP20509,
    C.BP20510, C.BP20512
  FROM oa1p.TBP204A1 A, oa1p.TBP200A1 B, oa1p.TBP205A1 c
  WHERE A.BP20401 = ? AND A.BP20402 <= ? AND A.BP20403 >= ?
      AND A.BP20405 = ?  AND A.BP20409 = 'A' AND
      B.BP20001 = A.BP20411 AND B.BP20002 <= ? AND B.BP20005 = ?
      AND B.BP20003 >= ? AND C.BP20501 = A.BP20411 AND
      C.BP20502 <= ? AND C.BP20503 >= ? AND C.BP20505 = ?
      AND ( ( C.BP20508 = 1 AND C.BP20513 <> 'LAE ' ) OR (
            C.BP20508 = 3 AND C.BP20513 = 'LAE ' ) )
;
explain plan set queryno = 1 for
    select *
        FROM
            oa1t.TBP200A1 A,
            oa1t.TBP204A1 B,
            oa1t.TBP205A1 C
        WHERE
            BP20001=BP20411
            AND BP20501=BP20411
            AND BP20002<=?
            AND BP20003>=?
            AND BP20005=?
            AND BP20402<=?
            AND BP20403>=?
            AND BP20405=?
            AND BP20502<=?
            AND BP20503>=?
            AND BP20505=?
            AND BP20401 BETWEEN ? AND ?
            AND BP20409=?
            AND BP20508=?
            AND BP20509=X'000E55C8B07D169CF6B85C8360409021C8E90001'
        ORDER BY
            BP20401,
            BP20508 FOR FETCH ONLY WITH UR
;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
set current path oa1t;
select n, max(c) max, fosFmtE7(avg(real(c))) avg,
    sum(c) card, count(*) dist
from
(
          select 'bp205.5.9' n,  count(*) c
    from oa1t.TBP205A1 C
    group by BP20505, BP20509
union all select 'bp200.1' n, count(*) c
    from oa1t.TBP200A1
    group by BP20001
union all select 'bp204.11.5' n, count(*) c
    from oa1t.TBP204A1 C
    group by BP20411, BP20405
)   x
    group by n
    with ur
;;;
;;;
select count(*), BP20505, BP20509
    from oa1t.TBP205A1 C
    group by BP20505, BP20509
    order by 1 desc
    fetch first 10 rows only
    with ur
;;;
select count(*), BP20411, BP20405
    from oa1t.TBP204A1 C
    group by BP20411, BP20405
    order by 1 desc
    fetch first 10 rows only
    with ur
;;;
}¢--- A540769.WK.SQL(EXPLAIBS) cre=2012-09-05 mod=2012-10-30-12.31.06 A540769 ---
with cx as
(
select dbName db, tsName ts, dsNum part, instance
       , count(*) cnt
       , max(case when ICTYPE IN ('F','R','X')
                  then char(timestamp) || icType || strip(dsNum)
                  else '' end) laFu
       , max(case when ICTYPE IN ('I')
                  then char(timestamp) || icType || strip(dsNum)
                  else '' end) laInc
    from sysibm.sysCopy
    where ICTYPE IN ('F','R','X', 'I')
    group by dbName, tsName, dsNum, instance
)
, c as
(
select max(c1.laFu,  coalesce(c0.laFu,  '')) laFu,
       max(c1.laInc, coalesce(c0.laInc, '')) laInc,
       c1.db, c1.ts, c1.part, c1.instance
    from cx c1
    left join cx c0
      on c0.db = c1.db and c0.ts = c1.ts
           and c1.part <> 0 and c0.part = 0
)
select * from c
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with ci(c, i) as
(           select 'N', 1 from sysibm.sysDummy1
  union all select 'Y', 1 from sysibm.sysDummy1
  union all select 'Y', 2 from sysibm.sysDummy1
)
, p as
(
 SELECT PT.DBNAME, pt.tsName, pt.partition, ci.i, ts.clone, ts.instance,
     case when ts.instance = i then 'base' else 'clone' end baCl,
     (  SELECT char(timestamp) || icType
          FROM  SYSIBM.SYSCOPY CP
          WHERE PT.DBNAME = CP.DBNAME
            AND PT.TSNAME = CP.TSNAME
            AND cp.dsNum in (PT.PARTITION, 0)
            AND cp.instance = ci.i
            AND  CP.ICTYPE IN ('F','R','X')
          order by timestamp desc
          fetch first 1 row only
     ) laFull,
     r.nActive,
     COPYLASTTIME,
     COPYUPDATEDPAGES,
     COPYCHANGES,
     COPYUPDATETIME
----  end   @proc selIncrCopy: select fullcopy etc. --------------------
 FROM   SYSIBM.SYSDATABASE DB
   join SYSIBM.SYSTABLESPACE TS
     on DB.NAME = PT.DBNAME
   join SYSIBM.SYSTABLEPART PT
     on DB.NAME = TS.DBNAME
       AND TS.NAME = PT.TSNAME
   join ci on ci.c=ts.clone
   left join SYSIBM.SYSTABLESpaceStats r
      on r.dbid = db.dbid
        and r.psid = ts.psid
        and r.partition = pt.partition
        and r.instance = ci.i
 WHERE  0 = 0
----  end   @proc missFUllcopies1: fehlende Fullcopies -----------------

----  begin @proc exclude ----------------------------------------------
----- begin @proc exclGen: gemeinsame excludes -------------------------
   AND NOT (PT.DBNAME like 'DSNDB%')            -- DB2 CATALOG
   AND NOT (PT.DBNAME LIKE 'DSN8%')             -- IBM TEST DB
   AND NOT (PT.DBNAME LIKE 'WKDBD%')            -- DB2 WORK DATABASE
   AND NOT (PT.DBNAME = 'DSNTESQ')              -- DB2 CATALOG CLONE
   AND NOT (PT.DBNAME LIKE 'DB2MAPP%')          -- REORG MAPPING TABLES
   AND NOT (PT.DBNAME LIKE 'DB2PLAN%')          -- explain tables
   and not translate(PT.dbName, '999999999AAAAAA', '012345678FISWXY')
           = 'DA999999'                         -- user datenbanken
   AND NOT (PT.DBNAME LIKE 'DB2ALA%')           -- marec  generated
   AND NOT (PT.DBNAME LIKE '%MAREC%')           -- marec generated
   AND NOT (PT.DBNAME LIKE 'DACME%')            -- Mail Heinz Bühler
   AND NOT (PT.DBNAME LIKE 'DGDB%')             -- PROTOTYPEN
   AND NOT (PT.DBNAME LIKE 'DGO%')              -- PROTOTYPEN
   AND NOT (PT.DBNAME LIKE '%A1X%')             -- Neue Prototypen
   AND NOT (PT.DBNAME LIKE 'DAU%')              -- Schulung Gerrit
   AND NOT (PT.DBNAME LIKE 'IDT%')              -- ibm tools
----  end   @proc exclGen: gemeinsame excludes ------------------------
   AND NOT (PT.DBNAME LIKE 'OE02%')    -- Mail Ivo Eichmann
   AND NOT (PT.DBNAME LIKE 'CSQ%')     -- M-QUEUE DATENBANK
----  end   @proc exclude ---------------------------------------------
----  end   @proc exclGen: gemeinsame excludes -------------------------

   AND NOT (PT.DBNAME = 'XC01A1P'  AND PT.TSNAME LIKE 'A2%'  )
                                       -- EOS: Armin Breyer
   AND NOT (PT.DBNAME = 'XR01A1P'  AND PT.TSNAME LIKE 'A2%'  )
                                       -- ERET: Armin Breyer
   AND NOT (PT.DBNAME = 'CSQDBOC' AND PT.TSNAME like 'TSBLOB%' )
----  end   @proc exclude ----------------------------------------------

   AND DB.TYPE NOT IN ('T','W')
----  begin @proc missFUllcopies2: fehlende Fullcopies -----------------
   AND TS.NTABLES <> 0
   AND PT.SPACEF <> -1 -- attention space is sometimes wrong|
 )
, q as
(
select case when laFull < char(current timestamp - 171 hours)
                then 'full old'
            when copyUpdateTime > current timestamp - 3 hours
                then 'no newUpd'
            when nActive * 0.1 <= COPYUPDATEDPAGES then 'full upda'
            when COPYUPDATEDPAGES <> 0 or copyChanges <> 0 then 'inc'
            else 'no changes'
            end copy,
      p.*
    from p
)
select *
    from q
    where left(copy, 2) <> 'no'
 ORDER BY DBNAME, TSNAME, PARTITION, i
 WITH UR
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIBV) cre=2012-07-25 mod=2012-07-25-12.06.25 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'BV'
        and prog         = 'YBVPUTS'
    order by pcBi  desc, bind_Time desc
    with ur
;x;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
    from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
}¢--- A540769.WK.SQL(EXPLAICD) cre=2014-05-26 mod=2014-05-26-17.10.15 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'CD'
        and prog         = 'YCDPUT3'
    order by pcBi  desc, bind_Time desc
    with ur
;x;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
    from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
}¢--- A540769.WK.SQL(EXPLAICM) cre=2015-05-29 mod=2015-05-29-10.27.21 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
SELECT DISTINCT ROLE_KEY FROM SSXX28Q0.SCM_ORG_ROLE
WHERE ROLE_TYPE = 'CMN-ACF-RULE'
AND ROLE_KEY_TYPE LIKE 'USER%'
AND ROLE_PID = 'F325756'
UNION SELECT DISTINCT ROLE_KEY FROM SSXX28Q0.SCM_ORG_ROLE
WHERE ROLE_TYPE = 'CMN-ACF-RULE'
AND ROLE_KEY_TYPE LIKE 'ORG%'
AND ROLE_PID IN ('K','KG','KGO','KGOU','KGOU3','KGOU32','KGOU322')
;
explain plan set queryno = 5   for
SELECT DISTINCT ROLE_KEY FROM SSXX28QS.SCM_ORG_ROLE
WHERE ROLE_TYPE = 'CMN-ACF-RULE'
AND ROLE_KEY_TYPE LIKE 'USER%'
AND ROLE_PID = 'F325756'
UNION SELECT DISTINCT ROLE_KEY FROM SSXX28QS.SCM_ORG_ROLE
WHERE ROLE_TYPE = 'CMN-ACF-RULE'
AND ROLE_KEY_TYPE LIKE 'ORG%'
AND ROLE_PID IN ('K','KG','KGO','KGOU','KGOU3','KGOU32','KGOU322')
;
explain plan set queryno = 13  for
SELECT DISTINCT ROLE_KEY FROM SSXX28Q0.SCM_ORG_ROLE
WHERE  '' || ROLE_TYPE = 'CMN-ACF-RULE'
      AND ((ROLE_KEY_TYPE LIKE 'USER%'
        AND ROLE_PID = 'F325756'
      ) or
        ( ROLE_KEY_TYPE LIKE 'ORG%'
        AND ROLE_PID
          IN ('K','KG','KGO','KGOU','KGOU3','KGOU32','KGOU322')
      ))
;
explain plan set queryno = 14  for
SELECT DISTINCT ROLE_KEY FROM SSXX28Q0.SCM_ORG_ROLE r
where (role_type, role_key_type, role_key)
in ( select role_type, role_key_type, role_key
       FROM SSXX28Q0.SCM_ORG_ROLE s
       WHERE ROLE_TYPE = 'CMN-ACF-RULE'
         AND ((ROLE_KEY_TYPE LIKE 'USER%'
         AND ROLE_PID = 'F325756'
         ) or
         ( ROLE_KEY_TYPE LIKE 'ORG%'
           AND ROLE_PID
           IN ('K','KG','KGO','KGOU','KGOU3','KGOU32','KGOU322')
      )))
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
select count(*), role_type, min(role_key_type)
                          , max(role_key_type)
     from SSXX28QS.SCM_ORG_ROLE
     group by role_type, left(role_key_type, 3)
     order by 1 desc
     fetch first 100 rows only
     with ur
;x;
}¢--- A540769.WK.SQL(EXPLAICO) cre=2010-06-09 mod=2013-11-08-13.55.45 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;

explain plan set queryno = 1   for
select * from sysibm.sysCopy c
     where rid(c) = (select rid(n)
              from sysibm.sysCopy n
              where n.dbName = 'DSNDB06' and tsName like '%TB%'
              order by timestamp desc
              fetch first row only
              )
;
explain plan set queryno = 2   for
with a as
(
   select strip(dbName) || '.' || strip(name) ts
        , (select rid(n)
              from sysibm.sysCopy n
              where n.dbName = s.dbName and tsName = s.name
              order by timestamp desc
              fetch first row only
              ) coRid
     from sysibm.sysTablespace s
     where dbName = 'DSNDB06'
)
select ts, c.*
     from a join sysibm.sysCopy c
             on rid(c) = a.coRid
;
explain plan set queryno = 3   for
SELECT  'DI,PI,PA,IN' , DBID , PSID , PARTITION , INST
  from
   ( select s.dbName, s.name, p.partition
       , c.inst, s.dbid, s.psid
       , case when c.inst is null
                  then raise_Error(70001, 'c.inst null '
                     || s.dbName || '.' || s.name)
              when s.nTables < 1 then 'n noTables ' || s.nTables
              when p.space < 0      then 'n defineNo ' || s.space
              when f.icType is null then 'f f.icType null'
              when f.icType <> 'F'  then 'f f.logDiscontinuity'
              when f.timestamp < current timestamp-7 days then 'f week'
              when i.icType is null then 'f i.icType null'
              when i.icType not in ('I','F') then 'f i.logDiscontinuity'
              when r.updateStatsTime is null then 'f noRts'
              when r.copyLastTime is null then 'f r.copyLast null'
              when i.timestamp < r.copyLastTime - 60 seconds
                     then 'f i << r.copyLast'
              when r.nactive * 0.1 <= r.copyupdatedpages
                     then 'f updates'
              when r.copyupdatedpages > 0 then 'i updates'
              when r.copyChanges > 0 then 'i changes'
              when r.copyUpdateLRSN is not null then 'i openUpdate'
              else 'n noUpdates'
         end what
    from sysibm.sysTablespace s
      left join  -- clone handling: add instances
          ( select           'N', 1, 1, '-' from sysibm.sysDummy1
            union all select 'Y', 1, 1, 'B' cl from sysibm.sysDummy1
            union all select 'Y', 1, 2, 'C' cl from sysibm.sysDummy1
            union all select 'Y', 2, 1, 'C' cl from sysibm.sysDummy1
            union all select 'Y', 2, 2, 'B' cl from sysibm.sysDummy1
          ) c (sC, sI, inst, cln)
        on s.clone = c.sC and s.instance = c.sI
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
      left join sysibm.sysTableSpaceStats r
        on    s.dbName = r.dbName and s.name = r.name
          and s.dbid = r.dbid and s.psid = r.psid
          and p.partition = r.partition and r.instance = c.inst
      left join -- newest incremental or full copy or log discontinuity
         ( select c.*
             , row_number() over(partition by dbName, tsName, dsNum
                           --              , instance
                                order by timestamp desc) rn
             from sysibm.sysCopy c
             where c.icType not in ('D', 'M', 'Q', 'R', 'T', 'X', 'Z')
         ) i on i.rn = 1
                and s.dbName = i.dbName and s.Name = i.tsName
                and p.partition = i.dsNum
    --          and i.instance = c.inst
      left join -- newest full copy or log discontinuity
         ( select c.*
             , row_number() over(partition by dbName, tsName, dsNum
                                           , instance
                                order by timestamp desc) rn
             from sysibm.sysCopy c
             where c.icType not in ('D','I','M','Q', 'R', 'T', 'X', 'Z')
         ) f on f.rn = 1
                and s.dbName = f.dbName and s.Name = f.tsName
                and p.partition = f.dsNum
                and f.instance = c.inst
    ) q
   where what like 'f%%'
;    /*
explain plan set queryno = 7   for
SELECT  'DI,PI,PA,IN' , DBID , PSID , PARTITION , INST
  from
   ( select s.dbName, s.name, p.partition
       , c.inst, s.dbid, s.psid
       , case when c.inst is null
                  then raise_Error(70001, 'c.inst null '
                     || s.dbName || '.' || s.name)
              when s.nTables < 1 then 'n noTables ' || s.nTables
              when p.space < 0      then 'n defineNo ' || s.space
              when f.icType is null then 'f f.icType null'
              when f.icType <> 'F'  then 'f f.logDiscontinuity'
              when f.timestamp < current timestamp-7 days then 'f week'
              when i.icType is null then 'f i.icType null'
              when i.icType not in ('I','F') then 'f i.logDiscontinuity'
              when r.updateStatsTime is null then 'f noRts'
              when r.copyLastTime is null then 'f r.copyLast null'
              when i.timestamp < r.copyLastTime - 60 seconds
                     then 'f i << r.copyLast'
              when r.nactive * 0.1 <= r.copyupdatedpages
                     then 'f updates'
              when r.copyupdatedpages > 0 then 'i updates'
              when r.copyChanges > 0 then 'i changes'
              when r.copyUpdateLRSN is not null then 'i openUpdate'
              else 'n noUpdates'
         end what
    from sysibm.sysTablespace s
      left join  -- clone handling: add instances
          ( select           'N', 1, 1, '-' from sysibm.sysDummy1
            union all select 'Y', 1, 1, 'B' cl from sysibm.sysDummy1
            union all select 'Y', 1, 2, 'C' cl from sysibm.sysDummy1
            union all select 'Y', 2, 1, 'C' cl from sysibm.sysDummy1
            union all select 'Y', 2, 2, 'B' cl from sysibm.sysDummy1
          ) c (sC, sI, inst, cln)
        on s.clone = c.sC and s.instance = c.sI
      join sysibm.sysTablePart p
        on s.dbName = p.dbName and s.name = p.tsName
      left join sysibm.sysTableSpaceStats r
        on    s.dbName = r.dbName and s.name = r.name
          and s.dbid = r.dbid and s.psid = r.psid
          and p.partition = r.partition and r.instance = c.inst
                -- newest incremental or full copy or log discontinuity
      left join sysibm.sysCopy i
          on rid(i) = (select rid(j)
             from sysibm.sysCopy j
                where s.dbName = j.dbName and s.Name = j.tsName
                and p.partition = j.dsNum
                and j.instance = c.inst
                and j.icType not in ('D', 'M', 'Q', 'R', 'T', 'X', 'Z')
             order by timestamp desc
             fetch first row only
             )
      left join -- newest full copy or log discontinuity
         ( select c.*
             , row_number() over(partition by dbName, tsName, dsNum
                                           , instance
                                order by timestamp desc) rn
             from sysibm.sysCopy c
             where c.icType not in ('D','I','M','Q', 'R', 'T', 'X', 'Z')
         ) f on f.rn = 1
                and s.dbName = f.dbName and s.Name = f.tsName
                and p.partition = f.dsNum
                and f.instance = c.inst
    ) q
   where what like 'f%%'
;     */
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAICT) cre=2012-06-25 mod=2012-06-25-07.31.23 A540769 ---
--- versionen, compiles und explains eines packages ---
select *
    from cmnbatch.plan_view0
    where   collid       = 'CZ'
        and prog         = 'YCTS100'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'CZ'
        and progName     = 'YCTS100'
        and bind_time in ( '2012-05-10-12.20.00.991461'
                          ,'2010-11-11-15.02.50.081875'
                          )
    order by collid, progName, version,
             bind_time,
             queryno,
             qBlockNo, planno, mixopSeq
    with ur
}¢--- A540769.WK.SQL(EXPLAICY) cre=2011-09-21 mod=2011-09-21-20.46.09 A540769 ---
SET CURRENT SQLID='s100447';
DROP          INDEX OA1T.ICZ323$A3$wk;
COMMIT;
CREATE unique INDEX OA1T.ICZ323$A3$wk
  ON OA1T.TCZ323A1
   (CZ32301               ASC,
    CZ32313               ASC)
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE  0 PCTFREE  5
  GBPCACHE CHANGED
  NOT CLUSTER
  PARTITIONED
  COMPRESS NO
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFER yes
  DEFINE YES
  ;
COMMIT;
}¢--- A540769.WK.SQL(EXPLAICZ) cre=2011-09-07 mod=2011-09-22-08.41.10 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_FILTER_TABLE       ;
delete from A540769.DSN_STRUCT_TABLE       ;
delete from A540769.DSN_PREDICAT_TABLE     ;
explain plan set queryno = 0   for
  SELECT Q323.I_DCMNTN_ITEM
       , Q323.I_DOCUMENT_T
       , Q323.I_DCMNT_ARCHIVE_T
       , Q323.D_LEGAL
  FROM   oa1t.VCZ431A1V      Q431
       , oa1t.VCZ323A1V      Q323
  WHERE  Q431.I_OBJECT        = ?
    AND  Q431.D_EFFECTIVE    <= CURRENT DATE
    AND  Q431.D_END           > CURRENT DATE
    AND  Q431.I_IDENTIFIER_T  = 22
    AND  Q431.I_DCMNTN_ITEM   = Q323.I_DCMNTN_ITEM
    AND  Q323.D_EFFECTIVE    <= CURRENT DATE
    AND  Q323.D_END           > CURRENT DATE
    AND  Q323.I_DOCUMENT_T   IN (445, 446, 447, 448,
                                 454, 455, 491, 492)
;
explain plan set queryno = 4   for
                         SELECT Q323.I_DCMNTN_ITEM, Q323.D_LEGAL,
Q323.D_EXPIRATION, Q323.D_EFFECTIVE, Q323.D_TIME_CREATED
FROM oa1t.VCZ431A1V Q431, oa1t.VCZ323A1V Q323
                     WHERE Q431.I_OBJECT = ?  AND Q431.I_IDENTIFIER_T =
23 AND Q431.I_DCMNTN_ITEM = Q323.I_DCMNTN_ITEM AND Q431.D_EFFECTIVE <=
CURRENT DATE AND Q431.D_END > CURRENT DATE AND Q323.I_DOCUMENT_T = 341
AND Q323.D_EFFECTIVE <= CURRENT DATE AND Q323.D_END > CURRENT DATE AND
Q323.D_EXPIRATION >= CURRENT DATE ORDER BY Q323.D_LEGAL DESC,
Q323.D_EFFECTIVE DESC, Q323.D_TIME_CREATED DESC FOR FETCH ONLY
;
explain plan set queryno = 14   for
                         SELECT Q323.I_DCMNTN_ITEM, Q323.D_LEGAL,
Q323.D_EXPIRATION, Q323.D_EFFECTIVE, Q323.D_TIME_CREATED
FROM ( select q.*, smallint(341 + 0 * I_IDENTIFIER_T) kSI
from oa1t.VCZ431A1V q) Q431
    join  oa1t.VCZ323A1V Q323
    on Q431.I_DCMNTN_ITEM = Q323.I_DCMNTN_ITEM
        AND Q323.I_DOCUMENT_T = q431.kSI
                     WHERE Q431.I_OBJECT = ?  AND Q431.I_IDENTIFIER_T =
23                                             AND Q431.D_EFFECTIVE <=
CURRENT DATE AND Q431.D_END > CURRENT DATE
AND Q323.D_EFFECTIVE <= CURRENT DATE AND Q323.D_END > CURRENT DATE AND
Q323.D_EXPIRATION >= CURRENT DATE ORDER BY Q323.D_LEGAL DESC,
Q323.D_EFFECTIVE DESC, Q323.D_TIME_CREATED DESC FOR FETCH ONLY
;
explain plan set queryno = 15   for
                         SELECT Q323.I_DCMNTN_ITEM, Q323.D_LEGAL,
Q323.D_EXPIRATION, Q323.D_EFFECTIVE, Q323.D_TIME_CREATED
from oa1t.VCZ431A1V Q431
    join  (select * from oa1t.VCZ323A1V
               where I_DOCUMENT_T = 431) q323
    on Q431.I_DCMNTN_ITEM = Q323.I_DCMNTN_ITEM
                     WHERE Q431.I_OBJECT = ?  AND Q431.I_IDENTIFIER_T =
23                                             AND Q431.D_EFFECTIVE <=
CURRENT DATE AND Q431.D_END > CURRENT DATE
AND Q323.D_EFFECTIVE <= CURRENT DATE AND Q323.D_END > CURRENT DATE AND
Q323.D_EXPIRATION >= CURRENT DATE ORDER BY Q323.D_LEGAL DESC,
Q323.D_EFFECTIVE DESC, Q323.D_TIME_CREATED DESC FOR FETCH ONLY
;
explain plan set queryno = 24   for
select I_DCMNTN_ITEM, I_DCMNTN_ITEM
from  oa1t.VCZ323A1V  q323
    where ? = Q323.I_DCMNTN_ITEM
        AND Q323.I_DOCUMENT_T = ?
;
explain plan set queryno = 25   for
select CZ32301, CZ32313
from  oa1t.tCZ323A1   q323
    where ?         = Q323.CZ32301
        AND Q323.CZ32313   IN ( ?, ?, ?)
;
explain plan set queryno = 34   for
select *
from  oa1t.VCZ323A1V  q323
    where ? = Q323.I_DCMNTN_ITEM
        AND Q323.I_DOCUMENT_T = ?
;
explain plan set queryno = 35   for
select *
from  oa1t.tCZ323A1   q323
    where ?         = Q323.CZ32301
        AND Q323.CZ32313   IN ( ?, ?, ?)
;
explain plan set queryno = 36   for
select *
from  oa1t.tCZ323A1   q323
    where ?         = Q323.CZ32301
        AND Q323.CZ32313   IN ( ?, ?, ?)
        AND Q323.CZ32304   >= CURRENT DATE
        AND Q323.CZ32309   <  CURRENT DATE
;
explain plan set queryno = 44   for
select A.*
from  oa1t.tCZ323A1   A
    , oa1t.tCZ323A1   B
    where A.CZ32301 = B.CZ32301
      AND ?         = A.CZ32301
      AND A.CZ32313   IN ( ?, ?, ?)
      AND B.CZ32313   IN ( ?, ?, ?)
;
explain plan set queryno = 45   for
select B.*
from  oa1t.tCZ323A1   A
    , oa1t.tCZ323A1   B
    where A.CZ32301 = B.CZ32301
      AND ?         = A.CZ32301
      AND A.CZ32313   IN ( ?, ?, ?)
      AND B.CZ32313   IN ( ?, ?, ?)
;
explain plan set queryno = 46   for
select B.*
from  oa1t.VCZ323A1V  A
    , oa1t.VCZ323A1V  B
    where A.I_DCMNTN_ITEM    = B.I_DCMNTN_ITEM
      AND ?         = A.I_DCMNTN_ITEM
      AND A.I_DOCUMENT_T     IN ( ?, ?, ?)
      AND B.I_DOCUMENT_T     IN ( ?, ?, ?)
      AND  B.D_EFFECTIVE    <= CURRENT DATE
      AND  B.D_END           > CURRENT DATE
;
explain plan set queryno = 47   for
select A.*
from  oa1t.VCZ323A1V  A
    , oa1t.VCZ323A1V  B
    where A.I_DCMNTN_ITEM    = B.I_DCMNTN_ITEM
      AND ?         = A.I_DCMNTN_ITEM
      AND A.I_DOCUMENT_T     IN ( ?, ?, ?)
      AND B.I_DOCUMENT_T     IN ( ?, ?, ?)
      AND  B.D_EFFECTIVE    <= CURRENT DATE
      AND  B.D_END           > CURRENT DATE
;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
select *
    from          plan_ViewPred
order by collid, progName, applName, explain_time,
         queryNo, qBlockNo, planno,
         stage, PREDNo
;
rollback;
;;
select * from  plan_view1
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;;;
select * from  cmnBatch.plan_view1
 where progName in ('EC5492')     and collid     = 'EC'
 --    and bind_time = '2011-02-10-10.55.40.578363'
       and  version = 'PFB0000070'
    order by applname, collid, progname,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from CMNBATCH.plan_ViewPred
    where progname = 'EC5492' and collid = 'EC'
        and explain_time = '2011-08-11-14.41.27.996738'
order by collid, progName, applName, explain_time,
         queryNo, qBlockNo, planno,
         stage, orderNo
;;
-- versionen, Compiles und Binds pro Programm
with e as
(
select count(*) c, progName pg, version vr, collid co, bind_time bt
    from cmnBatch.plan_table
    group by progName, version, collid, bind_time
)
select substr(e.pg, 1, 8) pg, date(p.pcTimeStamp) "preComp",
         date(e.bt) "bind", c "#plan_t", vr,

        e.*, p.*
    from e
    full outer join sysibm.sysPackage p
    on e.co = p.collid and e.pg = p.name and e.vr = p.version
    where e.pg = 'EC5492' and e.vr = 'PFB0000070'
    order by e.co, e.pg, p.pcTimeStamp desc, e.bt desc
    with ur
;
-- versionen, Compiles und Binds pro Programm
with e as
(
select count(*) c, progName pg, version vr, collid co, bind_time bt
    from cmnBatch.plan_table
    group by progName, version, collid, bind_time
)
select substr(e.pg, 1, 8) pg, date(p.pcTimeStamp) "preComp",
         date(e.bt) "bind", c "#plan_t", vr,

        e.*, p.*
    from e
    full outer join sysibm.sysPackage p
    on e.co = p.collid and e.pg = p.name and e.vr = p.version
    where e.pg = 'YKCLOGS'
    order by e.co, e.pg, p.pcTimeStamp desc, e.bt desc
    with ur
;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 0   for
        select *
            from sysibm.sysDummy1
;
select * from  plan_view1
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;;;
with c as
(
select count(*) c
    from oa1p.tcz431a1
    group by   CZ43106
             , CZ43108
             , CZ43104
)
select count(*), c, count(*) * c
    from c
    group by c
    order by 2 desc
    with ur
;;
select count(*), CZ32313
    from oa1p.tcz323a1
    group by CZ32313
    order by 2 asc
    with ur
;;;;;;
}¢--- A540769.WK.SQL(EXPLAIDI) cre=2014-06-18 mod=2014-10-23-10.27.08 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
/* -----------------
128 SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
    DI00206, DI00207 INTO :DI00200, :DI00201, :DI00202, :DI00203,
    :DI00204, :DI00205, :DI00206, :DI00207 FROM VDI002A1A A WHERE
    DI00201 <= :DIT002I_GDA AND DI00201 = ( SELECT MAX ( DI00201 ) FROM
     VDI002A1A WHERE DI00201 <= :DIT002I_GDA AND DI00202 = A.DI00202
    AND DI00203 = A.DI00203 AND DI00204 >= :DIT002I_GDA AND DI00205 =
    A.DI00205 ) AND DI00202 = :DIT002I_WIDT AND DI00203 = '  ' AND
    DI00204 >= :DIT002I_GDA AND DI00205 = :DIT002I_WID
189 SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
    DI00206, DI00207 INTO :DI00200, :DI00201, :DI00202, :DI00203,
    :DI00204, :DI00205, :DI00206, :DI00207 FROM VDI002A1A A WHERE
    DI00200 = ( SELECT MIN ( DI00200 ) FROM VDI002A1A WHERE DI00201 <=
    :DIT002I_GDA AND DI00202 = A.DI00202 AND DI00203 = A.DI00203 AND
    DI00204 >= :DIT002I_GDA AND DI00205 = A.DI00205 ) AND DI00201 <=
    :DIT002I_GDA AND DI00201 = ( SELECT MAX ( DI00201 ) FROM VDI002A1A
    WHERE DI00201 <= :DIT002I_GDA AND DI00202 = A.DI00202 AND DI00203 =
     A.DI00203 AND DI00204 >= :DIT002I_GDA AND DI00205 = A.DI00205 )
    AND DI00202 = :DIT002I_WIDT AND DI00203 = '  ' AND DI00204 >=
    :DIT002I_GDA AND DI00205 = :DIT002I_WID
----------------*/
explain plan set queryno = 128 for
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
       DI00206, DI00207   -- INTO :DIT002_OUT.
    from oa1p.VDI002A1A A
    WHERE DI00201 <= ? AND DI00201 =
          ( SELECT MAX ( DI00201 )
              FROM oa1p.VDI002A1A
              WHERE DI00201 <= ?
                  AND DI00202 = A.DI00202 AND DI00203 = A.DI00203
                  AND DI00204 >= ? AND DI00205 = A.DI00205
          )
        AND DI00202 = ? AND DI00203 = '  '
        AND DI00204 >= ? AND DI00205 = ?
;

explain plan set queryno = 1128 for
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
       DI00206, DI00207   -- INTO :DIT002_OUT.
    from oa1p.VDI002A1A A
    WHERE DI00201 <= ?
        AND DI00202 = ? AND DI00203 = '  '
        AND DI00204 >= ? AND DI00205 = ?
    order by di00201 desc
    fetch first 1 row only
;
explain plan set queryno = 2128 for
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
       DI00206, DI00207   -- INTO :DIT002_OUT.
    from oa1p.VDI002A1A A
    WHERE DI00201 <= ?
        AND DI00202 = ? AND DI00203 = '  '
        AND DI00204 >= ? AND DI00205 = ?
    order by di00200 asc, di00201 desc
    fetch first 1 row only
;

select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
explain plan set queryno = 189 for
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
       DI00206, DI00207   -- INTO :DIT002_OUT.
    from oa1p.VDI002A1A A
    WHERE DI00200 = ( SELECT MIN ( DI00200 )
              from oa1p.VDI002A1A
              WHERE DI00201 <= ?
                  AND DI00202 = A.DI00202 AND DI00203 = A.DI00203
                  AND DI00204 >= ? AND DI00205 = A.DI00205
          )
        AND DI00201 <= ?
        AND DI00201  =
          ( SELECT MAX ( DI00201 )
              FROM oa1p.VDI002A1A
              WHERE DI00201 <= ?
                  AND DI00202 = A.DI00202 AND DI00203 = A.DI00203
                  AND DI00204 >= ? AND DI00205 = A.DI00205
          )
        AND DI00202 = ? AND DI00203 = '  '
        AND DI00204 >= ? AND DI00205 = ?
;
explain plan set queryno = 1189 for
with s as
(
SELECT *
    from oa1p.VDI002A1A A
    where DI00201 <= ?
        AND DI00202 = ? AND DI00203 = '  '
        AND DI00204 >= ? AND DI00205 = ?
    order by di00201 desc
    fetch first 1 row only
)
SELECT DI00200, DI00201, DI00202, DI00203, DI00204, DI00205,
       DI00206, DI00207   -- INTO :DIT002_OUT.
    from s a
    WHERE DI00200 = ( SELECT MIN ( DI00200 )
              from oa1p.VDI002A1A
              WHERE DI00201 <= ?
                  AND DI00202 = A.DI00202 AND DI00203 = A.DI00203
                  AND DI00204 >= ? AND DI00205 = A.DI00205
          )
;
with s as
(
select distinct DI00202, DI00203, DI00205, row_number() over () r
     FROM oa1p.VDI002A1A
     where di00203 = ''
)
select * from s
     order by mod(r, 223)
;x;
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'DI'
        and prog         = 'YDIT002'
    order by pcEx  desc, explain_time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
    from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'DI'
        and progName     = 'YDIT002'
        and explain_time = '2014-04-20-05.17.56.918285'
    order by collid, progName, version, explain_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'DI'
        and progName     = 'YDIT002'
        and explain_time = '2014-04-20-05.17.56.918285'
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
}¢--- A540769.WK.SQL(EXPLAIDP) cre=2011-01-10 mod=2011-05-20-09.42.54 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.dsn_filter_table;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_detcost_table;
explain plan set queryno = 1   for
select *
     FROM   oa1t.VDP080A1 a
     WHERE a."orderId" = ?
     and A."requestTimestamp"= (select max(B."requestTimestamp")
                                     from oa1t.VDP080A1 B
                                where B."orderId" = ?)
;
explain plan set queryno = 2   for
select *
     FROM   oa1t.VDP080A1 a
     WHERE a."orderId" = ?
     order by A."requestTimestamp" desc
--   fetch first 1 row only
;
explain plan set queryno = 11   for
select *
     FROM   oa1t.VDP080A1 a
     WHERE a."orderId" = ?
     and A."requestTimestamp"= (select min(B."requestTimestamp")
                                     from oa1t.VDP080A1 B
                                where B."orderId" = ?)
;
explain plan set queryno = 12   for
select *
     FROM   oa1t.VDP080A1 a
     WHERE a."orderId" = ?
     order by A."requestTimestamp" asc
 --  fetch first 1 row only
;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2Det
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno, mixOpSeqNo,
             stage, orderNo
;
rollback
;;;
select * from  cmnBatch.plan_view1
 where progName in ('DP071@I')  and collid     = 'DP'
       and bind_time = '2011-01-11-14.16.02.848410'
       and  queryno in (554, 582)
  --   and  version = 'DBH000012659B91C5F'
    order by bind_time desc,
    applname, progname, queryNo, qblockno, planno,
             tname
;
select * from  cmnBatch.plan_view1
 where progName in ('DP071@I')  and collid     = 'DP'
       and bind_time = '2010-11-12-18.49.51.585790'
       and  queryno in (542, 570)
  --   and  version = 'DBH000012659B91C5F'
    order by bind_time desc,
    applname, progname, queryNo, qblockno, planno,
             tname
;  ;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 542 for
      select *
      from oa1p.tdp021a1 b
      where  b.dp02162    = ?
;
explain plan set queryno = 570 for
      select *
      from   oa1p.tdp020a1 c
      where  c.dp02005 = ?
;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select count(*), dp02005
      from oa1p.tdp020a1 b
      group by dp02005
      order by 1 desc
      with ur
;
select count(*), dp02162
      from oa1p.tdp021a1 b
      group by dp02162
      order by 1 desc
      with ur
}¢--- A540769.WK.SQL(EXPLAIEL) cre=2011-02-03 mod=2011-09-07-18.20.21 A540769 ---
set current sqlid = 'A540769';
delete from plan_table;
set current path = oa1t;
explain plan set queryno = 1 for
SELECT '1'        FROM oa1t.VEL005A1V B
WHERE (B.CPID = ?  AND B.OWNER_CIF
= '') OR B.USER_CIF = ? OR B.USER_ID = ?  OR B.COLLECTION_ID = ?
;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;;;;
explain plan set queryno = 1 for
SELECT DISTINCT
       CAST(P.PARTNER_ID    AS CHAR(12))            AS CIF
      ,CAST(P.BU            AS CHAR(04))            AS BU
      ,CAST(LE.LE           AS CHAR(04))            AS LE
      ,CAST(
       CASE
         WHEN  COALESCE(P.CUSTOMER_TYPE,' ') = ' ' THEN '000'
         ELSE P.CUSTOMER_TYPE
       END                  AS CHAR(03))            AS CLIENT_TYPE
      ,CAST(
       CASE
         WHEN  COALESCE(P.CUSTOMER_SEGMENT,' ') = ' ' THEN '000'
         ELSE P.CUSTOMER_SEGMENT
       END                  AS CHAR(03))            AS CLIENT_SEGMENT
      ,CAST(COALESCE(TCD.COUNTRY_CODE,'001')
                                        AS CHAR(03))   AS NAT_CODE
      ,CAST(COALESCE(TCD.COUNTRY_CODE_ISO2,'EU')
                                        AS CHAR(02))   AS NAT_CODE_ISOA2
      ,CAST(COALESCE(TCD.COUNTRY_CODE_ISO3,'EU ')
                                        AS CHAR(03))   AS NAT_CODE_ISOA3
      ,CAST(P.DOMIZIL             AS CHAR(03))   AS DOMICILE_CODE
      ,CAST(DOM.COUNTRY_CODE_ISO2 AS CHAR(02))   AS DOMICILE_CODE_ISOA2
      ,CAST(DOM.COUNTRY_CODE_ISO3 AS CHAR(03))   AS DOMICILE_CODE_ISOA3
      ,CAST('A '                  AS CHAR(02))   AS STATUS
      ,CAST(
       CASE
         WHEN COALESCE(TCD.CD100452,' ') = ' '
           THEN '                '
         ELSE TCD.CD100452
       END AS CHAR(16))                          AS CLIENT_OFFICE
      ,CAST(P.COMMENT   AS CHAR(255))            AS COMMENTS
      ,CAST(CASE
              WHEN COALESCE(TCD.CD100322,' ') = ' ' THEN 0
              WHEN SUBSTR(CD100322,1,4) = '0000' THEN 0
              ELSE
                (SMALLINT(YEAR(CURRENT DATE)) -
                 SMALLINT(SUBSTR(CD100322,1,4)))
            END AS SMALLINT)                     AS AGE
      ,TIMESTAMP(P.LOCK_FROM_DATE,'00.00.00')    AS LOCK_FROM
      ,TIMESTAMP(P.LOCK_TO_DATE,'00.00.00')      AS LOCK_TO
      ,P.LAST_UPDATE_TIME                        AS LAST_UPDATE_TIME
      ,CAST(P.LAST_UPDATE_ID  AS CHAR(10))       AS LAST_UPDATE_ID
      ,P.CONTROL_TIME                            AS CONTROL_TIME
  FROM
       oa1t.VEL105A1V LE ,
       oa1t.VEL140A1V DOM,
       oa1t.VELKS831A1VC4 P
         LEFT OUTER JOIN
      (SELECT   CD100001
               ,CD100004
               ,CD100452
               ,CD100322
               ,COUNTRY_CODE
               ,COUNTRY_CODE_ISO2
               ,COUNTRY_CODE_ISO3
       FROM   oa1t.TCD100A1
             ,oa1t.VEL140A1V
             WHERE COUNTRY_CODE = CD100325 ) AS TCD
       ON P.PARTNER_ID = TCD.CD100001
       AND P.BU = TCD.CD100004
 WHERE LE.BU            = P.BU
   AND DOM.COUNTRY_CODE = P.DOMIZIL
   AND CURRENT DATE BETWEEN P.VALID_FROM_DATE AND P.VALID_TO_DATE
UNION
SELECT DISTINCT
       CAST(P.PARTNER_ID    AS CHAR(12))            AS CIF
      ,CAST(P.BU            AS CHAR(04))            AS BU
      ,CAST(LE.LE           AS CHAR(04))            AS LE
      ,CAST(
       CASE
         WHEN  COALESCE(P.CUSTOMER_TYPE,' ') = ' ' THEN '000'
         ELSE P.CUSTOMER_TYPE
       END                  AS CHAR(03))            AS CLIENT_TYPE
      ,CAST(
       CASE
         WHEN  COALESCE(P.CUSTOMER_SEGMENT,' ') = ' ' THEN '000'
         ELSE P.CUSTOMER_SEGMENT
       END                  AS CHAR(03))            AS CLIENT_SEGMENT
      ,CAST(COALESCE(TCD.COUNTRY_CODE,'001')
                                        AS CHAR(03))   AS NAT_CODE
      ,CAST(COALESCE(TCD.COUNTRY_CODE_ISO2,'EU')
                                        AS CHAR(02))   AS NAT_CODE_ISOA2
      ,CAST(COALESCE(TCD.COUNTRY_CODE_ISO3,'EU ')
                                        AS CHAR(03))   AS NAT_CODE_ISOA3
      ,CAST(P.DOMIZIL             AS CHAR(03))   AS DOMICILE_CODE
      ,CAST(DOM.COUNTRY_CODE_ISO2 AS CHAR(02))   AS DOMICILE_CODE_ISOA2
      ,CAST(DOM.COUNTRY_CODE_ISO3 AS CHAR(03))   AS DOMICILE_CODE_ISOA3
      ,CAST('I '                  AS CHAR(02))   AS STATUS
      ,CAST(
       CASE
         WHEN COALESCE(TCD.CD100452,' ') = ' '
           THEN '                '
         ELSE TCD.CD100452
       END AS CHAR(16))                          AS CLIENT_OFFICE
      ,CAST(P.COMMENT   AS CHAR(255))            AS COMMENTS
      ,CAST(CASE
              WHEN COALESCE(TCD.CD100322,' ') = ' ' THEN 0
              WHEN SUBSTR(CD100322,1,4) = '0000' THEN 0
              ELSE
                (SMALLINT(YEAR(CURRENT DATE)) -
                 SMALLINT(SUBSTR(CD100322,1,4)))
            END AS SMALLINT)                     AS AGE
      ,TIMESTAMP(P.LOCK_FROM_DATE,'00.00.00')    AS LOCK_FROM
      ,TIMESTAMP(P.LOCK_TO_DATE,'00.00.00')      AS LOCK_TO
      ,P.LAST_UPDATE_TIME                        AS LAST_UPDATE_TIME
      ,CAST(P.LAST_UPDATE_ID  AS CHAR(10))       AS LAST_UPDATE_ID
      ,P.CONTROL_TIME                            AS CONTROL_TIME
  FROM
       oa1t.VEL105A1V LE ,
       oa1t.VEL140A1V DOM,
       oa1t.VELKS831A1VC4 P
         LEFT OUTER JOIN
      (SELECT   CD100001
               ,CD100004
               ,CD100452
               ,CD100322
               ,COUNTRY_CODE
               ,COUNTRY_CODE_ISO2
               ,COUNTRY_CODE_ISO3
       FROM   oa1t.TCD100A1
             ,oa1t.VEL140A1V
             WHERE COUNTRY_CODE = CD100325 ) AS TCD
       ON P.PARTNER_ID = TCD.CD100001
       AND P.BU = TCD.CD100004
 WHERE LE.BU            = P.BU
   AND DOM.COUNTRY_CODE = P.DOMIZIL
   AND CURRENT DATE NOT BETWEEN P.VALID_FROM_DATE AND P.VALID_TO_DATE
  WITH UR;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;;;;
explain plan set queryno=2 for
SELECT DISTINCT
       CAST(V45.C_PID          AS CHAR(8))       AS CPID
      ,CAST('            '     AS CHAR(12))      AS PARTNER_ID
      ,CAST(CD600013           AS CHAR (20))     AS AGREEMENT_ID
      ,CAST(V31O.PARTNER_ID    AS CHAR(12))      AS OWNER_PARTNER_ID
      ,CAST(ACT.ACCOUNT_GROUP  AS CHAR(05))      AS ACCOUNT_GROUP
      ,CAST(ACT.ACCOUNT_GROUP  AS CHAR(05))      AS AGREEMENT_TYPE
      ,CAST(MP.MPRODUCT AS CHAR(10))             AS PRODUCT
      ,CAST(V43.TAB_TEXT3 AS CHAR(10))           AS SERVICE
      ,CAST(COALESCE(V38.VISUM_TIME,'9999-12-31-23.59.59.999999')
            AS CHAR(26))                         AS VISUM_2_TIMESTAMP
      ,CAST(COALESCE(V38.VISUM,' ') AS CHAR(8))  AS VISUM_2_PID
      ,CAST(CASE
              WHEN V35.STATE = 'F2' THEN '1'
              ELSE '0'
            END AS CHAR(1))                     AS FREE_FORM_SIGN_BOOL
      ,CAST(CASE
              WHEN V35.STATE = 'F2' THEN V35.COMMENT
              ELSE ' '
            END AS CHAR(255))             AS FREE_FORM_SIGN_COMMENT
      ,CAST('0' AS CHAR(1))                      AS RESTRICTED_BOOL
      ,CAST(' ' AS    CHAR(255))                 AS RESTRICTED_RULE
      ,V35.VALID_FROM_DATE                       AS VALID_FROM
      ,V35.VALID_TO_DATE                         AS VALID_TO
      ,TIMESTAMP(V35.LOCK_FROM_DATE,'00.00.00')  AS LOCKED_FROM
      ,TIMESTAMP(V35.LOCK_TO_DATE,'00.00.00')    AS LOCKED_TO
      ,CAST(' '               AS    CHAR(255))   AS COMMENTS
      ,CAST('1' AS CHAR(1))                      AS VIRTUAL_BOOL
      ,V35.LAST_UPDATE_TIME                      AS LAST_UPDATE_TIME
      ,V35.LAST_UPDATE_ID                        AS LAST_UPDATE_ID
      ,V35.CONTROL_TIME                          AS CONTROL_TIME
  FROM
       oa1t.VELKS833A1VC4 V33,
       oa1t.VELKS858A1VC4 V58,
       oa1t.VELKS831A1VC4 V31U,
       oa1t.VELKS831A1VC4 V31O,
       oa1t.VELKS845A1VC4 V45,
       oa1t.VEL220A1V     ACT,
       oa1t.VEL105A1V BU ,
       oa1t.VEL080A1V MP ,
       oa1t.TCD600A1     ,
       oa1t.VELKS843A1VC4 V43,
       oa1t.VELKS835A1VC4 V35
         LEFT OUTER JOIN
       oa1t.VELKS838A1VC4 V38
          ON V35.CONTRACT_KEY       = V38.CONTRACT_KEY
         AND V35.PARTNER_KEY        = V38.PARTNER_KEY
         AND V35.PARTNER_TYPE       = V38.PARTNER_TYPE
         AND V35.ARRANGEMENT_ID     = V38.ARRANGEMENT_ID
         AND V35.ARRANGEMENT_TYPE   = V38.ARRANGEMENT_TYPE
         AND V35.SERVICE_KEY        = V38.SERVICE_KEY
         AND V38.VISUM_NUMBER       = 2
 WHERE V35.ARRANG_PARTNER_KEY = V31O.PARTNER_KEY

   AND V35.PARTNER_KEY        = V31U.PARTNER_KEY

   AND MP.PRODUCT             = V35.PRODUCT_ID

   AND V43.TAB_ART            = 'SERVICE_ID'
   AND V43.TAB_LANGUAGE_CODE  = '004'
   AND V43.TAB_CODE           = V35.SERVICE_KEY

   AND V35.ARRANGEMENT_TYPE   = 'CIF'

   AND ACT.ACCOUNT_ID         = CD600013
   AND ( ACT.OWNER_ID         = V31O.PARTNER_ID||'        '
         OR ACT.ACCOUNT_HOLDER= V31O.PARTNER_ID||'        ')

   AND V35.CONTRACT_KEY       = V33.CONTRACT_KEY
   AND V35.PARTNER_KEY        = V33.PARTNER_KEY
   AND V35.PARTNER_TYPE       = V33.PARTNER_TYPE
   AND V58.PARTNER_KEY        = V35.PARTNER_KEY
   AND V45.PARTNER_KEY        = V33.PARTNER_KEY
   AND V45.CONTRACT_COLL      = V33.CONTRACT_COLL
   AND V45.IDENT_ID           = V58.IDENT_ID
   AND CD600016 = V31O.PARTNER_ID
   AND CD600020 IN ('0001','1001')
   AND CD600018 = BU.BU
   AND NOT EXISTS ( SELECT 'F'
                    FROM  oa1t.VELKS843A1VC4 CP
                  WHERE CP.TAB_ART = 'CIFE_PRODUCT'
                    AND CP.TAB_CODE = V35.PRODUCT_ID )

   AND NOT EXISTS ( SELECT 'F'
                    FROM oa1t.VELKS843A1VC4 CS
                  WHERE CS.TAB_ART = 'CIFE_SERVICE'
                    AND CS.TAB_CODE = V35.SERVICE_KEY
                    AND CS.TAB_TEXT3 = V35.ARRANGEMENT_TYPE )

  WITH UR;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
set current sqlid = 'A540769';
delete from plan_table;
set current path = oa1t;
explain plan set queryno=5 for
SELECT DISTINCT
       CAST(V31O.PARTNER_ID    AS CHAR(12))      AS PARTNER_ID
      ,CAST('CIF* '            AS CHAR(05))      AS AGREEMENT_TYPE
      ,CAST(MP.MPRODUCT AS CHAR(10))             AS PRODUCT
      ,CAST(V43.TAB_TEXT3 AS CHAR(10))           AS SERVICE
      ,CAST(COALESCE(V38.VISUM_TIME,'9999-12-31-23.59.59.999999')
            AS CHAR(26))                         AS VISUM_2_TIMESTAMP
      ,CAST(COALESCE(V38.VISUM,' ') AS CHAR(8))  AS VISUM_2_PID
      ,CAST(CASE
              WHEN V35.STATE = 'F2' THEN '1'
              ELSE '0'
            END AS CHAR(1))                     AS FREE_FORM_SIGN_BOOL
      ,CAST(CASE
              WHEN V35.STATE = 'F2' THEN V35.COMMENT
              ELSE ' '
            END AS CHAR(255))             AS FREE_FORM_SIGN_COMMENT
      ,V35.VALID_FROM_DATE                       AS VALID_FROM
      ,V35.VALID_TO_DATE                         AS VALID_TO
      ,TIMESTAMP(V35.LOCK_FROM_DATE,'00.00.00')  AS LOCKED_FROM
      ,TIMESTAMP(V35.LOCK_TO_DATE,'00.00.00')    AS LOCKED_TO
      ,V35.LAST_UPDATE_TIME                      AS LAST_UPDATE_TIME
      ,CAST(V35.LAST_UPDATE_ID AS CHAR(10))      AS LAST_UPDATE_ID
      ,V35.CONTROL_TIME                          AS CONTROL_TIME
  FROM
         oa1t.VELKS831A1VC4 V31O,
         oa1t.VEL080A1V MP ,
         oa1t.VELKS843A1VC4 V43,
         oa1t.VELKS835A1VC4 V35
           LEFT OUTER JOIN
         oa1t.VELKS838A1VC4 V38
            ON V35.CONTRACT_KEY       = V38.CONTRACT_KEY
           AND V35.PARTNER_KEY        = V38.PARTNER_KEY
           AND V35.PARTNER_TYPE       = V38.PARTNER_TYPE
           AND V35.ARRANGEMENT_ID     = V38.ARRANGEMENT_ID
           AND V35.ARRANGEMENT_TYPE   = V38.ARRANGEMENT_TYPE
           AND V35.SERVICE_KEY        = V38.SERVICE_KEY
           AND V38.VISUM_NUMBER       = 2
   WHERE V35.ARRANG_PARTNER_KEY = V31O.PARTNER_KEY

     AND MP.PRODUCT             = V35.PRODUCT_ID

     AND V43.TAB_ART            = 'SERVICE_ID'
     AND V43.TAB_LANGUAGE_CODE  = '004'
     AND V43.TAB_CODE           = V35.SERVICE_KEY
     AND V35.ARRANGEMENT_TYPE  = 'CIF'
 ;
explain plan set queryno=404 for
SELECT DISTINCT
       CAST(V45.C_PID          AS CHAR(8))       AS CPID
      ,CAST('            '     AS CHAR(12))      AS PARTNER_ID
      ,CAST(CD600013           AS CHAR (20))     AS AGREEMENT_ID
      ,CAST(V31O.PARTNER_ID    AS CHAR(12))      AS OWNER_PARTNER_ID
      ,CAST(ACT.ACCOUNT_GROUP  AS CHAR(05))      AS ACCOUNT_GROUP
      ,CAST(ACT.ACCOUNT_GROUP  AS CHAR(05))      AS AGREEMENT_TYPE
      ,CAST(MP.MPRODUCT AS CHAR(10))             AS PRODUCT
      ,CAST(V43.TAB_TEXT3 AS CHAR(10))           AS SERVICE
      ,CAST(COALESCE(V38.VISUM_TIME,'9999-12-31-23.59.59.999999')
            AS CHAR(26))                         AS VISUM_2_TIMESTAMP
      ,CAST(COALESCE(V38.VISUM,' ') AS CHAR(8))  AS VISUM_2_PID
      ,CAST(CASE
              WHEN V35.STATE = 'F2' THEN '1'
              ELSE '0'
            END AS CHAR(1))                     AS FREE_FORM_SIGN_BOOL
      ,CAST(CASE
              WHEN V35.STATE = 'F2' THEN V35.COMMENT
              ELSE ' '
            END AS CHAR(255))             AS FREE_FORM_SIGN_COMMENT
      ,CAST('0' AS CHAR(1))                      AS RESTRICTED_BOOL
      ,CAST(' ' AS    CHAR(255))                 AS RESTRICTED_RULE
      ,V35.VALID_FROM_DATE                       AS VALID_FROM
      ,V35.VALID_TO_DATE                         AS VALID_TO
      ,TIMESTAMP(V35.LOCK_FROM_DATE,'00.00.00')  AS LOCKED_FROM
      ,TIMESTAMP(V35.LOCK_TO_DATE,'00.00.00')    AS LOCKED_TO
      ,CAST(' '               AS    CHAR(255))   AS COMMENTS
      ,CAST('1' AS CHAR(1))                      AS VIRTUAL_BOOL
      ,V35.LAST_UPDATE_TIME                      AS LAST_UPDATE_TIME
      ,V35.LAST_UPDATE_ID                        AS LAST_UPDATE_ID
      ,V35.CONTROL_TIME                          AS CONTROL_TIME
  FROM
       oa1t.VELKS833A1VC4 V33,
       oa1t.VELKS858A1VC4 V58,
       oa1t.VELKS831A1VC4 V31U,
       oa1t.VELKS831A1VC4 V31O,
       oa1t.VELKS845A1VC4 V45,
       oa1t.VEL220A1V     ACT,
       oa1t.VEL105A1V BU ,
       oa1t.VEL080A1V MP ,
       oa1t.TCD600A1     ,
       oa1t.VELKS843A1VC4 V43,
       oa1t.VELKS835A1VC4 V35
         LEFT OUTER JOIN
       oa1t.VELKS838A1VC4 V38
          ON V35.CONTRACT_KEY       = V38.CONTRACT_KEY
         AND V35.PARTNER_KEY        = V38.PARTNER_KEY
         AND V35.PARTNER_TYPE       = V38.PARTNER_TYPE
         AND V35.ARRANGEMENT_ID     = V38.ARRANGEMENT_ID
         AND V35.ARRANGEMENT_TYPE   = V38.ARRANGEMENT_TYPE
         AND V35.SERVICE_KEY        = V38.SERVICE_KEY
         AND V38.VISUM_NUMBER       = 2
 WHERE V35.ARRANG_PARTNER_KEY = V31O.PARTNER_KEY

   AND V35.PARTNER_KEY        = V31U.PARTNER_KEY

   AND MP.PRODUCT             = V35.PRODUCT_ID

   AND V43.TAB_ART            = 'SERVICE_ID'
   AND V43.TAB_LANGUAGE_CODE  = '004'
   AND V43.TAB_CODE           = V35.SERVICE_KEY

   AND V35.ARRANGEMENT_TYPE   = 'CIF'

   AND ACT.ACCOUNT_ID         = CD600013
   AND ( ACT.OWNER_ID         = V31O.PARTNER_ID||'        '
         OR ACT.ACCOUNT_HOLDER= V31O.PARTNER_ID||'        ')

   AND V35.CONTRACT_KEY       = V33.CONTRACT_KEY
   AND V35.PARTNER_KEY        = V33.PARTNER_KEY
   AND V35.PARTNER_TYPE       = V33.PARTNER_TYPE
   AND V58.PARTNER_KEY        = V35.PARTNER_KEY
   AND V45.PARTNER_KEY        = V33.PARTNER_KEY
   AND V45.CONTRACT_COLL      = V33.CONTRACT_COLL
   AND V45.IDENT_ID           = V58.IDENT_ID
   AND CD600016 = V31O.PARTNER_ID
   AND CD600020 IN ('0001','1001')
   AND CD600018 = BU.BU
   AND NOT EXISTS ( SELECT 'F'
                    FROM  oa1t.VELKS843A1VC4 CP
                  WHERE CP.TAB_ART = 'CIFE_PRODUCT'
                    AND CP.TAB_CODE = V35.PRODUCT_ID )

   AND NOT EXISTS ( SELECT 'F'
                    FROM oa1t.VELKS843A1VC4 CS
                  WHERE CS.TAB_ART = 'CIFE_SERVICE'
                    AND CS.TAB_CODE = V35.SERVICE_KEY
                    AND CS.TAB_TEXT3 = V35.ARRANGEMENT_TYPE )

  WITH UR;
explain plan set queryno=405 for
SELECT DISTINCT
       CAST(V45.C_PID          AS CHAR(8))       AS CPID
      ,CAST(V31O.PARTNER_ID    AS CHAR(12))      AS PARTNER_ID
      ,CAST('                ' AS CHAR (20))     AS AGREEMENT_ID
      ,CAST('            '     AS CHAR(12))      AS OWNER_PARTNER_ID
      ,CAST('     '            AS CHAR(05))      AS ACCOUNT_GROUP
      ,CAST('CIF* '            AS CHAR(05))      AS AGREEMENT_TYPE
      ,CAST(MP.MPRODUCT AS CHAR(10))             AS PRODUCT
      ,CAST(V43.TAB_TEXT3 AS CHAR(10))           AS SERVICE
      ,CAST(COALESCE(V38.VISUM_TIME,'9999-12-31-23.59.59.999999')
            AS CHAR(26))                         AS VISUM_2_TIMESTAMP
      ,CAST(COALESCE(V38.VISUM,' ') AS CHAR(8))  AS VISUM_2_PID
      ,CAST(CASE
              WHEN V35.STATE = 'F2' THEN '1'
              ELSE '0'
            END AS CHAR(1))                     AS FREE_FORM_SIGN_BOOL
      ,CAST(CASE
              WHEN V35.STATE = 'F2' THEN V35.COMMENT
              ELSE ' '
            END AS CHAR(255))             AS FREE_FORM_SIGN_COMMENT
      ,CAST('0' AS CHAR(1))                      AS RESTRICTED_BOOL
      ,CAST(' ' AS    CHAR(255))                 AS RESTRICTED_RULE
      ,V35.VALID_FROM_DATE                       AS VALID_FROM
      ,V35.VALID_TO_DATE                         AS VALID_TO
      ,TIMESTAMP(V35.LOCK_FROM_DATE,'00.00.00')  AS LOCKED_FROM
      ,TIMESTAMP(V35.LOCK_TO_DATE,'00.00.00')    AS LOCKED_TO
      ,CAST(' '               AS    CHAR(255))   AS COMMENTS
      ,CAST('0' AS  CHAR(01))                    AS VIRTUAL_BOOL
      ,V35.LAST_UPDATE_TIME                      AS LAST_UPDATE_TIME
      ,CAST(V35.LAST_UPDATE_ID AS CHAR(10))      AS LAST_UPDATE_ID
      ,V35.CONTROL_TIME                          AS CONTROL_TIME
  FROM
         oa1t.VELKS833A1VC4 V33,
         oa1t.VELKS858A1VC4 V58,
         oa1t.VELKS831A1VC4 V31O,
         oa1t.VELKS831A1VC4 V31U,
         oa1t.VELKS845A1VC4 V45,
         oa1t.VEL105A1V BU ,
         oa1t.VEL080A1V MP ,
         oa1t.VELKS843A1VC4 V43,
         oa1t.VELKS835A1VC4 V35
           LEFT OUTER JOIN
         oa1t.VELKS838A1VC4 V38
            ON V35.CONTRACT_KEY       = V38.CONTRACT_KEY
           AND V35.PARTNER_KEY        = V38.PARTNER_KEY
           AND V35.PARTNER_TYPE       = V38.PARTNER_TYPE
           AND V35.ARRANGEMENT_ID     = V38.ARRANGEMENT_ID
           AND V35.ARRANGEMENT_TYPE   = V38.ARRANGEMENT_TYPE
           AND V35.SERVICE_KEY        = V38.SERVICE_KEY
           AND V38.VISUM_NUMBER       = 2
   WHERE V35.ARRANG_PARTNER_KEY = V31O.PARTNER_KEY

     AND V35.PARTNER_KEY        = V31U.PARTNER_KEY

     AND MP.PRODUCT             = V35.PRODUCT_ID

     AND V43.TAB_ART            = 'SERVICE_ID'
     AND V43.TAB_LANGUAGE_CODE  = '004'
     AND V43.TAB_CODE           = V35.SERVICE_KEY
     AND BU.BU                  = V31O.BU

     AND V35.ARRANGEMENT_TYPE  = 'CIF'

     AND V35.CONTRACT_KEY       = V33.CONTRACT_KEY
     AND V35.PARTNER_KEY        = V33.PARTNER_KEY
     AND V35.PARTNER_TYPE       = V33.PARTNER_TYPE
     AND V58.PARTNER_KEY        = V35.PARTNER_KEY
     AND V45.PARTNER_KEY        = V33.PARTNER_KEY
     AND V45.CONTRACT_COLL      = V33.CONTRACT_COLL
     AND V45.IDENT_ID           = V58.IDENT_ID
     AND NOT EXISTS ( SELECT 'F'
                      FROM  oa1t.VELKS843A1VC4 CP
                    WHERE CP.TAB_ART = 'CIFE_PRODUCT'
                      AND CP.TAB_CODE = V35.PRODUCT_ID
                    )
     AND NOT EXISTS ( SELECT 'F'
                      FROM oa1t.VELKS843A1VC4 CS
                    WHERE CS.TAB_ART = 'CIFE_SERVICE'
                      AND CS.TAB_CODE = V35.SERVICE_KEY
                      AND CS.TAB_TEXT3 = V35.ARRANGEMENT_TYPE
                    )
  WITH UR;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
}¢--- A540769.WK.SQL(EXPLAIFI) cre=2011-10-20 mod=2011-11-10-09.41.14 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.dsn_filter_Table ;
delete from A540769.dsn_predicat_table ;
explain plan set queryno = 27  for
  select kurs_umrechnung,
         kursdatum,
         whrg,
         cs_ka_num,
         excode,
         ks_bpl_st,
         ks_ais_sp
    from oa1a.vfi027a1
   where tkkey        = 10930000
     and verfall      = ?
     and boerse       = ?
     and whrg         = ?
     and status       = 'A'
     and kursdatum   <= ?
     and kursdatum   >= ?
     and ks_bpl_st   >= ?
     and ks_bpl_st   <= ?
     and ks_ais_sp   >= ?
     and ks_ais_sp   <= ?
     and cs_ka_num   >= ?
     and cs_ka_num   <= ?
     and cs_ka_num   <> ?
   order by kursdatum desc
   fetch first 1 row only
    with ur
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIGB) cre=2014-06-26 mod=2016-01-07-12.39.34 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
update OA1P.TQZ006GBGRTSNEW u
    set validEnd = '2016-01-07-12.32.43.269084'
    where rz = 'RZZ' and dbSys = 'DPZG'
        and validBegin <= '2016-01-07-12.32.43.269084'
        and validEnd   >  '2016-01-07-12.32.43.269084'
        and not exists
        ( select 1 from OA1P.TQZ006GBGRTSNEW q
            where q.rz = '?' and q.dbSys = '?'
                and u.dbName = q.dbName and u.name = q.name
                and u.partition = q.partition
                and u.instance  = q.instance
        )
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
declare global temporary table session.k
 (rz char(3) for mixed data
 , dbSys char(4) for mixed data
 , loadTs timestamp, stats timestamp
     , di int
 ) ccsid unicode
;
create unique index session.ki1 on session.k (rz, dbSys, loadTs)
   include(stats, di)
;
insert into session.k
with g2 as
(
  select rz, dbSys, loadTs, max(updateStatsTime) stats
    , days(max(updateStatsTime)) - days(loadTs) d1
    from oa1p.tqz006gbgrTsStats
    where rz = 'RZ2' and dbSys = 'DP2G'
    --   and loadTs > current timestamp - 1 month
    group by rz, dbSys, loadTs
)
select rz, dbSys, loadTs, stats
    , case when stats <= loadTs then 0
           when stats - (d1-1) days <= loadTs       then d1-1
           when stats - (d1  ) days <= loadTs       then d1
           else d1+1 end di
    from g2
;
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with j2 as
(
  select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
    , t.loadTs, t.updateStatsTime
    , ( select di from session.k g
          where t.rz  = g.rz and t.dbSys = g.dbSys
               and t.loadTs = g.loadTs ) di
    from oa1p.tqz006gbgrTsStats t
 --   join oa1p.tqz666gbgrTsKey g
 --   on t.rz || '' = g.rz and t.dbSys = g.dbSys and t.loadTs = g.loadTs
    where t.rz = 'RR2' and t.dbSys = 'DP2G'
)
, j as
(
  select j2.*
    , case when updateStatsTime - di days <= loadTs
           then updateStatsTime - di days
           else loadTs end statsNew
    from j2
)
, k as
(
  select j.*
    , min(statsNew) over
      ( partition by rz, dbsys, dbName, name, partition, instance
        order by loadTs, statsNew
        rows between 1 preceding and 1 preceding
      ) statsPrec
    from j
)
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
    from k
;
select * from plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
select substr(db, 1, 8) "db"
     , substr(ts, 1, 8) "ts"
     , substr(ix, max(1, length(ix) - 7), 8) "...index"
     , substr(case when part = 0 then ''
           else value(right('   '||strip(char(part)), 4), '----')
            ||'/'|| value(right('   '||strip(char(tsParts)), 4),'----')
           end, 1, 9) "part/ tot"
     , substr(right('      ' || int(round(actGb)), 6), 1, 6) "usedGB"
     , substr(right('      ' || int(round(limGb/100*schwelle))
                   , 6), 1, 6) "schwGB"
     , substr(right('     ' || schwelle, 5), 1, 5) "schw%"
     , substr(right('      ' || int(round(limGb)), 6), 1, 6) "limGB"
     , tsTy "y"
     , substr(schwinfo, 7, 35) "schwellwert key"
    from oa1p.vQz006gbGrenze
    where actGb > real(limGb / 100 * schwelle)
        and rz = 'RZ2' and dbSys = 'DVBP'
    order by db, ts, part, ix
;
explain plan set queryno = 7   for
with s2 as
(
   select s.*
     , case when posStr(translate(rz, '%', '*'), '%') > 0
            then posStr(translate(rz, '%', '*'), '%') -1
            else 3 end rzLen
     , case when posStr(translate(dbSys, '%', '*'), '%') > 0
            then posStr(translate(dbSys, '%', '*'), '%') -1
            else 4 end dbSysLen
     , case when posStr(translate(db, '%', '*'), '%') > 0
            then posStr(translate(db, '%', '*'), '%') -1
            else 8 end dbLen
     , case when posStr(translate(ts, '%', '*'), '%') > 0
            then posStr(translate(ts, '%', '*'), '%') -1
            else 8 end tsLen
     from oa1p.tqz008GbGrSchwelle s
     where validBegin <= current date and validEnd > current date
)
, s3 as
(
   select s2.*
     , substr(right('  ' || prio, 3) || rzLen || dbSysLen || dbLen
             || tsLen || min(part, 1)
             || translate(tsTy, '  ', '%*')
             || right('      ' || dsMin, 6), 1, 15) ord
     from s2
)
, t2 as
(
  select rz, dbSys, dbName, name
             , partition, instance, max(loadTs) loadTs
    from OA1P.TQZ006GBGRTSSTATS a
    group by rz, dbSys, dbName, name, partition, instance

)
, t  as
(
  select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
      , smallInt(t.partition * t.limPart) partition
      , t.instance
      , min(t.limGb) limGb
      , min(t.parts) parts
      , min(t.clone) clone
      , min(t.tsInst) tsInst
      , real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
    from OA1P.TQZ006GBGRTSSTATS t join t2 a
        on t.rz = a.rz
          and t.dbSys = a.dbSys
          and t.dbName    = a.dbName
          and t.Name      = a.Name
          and t.partition = a.partition
          and t.instance  = a.instance
          and t.loadTS    = a.loadTs
    group by t.rz, t.dbSys, t.dbName, t.Name
      , smallInt(t.partition * t.limPart)
      , t.instance
)
, i2 as
(
  select rz, dbSys, dbName, ts, indexSpace
             , partition, instance, max(loadTs) loadTs
    from OA1P.TQZ007GbGrIxSTATS a
    group by rz, dbSys, dbName, ts, indexSpace, partition, instance

)
, i  as
(
  select i.*
      , real(real(nActive) * ixPgSz / 1048576) actGB
    from OA1P.TQZ007GBGRIxSTATS i join i2 a
        on i.rz = a.rz
          and i.dbSys = a.dbSys
          and i.dbName    = a.dbName
          and i.ts        = a.ts
          and i.indexSpace= a.indexSpace
          and i.partition = a.partition
          and i.instance  = a.instance
          and i.loadTS    = a.loadTs
)
, u (limGb, actGb, db, ts, ix, part, inst, rz, dbSys
     , tsTy, tsLimGb, tsParts, tsClone, tsInst) as
(
  select           limGb, actGb, dbName, name, ' --ts--'
          , partition, instance, rz, dbSys
          , tsTy, limGb,   parts,   clone  , tsInst
    from t
  union all select limGb, actGb, dbName, ts  , name
          , partition, instance, rz, dbSys
          , tsTy, tslimGb, tsParts, tsClone, tsInst
    from i
)
, s4 as
(
   select u.*
   ,(select max(s.ord
           ||  right('    ' || schwelle, 6)
           ||  strip(rz) || '/' || strip(dbSys) || ':' || strip(db)
           || '.' || strip(ts) || '#' || part || tsTy || dsMin)
        from s3 s
        where left(u.rz, s.rzLen) = left(s.rz, s.rzLen)
            and left(u.dbSys, s.dbSysLen) = left(s.dbSys, s.dbSysLen)
            and left(u.db, s.dbLen) = left(s.db, s.dbLen)
            and left(u.ts, s.tsLen) = left(s.ts, s.tsLen)
            and s.part in (0, u.part)
            and s.tsTy in (' ', '*', '%', u.tsTy)
            and s.dsMin <= u.tsLimGB
        ) schwInfo
    from u
)
, s as
(
  select int(case when schwInfo is not null
                  then int(substr(schwInfo, 16, 6))
                  else raise_error(70001, 'schwelle null ts='
                       || db || '.' || ts || '#' || part)
                  end) schwelle
         , s4.*
    from s4
 -- order by db, ts, part, ix
)
select substr(db, 1, 8) "db"
     , substr(ts, 1, 8) "ts"
     , substr(ix, max(1, length(ix) - 7), 8) "...index"
     , substr(case when part = 0 then ''
              else value(right('   '||strip(char(part)), 4), '----')
             ||'/'|| value(right('   '||strip(char(tsParts)), 4),'----')
        end, 1, 9) "part/ tot"
     , dec(actGb, 6, 0) "usedGB"
     , dec(limGb/100*schwelle, 6, 0) "schwGB"
     , dec(schwelle, 3, 0) "schw%"
     , dec(limGB, 6, 0) "limGB"
     , tsTy "y"
     , substr(schwinfo, 7, 25) "schwellwert key"
    from s
    where 1=1  -- and actGb > limGb / 100 * schwelle
      and rz = 'RZ2' and dbSys = 'DBOF' and db = 'MF01A1P'
      and actGb > limGb * schwelle / 100
    order by s.db, s.ts, s.part, s.ix
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIKS) cre=2011-11-02 mod=2011-11-02-22.08.00 A540769 ---
select hex(applname), p.*
    from cmnbatch.dsn_predicat_table p
    where explain_time = '2011-11-02-21.55.44.046535'
;
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   col          = 'KE'
        and prg          = 'YKEA028'
    order by pcOrd desc, biTi desc
    with ur
;
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det  ----> index fehlt
    where     collid     = 'KE'
        and progName     = 'YKEA028'
        and bind_time in ('2008-11-13-13.08.55.317001'
                         ,'2011-11-02-21.55.44.046535'
                         )
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred  ----> index fehlt
    where     collid     = 'KE'
        and progName     = 'YKEA028'
        and bind_time in ('2008-11-13-13.08.55.317001'
                         ,'2011-11-02-21.55.44.046535'
                         )
    order by applName, collid, progName, bind_time,
             queryNo, qBlockNo, planno, mixOpSeq,
             stage, predNo
    with ur
;;;;;;;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 3   for
   SELECT
       DISTINCT A832. EXT_CONTRACT_ID,
       A833. CONTRACT_KEY,
       A833. PARTNER_KEY,
       A833. PARTNER_TYPE,
       A833. LE,
       A833. BU,
       A833. CONTRACT_COLL,
       A833. STATE,
       A833. LOCK_FROM_DATE,
       A833. LOCK_TO_DATE,
       A833. VALID_FROM_DATE,
       A833. VALID_TO_DATE,
       A833. LAST_UPDATE_TIME,
       A833. LAST_UPDATE_ID,
       A833. CONTROL_TIME,
       A833. COMMENT
   FROM
       oa1t.VKS832A1V B832
   JOIN
       oa1t.VKS833A1V B833
           ON B832. CONTRACT_KEY=B833. CONTRACT_KEY
   JOIN
       oa1t.VKS833A1V A833
           ON B833. CONTRACT_COLL=A833. CONTRACT_COLL
   JOIN
       oa1t.VKS832A1V A832
           ON A833. CONTRACT_KEY=A832. CONTRACT_KEY
   WHERE
       B832. EXT_CONTRACT_ID>=?
       AND B832. EXT_CONTRACT_ID<=?
       AND A833. PARTNER_TYPE>=?
       AND A833. PARTNER_TYPE<=?
       AND A833. VALID_FROM_DATE<=?
       AND A833. VALID_TO_DATE>=?
       AND A832. VALID_FROM_DATE<=?
       AND A832. VALID_TO_DATE>=? FOR FETCH ONLY
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
select count(*), KS833060
    from oa1t.TKS833A1
    group by KS833060
    order by 1 desc
    with ur
    fetch first 100 rows only
;;;
}¢--- A540769.WK.SQL(EXPLAILI) cre=2010-06-09 mod=2010-06-09-15.26.48 A540769 ---
set current sqlid = 's100447';
create view a540769.vTb as
    select * from sysibm.sysTables ;
create view a540769.vCor as
    select * from sysibm.sysTables "corView";
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
 SELECT                                                                 00080000
  ' '||VALUE(L.CS_TA,REPEAT(' ',4))||' '                                00090000
     ||RIGHT(REPEAT(' ',9)                                              00100000
     ||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9)     00110000
     ||'  '||LEFT(L.TITEL_N,20)||' '                                    00120000
     ||VALUE(K.WHR_UMR,REPEAT(' ',4))||'   '                            00130000
     ||RIGHT(K.BOERSE,3)||'  '                                          00140000
     ||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||'  NEU '                      00150000
     ||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN               00160000
             RIGHT(REPEAT(' ',7)                                        00170000
           ||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00180000
           ||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3)                00190000
           ||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5)           00200000
           ||REPEAT(' ',5),5)                                           00210000
            ELSE '>99999999.99999'                                      00220000
       END                                         AS TEIL1,            00230000
  CHAR(K.KURS_UMRECHNUNG)                          AS KURS_UMRECHNUNG,  00240000
  K.WHR_UMR,                                                            00250000
  K.CS_KA_NUM,                                                          00260000
  CASE L.AIS_SP                                                         00270000
       WHEN '1' THEN 'JA'                                               00280000
       ELSE '  '                                                        00290000
  END                                              AS AIS_SP,           00300000
  STRIP(CHAR(L.UNDERLAYER),L,'0')                  AS UNDERLAYER,       00310000
  K.WHRG,                                                               00320000
  RIGHT(K.BOERSE,3)                                AS BOERSE,           00330000
  K.KURSDATUM,                                                          00340000
  STRIP(CHAR(L.TKKEY),L,'0')                       AS TKKEY             00350000
   FROM OA1A.VFI010A1 L                                                 00360000
  INNER JOIN                                                            00370000
        OA1A.VFI011A1 U                                                 00380000
     ON L.UNDERLAYER = U.UNDERLAYER                                     00390000
    AND L.LAUFNR     = U.LAUFNR                                         00400000
    AND L.VERFALL    = U.VERFALL                                        00410000
    AND L.BASISPREIS = U.BASISPREIS                                     00420000
    AND L.KONTRAKT   = U.KONTRAKT                                       00430000
    AND L.VERSION    = U.VERSION                                        00440000
  INNER JOIN                                                            00450000
        OA1A.VFI020A1 K                                                 00460000
     ON L.TKKEY      = K.TKKEY                                          00470000
    AND L.BOERSE     = K.BOERSE                                         00480000
    AND L.WHRG       = K.WHRG                                           00490000
    AND L.VERFALL    = K.VERFALL                                        00500000
  WHERE L.VALOR_SC   > 3                                                00510000
    AND L.VALOR_SC   < 16                                               00520000
    AND L.STATUS     = 'A'                                              00530000
    AND K.STATUS     = L.STATUS                                         00540000
    AND K.QUELLE    IN ('VDFS','INITLOAD')                              00550000
    AND K.MUT_STAT  >= 0                                                00560000
    AND K.KURSDATUM  = ?                         -- chkdate             00570000
    AND L.CS_TA      = '2.02'                                           00580000
    AND L.BPL_ST     = '0'                                              00590000
    AND L.BPL_SP     = '0'                                              00600000
    AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12              00610000
                         AND DEC('999999999',13) -- parm13              00620000
    AND L.GENERATION =                                                  00630000
       (SELECT MAX(GENERATION)                                          00640000
          FROM OA1A.VFI010A1                                            00650000
         WHERE TKKEY         = L.TKKEY                                  00660000
           AND BOERSE        = L.BOERSE                                 00670000
           AND WHRG          = L.WHRG                                   00680000
           AND MUT_TIMESTAMP = L.MUT_TIMESTAMP)                         00690000
    AND L.GUELTIG_VON =                                                 00700000
       (SELECT MAX(GUELTIG_VON)                                         00710000
          FROM OA1A.VFI010A1                                            00720000
         WHERE TKKEY         = L.TKKEY                                  00730000
           AND BOERSE        = L.BOERSE                                 00740000
           AND WHRG          = L.WHRG                                   00750000
           AND VERFALL       = L.VERFALL                                00760000
           AND GENERATION    = L.GENERATION                             00770000
           AND STATUS        = L.STATUS)                                00780000
  GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N,                          00790000
           K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP,      00800000
           L.UNDERLAYER , K.WHRG , K.BOERSE,                            00810000
           K.VERFALL, K.KURSDATUM , L.TKKEY                             00820000
  UNION                                                                 00830000
 SELECT                                                                 00840000
  ' '||VALUE(L.CS_TA,REPEAT(' ',4))||' '                                00850000
     ||RIGHT(REPEAT(' ',9)                                              00860000
     ||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9)     00870000
     ||'  '||LEFT(L.TITEL_N,20)||' '                                    00880000
     ||VALUE(K.WHR_UMR,REPEAT(' ',4))||'   '                            00890000
     ||RIGHT(K.BOERSE,3)||'  '                                          00900000
     ||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||'  ALT '                      00910000
     ||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN               00920000
             RIGHT(REPEAT(' ',7)                                        00930000
           ||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00940000
           ||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3)                00950000
           ||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5)           00960000
           ||REPEAT(' ',5),5)                                           00970000
            ELSE '>99999999.99999'                                      00980000
       END                                         AS TEIL1,            00990000
  CHAR(K.KURS_UMRECHNUNG)                          AS KURS_UMRECHNUNG,  01000000
  K.WHR_UMR,                                                            01010000
  K.CS_KA_NUM,                                                          01020000
  CASE L.AIS_SP                                                         01030000
       WHEN '1' THEN 'JA'                                               01040000
       ELSE '  '                                                        01050000
  END                                              AS AIS_SP,           01060000
  STRIP(CHAR(L.UNDERLAYER),L,'0')                  AS UNDERLAYER,       01070000
  K.WHRG,                                                               01080000
  RIGHT(K.BOERSE,3)                                AS BOERSE,           01090000
  K.KURSDATUM,                                                          01100000
  STRIP(CHAR(L.TKKEY),L,'0')                       AS TKKEY             01110000
   FROM OA1A.VFI010A1 L                                                 01120000
  INNER JOIN                                                            01130000
        OA1A.VFI011A1 U                                                 01140000
     ON L.UNDERLAYER  = U.UNDERLAYER                                    01150000
    AND L.LAUFNR      = U.LAUFNR                                        01160000
    AND L.VERFALL     = U.VERFALL                                       01170000
    AND L.BASISPREIS  = U.BASISPREIS                                    01180000
    AND L.KONTRAKT    = U.KONTRAKT                                      01190000
    AND L.VERSION     = U.VERSION                                       01200000
  INNER JOIN                                                            01210000
        OA1A.VFI020A1 K                                                 01220000
     ON L.TKKEY       = K.TKKEY                                         01230000
    AND L.BOERSE      = K.BOERSE                                        01240000
    AND L.WHRG        = K.WHRG                                          01250000
    AND L.STATUS      = K.STATUS                                        01260000
  WHERE                                                                 01270000
        L.VALOR_SC    > 3                                               01280000
    AND L.VALOR_SC    < 16                                              01290000
    AND L.STATUS      = 'A'                                             01300000
    AND K.QUELLE     IN ('VDFS','INITLOAD')                             01310000
    AND K.MUT_STAT   >= 0                                               01320000
    AND L.CS_TA       = '2.02'                                          01330000
    AND L.BPL_ST      = '0'                                             01340000
    AND L.BPL_SP      = '0'                                             01350000
    AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12              01360000
                         AND DEC('999999999',13) -- parm13              01370000
    AND L.GENERATION  =                                                 01380000
       (SELECT MAX(GENERATION)                                          01390000
          FROM OA1A.VFI010A1                                            01400000
         WHERE TKKEY         = L.TKKEY                                  01410000
           AND BOERSE        = L.BOERSE                                 01420000
           AND WHRG          = L.WHRG                                   01430000
           AND MUT_TIMESTAMP = L.MUT_TIMESTAMP)                         01440000
    AND L.GUELTIG_VON =                                                 01450000
       (SELECT MAX(GUELTIG_VON)                                         01460000
          FROM OA1A.VFI010A1                                            01470000
         WHERE TKKEY         = L.TKKEY                                  01480000
           AND BOERSE        = L.BOERSE                                 01490000
           AND WHRG          = L.WHRG                                   01500000
           AND GENERATION    = L.GENERATION                             01510000
           AND STATUS        = L.STATUS)                                01520000
    AND K.KURSDATUM   =                                                 01530000
       (SELECT MAX(KURSDATUM)                                           01540000
          FROM OA1A.VFI020A1                                            01550000
         WHERE TKKEY         = K.TKKEY                                  01560000
           AND BOERSE        = K.BOERSE                                 01570000
           AND WHRG          = K.WHRG                                   01580000
           AND STATUS        = K.STATUS                                 01590000
           AND KURSDATUM     < ?                 -- chkdate             01600000
           AND STATUS        = 'A'                                      01610000
           AND K.QUELLE IN ('VDFS','INITLOAD'))                         01620000
  GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N,                          01630000
           K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP,      01640000
           L.UNDERLAYER , K.WHRG , K.BOERSE , K.KURSDATUM , L.TKKEY     01650000
  ORDER BY TKKEY , BOERSE , WHRG , KURSDATUM WITH UR                    01660000
;                                                                       01670000
EXPLAIN ALL SET QUERYNO = 2 FOR                                         01680000
 SELECT                                                                 01690000
  ' '||VALUE(L.CS_TA,REPEAT(' ',4))||' '                                01700000
     ||RIGHT(REPEAT(' ',9)                                              01710000
     ||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9)     01720000
     ||'  '||LEFT(L.TITEL_N,20)||' '                                    01730000
     ||VALUE(K.WHR_UMR,REPEAT(' ',4))||'   '                            01740000
     ||RIGHT(K.BOERSE,3)||'  '                                          01750000
     ||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||'  NEU '                      01760000
     ||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN               01770000
             RIGHT(REPEAT(' ',7)                                        01780000
           ||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)01790000
           ||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3)                01800000
           ||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5)           01810000
           ||REPEAT(' ',5),5)                                           01820000
            ELSE '>99999999.99999'                                      01830000
       END                                         AS TEIL1,            01840000
  CHAR(K.KURS_UMRECHNUNG)                          AS KURS_UMRECHNUNG,  01850000
  K.WHR_UMR,                                                            01860000
  K.CS_KA_NUM,                                                          01870000
  CASE L.AIS_SP                                                         01880000
       WHEN '1' THEN 'JA'                                               01890000
       ELSE '  '                                                        01900000
  END                                              AS AIS_SP,           01910000
  STRIP(CHAR(L.UNDERLAYER),L,'0')                  AS UNDERLAYER,       01920000
  K.WHRG,                                                               01930000
  RIGHT(K.BOERSE,3)                                AS BOERSE,           01940000
  K.KURSDATUM,                                                          01950000
  STRIP(CHAR(L.TKKEY),L,'0')                       AS TKKEY             01960000
   FROM OA1A.VFI010A1 L                                                 01970000
  INNER JOIN                                                            01980000
        OA1A.VFI011A1 U                                                 01990000
     ON L.UNDERLAYER = U.UNDERLAYER                                     02000000
    AND L.LAUFNR     = U.LAUFNR                                         02010000
    AND L.VERFALL    = U.VERFALL                                        02020000
    AND L.BASISPREIS = U.BASISPREIS                                     02030000
    AND L.KONTRAKT   = U.KONTRAKT                                       02040000
    AND L.VERSION    = U.VERSION                                        02050000
  INNER JOIN                                                            02060000
        OA1A.VFI020A1 K                                                 02070000
     ON L.TKKEY      = K.TKKEY                                          02080000
    AND L.BOERSE     = K.BOERSE                                         02090000
    AND L.WHRG       = K.WHRG                                           02100000
    AND L.VERFALL    = K.VERFALL                                        02110000
  WHERE L.VALOR_SC   > 3                                                02120000
    AND L.VALOR_SC   < 16                                               02130000
    AND L.STATUS     = 'A'                                              02140000
    AND K.STATUS     = L.STATUS                                         02150000
    AND K.QUELLE    IN ('VDFS','INITLOAD')                              02160000
    AND K.MUT_STAT  >= 0                                                02170000
    AND K.KURSDATUM  = ?                         -- chkdate             02180000
    AND L.CS_TA      = '2.02'                                           02190000
    AND L.BPL_ST     = '0'                                              02200000
    AND L.BPL_SP     = '0'                                              02210000
    AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12              02220000
                         AND DEC('999999999',13) -- parm13              02230000
    AND L.GUELTIG_VON =                                                 02240000
       (SELECT MAX(GUELTIG_VON)                                         02250000
          FROM OA1A.VFI010A1                                            02260000
         WHERE TKKEY         = L.TKKEY                                  02270000
           AND BOERSE        = L.BOERSE                                 02280000
           AND WHRG          = L.WHRG                                   02290000
           AND VERFALL       = L.VERFALL                                02300000
           AND GENERATION    = L.GENERATION                             02310000
           AND STATUS        = L.STATUS)                                02320000
  GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N,                          02330000
           K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP,      02340000
           L.UNDERLAYER , K.WHRG , K.BOERSE,                            02350000
           K.VERFALL, K.KURSDATUM , L.TKKEY                             02360000
  UNION ALL                                                             02370000
 SELECT                                                                 02380000
  ' '||VALUE(L.CS_TA,REPEAT(' ',4))||' '                                02390000
     ||RIGHT(REPEAT(' ',9)                                              02400000
     ||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9)     02410000
     ||'  '||LEFT(L.TITEL_N,20)||' '                                    02420000
     ||VALUE(K.WHR_UMR,REPEAT(' ',4))||'   '                            02430000
     ||RIGHT(K.BOERSE,3)||'  '                                          02440000
     ||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||'  ALT '                      02450000
     ||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN               02460000
             RIGHT(REPEAT(' ',7)                                        02470000
           ||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)02480000
           ||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3)                02490000
           ||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5)           02500000
           ||REPEAT(' ',5),5)                                           02510000
            ELSE '>99999999.99999'                                      02520000
       END                                         AS TEIL1,            02530000
  CHAR(K.KURS_UMRECHNUNG)                          AS KURS_UMRECHNUNG,  02540000
  K.WHR_UMR,                                                            02550000
  K.CS_KA_NUM,                                                          02560000
  CASE L.AIS_SP                                                         02570000
       WHEN '1' THEN 'JA'                                               02580000
       ELSE '  '                                                        02590000
  END                                              AS AIS_SP,           02600000
  STRIP(CHAR(L.UNDERLAYER),L,'0')                  AS UNDERLAYER,       02610000
  K.WHRG,                                                               02620000
  RIGHT(K.BOERSE,3)                                AS BOERSE,           02630000
  K.KURSDATUM,                                                          02640000
  STRIP(CHAR(L.TKKEY),L,'0')                       AS TKKEY             02650000
   FROM OA1A.VFI010A1 L                                                 02660000
  INNER JOIN                                                            02670000
        OA1A.VFI011A1 U                                                 02680000
     ON L.UNDERLAYER  = U.UNDERLAYER                                    02690000
    AND L.LAUFNR      = U.LAUFNR                                        02700000
    AND L.VERFALL     = U.VERFALL                                       02710000
    AND L.BASISPREIS  = U.BASISPREIS                                    02720000
    AND L.KONTRAKT    = U.KONTRAKT                                      02730000
    AND L.VERSION     = U.VERSION                                       02740000
  INNER JOIN                                                            02750000
        OA1A.VFI020A1 K                                                 02760000
     ON L.TKKEY       = K.TKKEY                                         02770000
    AND L.BOERSE      = K.BOERSE                                        02780000
    AND L.WHRG        = K.WHRG                                          02790000
    AND L.STATUS      = K.STATUS                                        02800000
  WHERE                                                                 02810000
        L.VALOR_SC    > 3                                               02820000
    AND L.VALOR_SC    < 16                                              02830000
    AND L.STATUS      = 'A'                                             02840000
    AND K.QUELLE     IN ('VDFS','INITLOAD')                             02850000
    AND K.MUT_STAT   >= 0                                               02860000
    AND L.CS_TA       = '2.02'                                          02870000
    AND L.BPL_ST      = '0'                                             02880000
    AND L.BPL_SP      = '0'                                             02890000
    AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12              02900000
                         AND DEC('999999999',13) -- parm13              02910000
    AND L.GUELTIG_VON =                                                 02920000
       (SELECT MAX(GUELTIG_VON)                                         02930000
          FROM OA1A.VFI010A1                                            02940000
         WHERE TKKEY         = L.TKKEY                                  02950000
           AND BOERSE        = L.BOERSE                                 02960000
           AND WHRG          = L.WHRG                                   02970000
           AND GENERATION    = L.GENERATION                             02980000
           AND STATUS        = L.STATUS)                                02990000
    AND K.KURSDATUM   =                                                 03000000
       (SELECT MAX(KURSDATUM)                                           03010000
          FROM OA1A.VFI020A1                                            03020000
         WHERE TKKEY         = K.TKKEY                                  03030000
           AND BOERSE        = K.BOERSE                                 03040000
           AND WHRG          = K.WHRG                                   03050000
           AND STATUS        = K.STATUS                                 03060000
           AND KURSDATUM     < ?                 -- chkdate             03070000
           AND STATUS        = 'A'                                      03080000
           AND K.QUELLE IN ('VDFS','INITLOAD'))                         03090000
  GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N,                          03100000
           K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP,      03110000
           L.UNDERLAYER , K.WHRG , K.BOERSE , K.KURSDATUM , L.TKKEY     03120000
  ORDER BY TKKEY , BOERSE , WHRG , KURSDATUM WITH UR                    03130000
;                                                                       03140000
explain plan set queryno = 11 for
 SELECT                                                                 00080000
  ' '||VALUE(L.CS_TA,REPEAT(' ',4))||' '                                00090000
     ||RIGHT(REPEAT(' ',9)                                              00100000
     ||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9)     00110000
     ||'  '||LEFT(L.TITEL_N,20)||' '                                    00120000
     ||VALUE(K.WHR_UMR,REPEAT(' ',4))||'   '                            00130000
     ||RIGHT(K.BOERSE,3)||'  '                                          00140000
     ||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||'  NEU '                      00150000
     ||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN               00160000
             RIGHT(REPEAT(' ',7)                                        00170000
           ||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00180000
           ||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3)                00190000
           ||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5)           00200000
           ||REPEAT(' ',5),5)                                           00210000
            ELSE '>99999999.99999'                                      00220000
       END                                         AS TEIL1,            00230000
  CHAR(K.KURS_UMRECHNUNG)                          AS KURS_UMRECHNUNG,  00240000
  K.WHR_UMR,                                                            00250000
  K.CS_KA_NUM,                                                          00260000
  CASE L.AIS_SP                                                         00270000
       WHEN '1' THEN 'JA'                                               00280000
       ELSE '  '                                                        00290000
  END                                              AS AIS_SP,           00300000
  STRIP(CHAR(L.UNDERLAYER),L,'0')                  AS UNDERLAYER,       00310000
  K.WHRG,                                                               00320000
  RIGHT(K.BOERSE,3)                                AS BOERSE,           00330000
  K.KURSDATUM,                                                          00340000
  STRIP(CHAR(L.TKKEY),L,'0')                       AS TKKEY             00350000
   FROM OA1A.VFI010A1 L                                                 00360000
  INNER JOIN                                                            00370000
        OA1A.VFI011A1 U                                                 00380000
     ON L.UNDERLAYER = U.UNDERLAYER                                     00390000
    AND L.LAUFNR     = U.LAUFNR                                         00400000
    AND L.VERFALL    = U.VERFALL                                        00410000
    AND L.BASISPREIS = U.BASISPREIS                                     00420000
    AND L.KONTRAKT   = U.KONTRAKT                                       00430000
    AND L.VERSION    = U.VERSION                                        00440000
  INNER JOIN                                                            00450000
        OA1A.VFI020A1 K                                                 00460000
     ON L.TKKEY      = K.TKKEY                                          00470000
    AND L.BOERSE     = K.BOERSE                                         00480000
    AND L.WHRG       = K.WHRG                                           00490000
    AND L.VERFALL    = K.VERFALL                                        00500000
  WHERE L.VALOR_SC   > 3                                                00510000
    AND L.VALOR_SC   < 16                                               00520000
    AND L.STATUS     = 'A'                                              00530000
    AND K.STATUS     = L.STATUS                                         00540000
    AND K.QUELLE    IN ('VDFS','INITLOAD')                              00550000
    AND K.MUT_STAT  >= 0                                                00560000
    AND K.KURSDATUM  = ?                         -- chkdate             00570000
    AND L.CS_TA      = '2.02'                                           00580000
    AND L.BPL_ST     = '0'                                              00590000
    AND L.BPL_SP     = '0'                                              00600000
    AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12              00610000
                         AND DEC('999999999',13) -- parm13              00620000
    AND L.GENERATION =                                                  00630000
       (SELECT MAX(GENERATION)                                          00640000
          FROM OA1A.VFI010A1                                            00650000
         WHERE TKKEY         = L.TKKEY                                  00660000
           AND BOERSE        = L.BOERSE                                 00670000
           AND WHRG          = L.WHRG                                   00680000
           AND MUT_TIMESTAMP = L.MUT_TIMESTAMP)                         00690000
    AND L.GUELTIG_VON =                                                 00700000
       (SELECT MAX(GUELTIG_VON)                                         00710000
          FROM OA1A.VFI010A1                                            00720000
         WHERE TKKEY         = L.TKKEY                                  00730000
           AND BOERSE        = L.BOERSE                                 00740000
           AND WHRG          = L.WHRG                                   00750000
           AND VERFALL       = L.VERFALL                                00760000
           AND GENERATION    = L.GENERATION                             00770000
           AND STATUS        = L.STATUS)                                00780000
  GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N,                          00790000
           K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP,      00800000
           L.UNDERLAYER , K.WHRG , K.BOERSE,                            00810000
           K.VERFALL, K.KURSDATUM , L.TKKEY                             00820000
  ORDER BY TKKEY , BOERSE , WHRG , KURSDATUM WITH UR                    01660000
;                                                                       01670000
explain plan set queryno = 12 for
 SELECT                                                                 00080000
  ' '||VALUE(L.CS_TA,REPEAT(' ',4))||' '                                00090000
     ||RIGHT(REPEAT(' ',9)                                              00100000
     ||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9)     00110000
     ||'  '||LEFT(L.TITEL_N,20)||' '                                    00120000
     ||VALUE(K.WHR_UMR,REPEAT(' ',4))||'   '                            00130000
     ||RIGHT(K.BOERSE,3)||'  '                                          00140000
     ||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||'  NEU '                      00150000
     ||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN               00160000
             RIGHT(REPEAT(' ',7)                                        00170000
           ||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00180000
           ||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3)                00190000
           ||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5)           00200000
           ||REPEAT(' ',5),5)                                           00210000
            ELSE '>99999999.99999'                                      00220000
       END                                         AS TEIL1,            00230000
  CHAR(K.KURS_UMRECHNUNG)                          AS KURS_UMRECHNUNG,  00240000
  K.WHR_UMR,                                                            00250000
  K.CS_KA_NUM,                                                          00260000
  CASE L.AIS_SP                                                         00270000
       WHEN '1' THEN 'JA'                                               00280000
       ELSE '  '                                                        00290000
  END                                              AS AIS_SP,           00300000
  STRIP(CHAR(L.UNDERLAYER),L,'0')                  AS UNDERLAYER,       00310000
  K.WHRG,                                                               00320000
  RIGHT(K.BOERSE,3)                                AS BOERSE,           00330000
  K.KURSDATUM,                                                          00340000
  STRIP(CHAR(L.TKKEY),L,'0')                       AS TKKEY             00350000
   FROM OA1A.VFI010A1 L                                                 00360000
  INNER JOIN                                                            00370000
        OA1A.VFI011A1 U                                                 00380000
     ON L.UNDERLAYER = U.UNDERLAYER                                     00390000
    AND L.LAUFNR     = U.LAUFNR                                         00400000
    AND L.VERFALL    = U.VERFALL                                        00410000
    AND L.BASISPREIS = U.BASISPREIS                                     00420000
    AND L.KONTRAKT   = U.KONTRAKT                                       00430000
    AND L.VERSION    = U.VERSION                                        00440000
  INNER JOIN                                                            00450000
        OA1A.VFI020A1 K                                                 00460000
     ON L.TKKEY      = K.TKKEY                                          00470000
    AND L.BOERSE     = K.BOERSE                                         00480000
    AND L.WHRG       = K.WHRG                                           00490000
    AND L.VERFALL    = K.VERFALL                                        00500000
  WHERE L.VALOR_SC   > 3                                                00510000
    AND L.VALOR_SC   < 16                                               00520000
    AND L.STATUS     = 'A'                                              00530000
    AND K.STATUS     = L.STATUS                                         00540000
    AND K.QUELLE    IN ('VDFS','INITLOAD')                              00550000
    AND K.MUT_STAT  >= 0                                                00560000
    AND K.KURSDATUM  = ?                         -- chkdate             00570000
    AND L.CS_TA      = '2.02'                                           00580000
    AND L.BPL_ST     = '0'                                              00590000
    AND L.BPL_SP     = '0'                                              00600000
    AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12              00610000
                         AND DEC('999999999',13) -- parm13              00620000
  GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N,                          00790000
           K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP,      00800000
           L.UNDERLAYER , K.WHRG , K.BOERSE,                            00810000
           K.VERFALL, K.KURSDATUM , L.TKKEY                             00820000
  ORDER BY   TKKEY , BOERSE , WHRG , KURSDATUM WITH UR                  01660000
;                                                                       01670000
explain plan set queryno = 13 for
 SELECT                                                                 00080000
  ' '||VALUE(L.CS_TA,REPEAT(' ',4))||' '                                00090000
     ||RIGHT(REPEAT(' ',9)                                              00100000
     ||STRIP(STRIP(STRIP(CHAR(U.UNDERLAYER),B,' '),L,'0'),T,'.'),9)     00110000
     ||'  '||LEFT(L.TITEL_N,20)||' '                                    00120000
     ||VALUE(K.WHR_UMR,REPEAT(' ',4))||'   '                            00130000
     ||RIGHT(K.BOERSE,3)||'  '                                          00140000
     ||VALUE(CHAR(MAX(K.KURSDATUM)),'-')||'  NEU '                      00150000
     ||CASE WHEN K.KURS_UMRECHNUNG < 99999999.999999 THEN               00160000
             RIGHT(REPEAT(' ',7)                                        00170000
           ||STRIP(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),1,15),L,'0'),7)00180000
           ||SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),16,3)                00190000
           ||LEFT(SUBSTR(STRIP(CHAR(K.KURS_UMRECHNUNG)),19,5)           00200000
           ||REPEAT(' ',5),5)                                           00210000
            ELSE '>99999999.99999'                                      00220000
       END                                     ,                        00230000
  CHAR(K.KURS_UMRECHNUNG)                      ,                        00240000
  K.WHR_UMR,                                                            00250000
  K.CS_KA_NUM,                                                          00260000
  CASE L.AIS_SP                                                         00270000
       WHEN '1' THEN 'JA'                                               00280000
       ELSE '  '                                                        00290000
  END                                          ,                        00300000
  STRIP(CHAR(L.UNDERLAYER),L,'0')              ,                        00310000
  K.WHRG,                                                               00320000
  RIGHT(K.BOERSE,3)                            ,                        00330000
  K.KURSDATUM,                                                          00340000
  STRIP(CHAR(L.TKKEY),L,'0')                                            00350000
   FROM OA1A.VFI010A1 L                                                 00360000
  INNER JOIN                                                            00370000
        OA1A.VFI011A1 U                                                 00380000
     ON L.UNDERLAYER = U.UNDERLAYER                                     00390000
    AND L.LAUFNR     = U.LAUFNR                                         00400000
    AND L.VERFALL    = U.VERFALL                                        00410000
    AND L.BASISPREIS = U.BASISPREIS                                     00420000
    AND L.KONTRAKT   = U.KONTRAKT                                       00430000
    AND L.VERSION    = U.VERSION                                        00440000
  INNER JOIN                                                            00450000
        OA1A.VFI020A1 K                                                 00460000
     ON L.TKKEY      = K.TKKEY                                          00470000
    AND L.BOERSE     = K.BOERSE                                         00480000
    AND L.WHRG       = K.WHRG                                           00490000
    AND L.VERFALL    = K.VERFALL                                        00500000
  WHERE L.VALOR_SC   > 3                                                00510000
    AND L.VALOR_SC   < 16                                               00520000
    AND L.STATUS     = 'A'                                              00530000
    AND K.STATUS     = L.STATUS                                         00540000
    AND K.QUELLE    IN ('VDFS','INITLOAD')                              00550000
    AND K.MUT_STAT  >= 0                                                00560000
    AND K.KURSDATUM  = ?                         -- chkdate             00570000
    AND L.CS_TA      = '2.02'                                           00580000
    AND L.BPL_ST     = '0'                                              00590000
    AND L.BPL_SP     = '0'                                              00600000
    AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12              00610000
                         AND DEC('999999999',13) -- parm13              00620000
  GROUP BY L.CS_TA , U.UNDERLAYER , L.TITEL_N,                          00790000
           K.KURS_UMRECHNUNG , K.WHR_UMR , K.CS_KA_NUM , L.AIS_SP,      00800000
           L.UNDERLAYER , K.WHRG , K.BOERSE,                            00810000
           K.VERFALL, K.KURSDATUM , L.TKKEY                             00820000
  ORDER BY l.TKKEY , k.BOERSE , k.WHRG             WITH UR              01660000
;                                                                       01670000
explain plan set queryno = 14 for
 SELECT   'x'                                                           00080000
   FROM OA1A.VFI010A1 L                                                 00360000
  INNER JOIN                                                            00370000
        OA1A.VFI011A1 U                                                 00380000
     ON L.UNDERLAYER = U.UNDERLAYER                                     00390000
    AND L.LAUFNR     = U.LAUFNR                                         00400000
    AND L.VERFALL    = U.VERFALL                                        00410000
    AND L.BASISPREIS = U.BASISPREIS                                     00420000
    AND L.KONTRAKT   = U.KONTRAKT                                       00430000
    AND L.VERSION    = U.VERSION                                        00440000
  WHERE L.VALOR_SC   > 3                                                00510000
    AND L.VALOR_SC   < 16                                               00520000
    AND L.STATUS     = 'A'                                              00530000
    AND L.CS_TA      = '2.02'                                           00580000
    AND L.BPL_ST     = '0'                                              00590000
    AND L.BPL_SP     = '0'                                              00600000
    AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12              00610000
                         AND DEC('999999999',13) -- parm13              00620000
  ORDER BY l.TKKEY                                 WITH UR              01660000
;                                                                       01670000
explain plan set queryno = 15 for
 SELECT   'x'                                                           00080000
   FROM OA1A.VFI010A1 L                                                 00360000
  ,                                                                     00370000
        OA1A.VFI011A1 U                                                 00380000
   where
        L.UNDERLAYER = U.UNDERLAYER                                     00390000
    AND L.LAUFNR     = U.LAUFNR                                         00400000
    AND L.VERFALL    = U.VERFALL                                        00410000
    AND L.BASISPREIS = U.BASISPREIS                                     00420000
    AND L.KONTRAKT   = U.KONTRAKT                                       00430000
    AND L.VERSION    = U.VERSION                                        00440000
 and    L.VALOR_SC   > 3                                                00510000
    AND L.VALOR_SC   < 16                                               00520000
    AND L.STATUS     = 'A'                                              00530000
    AND L.CS_TA      = '2.02'                                           00580000
    AND L.BPL_ST     = '0'                                              00590000
    AND L.BPL_SP     = '0'                                              00600000
    AND U.UNDERLAYER BETWEEN DEC('000000001',13) -- parm12              00610000
                         AND DEC('999999999',13) -- parm13              00620000
  ORDER BY l.TKKEY                                 WITH UR              01660000
;                                                                       01670000
explain plan set queryno = 15 for
 SELECT   'x'                                                           00080000
   FROM OA1A.VFI010A1 L                                                 00360000
   where
        L.VALOR_SC   > 3                                                00510000
    AND L.VALOR_SC   < 16                                               00520000
    AND L.STATUS     = 'A'                                              00530000
    AND L.CS_TA      = '2.02'                                           00580000
    AND L.BPL_ST     = '0'                                              00590000
    AND L.BPL_SP     = '0'                                              00600000
  ORDER BY l.TKKEY                                 WITH UR              01660000
;                                                                       01670000
explain plan set queryno = 71 for
     select * from sysibm.systables
         where dbName like 'abc%'
;
explain plan set queryno = 72 for
     select * from sysibm.systables "selTb"
         where dbName like 'abc%'
;
explain plan set queryno = 73 for
     with "with" as
 (
     select * from A540769.vTb      "witSel"
 )
 select * from "with" "selWit"
         where dbName like 'abc%'
;
explain plan set queryno = 81 for
     select * from A540769.vTb
         where dbName like 'abc%'
;
explain plan set queryno = 82 for
     select * from  A540769.vTb   "selVTb"
         where dbName like 'abc%'
;
explain plan set queryno = 83 for
     with "with" as
 (
     select * from A540769.vTb      "witVTb"
 )
 select * from "with" "selWit"
         where dbName like 'abc%'
;
explain plan set queryno = 91 for
     select * from A540769.vCor
         where dbName like 'abc%'
;
explain plan set queryno = 92 for
     select * from  A540769.vCor  "selVCo"
         where dbName like 'abc%'
;
explain plan set queryno = 93 for
     with "with" as
 (
     select * from A540769.vCor     "witVCo"
 )
 select * from "with" "selWit"
         where dbName like 'abc%'
;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(EXPLAIMF) cre=2010-11-15 mod=2013-08-23-10.10.49 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'MF'
        and prog         = 'MF7010'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
    from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2012-03-17-11.05.04.595094'
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
SELECT                                      CHAR('@')
    ||  CHAR('RM')                       || CHAR('@')
    ||  CHAR('CIF')                      || CHAR('@')
    ||  CHAR('CIF_NAME')                || CHAR('@')
    ||  CHAR('PH_A_AMT')                 || CHAR('@')
    ||  CHAR('PH_A_CTR')                 || CHAR('@')
    ||  CHAR('PH_Z_AMT')                 || CHAR('@')
    ||  CHAR('PH_Z_CTR')                 || CHAR('@')
    ||  CHAR('PH_ABS_AMT')               || CHAR('@')
    ||  CHAR('NPH_A_AMT')                || CHAR('@')
    ||  CHAR('NPH_A_CTR')                || CHAR('@')
    ||  CHAR('NPH_Z_AMT')                || CHAR('@')
    ||  CHAR('NPH_Z_CTR')                || CHAR('@')
    ||  CHAR('TOT')
FROM SYSIBM.SYSDUMMY1
UNION ALL SELECT
                   CHAR('@')
    || RM     ||   CHAR('@')
    || CIF_NO ||   CHAR('@')
    || NAME   ||   CHAR('@')
    || CHAR(DECIMAL(SUM(PHY_ABF_1),31,3))    || CHAR('@')
    || CHAR(SUM(ANZ_PHY_ABF_1))              || CHAR('@')
    || CHAR(DECIMAL(SUM(PHY_ZUF_2),31,3))    || CHAR('@')
    || CHAR(SUM(ANZ_PHY_ZUF_2))              || CHAR('@')
    || CHAR(DECIMAL(SUM(PHY_ABS_3),31,3))    || CHAR('@')
    || CHAR(DECIMAL(SUM(NPHY_ABF_4),31,3))   || CHAR('@')
    || CHAR(SUM(ANZ_NPHY_ABF_4))             || CHAR('@')
    || CHAR(DECIMAL(SUM(NPHY_ZUF_5),31,3))   || CHAR('@')
    || CHAR(SUM(ANZ_NPHY_ZUF_5))             || CHAR('@')
    || CHAR(DECIMAL(SUM(TOTAL_ABS),31,3))
FROM
   (SELECT CASE(SUBSTR(C.INT_OE_FORM_PID_KV,1,8))
             WHEN('        ')
               THEN RTRIM(MA.GESETZLICHER_NAME) || CHAR(' ') ||
                    RTRIM(MA.VORNAME) || ', ' ||
                    LTRIM(RTRIM(C.INT_OE_FORM_PID_KV))
             ELSE CHAR('         ')
           END AS RM,
           C.CIFNUMMER_KUNDE AS CIF_NO,
           Z.KURZADRESSE_1 AS NAME,
    CASE
      WHEN C.TRANSACTION_TYP = 10
      AND  C.ZU_ABFLUSS = 'A'
      THEN ABS(C.BETRAG_BUWHR)
      ELSE  0
    END                                AS PHY_ABF_1,
    CASE
      WHEN C.TRANSACTION_TYP = 10
      AND  C.ZU_ABFLUSS = 'A'
      THEN  1
      ELSE  0
    END                                AS ANZ_PHY_ABF_1,
    CASE
      WHEN C.TRANSACTION_TYP = 10
      AND  C.ZU_ABFLUSS = 'Z'
      THEN C.BETRAG_BUWHR
      ELSE  0
    END                                AS PHY_ZUF_2,
    CASE
      WHEN C.TRANSACTION_TYP = 10
      AND  C.ZU_ABFLUSS = 'Z'
      THEN  1
      ELSE  0
    END                                AS ANZ_PHY_ZUF_2,
    CASE
      WHEN C.TRANSACTION_TYP = 10
      THEN ABS(C.BETRAG_BUWHR)
      ELSE  0
    END                                AS PHY_ABS_3,
    CASE
      WHEN C.TRANSACTION_TYP = 20
      AND  C.ZU_ABFLUSS = 'A'
      THEN ABS(C.BETRAG_BUWHR)
      ELSE  0
    END                                AS NPHY_ABF_4,
    CASE
      WHEN C.TRANSACTION_TYP = 20
      AND  C.ZU_ABFLUSS = 'A'
      THEN  1
      ELSE  0
    END                                AS ANZ_NPHY_ABF_4,
    CASE
      WHEN C.TRANSACTION_TYP = 20
      AND  C.ZU_ABFLUSS = 'Z'
      THEN C.BETRAG_BUWHR
      ELSE  0
    END                                AS NPHY_ZUF_5,
    CASE
      WHEN C.TRANSACTION_TYP = 20
      AND  C.ZU_ABFLUSS = 'Z'
      THEN  1
      ELSE  0
    END                                AS ANZ_NPHY_ZUF_5,
    ABS(C.BETRAG_BUWHR)                AS TOTAL_ABS
FROM oa1t.VMF150A1V C
       LEFT OUTER JOIN oa1t.VBP200A1R MA
       ON SUBSTR(C.INT_OE_FORM_PID_KV,9,8) = MA.PID,
     oa1t.TMF009A1 Z
  WHERE C.ID_MITTELFLUSS IN
    (SELECT D.ID_MITTELFLUSS
     FROM oa1t.TMF160A1 D, oa1t.VMF202A1
     WHERE  D.TEV_DATUM = TEV_DAT_EUR)
  AND C.CIFNUMMER_KUNDE = Z.CIF
  AND Z.CIF_STATUS = 'L'
  AND Z.OFFSHORE_CD_TRUST = '25'
  AND   C.RELEVANT_GROUP NOT IN (0,2)
 ) X

GROUP BY
   RM,
   CIF_NO,
   NAME
WITH UR
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
--- versionen, compiles und explains eines packages --------
select *
    from cmnbatch.plan_view0
    where   collid       = 'MF'
        and prog         = 'MF8120'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
    from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'MF'
        and progName     = 'MF8120'
        and (opthint <> '' or hint_used <> '')
  --    and bind_time  in ('2012-03-06-16.53.11.688569'
  --                      ,'2012-03-06-16.52.29.596158'
  --                      ,'2011-05-12-11.57.17.372668'
  --                      )
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;;                        ;

--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
  SELECT *
  FROM oa1p.TMF401A1 A
  WHERE NOT EXISTS
  (SELECT 1
  FROM oa1p.TMF150A1 b
  WHERE A.UUID = B.MF150001 UNION ALL SELECT 1
  FROM oa1p.TMF150H1 B
WHERE A.UUID = B.MF150001) WITH UR
;
explain plan set queryno = 9   for
  SELECT *
  FROM oa1p.TMF401A1 A
  WHERE NOT EXISTS
  (SELECT 1
  FROM oa1p.TMF150A1 b
  WHERE A.UUID = B.MF150001 ) and not exists ( SELECT 1
  FROM oa1p.TMF150H1 B
WHERE A.UUID = B.MF150001) WITH UR
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
--- versionen, compiles und explains eines packages --------
select *
    from cmnbatch.plan_view0
    where   collid       = 'MF'
        and prog         = 'MF7930'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
    from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'MF'
        and progName     = 'MF7930'
  --    and (opthint <> '' or hint_used <> '')
        and bind_time  in ('2012-03-06-16.53.11.688569'
                          ,'2012-03-06-16.52.29.596158'
                          ,'2011-05-12-11.57.17.372668'
                          )
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;;                        ;

set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
SELECT MF150013,CHAR('@')
  FROM   oa1p.TMF150A1
  WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
                     AND '2011-08-31-23.59.59.999999'
    AND MF150022 = '0015'
    AND   MF150001 NOT IN
      (SELECT UUID FROM oa1p.TMF401A1)
UNION ALL
SELECT MF150013,CHAR('@')
  FROM oa1p.TMF150A1
  WHERE MF150022 = '0015'
    AND   MF150001 IN
     (SELECT UUID FROM oa1p.TMF401A1
        WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 11 for
SELECT MF150013,CHAR('@')
  FROM   oa1p.TMF150A1
  WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
                   AND '2011-08-31-23.59.59.999999'
    AND MF150022 = '0015'
    AND   MF150001 NOT IN
      (SELECT UUID FROM oa1p.TMF401A1)
with ur  ;
explain plan set queryno = 12 for
SELECT MF150013,CHAR('@')
  FROM oa1p.TMF150A1
   WHERE MF150022 = '0015'
     AND   MF150001 IN
       (SELECT UUID FROM oa1p.TMF401A1
          WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 21 for
SELECT MF150013,CHAR('@')
  FROM   oa1p.TMF150A1 f
  WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
                   AND '2011-08-31-23.59.59.999999'
    AND MF150022 = '0015'
    AND   not exists
      (SELECT 1 FROM oa1p.TMF401A1 t
         where f.mf150001 = t.uuid)
with ur  ;
explain plan set queryno = 30 for
SELECT MF150013,CHAR('@')
  FROM   oa1p.TMF150A1 f
  WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
                   AND '2011-08-31-23.59.59.999999'
    AND MF150022 = '0015'
    AND   not exists
      (SELECT 1 FROM oa1p.TMF401A1 t
         where f.mf150001 = t.uuid)
UNION ALL
SELECT MF150013,CHAR('@')
  FROM oa1p.TMF150A1
  WHERE MF150022 = '0015'
    AND   MF150001 IN
     (SELECT UUID FROM oa1p.TMF401A1
        WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
with ur  ;
explain plan set queryno = 31 for
SELECT count(*), sum(day(MF150013)),CHAR('@')
  FROM   oa1p.TMF150A1 f
  WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
                   AND '2011-08-31-23.59.59.999999'
    AND MF150022 = '0015'
    AND   not exists
      (SELECT 1 FROM oa1p.TMF401A1 t
         where f.mf150001 = t.uuid)
UNION ALL
SELECT count(*), sum(day(MF150013)),CHAR('@')
  FROM oa1p.TMF150A1
  WHERE MF150022 = '0015'
    AND   MF150001 IN
     (SELECT UUID FROM oa1p.TMF401A1
        WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
with ur  ;
explain plan set queryno = 40 for
SELECT MF150001, MF150013,CHAR('@') aff
  FROM   oa1p.TMF150A1 f
  WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
                   AND '2011-08-31-23.59.59.999999'
    AND MF150022 = '0015'
except all
SELECT MF150001, MF150013,CHAR('@') aff
  FROM   oa1p.TMF150A1 f
  WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
                   AND '2011-08-31-23.59.59.999999'
    AND MF150022 = '0015'
    AND   exists
      (SELECT 1 FROM oa1p.TMF401A1 t
         where f.mf150001 = t.uuid)
UNION ALL
SELECT mf150001, MF150013,CHAR('@') aff
  FROM oa1p.TMF150A1
  WHERE MF150022 = '0015'
    AND   MF150001 IN
     (SELECT UUID FROM oa1p.TMF401A1
        WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
with ur  ;
explain plan set queryno = 44 for
with w as (
SELECT MF150001, MF150013,CHAR('@') aff
  FROM   oa1p.TMF150A1 f
  WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
                   AND '2011-08-31-23.59.59.999999'
    AND MF150022 = '0015'
except all
SELECT MF150001, MF150013,CHAR('@') aff
  FROM   oa1p.TMF150A1 f
  WHERE MF150060 BETWEEN '2011-08-31-00.00.00.000000'
                   AND '2011-08-31-23.59.59.999999'
    AND MF150022 = '0015'
    AND   exists
      (SELECT 1 FROM oa1p.TMF401A1 t
         where f.mf150001 = t.uuid)
UNION ALL
SELECT mf150001, MF150013,CHAR('@') aff
  FROM oa1p.TMF150A1
  WHERE MF150022 = '0015'
    AND   MF150001 IN
     (SELECT UUID FROM oa1p.TMF401A1
        WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
) select count(*), sum(day(mf150013))
    from w
with ur  ;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;;;,
explain plan set queryno = 22 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
 WHERE MF150022 = '0015'
   AND  exists
   (SELECT UUID FROM oa1p.TMF401A1 t
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999'
    and f.mf150001 = t.uuid
   )
WITH UR;
explain plan set queryno = 27 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
 WHERE MF150022 = '0015'
   AND exists
   (SELECT UUID FROM oa1p.TMF401A1 t
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999'
    and f.mf150001 = t.uuid
   )
WITH UR;
explain plan set queryno = 30 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
 WHERE MF150022 = '0015'
                   AND '2011-08-31-23.59.59.999999'
  AND MF150022 = '0015'
   AND  not exists
   (SELECT UUID FROM oa1p.TMF401A1 t
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999'
    and f.mf150001 = t.uuid
   )
  UNION ALL
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1
 WHERE MF150022 = '0015'
   AND   MF150001 IN
   (SELECT UUID FROM oa1p.TMF401A1
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 31 for
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1 f
 WHERE MF150022 = '0015'
   AND  not exists
   (SELECT UUID FROM oa1p.TMF401A1 t
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999'
    and f.mf150001 = t.uuid
   )
  UNION ALL
SELECT MF150013,CHAR('@')
FROM oa1p.TMF150A1
 WHERE MF150022 = '0015'
   AND   MF150001 IN
   (SELECT UUID FROM oa1p.TMF401A1
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 33 for
SELECT count(*), sum(day(MF150013)),CHAR('@')
FROM oa1p.TMF150A1 f
 WHERE MF150022 = '0015'
   AND  not exists
   (SELECT UUID FROM oa1p.TMF401A1 t
    WHERE BEWERTUNGSDATUM + 0 days BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999'
    and f.mf150001 = t.uuid || ''
   )
  UNION ALL
SELECT count(*), sum(day(MF150013)),CHAR('@')
FROM oa1p.TMF150A1
 WHERE MF150022 = '0015'
   AND   MF150001 IN
   (SELECT UUID FROM oa1p.TMF401A1
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
WITH UR;
explain plan set queryno = 44 for
select count(*), sum(length(strip(MF150059))),
                 sum(length(strip(MF150005))),
                 sum(length(strip(MF150023)))
FROM oa1p.TMF150A1
;
explain plan set queryno = 55 for
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
 WHERE MF150022 = '0015'
except all
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
 WHERE MF150022 = '0015'
   AND  exists
   (SELECT UUID FROM oa1p.TMF401A1 t
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999'
    and f.mf150001 = t.uuid
   )
UNION ALL
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1
 WHERE MF150022 = '0015'
   AND   MF150001 IN
   (SELECT UUID FROM oa1p.TMF401A1
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
WITH UR
;
explain plan set queryno = 56 for
with w as (
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
 WHERE MF150022 = '0015'
except all
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1 f
 WHERE MF150022 = '0015'
   AND  exists
   (SELECT UUID FROM oa1p.TMF401A1 t
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999'
    and f.mf150001 = t.uuid
   )
UNION ALL
SELECT mf150001, MF150013,CHAR('@') aff
FROM oa1p.TMF150A1
 WHERE MF150022 = '0015'
   AND   MF150001 IN
   (SELECT UUID FROM oa1p.TMF401A1
    WHERE BEWERTUNGSDATUM BETWEEN '2011-08-31-00.00.00.000000'
                              AND '2011-08-31-23.59.59.999999')
)
select count(*), sum(day(mf150013)) from w
WITH UR
;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
;elete from plan_table where queryno = 1
;
select * from  cmnbatch.plan_view1
        --  2010-11-12-21.45.30.666016  MFR0000223
    where progname = 'MF7930' and version = 'MFR0000223'
      --  and bind_time = '2010-11-12-21.45.30.666016'
          and bind_time = '2010-01-10-12.41.38.311213'
      --  and queryno = 775
    order by applname, progname, queryNo, qblockno, planno
;  x;
select * from  cmnbatch.plan_view1
    where progname = 'YMFC112' and version = 'MFR00002145D0FA880'
      --  and bind_time = '2010-11-12-21.46.53.627557'
          and queryno = 775
    order by applname, progname, queryNo, qblockno, planno
             , bind_time desc
;  x;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
   SELECT INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
        OE_VON_DATE,OE_Bis_Date,MF150019A,
  SUM(CASE WHEN MF150019 BETWEEN 0 AND 999999999999999
           THEN MF150019
           ELSE 0        END) AS SUMME_Z,
  SUM(CASE WHEN MF150019 BETWEEN -999999999999999 and 0
           THEN MF150019
                 ELSE 0        END) AS SUMME_A,
        0,
        0
    FROM oa1p.TMF150A1,oa1p.TMFOE1T1
    Where MF150067  = INT_HIST_OE_BEZ
    AND   MF150013 BETWEEN  OE_VON_DATE AND OE_Bis_Date
    AND   MF150013 BETWEEN '01.11.2010' AND '11.11.2010'
    GROUP BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
             OE_VON_DATE,OE_Bis_Date,MF150019A
    ORdER BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
             OE_VON_DATE,OE_Bis_Date,MF150019A
    WITH UR
  ;
explain plan set queryno = 2 for
   SELECT INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
        OE_VON_DATE,OE_Bis_Date,MF150019A,
  SUM(CASE WHEN MF150019 BETWEEN 0 AND 999999999999999
           THEN MF150019
           ELSE 0        END) AS SUMME_Z,
  SUM(CASE WHEN MF150019 BETWEEN -999999999999999 and 0
           THEN MF150019
                 ELSE 0        END) AS SUMME_A,
        0,
        0
    FROM oa1p.TMF150A1,oa1p.TMFOE1T1
    Where MF150067  = INT_HIST_OE_BEZ
    AND   MF150013 BETWEEN  max(OE_VON_DATE, ? || '')
                        AND min(OE_Bis_Date, ? || '')
    GROUP BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
             OE_VON_DATE,OE_Bis_Date,MF150019A
    ORdER BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
             OE_VON_DATE,OE_Bis_Date,MF150019A
    WITH UR
  ;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
delete from plan_table where queryno = 1
;
 update plan_table
      set queryno = 775
        , collid     = 'MF'
        , progname = 'YMFC112'
        , version = 'MFR00002145D0FA880'
        , optHint  = 'WK1'
 ;
 -- update plan_table           -- nein, verliert matchCols mit altem sq
 --      set method  = 4
 --     where tName = 'TMF150A1'
 --;
 select * from  plan_view2
     order by applname, progname, queryNo, qblockno, planno
 ;
 delete   from  cmnbatch.plan_table
     where opthint = 'WK1' and progName = 'YMFC112'
 ;
 insert into cmnbatch.plan_table
     select * from A540769.plan_table;
 select * from  cmnbatch.plan_view2
     where opthint = 'WK1' and progName = 'YMFC112'
     order by applname, progname, queryNo, qblockno, planno
 ;
 commit  ;
;x,
select current timestamp from sysibm.sysdummy1;
   SELECT INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
        OE_VON_DATE,OE_Bis_Date,MF150019A,
  SUM(CASE WHEN MF150019 BETWEEN 0 AND 999999999999999
           THEN MF150019
           ELSE 0        END) AS SUMME_Z,
  SUM(CASE WHEN MF150019 BETWEEN -999999999999999 and 0
           THEN MF150019
                 ELSE 0        END) AS SUMME_A,
        0,
        0
    FROM oa1p.TMF150A1,oa1p.TMFOE1T1
    Where MF150067  = INT_HIST_OE_BEZ
    AND   MF150013 BETWEEN  OE_VON_DATE AND OE_Bis_Date
    AND   MF150013 BETWEEN '01.11.2010' AND '11.11.2010'
    GROUP BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
             OE_VON_DATE,OE_Bis_Date,MF150019A
    ORdER BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
             OE_VON_DATE,OE_Bis_Date,MF150019A
    WITH UR
  ;
select current timestamp from sysibm.sysdummy1;
;x;
select * from  cmnbatch.plan_view1
--  where progname = 'YMFC203' and version = 'MFR00002355DFB546C'
    where progname = 'YMFC203' and version = 'MFR00001975C33357F'
      --  and bind_time = '2010-11-12-21.46.53.627557'
    order by applname, progname, queryNo, qblockno, planno
             , bind_time desc
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
  SELECT COUNT(*)
  FROM TABLE (
        SELECT MF150001
        FROM oa1p.TMF150A1
        WHERE MF150023  = '065911392784'
        AND   MF150055 LIKE '%'
        AND   MF150085 between 10 and 89
        AND   MF150013  BETWEEN '01.01.2008' and '10.11.2010'
        AND   ((MF150019 BETWEEN 100 AND 999999999999999)
        OR     (MF150019 BETWEEN -999999999999999 and -100))
        UNION
        SELECT MF150001
        FROM oa1p.TMF150H1
        WHERE MF150023  = '065911392784'
        AND   MF150055 LIKE '%'
        AND   MF150085 between 10 and 89
        AND   MF150013  BETWEEN '01.01.2008' and '10.11.2010'
        AND   ((MF150019 BETWEEN 100 AND 999999999999999)
        OR     (MF150019 BETWEEN -999999999999999 and -100))
        ) AS X
  WITH UR
  ;
explain plan set queryno = 2 for
  SELECT COUNT(*)
  FROM TABLE (
        SELECT MF150001
        FROM oa1p.TMF150A1
        WHERE MF150023  = '065911392784'
        AND   MF150055 LIKE '%'
        AND   MF150085 between 10 and 89
        AND   MF150013  BETWEEN '01.01.2008' and '10.11.2010'
        AND   ((MF150019 BETWEEN 100 AND 999999999999999)
        OR     (MF150019 BETWEEN -999999999999999 and -100))
        UNION all
        SELECT MF150001
        FROM oa1p.TMF150H1
        WHERE MF150023  = '065911392784'
        AND   MF150055 LIKE '%'
        AND   MF150085 between 10 and 89
        AND   MF150013  BETWEEN '01.01.2008' and '10.11.2010'
        AND   ((MF150019 BETWEEN 100 AND 999999999999999)
        OR     (MF150019 BETWEEN -999999999999999 and -100))
        ) AS X
  WITH UR
  ;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;x;
   SELECT INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
        OE_VON_DATE,OE_Bis_Date,MF150019A,
  SUM(CASE WHEN MF150019 BETWEEN 0 AND 999999999999999
           THEN MF150019
           ELSE 0        END) AS SUMME_Z,
  SUM(CASE WHEN MF150019 BETWEEN -999999999999999 and 0
           THEN MF150019
                 ELSE 0        END) AS SUMME_A,
        0,
        0
    FROM oa1p.TMF150A1,oa1p.TMFOE1T1
    Where MF150067  = INT_HIST_OE_BEZ
    AND   MF150013 BETWEEN  OE_VON_DATE AND OE_Bis_Date
    AND   MF150013 BETWEEN '01.11.2010' AND '11.11.2010'
    GROUP BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
             OE_VON_DATE,OE_Bis_Date,MF150019A
    ORdER BY INT_OE_BEZ,Int_Hist_OE_Bez,MF150066,
             OE_VON_DATE,OE_Bis_Date,MF150019A
    WITH UR
  ;
select current timestamp from sysibm.sysdummy1;
  SELECT COUNT(*)
  FROM TABLE (
        SELECT MF150001
        FROM oa1p.TMF150A1
        WHERE MF150023  = '065911392784'
        AND   MF150055 LIKE '%'
        AND   MF150085 between 10 and 89
        AND   MF150013  BETWEEN '01.01.2008' and '10.11.2010'
        AND   ((MF150019 BETWEEN 100 AND 999999999999999)
        OR     (MF150019 BETWEEN -999999999999999 and -100))
        UNION
        SELECT MF150001
        FROM oa1p.TMF150H1
        WHERE MF150023  = '065911392784'
        AND   MF150055 LIKE '%'
        AND   MF150085 between 10 and 89
        AND   MF150013  BETWEEN '01.01.2008' and '10.11.2010'
        AND   ((MF150019 BETWEEN 100 AND 999999999999999)
        OR     (MF150019 BETWEEN -999999999999999 and -100))
        ) AS X
  WITH UR
  ;
select current timestamp from sysibm.sysdummy1;
  SELECT COUNT(*)
  FROM TABLE (
        SELECT MF150001
        FROM oa1p.TMF150A1
        WHERE MF150023  = '065911392784'
        AND   MF150055 LIKE '%'
        AND   MF150085 between 10 and 89
        AND   MF150013  BETWEEN '01.01.2008' and '10.11.2010'
        AND   ((MF150019 BETWEEN 100 AND 999999999999999)
        OR     (MF150019 BETWEEN -999999999999999 and -100))
        UNION all
        SELECT MF150001
        FROM oa1p.TMF150H1
        WHERE MF150023  = '065911392784'
        AND   MF150055 LIKE '%'
        AND   MF150085 between 10 and 89
        AND   MF150013  BETWEEN '01.01.2008' and '10.11.2010'
        AND   ((MF150019 BETWEEN 100 AND 999999999999999)
        OR     (MF150019 BETWEEN -999999999999999 and -100))
        ) AS X
  WITH UR
  ;
select current timestamp from sysibm.sysdummy1;
rollback
}¢--- A540769.WK.SQL(EXPLAIMI) cre=2010-11-23 mod=2010-11-23-12.12.23 A540769 ---
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
    select count(*)              from OA1T.VPC060A1A
    where SUBSTR(SECURITY#,1,10)  = ?
    and   SEC_IDENT_SYS = 1 with ur;
explain plan set queryno = 2 for
    select count(*)              from OA1T.VPC060A1A
    where SECURITY# like   ?
    and   SEC_IDENT_SYS = 1 with ur;
explain plan set queryno = 3 for
    select count(*)              from OA1T.VPC060A1A
    where SECURITY# like   ? || '%'
    and   SEC_IDENT_SYS = 1 with ur;
select * from plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(EXPLAIN) cre=2006-10-30 mod=2010-11-18-12.46.16 A540769 ---
select bind_time, substr(version, 1, 20), count(*)
    from cmnBatch.plan_table
    where   progname = 'SN261@I'
    group by bind_time, version
    order by 2 desc, 1 desc
;
}¢--- A540769.WK.SQL(EXPLAING) cre=2014-02-13 mod=2014-03-10-10.26.38 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'NG'
        and prog         = 'YNGPRKT'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
    from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'NG'
        and progName     = 'YNGPRKT'
        and bind_time    = '2012-05-19-23.59.50.200285'
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'NG'
        and progName     = 'YNGPRKT'
        and bind_time    = '2012-05-19-23.59.50.200285'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;x;
select count(*), NG005021, NG005022
    from oa1p.tng005a1
    group by NG005021, NG005022
    order by 1 desc
    fetch first 100 rows only
with ur
;x;
select count(*), NG005020, NG005021, NG005022, NG005025, NG005001
               , NG005010
    from oa1p.tng005a1
    group by NG005020, NG005021, NG005022, NG005025, NG005001, NG005010
    order by 1 desc
    fetch first 100 rows only
;x;
}¢--- A540769.WK.SQL(EXPLAINQ) cre=2010-06-22 mod=2010-06-22-10.45.59 A540769 ---
set current sqlId = 'A540769';
-- select * from tstRts.TrtsReoTSException;
delete from  plan_table ;
explain plan set queryno = 3 for
SELECT EMPNO, FIRSTNME, LASTNAME, JOB, SALARY, BONUS,
        COMM, LOCATION, PROJNAME
FROM DSN8910.EMP A, DSN8910.DEPT B, DSN8910.EPROJ C
WHERE A.WORKDEPT = B.DEPTNO
AND B.DEPTNO = C.DEPTNO
AND A.EMPNO IN (SELECT MGRNO FROM DSN8910.DEPT WHERE MGRNO IS NOT NULL )
ORDER BY 1,2,3
;
select * from   plan_view5 p
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
s;
?????????????????????????????????????????????
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select * from tstRts.VrtsReoTSException;
explain plan set queryno = 4 for
select                s.*
    from tstRts.VRtsReoTs          s
    where class > 0
--  where db = 'MF01A1T' and ts like 'A1%5%' and part in (0,1,5,7,9)
    order by class desc, db, ts
;
   explain plan set queryno = 7 for
select                s.*
    from tstRts.VRtsReoTS         S
    where db  like    'DA%'  and ts like 'A1%5%' and part in (0,1,5,7,9)
    order by db, ts, part
;
explain plan set queryno = 13 for
select                s.*
    from tstRts.VRtsReoTS         S
    where db =     'MF01A1T' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
select parent_qblockno pa,cteref,
t.* from plan_table t
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
    ;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
xxx
select * from cmnbatch.plan_view5
   where progName = 'YDG130' and queryno in ( 2453, 2454)
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
SELECT   SYMBOLCH,SYMBOLCSFI,SYMBOLISIN,IDSYMBOL_RATING,SCHEME_RATING,
    raTINGDATE,RATINGSTATUSTYPE,WATCHLISTSTATTYPE
FROM oa1t.VVV_XTREQSCANKEY INNER
JOIN oa1t.VVV_IDS_STD814
     ON oa1t.VVV_IDS_STD814.INSTRUMENTID
     = oa1t.VVV_XTREQSCANKEY.TEMP_DBKEY
 --  WHERE oa1t.VVV_XTREQSCANKEY.PARTITION_NUMBER =         8
WITH UR
fOR FETCH ONLY
;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
    from a540769.vrtsReoTs
    where dbName like 'MF%'
;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
 -- find the startpoint for a recovery or logDiscontinuity
 with recSta as
   ( select c.*
         from sysibm.syscopy c
         where c.timestamp =
           ( select max(a.timestamp)
                 from sysibm.syscopy a
                 where c.dbName = a.dbName and c.tsName = a.tsName
                     and c.dsNum = a.dsNum
                     and icType in ('F', 'R', 'S', 'W', 'Y')
           )
   )
 select * from recSta
     where dbName like 'D%' and icType <> 'F'
     order by dbName, tsName, dsNum
 ;
 -- find the startpoint for a recovery or logDiscontinuity
explain plan set queryno = 9 for
 with recSta as
   ( select p.dbName db, p.tsName ts, p.partition pa, q.*
         from sysibm.systablepart p
         left join
     (   select c.*
         from sysibm.syscopy c
         where c.timestamp =
           ( select max(a.timestamp)
                 from sysibm.syscopy a
                 where c.dbName = a.dbName and c.tsName = a.tsName
                     and c.dsNum = a.dsNum
                     and icType in ('F', 'R', 'S', 'W', 'Y')
           )
     ) q
     on q.dbName = p.dbName and q.tsName = p.tsName
            and p.partition = q.dsNum
   )
 select * from recSta
     where dbName like 'D%' and icType <> 'F'
     order by dbName, tsName, dsNum
 ;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
----- query 1532  YXEBV2E,               30.6.09
----- Kumar Sandeep will sequenz  TKS835, TKS833, TKS843, TKS843
-----      seit einem Jahr bind  TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359  for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from CMNbatch.plan_view5
    where queryno between 142 and 147
    and progname = 'YCI017C'
    order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
    UPDATE bua.TXBH111
    SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
      EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
      select count(*), jobname, max(partition), min(partition)
          from sysibm.syscopy c, sysibm.systablepart p
          where c.dbName = p.dbName and c.tsName = p.tsname
              and c.dsNum in (0, p.partition)
          group by jobName
          order by 1 desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
    from CMNBATCH.plan_view5
    where progName = 'DBWK3'
    order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
    from oa1t.vpw210a1V
    group by auftrags_nummer, pm_id
    order by 1 desc
;
--select count(*) from oa1t.TSN100A1
--    with ur
--    ;
select *
    from CMNBATCH.plan_view5
    where progName = 'YPW2KPI' and queryNo = 4235
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
 explain plan set queryno = 111 for
         SELECT T.* FROM oa1t.VNI600A101A C
               , oa1t.VNI203A101A T
           WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
           AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
    WITH NI600 (PERENDDT) AS
            (SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
               FROM oa1t.VNI600A101A C
               WHERE C.CTRLID = 'NI6220R'
             )
             SELECT T.* FROM NI600
                   ,oa1t.VNI203A101A T
               WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
    from cmnbatch.plan_view5
    where progName = 'YRPNIMP' and queryNo = 866
    order by applname, progname, queryNo, qblockno, planno
;
x
         d.bType, p.collid, p.Name, p.version,
 p.conToken, p.timeStamp, p.type,
 p.validate, p.isolation, p.valid, p.operative,
 p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
 on p.location = d.dLocation and p.collid = d.dCollid
     and p.name = d.dName and  p.conToken = d.dConToken     2.22.129867'
re
 (bQualifier, bName, bType) in
 (  select dbName, name, 'R'
         from sysIbm.sysTablespace
         where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
 )
     from gdb0283.vnz240a1v
    where    SearchValue01            = ?
          -- dec(SearchValue01,15,3)  = ?
      and CreateDateTime           < ?
      and dec(SearchValue02,15,3) >= ?
      and dec(SearchValue02,15,3) <= ?
      and Objtype                 ^= 'PORDSPLT'
    order by CreateDateTime
    fetch first 101 rows only
    optimize for 101 rows
    with ur
;
select * from plan_view5A
    where queryno = 999
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAINS) cre=2015-04-08 mod=2015-04-08-15.56.34 A540769 ---
with s as
(
  select substr(program_name, 1, 8) prg, lines
    ,       cast(substr(stmt_text, 1, 2000) as varchar(2000)) stmt
    , cached_ts, stat_execB, literal_repl
    from dsn_statement_cache_table
    where program_name = 'YVV3240'
)
, t as
(
  select s.*
      , case when posStr(stmt, '''') > 0 then posStr(stmt, '''')
             when posStr(stmt, '= 1') > 0 then posStr(stmt, '= 1')
             when posStr(stmt, '= 2') > 0 then posStr(stmt, '= 2')
             when posStr(stmt, '= 3') > 0 then posStr(stmt, '= 3')
             when posStr(stmt, '= 4') > 0 then posStr(stmt, '= 4')
             when posStr(stmt, '= 5') > 0 then posStr(stmt, '= 5')
             when posStr(stmt, '= 6') > 0 then posStr(stmt, '= 6')
             when posStr(stmt, '= 7') > 0 then posStr(stmt, '= 7')
             when posStr(stmt, '= 8') > 0 then posStr(stmt, '= 8')
             when posStr(stmt, '= 9') > 0 then posStr(stmt, '= 9')
             else 200 end firstA
    from s
)
select prg, lines, count(*)
       , avg((days(current date) - days(cached_ts)) * 86400
          +  midnight_seconds(current timestamp)
            -midnight_seconds(cached_ts)) cacheAgeSes
       , avg(real(stat_execB)) execB
       , min(literal_repl), max(literal_repl)
       , firstA, min(stmt) stmtMin
    from t
    group by prg, lines, firstA, substr(stmt,1 , firstA)
    order by prg, lines, min(stmt)
;x;
--- explain dyn statement cache ----------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_statement_cache_table;
explain stmtCache all;
commit;
select count(*) from dsn_statement_cache_table;
select count(*), collid
    from dsn_statement_cache_table
    group by collid
;
select count(*), program_name, lines
    from dsn_statement_cache_table
    group by program_name, lines
;
select substr(program_name, 1, 8) prg, lines, count(*)
       , avg((days(current date) - days(cached_ts)) * 86400
          +  midnight_seconds(current timestamp)
            -midnight_seconds(cached_ts)) cacheAgeSes
       , avg(real(stat_execB)) execB
       , min(literal_repl), max(literal_repl)
    from dsn_statement_cache_table
    where program_name = 'YVV3240'
    group by collid, program_name, lines
;x;
;x;
select count(*), collid
    from dsn_statement_cache_table
    group by collid
;x;
select count(*), group_member
    from dsn_statement_cache_table
    group by group_member;
;x;
    select *
        from cmnbatch.plan_view2Det
        where     collid     = 'MF'
            and progName     = 'MF7010'
            and explain_time = '2011-08-30-14.14.59.234601'
        order by collid, progName, version, explain_time,
                 queryno, qBlockNo, planno, mixopSeq
        with ur
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAINZ) cre=2011-01-17 mod=2011-07-14-10.25.23 A540769 ---
select * from  cmnbatch.plan_view1
    where progName = 'NZ5820'
        and version = 'ZVHI000058'
    order by applname, progname, queryNo, qblockno, planno
;
select * from  cmnbatch.plan_table
    where progName = 'NZ5820'
        and version = 'ZVHI000058'
    order by applname, progname, queryNo, qblockno, planno
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for
        select *
        from oa1p.TNZ240A1
      where
        NZ240003 > ? || ''        and NZ240003 < ? || ''
        and  NZ240036  <=    ?
;
explain plan set queryno = 2 for
        select *
        from oa1p.TNZ240A1
      where
        NZ240003 > ?              and NZ240003 < ?
        and  NZ240036  <=    ?
;
explain plan set queryno = 4 for
        select *
        from oa1p.TNZ240A1
      where
        NZ240003 between  ? and ?
        and  NZ240036  <=    ?
      optimize for 1 rows
;
explain plan set queryno = 5 for
        select *
        from oa1p.TNZ240A1
      where
        NZ240003 between  x'003544' and x'003545'
        and  NZ240036  <=    ?
;
explain plan set queryno = 6 for
        select *
        from oa1p.TNZ240A1
      where
        NZ240003 between  x'0036' and x'0055FFFF'
        and  NZ240036  <=    ?
;
explain plan set queryno = 7 for
        select *
        from oa1p.TNZ240A1
      where
        NZ240003 >  x'0036' and  NZ240003 <x'0055FFFF'
        and  NZ240036  <=    ?
;
select * from  plan_view1
    order by applname, progname, queryNo, qblockno, planno
;
select * from  plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
X'0035
X'0039
X'003D
X'0041
X'0045
X'0049
X'004D
X'0051
X'0055
;x;
select count(*), accesstype, page_range
     from cmnbatch.plan_table
     group by accesstype, page_range
     order by accesstype, page_range
     with ur
;;;
select * from  s100447.plan_view1
 where progName in ('YWPLXL3')  and collid     = 'A540769'
  --   and bind_time = '2010-07-18-22.01.54.199935'
    order by applname, progname, queryNo, qblockno, planno,
             bind_time, tname
;x;
select * from   cmnbatch.dsn_statemnt_table
 where progName in ('YWPLXL3')
       and explain_time = '2010-07-18-22.01.54.199935'
 -- order by applname, progname, queryNo, qblockno, planno
;x;
select '4', count(*), sum(case when substr(wp70302e,1,5)
        in ('BFTBB','WPSPM') then 1 else 0 end)
    from oa1p.TWP703A104
union all select '5', count(*), sum(case when substr(wp70302e,1,5)
        in ('BFTBB','WPSPM') then 1 else 0 end)
    from oa1p.TWP703A105
    with ur
;;
set current sqlid = 'A540769';
delete from plan_table;
   explain plan set queryno = 1 for
   SELECT * FROM A540769.VMFNVEXT
       WHERE MF150023 > '038 ' AND MF150023 <= '052 '
       WITH UR
;
   explain plan set queryno = 2 for
   SELECT * FROM A540769.VMFNVPART
       WHERE MF150023 > '052 ' AND MF150023 <= '057 '
;
   explain plan set queryno = 3 for
   select t.*, i.mf150Hash
       from oa1p.tmf150a1   t, A540769.tmfnvPart i
       where t.mf150013 = i.mf150013
         and t.mf150023 = i.mf150023
         and i.part = 1
       order by i.MF150023              ASC,
                i.MF150013              DESC
;
   explain plan set queryno = 4 for
   select t.*, i.mf150Hash
       from oa1p.tmf150a1   t, A540769.tmfnvPart i
       where t.mf150013 = i.mf150013
         and t.mf150023 = i.mf150023
         and t.MF150082 = ' '
         and i.part = 1
       order by i.MF150023              ASC,
                i.MF150013              DESC
;
 --explain plan set queryno = 7 for
 --ect                s.*
 -- from tstRts.tsIxStats        S
 -- where db  like    'MF%'  and ts like 'A1%1%' and part in (0,1,5,7,9)
 -- order by db, ts, part
 --
 --ect current timestamp from sysibm.sysdummy1;
--lect                s.*
--  from tstRts.tsIxStats        S
--  where db =     'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
--  order by db    , ts -- , part
--
--lect current timestamp from sysibm.sysdummy1;
--lect                s.*
--  from tstRts.tsIxStats        S
--  where db like  'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
--  order by db    , ts -- , part
--
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
 x
select * from A540769.plan_view5
 where progName in ('SV5003', 'SV5390', 'SV8240')
    order by applname, progname, queryNo, qblockno, planno
;x;

select * from cmnbatch.plan_view2
 where progName in ('FI5700') and version = 'BKUR000319'
    order by applname, progname, queryNo, qblockno, planno
;x;

-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'A540769';
delete from plan_table;
   explain plan set queryno = 3 for
select                s.*
    from tstRts.VRtsReoTSSchwelle  s
    where db =     'MF01A1T' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
   explain plan set queryno = 7 for
select                s.*
    from tstRts.tsIxStats        S
    where db  like    'MF%'  and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db, ts, part
;
select current timestamp from sysibm.sysdummy1;
select                s.*
    from tstRts.tsIxStats        S
    where db =     'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select                s.*
    from tstRts.tsIxStats        S
    where db like  'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
 x
 xxx
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for        -- mit concat
with c as
( select mf150023 cif, mf150013 dat, count(*) cnt
      from oa1p.tmf150A1
      where    mf150023 like '000%'
      group by mf150023 , mf150013
) , h as
( select
  smallint(mod(
  int(
  translate(
  translate('08642' , hex(substr(cif     , 8, 5)), '1234567890'),
            '024579', 'ABCDEF'))
                + month(dat)  ,11113)) h
      , cnt
      from c
)
, g as
( select    sum(cnt) c
    from h
    group by h
)
, p as
( select    sum(cnt) c
    from h
    group by floor(h/111.14)
)
select 'h', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
   from g
   group by floor(log10(c) * 6)
union all
select 'p', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
   from p
   group by floor(log10(c) * 6)
order by 1, 2
with ur
;
explain plan set queryno = 5 for        -- mit concat
with h as
( select mf150023 cif,
  smallint(mod(
  int(
  translate(
  translate('08642' , hex(substr(mf150023  , 8, 5)), '1234567890'),
            '024579', 'ABCDEF')), 9973)) t
      from oa1p.tmf150A1
   -- where cif like '000%'
)
, g as
( select t, count(*) c
    from h
    group by t
)
select sum(c), min(c), max(c), count(*) "dist c"
   from g
   group by floor(log10(c) * 6)
   with ur
;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from cmnBatch.plan_view5
 where progName = 'YDG129'
    order by applname, progname, queryNo, qblockno, planno
;
x
select * from cmnBatch.plan_view5
 where progName = 'MF8500' -- and version = 'MFR0000203'
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for        -- mit concat
    SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
           RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
           RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
    FROM oa1p.TRM010A1
    WHERE ?       BETWEEN RM01002 AND RM01006
      AND  RM01015 || '' IN ('RT001','RT002','RT004',
                      'RT010','RT015','RT018','RT201')
    ORDER BY RM01015, RM01011, RM01014, RM01002
    FOR FETCH ONLY;
explain plan set queryno = 3 for        -- mit or
    SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
           RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
           RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
    FROM oa1p.TRM010A1
    WHERE ?       BETWEEN RM01002 AND RM01006
      AND  (RM01015 IN('RT001','RT002','RT004',
                      'RT010','RT015','RT018','RT201')
            or  1 = 0
           )
    ORDER BY RM01015, RM01011, RM01014, RM01002
    FOR FETCH ONLY;
explain plan set queryno = 9 for        -- neu ohne or
    SELECT *
    FROM oa1p.TRM010A1
    WHERE ?       BETWEEN RM01002 AND RM01006
      AND  RM01015 IN('RT001','RT002','RT004',
                      'RT010','RT015','RT018','RT201')
    ORDER BY RM01015, RM01011, RM01014, RM01002
    FOR FETCH ONLY;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for        -- alt schnell
  Select MF150023,MF150067,
     sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
     sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
  FROM oa1p.TMF150A1
  WHERE MF150066 = '        A965367'
  AND   MF150013 BETWEEN '01.01.2009' and '30.11.2009'
  AND   MF150085 BETWEEN 10 AND 89
  AND   MF150084 BETWEEN 10 AND 89
  GROUP BY MF150023,MF150067
  with ur
;
explain plan set queryno = 9 for        -- neu langsam
  Select MF150023,MF150067,MF150019A,
     sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
     sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
  FROM oa1p.TMF150A1
  WHERE MF150066 = '        A965367'
  AND   MF150013 BETWEEN '01.01.2009' and '30.11.2009'
  AND   MF150085 BETWEEN 10 AND 89
  AND   MF150084 BETWEEN 10 AND 89
  GROUP BY MF150023,MF150067,MF150019A
  with ur;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
delete from plan_table;
explain plan set queryno = 3 for
   SELECT SV363012
   FROM OA1P.TSV361A1 JOIN oa1p.TSV363A1
   ON SV361003=SV363001
   WHERE SV361002=1
   AND SV361008=2
   AND SV361009= ?
   AND(SV363007='1' OR SV363007='2')
   AND(ABS(SV363010 - '01.01.2009')<30 OR ABS(SV363011
   - date('01.01.2009'))<30)
   ORDER BY SV363010 DESC,SV363011 DESC
;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
select count(*), SV363001
   FROM OA1P.TSV363A1
    group by SV363001
    ORDER BY 1 DESC
    WITH UR
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
    from a540769.vrtsReoTs
    where dbName like 'MF%'
;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
----- query 1532  YXEBV2E,               30.6.09
----- Kumar Sandeep will sequenz  TKS835, TKS833, TKS843, TKS843
-----      seit einem Jahr bind  TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359  for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
select * from cmnbatch.plan_view5a
    where progname = 'WI8710'
         and version in ('WS8B000786', 'WS8B000325')
         and queryno in ( 241)
    order by applname, progname, queryNo, timestamp, qblockno, planno
;
x
x
select * from CMNbatch.plan_view5
    where queryno between 142 and 147
    and progname = 'YCI017C'
    order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
    UPDATE bua.TXBH111
    SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
      EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
      select count(*), jobname, max(partition), min(partition)
          from sysibm.syscopy c, sysibm.systablepart p
          where c.dbName = p.dbName and c.tsName = p.tsname
              and c.dsNum in (0, p.partition)
          group by jobName
          order by 1 desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
    from CMNBATCH.plan_view5
    where progName = 'DBWK3'
    order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
    from oa1t.vpw210a1V
    group by auftrags_nummer, pm_id
    order by 1 desc
;
--select count(*) from oa1t.TSN100A1
--    with ur
--    ;
select *
    from CMNBATCH.plan_view5
    where progName = 'YPW2KPI' and queryNo = 4235
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
 explain plan set queryno = 111 for
         SELECT T.* FROM oa1t.VNI600A101A C
               , oa1t.VNI203A101A T
           WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
           AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
    WITH NI600 (PERENDDT) AS
            (SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
               FROM oa1t.VNI600A101A C
               WHERE C.CTRLID = 'NI6220R'
             )
             SELECT T.* FROM NI600
                   ,oa1t.VNI203A101A T
               WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
    from cmnbatch.plan_view5
    where progName = 'YRPNIMP' and queryNo = 866
    order by applname, progname, queryNo, qblockno, planno
;
x
         d.bType, p.collid, p.Name, p.version,
 p.conToken, p.timeStamp, p.type,
 p.validate, p.isolation, p.valid, p.operative,
 p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
 on p.location = d.dLocation and p.collid = d.dCollid
     and p.name = d.dName and  p.conToken = d.dConToken     2.22.129867'
re
 (bQualifier, bName, bType) in
 (  select dbName, name, 'R'
         from sysIbm.sysTablespace
         where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
 )
     from gdb0283.vnz240a1v
    where    SearchValue01            = ?
          -- dec(SearchValue01,15,3)  = ?
      and CreateDateTime           < ?
      and dec(SearchValue02,15,3) >= ?
      and dec(SearchValue02,15,3) <= ?
      and Objtype                 ^= 'PORDSPLT'
    order by CreateDateTime
    fetch first 101 rows only
    optimize for 101 rows
    with ur
;
select * from plan_view5A
    where queryno = 999
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIN0) cre=2011-10-14 mod=2014-06-27-10.19.20 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'MF'
        and prog         = 'MF7010'
    order by pcEx  desc, explain_time desc
    with ur
;x;
--- ausgewählte Explains analysieren
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2Det
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and explain_time = '2011-08-30-14.14.59.234601'
    order by collid, progName, version, explain_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and explain_time = '2011-08-30-14.14.59.234601'
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
}¢--- A540769.WK.SQL(EXPLAIN1) cre=2011-10-14 mod=2014-06-12-10.03.54 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
    select *
        from cmnbatch.plan_view2Det
        where     collid     = 'MF'
            and progName     = 'MF7010'
            and explain_time = '2011-08-30-14.14.59.234601'
        order by collid, progName, version, explain_time,
                 queryno, qBlockNo, planno, mixopSeq
        with ur
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIN5) cre=2014-06-12 mod=2014-06-12-10.05.40 A540769 ---
--- neuester Explains eines Programmes --------------------------------
select *
    from cmnbatch.plan_view5
    where  collid   = 'MF'
       and progName = 'MF7010'
    order by collid, progName, version, explain_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
}¢--- A540769.WK.SQL(EXPLAIPD) cre=2010-05-10 mod=2010-05-11-13.27.55 A540769 ---
-- select * from tstRts.TrtsReoTSException;
set current path oa1p;
set current schema = RZ2XX;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 15 for
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
       count(*) "count",
       avg(class7_elapsed) "avgElapsed" ,
       sum(class7_elapsed) "totElapsed" ,
       min(class7_elapsed) "minElapsed" ,
       max(class7_elapsed) "maxElapsed" ,
       min(timestamp -class7_elapsed seconds) "minStart",
       max(timestamp) "maxEnd"
    from       TACCT_Program p, A540769.TPDB t
    where  -- timestamp > timestamp(date(current_timestamp - 2 days)
           -- , '00.00.00') and
          (    (PCK_COLLECTION_ID = 'NI'
                  and pck_id in (  'NI6210',
                                   'NI6260',
                                   'NI6860',
                                   'NI7600',
                                   'NI9700',
                                   'NI9740',
                                   'YNI0131',
                                   'YNI0183',
                                   'YNI0350',
                                   'YNI56SR',
                                   'YNICAMU',
                                   'YNICRSS',
                                   'YNICTEU',
                                   'YNINP03',
                                   'YNIPACG',
                                   'YNIPAMG',
                                   'YNIPAMU',
                                   'YNIPFLG',
                                   'YNIPREG',
                                   'YNIPTEG',
                                   'YNIPTEU',
                                   'YNIREST'))
              or (PCK_COLLECTION_ID in ('NI01', 'NI02')
                  and pck_id in (  'YNICL03',
                                   'YNINP03',
                                   'YNIPACG'))
              or (PCK_COLLECTION_ID = 'OA1P'
                  and pck_id in (  'NI660AAI')))
        and p.timestamp + 0 seconds >= t.von
        and p.timestamp - p.class7_elapsed seconds <= t.bis
    group by t.PLAN, t.von, t.bis,
             p.plan_name, p.pck_id
    order by 1, 2, 3, 5, 6
    with ur
;
explain plan set queryno =  5 for
with t as
(
select plan_name,
       min(timestamp - class1_elapsed seconds) von,
       (max(timestamp)) bis
    from       TACCT_general
    where -- timestamp > timestamp(date(current_timestamp - 2 days)
          --  , '00.00.00') and
        plan_name in ('NI5340', 'NI5310')
    group by date(timestamp), plan_name
    order by date(timestamp), plan_name
)
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
       count(*) "count",
       avg(class7_elapsed) "avgElapsed" ,
       sum(class7_elapsed) "totElapsed" ,
       min(class7_elapsed) "minElapsed" ,
       max(class7_elapsed) "maxElapsed" ,
       min(timestamp -class7_elapsed seconds) "minStart",
       max(timestamp) "maxEnd"
    from       TACCT_Program p, t
    where  -- timestamp > timestamp(date(current_timestamp - 2 days)
           -- , '00.00.00') and
          (    (PCK_COLLECTION_ID = 'NI'
                  and pck_id in (  'NI6210',
                                   'NI6260',
                                   'NI6860',
                                   'NI7600',
                                   'NI9700',
                                   'NI9740',
                                   'YNI0131',
                                   'YNI0183',
                                   'YNI0350',
                                   'YNI56SR',
                                   'YNICAMU',
                                   'YNICRSS',
                                   'YNICTEU',
                                   'YNINP03',
                                   'YNIPACG',
                                   'YNIPAMG',
                                   'YNIPAMU',
                                   'YNIPFLG',
                                   'YNIPREG',
                                   'YNIPTEG',
                                   'YNIPTEU',
                                   'YNIREST'))
              or (PCK_COLLECTION_ID in ('NI01', 'NI02')
                  and pck_id in (  'YNICL03',
                                   'YNINP03',
                                   'YNIPACG'))
              or (PCK_COLLECTION_ID = 'OA1P'
                  and pck_id in (  'NI660AAI')))
        and p.timestamp + 0 seconds >= t.von
        and p.timestamp - p.class7_elapsed seconds <= t.bis
    group by t.PLAN_NAME, t.von, t.bis,
             p.plan_name, p.pck_id
    order by 1, 2, 3, 5, 6
    with ur
;
-- select * from tstRts.TrtsReoTSException;
explain plan set queryno =  3 for
with t as
(
select plan_name,
       min(timestamp - class1_elapsed seconds) von,
       (max(timestamp)) bis
    from       TACCT_general
    where -- timestamp > timestamp(date(current_timestamp - 2 days)
          --  , '00.00.00') and
        plan_name in ('NI5340', 'NI5310')
    group by date(timestamp), plan_name
    order by date(timestamp), plan_name
)
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
       count(*) "count",
       avg(class7_elapsed) "avgElapsed" ,
       sum(class7_elapsed) "totElapsed" ,
       min(class7_elapsed) "minElapsed" ,
       max(class7_elapsed) "maxElapsed" ,
       min(timestamp -class7_elapsed seconds) "minStart",
       max(timestamp) "maxEnd"
    from       TACCT_Program p, t
    where  -- timestamp > timestamp(date(current_timestamp - 2 days)
           -- , '00.00.00') and
          (    (PCK_COLLECTION_ID = 'NI'
                  and pck_id in (  'NI6210',
                                   'NI6260',
                                   'NI6860',
                                   'NI7600',
                                   'NI9700',
                                   'NI9740',
                                   'YNI0131',
                                   'YNI0183',
                                   'YNI0350',
                                   'YNI56SR',
                                   'YNICAMU',
                                   'YNICRSS',
                                   'YNICTEU',
                                   'YNINP03',
                                   'YNIPACG',
                                   'YNIPAMG',
                                   'YNIPAMU',
                                   'YNIPFLG',
                                   'YNIPREG',
                                   'YNIPTEG',
                                   'YNIPTEU',
                                   'YNIREST'))
              or (PCK_COLLECTION_ID in ('NI01', 'NI02')
                  and pck_id in (  'YNICL03',
                                   'YNINP03',
                                   'YNIPACG'))
              or (PCK_COLLECTION_ID = 'OA1P'
                  and pck_id in (  'NI660AAI')))
        and p.timestamp >= t.von
        and p.timestamp -class7_elapsed seconds <= t.bis
    group by t.PLAN_NAME, t.von, t.bis,
             p.plan_name, p.pck_id
    order by 1, 2, 3, 5, 6
    with ur
;
select * from A540769.plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
xxx
select * from cmnbatch.plan_view5
   where progName = 'YDG130' and queryno in ( 2453, 2454)
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
SELECT   SYMBOLCH,SYMBOLCSFI,SYMBOLISIN,IDSYMBOL_RATING,SCHEME_RATING,
    raTINGDATE,RATINGSTATUSTYPE,WATCHLISTSTATTYPE
FROM oa1t.VVV_XTREQSCANKEY INNER
JOIN oa1t.VVV_IDS_STD814
     ON oa1t.VVV_IDS_STD814.INSTRUMENTID
     = oa1t.VVV_XTREQSCANKEY.TEMP_DBKEY
 --  WHERE oa1t.VVV_XTREQSCANKEY.PARTITION_NUMBER =         8
WITH UR
fOR FETCH ONLY
;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
    from a540769.vrtsReoTs
    where dbName like 'MF%'
;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
 -- find the startpoint for a recovery or logDiscontinuity
 with recSta as
   ( select c.*
         from sysibm.syscopy c
         where c.timestamp =
           ( select max(a.timestamp)
                 from sysibm.syscopy a
                 where c.dbName = a.dbName and c.tsName = a.tsName
                     and c.dsNum = a.dsNum
                     and icType in ('F', 'R', 'S', 'W', 'Y')
           )
   )
 select * from recSta
     where dbName like 'D%' and icType <> 'F'
     order by dbName, tsName, dsNum
 ;
 -- find the startpoint for a recovery or logDiscontinuity
explain plan set queryno = 9 for
 with recSta as
   ( select p.dbName db, p.tsName ts, p.partition pa, q.*
         from sysibm.systablepart p
         left join
     (   select c.*
         from sysibm.syscopy c
         where c.timestamp =
           ( select max(a.timestamp)
                 from sysibm.syscopy a
                 where c.dbName = a.dbName and c.tsName = a.tsName
                     and c.dsNum = a.dsNum
                     and icType in ('F', 'R', 'S', 'W', 'Y')
           )
     ) q
     on q.dbName = p.dbName and q.tsName = p.tsName
            and p.partition = q.dsNum
   )
 select * from recSta
     where dbName like 'D%' and icType <> 'F'
     order by dbName, tsName, dsNum
 ;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
----- query 1532  YXEBV2E,               30.6.09
----- Kumar Sandeep will sequenz  TKS835, TKS833, TKS843, TKS843
-----      seit einem Jahr bind  TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359  for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from CMNbatch.plan_view5
    where queryno between 142 and 147
    and progname = 'YCI017C'
    order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
    UPDATE bua.TXBH111
    SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
      EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
      select count(*), jobname, max(partition), min(partition)
          from sysibm.syscopy c, sysibm.systablepart p
          where c.dbName = p.dbName and c.tsName = p.tsname
              and c.dsNum in (0, p.partition)
          group by jobName
          order by 1 desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
    from CMNBATCH.plan_view5
    where progName = 'DBWK3'
    order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
    from oa1t.vpw210a1V
    group by auftrags_nummer, pm_id
    order by 1 desc
;
--select count(*) from oa1t.TSN100A1
--    with ur
--    ;
select *
    from CMNBATCH.plan_view5
    where progName = 'YPW2KPI' and queryNo = 4235
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
 explain plan set queryno = 111 for
         SELECT T.* FROM oa1t.VNI600A101A C
               , oa1t.VNI203A101A T
           WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
           AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
    WITH NI600 (PERENDDT) AS
            (SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
               FROM oa1t.VNI600A101A C
               WHERE C.CTRLID = 'NI6220R'
             )
             SELECT T.* FROM NI600
                   ,oa1t.VNI203A101A T
               WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
    from cmnbatch.plan_view5
    where progName = 'YRPNIMP' and queryNo = 866
    order by applname, progname, queryNo, qblockno, planno
;
x
         d.bType, p.collid, p.Name, p.version,
 p.conToken, p.timeStamp, p.type,
 p.validate, p.isolation, p.valid, p.operative,
 p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
 on p.location = d.dLocation and p.collid = d.dCollid
     and p.name = d.dName and  p.conToken = d.dConToken     2.22.129867'
re
 (bQualifier, bName, bType) in
 (  select dbName, name, 'R'
         from sysIbm.sysTablespace
         where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
 )
     from gdb0283.vnz240a1v
    where    SearchValue01            = ?
          -- dec(SearchValue01,15,3)  = ?
      and CreateDateTime           < ?
      and dec(SearchValue02,15,3) >= ?
      and dec(SearchValue02,15,3) <= ?
      and Objtype                 ^= 'PORDSPLT'
    order by CreateDateTime
    fetch first 101 rows only
    optimize for 101 rows
    with ur
;
select * from plan_view5A
    where queryno = 999
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIPK) cre=2011-11-02 mod=2011-11-02-15.56.05 A540769 ---
--- temporary explain --------------------------------------------------
set current path  = 'OA1T';
set current sqlid = 'S100447';
create view A540769.v11 as
    SELECT dmRows,
           rdsRow,
           snRows,
           compCost,
           openCost,
         a.*
      FROM cmnbatch.PLAN_table a
      left JOIN cmnbatch.DSN_DetCost_TABLE d
        on    d.APPLNAME = A.APPLNAME
          AND d.PROGNAME = A.PROGNAME
          AND d.EXPLAIN_TIME = A.BIND_TIME
          AND d.QueryNO = A.QueryNO
          AND d.QBlockNO = A.QBlockNO
          AND d.PlanNo   = A.PlanNo
;
create view A540769.v12 as
    SELECT fosFmtE7(dmRows) dmRows,
           rdsRow,
           snRows,
           compCost,
           openCost,
         a.*
      FROM cmnbatch.PLAN_table a
      left JOIN cmnbatch.DSN_DetCost_TABLE d
        on    d.APPLNAME = A.APPLNAME
          AND d.PROGNAME = A.PROGNAME
          AND d.EXPLAIN_TIME = A.BIND_TIME
          AND d.QueryNO = A.QueryNO
          AND d.QBlockNO = A.QBlockNO
          AND d.PlanNo   = A.PlanNo
;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 1   for
    SELECT fosFmtE7(dmRows),
           rdsRow,
           snRows,
           compCost,
           openCost,
         a.*
      FROM cmnbatch.PLAN_table a
      left JOIN cmnbatch.DSN_DetCost_TABLE d
        on    d.APPLNAME = A.APPLNAME
          AND d.PROGNAME = A.PROGNAME
          AND d.EXPLAIN_TIME = A.BIND_TIME
          AND d.QueryNO   = A.QueryNO
          AND d.QBlockNO  = A.QBlockNO
          AND d.PlanNo    = A.PlanNo
      where   a.collid    = 'KE'
          and a.progName  = 'YKEA028'
          and a.bind_time = '2008-11-13-13.08.55.317001'
      order by collid, a.progName, version, bind_time,
               queryno, qBlockNo, planno, mixopSeq
      with ur
;
explain plan set queryno = 3   for
with w as
(
    SELECT fosFmtE7(dmRows) dmRows,
           rdsRow,
           snRows,
           compCost,
           openCost,
         a.*
      FROM cmnbatch.PLAN_view1 a
      left JOIN cmnbatch.DSN_DetCost_TABLE d
        on    d.APPLNAME = A.APPLNAME
          AND d.PROGNAME = A.PROGNAME
          AND d.EXPLAIN_TIME = A.BIND_TIME
          AND d.QueryNO = A.QueryNO
          AND d.QBlockNO = A.QBlockNO
          AND d.PlanNo   = A.PlanNo
)
    select *
      from w
      where     collid    = 'KE'
          and   progName  = 'YKEA028'
          and   bind_time = '2008-11-13-13.08.55.317001'
      order by collid,  progName, version, bind_time,
               queryno, qBlockNo, planno, mixopSeq
      with ur
;
explain plan set queryno = 11  for
    select *
      from A540769.v11
      where     collid    = 'KE'
          and   progName  = 'YKEA028'
          and   bind_time = '2008-11-13-13.08.55.317001'
      order by collid,  progName, version, bind_time,
               queryno, qBlockNo, planno, mixopSeq
      with ur
;
explain plan set queryno = 12  for
    select *
      from A540769.v12
      where     collid    = 'KE'
          and   progName  = 'YKEA028'
          and   bind_time = '2008-11-13-13.08.55.317001'
      order by collid,  progName, version, bind_time,
               queryno, qBlockNo, planno, mixopSeq
      with ur
;
explain plan set queryno = 13  for
    select fosFmtE7(dmRows) dmRows, v11.*
      from A540769.v11 v11
      where     collid    = 'KE'
          and   progName  = 'YKEA028'
          and   bind_time = '2008-11-13-13.08.55.317001'
      order by collid,  progName, version, bind_time,
               queryno, qBlockNo, planno, mixopSeq
      with ur
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIPL) cre=2011-11-04 mod=2011-12-05-13.27.21 A540769 ---
CREATE VIEW $cr.PLAN_VIEW5 AS
   with l as
   ( select collid, progName, max(r.bind_time) bind_time
             FROM $cr.PLAN_TABLE r
             group by collid, progName
   )
   select CASE WHEN METHOD = 'SORT  ' THEN '  '
               ELSE substr(right('         '
                    || strip(CHAR(S.PROCMS)),9), 1, 9) END AS MSEC
         , a.*
         ,    S.COST_CATEGORY,
              S.PROCMS, S.PROCSU, S.REASON
     FROM l
       join $cr.PLAN_VIEW1 a
       on      A.collid    = l.collid
           AND A.PROGNAME  = l.PROGNAME
           AND A.bind_time = l.bind_time
           LEFT OUTER JOIN
                $cr.DSN_STATEMNT_TABLE S
             ON    S."COLLID"     = A."COLLID"
               AND S.APPLNAME     = A.APPLNAME
               AND S.PROGNAME     = A.PROGNAME
               AND S.EXPLAIN_TIME = A.BIND_TIME
               AND S.QUERYNO      = A.QUERYNO
;
commit;
          ???????????????????????
  select *
      from cmnbatch.plan_view0
      where   collid       = 'AV01'
          and prog         = 'YAVX009'
      order by pcBi desc, bind_Time desc
      with ur
  ;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
  select *
      from cmnbatch.plan_view0
      where   col          = 'AV01'
          and prg          = 'YAVX009'
      order by pcOrd desc, biTi desc
      with ur
  ;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIPP) cre=2013-08-29 mod=2013-08-29-11.34.10 A540769 ---
select *
    from cmnbatch.plan_view0 v
    where collid = 'MF' and prog = 'MF5010'
;x;
with v as
(
select row_number() over(partition by collid, prog
                         order by pcBi desc) rn
       , v.*
    from cmnbatch.plan_view0 v
    where collid       = 'MF'
   --   and prog         = 'MF5210'
)
select (select count(*)
            from sysibm.sysPackage a
            where a.location = ''
              and a.collid = v.collid and a.name = v.prog
       ) vrs
       , v.*
    from v where rn = 1
    order by collid, prog, pcBi  desc, bind_Time desc
    with ur
;  x;
--- ausgewählte Explains analysieren
select *
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'MF'
        and prog         = 'MF5210'
    order by pcBi  desc, bind_Time desc
    with ur
;  x;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
    from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
}¢--- A540769.WK.SQL(EXPLAIPV) cre=2013-06-04 mod=2013-06-21-14.37.59 A540769 ---
set current sqlid = 'S100447';
--- versionen, compiles und explains eines packages -------------------
select *
    from S100447.plan_view0
    where   collid       = 'PV'
        and prog         = 'A5PO356'
    order by pcBi  desc, bind_Time desc
    with ur
;        -- 2013-06-05-09.38.09.869603
select *
    from S100447.plan_table
 -- from S100447.plan_view1
 -- from S100447.plan_view2
 -- from S100447.plan_view2Det
    where     collid     = 'PV'
        and progName     = 'A5PO356'
        and bind_time  in ('2013-06-21-14.27.22.673306'
                          ,'2013-06-04-16.09.18.365505'
                          )
        and queryno in (       50401)
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
set current schema oa1a;
explain plan set queryno = 30991   for
INSERT INTO      PRWRK21 ( ORDART ) SELECT DISTINCT ORDART
  FROM      PRORDE QUERYNO 30991
;
explain plan set queryno = 50401   for
SELECT PRDOKT1 . ABRUFID
  FROM PRDOKT1
  WHERE PRDOKT1 . ABRUFID = ? AND EXISTS ( SELECT *
      FROM PRWRK23
      WHERE     PRWRK23 . POOL = PRDOKT1.POOL
            AND PRWRK23 . DATEI = PRDOKT1.DATEI
    ) FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
explain plan set queryno = 50481   for
SELECT PRDOKT1 . ABRUFID
  FROM PRDOKT1
  WHERE PRDOKT1 . ABRUFID = ? AND EXISTS ( SELECT 1
      FROM PRWRK23
      WHERE     PRWRK23 . POOL = PRDOKT1.POOL
            AND PRWRK23 . DATEI = PRDOKT1.DATEI
    ) FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
explain plan set queryno = 50491   for
SELECT PRDOKT1 . ABRUFID
  FROM PRDOKT1 join PRWRK23
      on        PRWRK23 . POOL = PRDOKT1.POOL+0
            AND PRWRK23 . DATEI = PRDOKT1.DATEI+0
  WHERE PRDOKT1 . ABRUFID = ?
  FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
explain plan set queryno = 50493   for
SELECT PRDOKT1 . ABRUFID
  FROM PRDOKT1 join PRWRK23
      on        PRWRK23 . POOL + 0 = PRDOKT1.POOL
            AND PRWRK23 . DATEI + 0= PRDOKT1.DATEI
  WHERE PRDOKT1 . ABRUFID = ?
  FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
explain plan set queryno = 50497   for
WITH DSN_INLINE_OPT_HINT(TABLE_NAME, join_seq) as
(
   values  ('TPV407A1',    1)
         , ('TPV423A1',    2)

)
SELECT PRDOKT1 . ABRUFID
  FROM PRDOKT1 join PRWRK23
      on        PRWRK23 . POOL  = PRDOKT1.POOL
            AND PRWRK23 . DATEI = PRDOKT1.DATEI
  WHERE PRDOKT1 . ABRUFID = ?
  FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
set current schema A540769;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
set current schema oa1a;
insert into PRWRK23 values(0,0,0) ;
insert into PRWRK23 values(1,1,1) ;
insert into PRWRK23 values(2,2,2) ;
insert into PRWRK23 values(3,3,3) ;
insert into PRWRK23 values(4,4,4) ;
insert into PRWRK23 values(5,5,5) ;
insert into PRWRK23 values(6,6,6) ;
insert into PRWRK23 values(7,7,7) ;
insert into PRWRK23 values(8,8,8) ;
insert into PRWRK23 values(9,9,9) ;
select count(*) from PRWRK23 ;

select current timestamp from sysibm.sysdummy1;
WITH DSN_INLINE_OPT_HINT(TABLE_NAME, join_seq) as
(
   values  ('TPV407A1',    1)
         , ('TPV423A1',    2)

)
SELECT PRDOKT1 . ABRUFID
  FROM PRDOKT1 join PRWRK23
      on        PRWRK23 . POOL  = PRDOKT1.POOL
            AND PRWRK23 . DATEI = PRDOKT1.DATEI
  WHERE PRDOKT1 . ABRUFID = 820
  FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
select current timestamp from sysibm.sysdummy1;
;
rollback
;x;
WITH DSN_INLINE_OPT_HINT(TABLE_NAME, join_seq) as
(
   values  ('TPV407A1',    1)
         , ('TPV423A1',    2)

)
SELECT PRDOKT1 . ABRUFID
  FROM PRDOKT1 join PRWRK23
      on        PRWRK23 . POOL  = PRDOKT1.POOL
            AND PRWRK23 . DATEI = PRDOKT1.DATEI
  WHERE PRDOKT1 . ABRUFID = ?
  FETCH FIRST 1 ROW ONLY QUERYNO 50401
;
set current schema oa1a;
insert into PRWRK23 values(0,0,0) ;
insert into PRWRK23 values(1,1,1) ;
insert into PRWRK23 values(2,2,2) ;
insert into PRWRK23 values(3,3,3) ;
insert into PRWRK23 values(4,4,4) ;
insert into PRWRK23 values(5,5,5) ;
insert into PRWRK23 values(6,6,6) ;
insert into PRWRK23 values(7,7,7) ;
insert into PRWRK23 values(8,8,8) ;
insert into PRWRK23 values(9,9,9) ;
select count(*) from PRWRK23 ;

select current timestamp from sysibm.sysdummy1;
SELECT PRDOKT1 . ABRUFID
  FROM PRDOKT1
  WHERE PRDOKT1 . ABRUFID = 820 AND EXISTS ( SELECT *
      FROM PRWRK23
      WHERE     PRWRK23 . POOL = PRDOKT1.POOL
            AND PRWRK23 . DATEI = PRDOKT1.DATEI
    ) FETCH FIRST 1 ROW ONLY QUERYNO 50401
    with ur
;
select current timestamp from sysibm.sysdummy1;
;
rollback
;xM;
select count(*), abrufid
    from OA1A.TPV407A1
    group by abrufid
    order by 1 desc
    fetch first 200  rows only
    with ur
;x;
set current schema oa1a;
SELECT count(*)
  FROM PRDOKT1
   where ABRUFID = 820
  ;
select current timestamp from sysibm.sysdummy1;
SELECT PRDOKT1 . ABRUFID
  FROM PRDOKT1
  WHERE PRDOKT1 . ABRUFID = 820 AND EXISTS ( SELECT *
      FROM PRWRK23
      WHERE     PRWRK23 . POOL = PRDOKT1.POOL
            AND PRWRK23 . DATEI = PRDOKT1.DATEI
    ) FETCH FIRST 1 ROW ONLY QUERYNO 50401
    with ur
;
select current timestamp from sysibm.sysdummy1;
;xM;
; x;
select * from sysibm.sysPackage WHERE NAME  = 'A5PO356'
;
select progName, version, count(*)
from S100447.plan_table WHERE progNAME  = 'A5PO356'
            group by progName, version
;
set current sqlid = 'S100447';
--- versionen, compiles und explains eines packages -------------------
select *
    from S100447.plan_view0
    where   collid       = 'PV'
        and prog         = 'A5PO356'
    order by pcBi  desc, bind_Time desc
    with ur
;x;
DELETE
FROM PLAN_TABLE
WHERE PROGNAME  = 'A5PO356'
  AND BIND_TIME <> '2013-06-04-16.09.18.365505'
;
DELETE
FROM PLAN_TABLE
WHERE PROGNAME  = 'A5PO356 '
  AND QUERYNO   = 50401
  AND TABNO    IN (0,3)
  AND BIND_TIME = '2013-06-04-16.09.18.365505'
;
UPDATE PLAN_TABLE
SET OPTHINT = 'PRIMA',
    PLANNO  = 1,
    METHOD  = 0
WHERE CREATOR   = 'OA1A'
  AND PROGNAME  = 'A5PO356 '
  AND QUERYNO   = 50401
  AND TABNO     = 1
  AND BIND_TIME = '2013-06-04-16.09.18.365505'
;
UPDATE PLAN_TABLE
SET OPTHINT         = 'PRIMA',
    QBLOCKNO        = 1,
    PLANNO          = 2,
    METHOD          = 1,
    MATCHCOLS       = 2,
    QBLOCK_TYPE     = 'SELECT',
    PARENT_QBLOCKNO = 0,
    PARENT_PLANNO   = 0
WHERE CREATOR   = 'OA1A'
  AND PROGNAME  = 'A5PO356 '
  AND QUERYNO   = 50401
  AND TABNO     = 2
  AND BIND_TIME = '2013-06-04-16.09.18.365505'
;
commit
;x;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
    from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
}¢--- A540769.WK.SQL(EXPLAIQY) cre=2014-06-20 mod=2016-01-18-11.21.13 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
select substr(db, 1, 8) "db"
     , substr(ts, 1, 8) "ts"
     , substr(ix, max(1, length(ix) - 7), 8) "...index"
     , substr(case when part = 0 then ''
           else value(right('   '||strip(char(part)), 4), '----')
            ||'/'|| value(right('   '||strip(char(tsParts)), 4),'----') )
           end, 1, 9) "part/ tot"
     , substr(right('      ' || int(round(actGb)), 6), 1, 6) "usedGB"
     , substr(right('      ' || int(round(limGb/100*schwelle))
                   , 6), 1, 6) "schwGB"
     , substr(right('     ' || schwelle, 5), 1, 5) "schw%"
     , substr(right('      ' || int(round(limGb)), 6), 1, 6) "limGB"
     , tsTy "y"
     , substr(schwinfo, 7, 35) "schwellwert key"
    from oa1p.vQz006gbGrenze
    where actGb > real(limGb / 100 * schwelle)
        and db <> 'DSNDB01'  -- directory ist anders
        and rz = 'RZX' and dbSys = 'DE0G'
    order by db, ts, part, ix
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 81  for
insert into OA1P.TQZ007GBGRIXSTATS
select  'a' STATE
      , 'RZX' RZ
      , 'DEVG' DBSYS
      , '2014-07-14-07.23.43.062215' LOADTS
      , INDEXTYPE
      , COMPRESS
      , IXPARTS
      , IXPGSZ
      , PIECESIZE
      , PIECEGB
      , LIMGB
      , TBCREATOR
      , TBNAME
      , TS
      , TSTY
      , TSPARTS
      , TSCLONE
      , TSINST
      , TSDSSIZE
      , TSDSGB
      , TSLimGb
      , TSLimPart
      , TSPGSZ
      , UPDATESTATSTIME
      , NLEVELS
      , NPAGES
      , NLEAF
      , NACTIVE
      , SPACE
      , EXTENTS
      , LOADRLASTTIME
      , REBUILDLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGAPPENDINSERT
      , REORGPSEUDODELETES
      , REORGMASSDELETE
      , REORGLEAFNEAR
      , REORGLEAFFAR
      , REORGNUMLEVELS
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , LASTUSED
      , IBMREQD
      , DBID
      , ISOBID
      , PSID
      , PARTITION
      , INSTANCE
      , TOTALENTRIES
      , DBNAME
      , NAME
      , CREATOR
      , INDEXSPACE
      , REORGINDEXACCESS
      , DRIVETYPE
      , STATS101
   from OA1P.TQZ007GBGRIXSTATS n
   where n.rz = '?' and n.dbSys = '?'
         and not exists ( select 1
       from OA1P.TQZ007GBGRIXSTATS b join
             (
               select rz, dbSys, dbName, ts, indexSpace
                          , partition, instance, max(loadTs) loadTs
                 from OA1P.TQZ007GBGRIXSTATS a
                 where rz='RZX' and dbSys = 'DEVG'
                     and n.dbName    = a.dbName
                     and n.ts        = a.ts
                     and n.indexSpace= a.indexSpace
                     and n.partition = a.partition
                     and n.instance  = a.instance
                 group by rz, dbSys, dbName, ts, indexSpace
                        , partition, instance
             ) a
         on b.rz = a.rz
           and b.dbSys = a.dbSys
           and b.dbName    = a.dbName
           and b.ts        = a.ts
           and b.indexSpace= a.indexSpace
           and b.partition = a.partition
           and b.instance  = a.instance
           and b.loadTS    = a.loadTs
         where b.updateStatsTime = n.updateStatsTime
       )
;
explain plan set queryno = 82  for
insert into OA1P.TQZ007GBGRIXSTATS
select  'a' STATE
      , 'RZX' RZ
      , 'DEVG' DBSYS
      , '2014-07-14-07.23.43.062215' LOADTS
      , INDEXTYPE
      , COMPRESS
      , IXPARTS
      , IXPGSZ
      , PIECESIZE
      , PIECEGB
      , LIMGB
      , TBCREATOR
      , TBNAME
      , TS
      , TSTY
      , TSPARTS
      , TSCLONE
      , TSINST
      , TSDSSIZE
      , TSDSGB
      , TSLimGb
      , TSLimPart
      , TSPGSZ
      , UPDATESTATSTIME
      , NLEVELS
      , NPAGES
      , NLEAF
      , NACTIVE
      , SPACE
      , EXTENTS
      , LOADRLASTTIME
      , REBUILDLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGAPPENDINSERT
      , REORGPSEUDODELETES
      , REORGMASSDELETE
      , REORGLEAFNEAR
      , REORGLEAFFAR
      , REORGNUMLEVELS
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , LASTUSED
      , IBMREQD
      , DBID
      , ISOBID
      , PSID
      , PARTITION
      , INSTANCE
      , TOTALENTRIES
      , DBNAME
      , NAME
      , CREATOR
      , INDEXSPACE
      , REORGINDEXACCESS
      , DRIVETYPE
      , STATS101
   from OA1P.TQZ007GBGRIXSTATS n
   where n.rz = '?' and n.dbSys = '?'
         and not exists ( select 1
       from OA1P.TQZ007GBGRIXSTATS a
                 where rz='RZX' and dbSys = 'DEVG'
                     and n.dbName    = a.dbName
                     and n.ts        = a.ts
                     and n.indexSpace= a.indexSpace
                     and n.partition = a.partition
                     and n.instance  = a.instance
                     and n.updateStatsTime = a.updateStatsTime
                     and a.loadTs = (select max(b.loadTs)
                         from OA1P.TQZ007GBGRIXSTATS b
                         where b.rz = a.rz
                           and b.dbSys = a.dbSys
                           and b.dbName    = a.dbName
                           and b.ts        = a.ts
                           and b.indexSpace= a.indexSpace
                           and b.partition = a.partition
                           and b.instance  = a.instance
                         )
       )
;
explain plan set queryno = 84  for
insert into OA1P.TQZ007GBGRIXSTATS
select  'a' STATE
      , 'RZX' RZ
      , 'DEVG' DBSYS
      , '2014-07-14-07.23.43.062215' LOADTS
      , INDEXTYPE
      , COMPRESS
      , IXPARTS
      , IXPGSZ
      , PIECESIZE
      , PIECEGB
      , LIMGB
      , TBCREATOR
      , TBNAME
      , TS
      , TSTY
      , TSPARTS
      , TSCLONE
      , TSINST
      , TSDSSIZE
      , TSDSGB
      , TSLimGb
      , TSLimPart
      , TSPGSZ
      , UPDATESTATSTIME
      , NLEVELS
      , NPAGES
      , NLEAF
      , NACTIVE
      , SPACE
      , EXTENTS
      , LOADRLASTTIME
      , REBUILDLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGAPPENDINSERT
      , REORGPSEUDODELETES
      , REORGMASSDELETE
      , REORGLEAFNEAR
      , REORGLEAFFAR
      , REORGNUMLEVELS
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , LASTUSED
      , IBMREQD
      , DBID
      , ISOBID
      , PSID
      , PARTITION
      , INSTANCE
      , TOTALENTRIES
      , DBNAME
      , NAME
      , CREATOR
      , INDEXSPACE
      , REORGINDEXACCESS
      , DRIVETYPE
      , STATS101
   from OA1P.TQZ007GBGRIXSTATS n
   where n.rz = '?' and n.dbSys = '?'
         and updatestatsTime <> value(( select timestamp(substr(max(
                 char(loadTs) || char(updateStatsTime)), 27))
       from OA1P.TQZ007GBGRIXSTATS a
                 where rz='RZX' and dbSys = 'DEVG'
                     and n.dbName    = a.dbName
                     and n.ts        = a.ts
                     and n.indexSpace= a.indexSpace
                     and n.partition = a.partition
                     and n.instance  = a.instance
       ), '1111-11-11-11.11.11')
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 51  for
select count(*), sum(real(totalEntries))
    from OA1P.TQZ007GBGRixSTATS a
    where rz = 'RZX' and dbSys = 'DEVG'
        and loadTs = (select max(loadTs)
            from OA1P.TQZ007GBGRIXSTATS r
            where r.rz = a.rz
              and r.dbSys = a.dbSys
              and r.dbName    = a.dbName
              and r.ts        = a.ts
              and r.indexSpace= a.indexSpace
              and r.partition = a.partition
              and r.instance  = a.instance
              and r.loadTS    = a.loadTs
             )
;
explain plan set queryno = 52  for
with a as
(
  select a.*
  , row_number() over(partition by rz, dbSys, dbName, ts, indexSpace
                          , partition, instance
                     order by loadts desc) ln
    from OA1P.TQZ007GBGRixSTATS a
)
select count(*), sum(real(totalEntries))
    from a
    where ln = 1 and rz = 'RZX' and dbSys = 'DEVG'
;
explain plan set queryno = 53  for
with k as
(
  select     rz, dbSys, dbName, ts, indexSpace, partition, instance
        , max(loadTs) loadTs
    from OA1P.TQZ007GBGRixSTATS
    group by rz, dbSys, dbName, ts, indexSpace, partition, instance
)
select count(*), sum(real(i.totalEntries))
    from OA1P.TQZ007GBGRixSTATS i
      join k
        on        i.rz        = k.rz
              and i.dbSys     = k.dbSys
              and i.dbName    = k.dbName
              and i.ts        = k.ts
              and i.indexSpace= k.indexSpace
              and i.partition = k.partition
              and i.instance  = k.instance
              and i.loadTS    = k.loadTs
    where i.rz = 'RZX' and i.dbSys = 'DEVG'
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
??????????????
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_struct_table;
explain plan set queryno = 30  for
insert into OA1P.TQZ006GBGRTSSTATS
      (state, loadTs, rz, dbSys, dbName, name, partition, instance
      , tsType, tsTy, pgSize, segSize
      , parts, maxParts, dsSize, dsGb, limGb, limPart
      , obid, clone, tsInst, tbCr, tb, tbTy, tbObId
      , dbid, psid, ibmReqD
      , updateStatsTime)
select 'd', '2014-06-23-06.56.26.593270'
                    , rz, dbSys, dbName, name, partition, instance
      , tsType, tsTy, pgSize, segSize
      , parts, maxParts, dsSize, dsGb, limGb, limPart
      , obid, clone, tsInst, tbCr, tb, tbTy, tbObId
      , dbid, psid, ibmReqD
      , (select max(updateStatsTime)
           from OA1P.TQZ006GBGRTSSTATS n
           where n.rz = '?' and n.dbSys = '?'
       )
    from OA1P.TQZ006GBGRTSSTATS s
    where rz = 'RZ2' and dbSys = 'DBOF' and state <> 'd'
        and loadTs = (select max(loadTs)
            from OA1P.TQZ006GBGRTSSTATS a
            where a.rz = s.rz and a.dbSys = s.dbSys
                and a.dbName    = s.dbName
                and a.Name      = s.Name
                and a.partition = s.partition
                and a.instance  = s.instance
             )
         and not exists (select 1
             from OA1P.TQZ006GBGRTSSTATS n
             where n.rz = '?' and n.dbSys = '?'
                 and n.dbName    = s.dbName
                 and n.Name      = s.Name
                 and n.partition = s.partition
                 and n.instance  = s.instance
             )
;
explain plan set queryno = 32  for
insert into OA1P.TQZ006GBGRTSSTATS
      (state, loadTs, rz, dbSys, dbName, name, partition, instance
      , tsType, tsTy, pgSize, segSize
      , parts, maxParts, dsSize, dsGb, limGb, limPart
      , obid, clone, tsInst, tbCr, tb, tbTy, tbObId
      , dbid, psid, ibmReqD
      , updateStatsTime)
select 'd', '2014-06-23-06.56.26.593270'
                    , rz, dbSys, dbName, name, partition, instance
      , tsType, tsTy, pgSize, segSize
      , parts, maxParts, dsSize, dsGb, limGb, limPart
      , obid, clone, tsInst, tbCr, tb, tbTy, tbObId
      , dbid, psid, ibmReqD
      , (select max(updateStatsTime)
           from OA1P.TQZ006GBGRTSSTATS n
           where n.rz = '?' and n.dbSys = '?'
       )
    from OA1P.TQZ006GBGRTSSTATS s
    where state <> 'd'
        and (rz, dbSys, dbName, name
          , partition, instance, loadTs) in
        (select rz, dbSys, dbName, name
             , partition, instance, max(loadTs) loadTs
           from OA1P.TQZ006GBGRTSSTATS j
           where rz='RZ2' and dbSys = 'DBOF'
           group by rz, dbSys, dbName, name
                    , partition, instance
        )
         and not exists (select 1
             from OA1P.TQZ006GBGRTSSTATS n
             where n.rz = '?' and n.dbSys = '?'
                 and n.dbName    = s.dbName
                 and n.Name      = s.Name
                 and n.partition = s.partition
                 and n.instance  = s.instance
             )
;
explain plan set queryno = 33  for
insert into OA1P.TQZ006GBGRTSSTATS
      (state, loadTs, rz, dbSys, dbName, name, partition, instance
      , tsType, tsTy, pgSize, segSize
      , parts, maxParts, dsSize, dsGb, limGb, limPart
      , obid, clone, tsInst, tbCr, tb, tbTy, tbObId
      , dbid, psid, ibmReqD
      , updateStatsTime)
with j as
(
         select rz, dbSys, dbName, name
             , partition, instance, max(loadTs) loadTs
           from OA1P.TQZ006GBGRTSSTATS j
           where rz='RZ2' and dbSys = 'DBOF'
           group by rz, dbSys, dbName, name
                    , partition, instance
)
select 'd', '2014-06-23-06.56.26.593270'
          , s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
      , tsType, tsTy, pgSize, segSize
      , parts, maxParts, dsSize, dsGb, limGb, limPart
      , obid, clone, tsInst, tbCr, tb, tbTy, tbObId
      , dbid, psid, ibmReqD
      , (select max(updateStatsTime)
           from OA1P.TQZ006GBGRTSSTATS n
           where n.rz = '?' and n.dbSys = '?'
       )
    from OA1P.TQZ006GBGRTSSTATS s
      join j
        on s.rz = j.rz
          and s.dbSys = j.dbSys
                 and s.dbName    = j.dbName
                 and s.Name      = j.Name
                 and s.partition = j.partition
                 and s.instance  = j.instance
                 and s.loadTS    = j.loadTs
    where state <> 'd'
         and not exists (select 1
             from OA1P.TQZ006GBGRTSSTATS n
             where n.rz = '?' and n.dbSys = '?'
                 and n.dbName    = s.dbName
                 and n.Name      = s.Name
                 and n.partition = s.partition
                 and n.instance  = s.instance
             )
;
explain plan set queryno = 37  for
         select rz, dbSys, dbName, name
             , partition, instance, max(loadTs)
           from OA1P.TQZ006GBGRTSSTATS j
           where rz='RZ2' and dbSys = 'DBOF'
           group by rz, dbSys, dbName, name
                    , partition, instance
;
explain plan set queryno = 34  for
insert into OA1P.TQZ006GBGRTSSTATS
with a as
(
  select rz, dbSys, dbName, name
             , partition, instance, max(loadTs) loadTs
    from OA1P.TQZ006GBGRTSSTATS a
    where rz='RZ2' and dbSys = 'DBOF'
    group by rz, dbSys, dbName, name, partition, instance

)
, b as
(
  select b.*
    from OA1P.TQZ006GBGRTSSTATS b join a
        on b.rz = a.rz
          and b.dbSys = a.dbSys
          and b.dbName    = a.dbName
          and b.Name      = a.Name
          and b.partition = a.partition
          and b.instance  = a.instance
          and b.loadTS    = a.loadTs
)
select  'a' STATE
      , 'RZ2' RZ
      , 'DBOF' DBSYS
      , '2014-06-24-16.06.14.269185' LOADTS
      , TSTYPE
      , TSTY
      , PGSIZE
      , SEGSIZE
      , PARTS
      , MAXPARTS
      , DSSIZE
      , DSGB
      , LIMGB
      , LIMPART
      , OBID
      , CLONE
      , TSINST
      , TBCR
      , TB
      , TBTY
      , TBOBID
      , UPDATESTATSTIME
      , NACTIVE
      , NPAGES
      , EXTENTS
      , LOADRLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGUPDATES
      , REORGUNCLUSTINS
      , REORGDISORGLOB
      , REORGMASSDELETE
      , REORGNEARINDREF
      , REORGFARINDREF
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSUPDATES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , IBMREQD
      , DBID
      , PSID
      , PARTITION
      , INSTANCE
      , SPACE
      , TOTALROWS
      , DATASIZE
      , UNCOMPRESSEDDATASIZE
      , DBNAME
      , NAME
      , REORGCLUSTERSENS
      , REORGSCANACCESS
      , REORGHASHACCESS
      , HASHLASTUSED
      , DRIVETYPE
      , LPFACILITY
      , STATS01
   from OA1P.TQZ006GBGRTSSTATS n
   where n.rz = '?' and n.dbSys = '?'
       and not exists
       ( select 1
           from b o
           where o.rz = 'RZ2' and o.dbSys = 'DBOF'
                and o.dbName    = n.dbName
                and o.name      = n.name
                and o.partition = n.partition
                and o.instance  = n.instance
                and o.updateStatsTime = n.updateStatsTime
       )
       ;
explain plan set queryno = 35  for
insert into OA1P.TQZ006GBGRTSSTATS
select  'a' STATE
      , 'RZ2' RZ
      , 'DBOF' DBSYS
      , '2014-06-24-16.06.14.269185' LOADTS
      , TSTYPE
      , TSTY
      , PGSIZE
      , SEGSIZE
      , PARTS
      , MAXPARTS
      , DSSIZE
      , DSGB
      , LIMGB
      , LIMPART
      , OBID
      , CLONE
      , TSINST
      , TBCR
      , TB
      , TBTY
      , TBOBID
      , UPDATESTATSTIME
      , NACTIVE
      , NPAGES
      , EXTENTS
      , LOADRLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGUPDATES
      , REORGUNCLUSTINS
      , REORGDISORGLOB
      , REORGMASSDELETE
      , REORGNEARINDREF
      , REORGFARINDREF
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSUPDATES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , IBMREQD
      , DBID
      , PSID
      , PARTITION
      , INSTANCE
      , SPACE
      , TOTALROWS
      , DATASIZE
      , UNCOMPRESSEDDATASIZE
      , DBNAME
      , NAME
      , REORGCLUSTERSENS
      , REORGSCANACCESS
      , REORGHASHACCESS
      , HASHLASTUSED
      , DRIVETYPE
      , LPFACILITY
      , STATS01
    from OA1P.TQZ006GBGRTSSTATS n
    where n.rz = '?' and n.dbSys = '?'
        and not exists ( select 1
      from OA1P.TQZ006GBGRTSSTATS b join
            (
              select rz, dbSys, dbName, name
                         , partition, instance, max(loadTs) loadTs
                from OA1P.TQZ006GBGRTSSTATS a
                where rz='RZ2' and dbSys = 'DBOF'
                    and n.dbName    = a.dbName
                    and n.Name      = a.Name
                    and n.partition = a.partition
                    and n.instance  = a.instance
                group by rz, dbSys, dbName, name, partition, instance

            ) a
        on b.rz = a.rz
          and b.dbSys = a.dbSys
          and b.dbName    = a.dbName
          and b.Name      = a.Name
          and b.partition = a.partition
          and b.instance  = a.instance
          and b.loadTS    = a.loadTs
          and b.updateStatsTime = n.updateStatsTime
      )
;     mm
explain plan set queryno = 38  for
with j as
(
         select rz, dbSys, dbName, name
             , partition, instance, max(loadTs) loadTs
           from OA1P.TQZ006GBGRTSSTATS j
           where rz='RZ2' and dbSys = 'DBOF'
           group by rz, dbSys, dbName, name
                    , partition, instance
)
select s.*
    from OA1P.TQZ006GBGRTSSTATS s join j
      on s.rz = j.rz
          and s.dbSys = j.dbSys
                 and s.dbName    = j.dbName
                 and s.Name      = j.Name
                 and s.partition = j.partition
                 and s.instance  = j.instance
                 and s.loadTS    = j.loadTs
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
select * from A540769.dsn_struct_table where queryno = 30;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_struct_table;
explain plan set queryno = 1   for
with a as
(
  select rz, dbSys, dbName, name
             , partition, instance, max(loadTs) loadTs
    from OA1P.TQZ006GBGRTSSTATS a
    group by rz, dbSys, dbName, name, partition, instance

)
, b as
(
  select b.*
    from OA1P.TQZ006GBGRTSSTATS b join a
        on b.rz = a.rz
          and b.dbSys = a.dbSys
          and b.dbName    = a.dbName
          and b.Name      = a.Name
          and b.partition = a.partition
          and b.instance  = a.instance
          and b.loadTS    = a.loadTs
)
select * from b where rz = 'RZ2' and dbSys = 'DVBP'
                                 and dbName = 'MF01A1P'
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
select * from A540769.dsn_struct_table;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIQZ) cre=2014-04-30 mod=2016-09-27-11.42.21 A540769 ---
set current path oa1p;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
WITH G AS
(
  SELECT LGRDBID, lgrpsid
     , LGRPART PA
     , COUNT(*) CNT
     , MAX(TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
         || TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV')) lgrUcTm
     , MAX(LGRSLRSN) lgrSLrsn
     , MAX(LGRSLRSN) lgrELrsn
    FROM SYSIBM.SYSLGRNX
    GROUP BY LGRDBID, LGRPSID, LGRPART
)
, h as
(
  select oa1p.fqzCastC2I(LGRDBID) dbID
       , oa1p.fqzCastC2I(LGRPSID) psID
       , pa
       , cnt
       , timestamp(lgrUcTm) upd
            -- max(sommer, winterzeit) - 26 leapSeconds
            -- do not use current timeZone there was a winter once
       , timestamp(substr(lgrSlrsn, 2,8)) + 7174 seconds sLrsn
       , timestamp(substr(lgrElrsn, 2,8)) + 7174 seconds eLrsn
    from g
    order by 1, 2
)
SELECT DBNAME DB, NAME TS, PA
     , max( value(slrsn, '1111-11-11-11.11.11')
          , value(elrsn, '1111-11-11-11.11.11')
          , value(upd  , '1111-11-11-11.11.11') ) endtst
     , CNT
   FROM h
     JOIN (select * from SYSIBM.SYSTABLESPACE
              order by dbid, psid) s
     ON h.dbID = S.dbID+0 AND h.psID = s.psID+0
WITH UR
;
explain plan set queryno = 7   for
 with s as
 (
   select s.DBNAME db, s.NAME TS, p.partition PA
      , value( ( select
            max( value(timestamp(substr(max(LGRSLRSN), 2, 8))
             -- max(sommer, winterzeit) - 26 leapSeconds
             -- do not use current timeZone there was a winter once
                      + 7174 seconds, '1111-11-11-11.11.11')
               , value(timestamp(substr(max(LGRELRSN), 2, 8))
                      + 7174 seconds, '1111-11-11-11.11.11')
               , value(timestamp(max(
                     TRANSLATE('20YZ-MN-DE-', LGRUCDT, 'MNDEYZ')
                  || TRANSLATE('HI.MN.ST.UV', LGRUCTM, 'HIMNSTUV')))
                      , '1111-11-11-11.11.11')
               )
        from sysibm.sysLgRnX  l
            where l.lgrdbid = oa1p.fqzCastSmall2C(s.dbid)
              and l.lgrpsid = oa1p.fqzCastSmall2c(s.psid)
              and l.lgrpart = p.partition
        ), '1111-11-11-11.11.11') endTst
     from sysibm.sysTableSpace s
       join sysibm.sysTablePart p
         on s.dbName = p.dbname and s.name = p.tsname
 )
 select *
     from s
     where endTst > '1919-01-01-00.00.00'
 WITH UR
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
set current path oa1p;
with i(i) as
( select 0 from sysibm.sysDummyE
  union all select i+1 from i where i < 330
)
, j(j) as
(
  select smallint(i) from i where i < 32768
  union all select smallint(-i) from i where i <= 32768
)
select j, hex(fqzCastsmall2c(j)), fqzCastc2small(fqzCastsmall2c(j))
    from j
 -- where j <> fqzCastc2small(fqzCastsmall2c(j))
 --     or fqzCastsmall2c(j)
 --     <> fqzcastsmall2c(fqzCastc2small(fqzCastsmall2c(j)))
    order by j
; select  current timestamp from sysibm.sysDummy1;
;x;
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnBatch.plan_view0
    where   collid       = 'QZ'
        and prog         = 'QZPLB'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'QZ'
        and progName     = 'QZPLB'
        and bind_time    = '2014-04-30-11.48.30.523307'
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'QZ'
        and progName     = 'QZPLB'
        and bind_time    = '2014-04-30-11.48.30.523307'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
}¢--- A540769.WK.SQL(EXPLAIRE) cre=2011-09-12 mod=2011-09-12-14.37.03 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 0   for
   update s100447.tReoRunPart p
      set reoTime = (select rngTime
                         from s100447.vReoRunRng2 r
                         where r.tst = p.tst and r.rng = p.rng
                    )
    where part = paVon and reoTime is null
        and tst > current timestamp - 10 hours
        and exists  (select rngTime
                         from s100447.vReoRunRng2 r
                         where r.tst = p.tst and r.rng = p.rng
                    )
;
select * from  plan_view1
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;;;;;
set current sqlid = 's100447';
  CREATE INDEX s100447.iReoRunPart2
    ON s100447.tReoRunPart
     (tst asc, rng asc, sta, reotst)
    not CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
commit
;
}¢--- A540769.WK.SQL(EXPLAIRM) cre=2012-06-01 mod=2012-06-25-07.57.07 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'RM'
        and prog         = 'YRMVER'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'RM'
        and progName     = 'YRMVER'
        and bind_time  in ('2012-03-17-19.03.04.705650'
                          ,'2012-06-25-07.56.26.829556'
                          )
    order by collid, progName, version,
        queryno,
        bind_time,
        qBlockNo, planno, mixopSeq
    with ur
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 887 for
   -- DECLARE KEYDIRTYPECURS CURSOR FOR
                                  SELECT RM01001, RM01002, RM01003,
RM01004, RM01005, RM01006, RM01007, RM01008, RM01009, RM01010, RM01011,
RM01012, RM01013, RM01014, RM01015, RM01016, RM01017, RM01018
FROM oa1t.TRM010A1
WHERE (RM01011 = ? OR RM01014 = ?) AND RM01015 IN (?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND RM01003 <= ? AND RM01007 + 0 seconds >
?
;
    select *
        from cmnbatch.plan_view2Det  ----> index fehlt
        where     collid     = 'MF'
            and progName     = 'MF7010'
            and bind_time    = '2011-08-30-14.14.59.234601'
        order by collid, progName, version, bind_time,
                 queryno, qBlockNo, planno, mixopSeq
        with ur
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'RM'
        and prog         = 'YRMVER'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'RM'
        and progName     = 'YRMVER'
        and bind_time  in ('2012-05-20-01.48.59.380110'
                          ,'2011-02-10-10.54.30.980394'
                          )
    order by collid, progName, version,
        queryno,
        bind_time,
        qBlockNo, planno, mixopSeq
    with ur
; x;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
}¢--- A540769.WK.SQL(EXPLAISH) cre=2010-08-27 mod=2010-08-27-07.35.26 A540769 ---
select count(*), ckat, d$guea
    from OA1T.TWM005A1
    group by ckat, d$guea
    order by 1 desc
    fetch first 100 rows only
    with ur
;
set current sqlid = 'A540769';
delete from  plan_table;
explain plan set queryno = 3 for
SELECT *
  FROM OA1T.TWM005A1
 WHERE D$GUEA     <=    CURRENT TIMESTAMP
   AND D$GUEB     >=    CURRENT TIMESTAMP
   AND CSTAT    BETWEEN 'A' AND 'A'
   AND CDEFAULT BETWEEN 'C' AND 'C'
   AND CKAT        =    'SPDE'
;
select * from plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIST) cre=2011-01-17 mod=2011-01-17-17.38.21 A540769 ---
select * from cmnbatch.plan_table
    where progName = 'YWPLXL3'
        and bind_time = '2010-12-09-11.10.36.609932'
        and queryNo = 415
    order by applname, progname, queryNo, qblockno, planno, timestamp
;
select * from cmnBatch.dsn_statemnt_table
    where progName = 'YWPLXL3'
        and explain_time = '2010-12-09-11.10.36.609932'
        and queryNo = 415
    order by applname, progname, queryNo
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 123 for
        select * from A540769.twk936
        order by MF150013
;
explain plan set queryno = 523 for
        select * from A540769.twk924
        order by key
;
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
select * from dsn_statemnt_table
    order by applname, progname, queryNo
;
rollback
;x;
select * from  s100447.plan_view1
 where progName in ('YWPLXL3')  and collid     = 'A540769'
  --   and bind_time = '2010-07-18-22.01.54.199935'
    order by applname, progname, queryNo, qblockno, planno,
             bind_time, tname
;x;
select * from   cmnbatch.dsn_statemnt_table
 where progName in ('YWPLXL3')
       and explain_time = '2010-07-18-22.01.54.199935'
 -- order by applname, progname, queryNo, qblockno, planno
;x;
select '4', count(*), sum(case when substr(wp70302e,1,5)
        in ('BFTBB','WPSPM') then 1 else 0 end)
    from oa1p.TWP703A104
union all select '5', count(*), sum(case when substr(wp70302e,1,5)
        in ('BFTBB','WPSPM') then 1 else 0 end)
    from oa1p.TWP703A105
    with ur
;;
set current sqlid = 'A540769';
delete from plan_table;
   explain plan set queryno = 1 for
   SELECT * FROM A540769.VMFNVEXT
       WHERE MF150023 > '038 ' AND MF150023 <= '052 '
       WITH UR
;
   explain plan set queryno = 2 for
   SELECT * FROM A540769.VMFNVPART
       WHERE MF150023 > '052 ' AND MF150023 <= '057 '
;
   explain plan set queryno = 3 for
   select t.*, i.mf150Hash
       from oa1p.tmf150a1   t, A540769.tmfnvPart i
       where t.mf150013 = i.mf150013
         and t.mf150023 = i.mf150023
         and i.part = 1
       order by i.MF150023              ASC,
                i.MF150013              DESC
;
   explain plan set queryno = 4 for
   select t.*, i.mf150Hash
       from oa1p.tmf150a1   t, A540769.tmfnvPart i
       where t.mf150013 = i.mf150013
         and t.mf150023 = i.mf150023
         and t.MF150082 = ' '
         and i.part = 1
       order by i.MF150023              ASC,
                i.MF150013              DESC
;
 --explain plan set queryno = 7 for
 --ect                s.*
 -- from tstRts.tsIxStats        S
 -- where db  like    'MF%'  and ts like 'A1%1%' and part in (0,1,5,7,9)
 -- order by db, ts, part
 --
 --ect current timestamp from sysibm.sysdummy1;
--lect                s.*
--  from tstRts.tsIxStats        S
--  where db =     'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
--  order by db    , ts -- , part
--
--lect current timestamp from sysibm.sysdummy1;
--lect                s.*
--  from tstRts.tsIxStats        S
--  where db like  'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
--  order by db    , ts -- , part
--
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
 x
select * from A540769.plan_view5
 where progName in ('SV5003', 'SV5390', 'SV8240')
    order by applname, progname, queryNo, qblockno, planno
;x;

select * from cmnbatch.plan_view2
 where progName in ('FI5700') and version = 'BKUR000319'
    order by applname, progname, queryNo, qblockno, planno
;x;

-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'A540769';
delete from plan_table;
   explain plan set queryno = 3 for
select                s.*
    from tstRts.VRtsReoTSSchwelle  s
    where db =     'MF01A1T' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
   explain plan set queryno = 7 for
select                s.*
    from tstRts.tsIxStats        S
    where db  like    'MF%'  and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db, ts, part
;
select current timestamp from sysibm.sysdummy1;
select                s.*
    from tstRts.tsIxStats        S
    where db =     'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select                s.*
    from tstRts.tsIxStats        S
    where db like  'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
 x
 xxx
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for        -- mit concat
with c as
( select mf150023 cif, mf150013 dat, count(*) cnt
      from oa1p.tmf150A1
      where    mf150023 like '000%'
      group by mf150023 , mf150013
) , h as
( select
  smallint(mod(
  int(
  translate(
  translate('08642' , hex(substr(cif     , 8, 5)), '1234567890'),
            '024579', 'ABCDEF'))
                + month(dat)  ,11113)) h
      , cnt
      from c
)
, g as
( select    sum(cnt) c
    from h
    group by h
)
, p as
( select    sum(cnt) c
    from h
    group by floor(h/111.14)
)
select 'h', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
   from g
   group by floor(log10(c) * 6)
union all
select 'p', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
   from p
   group by floor(log10(c) * 6)
order by 1, 2
with ur
;
explain plan set queryno = 5 for        -- mit concat
with h as
( select mf150023 cif,
  smallint(mod(
  int(
  translate(
  translate('08642' , hex(substr(mf150023  , 8, 5)), '1234567890'),
            '024579', 'ABCDEF')), 9973)) t
      from oa1p.tmf150A1
   -- where cif like '000%'
)
, g as
( select t, count(*) c
    from h
    group by t
)
select sum(c), min(c), max(c), count(*) "dist c"
   from g
   group by floor(log10(c) * 6)
   with ur
;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from cmnBatch.plan_view5
 where progName = 'YDG129'
    order by applname, progname, queryNo, qblockno, planno
;
x
select * from cmnBatch.plan_view5
 where progName = 'MF8500' -- and version = 'MFR0000203'
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for        -- mit concat
    SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
           RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
           RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
    FROM oa1p.TRM010A1
    WHERE ?       BETWEEN RM01002 AND RM01006
      AND  RM01015 || '' IN ('RT001','RT002','RT004',
                      'RT010','RT015','RT018','RT201')
    ORDER BY RM01015, RM01011, RM01014, RM01002
    FOR FETCH ONLY;
explain plan set queryno = 3 for        -- mit or
    SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
           RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
           RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
    FROM oa1p.TRM010A1
    WHERE ?       BETWEEN RM01002 AND RM01006
      AND  (RM01015 IN('RT001','RT002','RT004',
                      'RT010','RT015','RT018','RT201')
            or  1 = 0
           )
    ORDER BY RM01015, RM01011, RM01014, RM01002
    FOR FETCH ONLY;
explain plan set queryno = 9 for        -- neu ohne or
    SELECT *
    FROM oa1p.TRM010A1
    WHERE ?       BETWEEN RM01002 AND RM01006
      AND  RM01015 IN('RT001','RT002','RT004',
                      'RT010','RT015','RT018','RT201')
    ORDER BY RM01015, RM01011, RM01014, RM01002
    FOR FETCH ONLY;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for        -- alt schnell
  Select MF150023,MF150067,
     sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
     sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
  FROM oa1p.TMF150A1
  WHERE MF150066 = '        A965367'
  AND   MF150013 BETWEEN '01.01.2009' and '30.11.2009'
  AND   MF150085 BETWEEN 10 AND 89
  AND   MF150084 BETWEEN 10 AND 89
  GROUP BY MF150023,MF150067
  with ur
;
explain plan set queryno = 9 for        -- neu langsam
  Select MF150023,MF150067,MF150019A,
     sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
     sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
  FROM oa1p.TMF150A1
  WHERE MF150066 = '        A965367'
  AND   MF150013 BETWEEN '01.01.2009' and '30.11.2009'
  AND   MF150085 BETWEEN 10 AND 89
  AND   MF150084 BETWEEN 10 AND 89
  GROUP BY MF150023,MF150067,MF150019A
  with ur;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
delete from plan_table;
explain plan set queryno = 3 for
   SELECT SV363012
   FROM OA1P.TSV361A1 JOIN oa1p.TSV363A1
   ON SV361003=SV363001
   WHERE SV361002=1
   AND SV361008=2
   AND SV361009= ?
   AND(SV363007='1' OR SV363007='2')
   AND(ABS(SV363010 - '01.01.2009')<30 OR ABS(SV363011
   - date('01.01.2009'))<30)
   ORDER BY SV363010 DESC,SV363011 DESC
;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
select count(*), SV363001
   FROM OA1P.TSV363A1
    group by SV363001
    ORDER BY 1 DESC
    WITH UR
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
    from a540769.vrtsReoTs
    where dbName like 'MF%'
;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
----- query 1532  YXEBV2E,               30.6.09
----- Kumar Sandeep will sequenz  TKS835, TKS833, TKS843, TKS843
-----      seit einem Jahr bind  TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359  for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
select * from cmnbatch.plan_view5a
    where progname = 'WI8710'
         and version in ('WS8B000786', 'WS8B000325')
         and queryno in ( 241)
    order by applname, progname, queryNo, timestamp, qblockno, planno
;
x
x
select * from CMNbatch.plan_view5
    where queryno between 142 and 147
    and progname = 'YCI017C'
    order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
    UPDATE bua.TXBH111
    SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
      EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
      select count(*), jobname, max(partition), min(partition)
          from sysibm.syscopy c, sysibm.systablepart p
          where c.dbName = p.dbName and c.tsName = p.tsname
              and c.dsNum in (0, p.partition)
          group by jobName
          order by 1 desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
    from CMNBATCH.plan_view5
    where progName = 'DBWK3'
    order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
    from oa1t.vpw210a1V
    group by auftrags_nummer, pm_id
    order by 1 desc
;
--select count(*) from oa1t.TSN100A1
--    with ur
--    ;
select *
    from CMNBATCH.plan_view5
    where progName = 'YPW2KPI' and queryNo = 4235
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
 explain plan set queryno = 111 for
         SELECT T.* FROM oa1t.VNI600A101A C
               , oa1t.VNI203A101A T
           WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
           AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
    WITH NI600 (PERENDDT) AS
            (SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
               FROM oa1t.VNI600A101A C
               WHERE C.CTRLID = 'NI6220R'
             )
             SELECT T.* FROM NI600
                   ,oa1t.VNI203A101A T
               WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
    from cmnbatch.plan_view5
    where progName = 'YRPNIMP' and queryNo = 866
    order by applname, progname, queryNo, qblockno, planno
;
x
         d.bType, p.collid, p.Name, p.version,
 p.conToken, p.timeStamp, p.type,
 p.validate, p.isolation, p.valid, p.operative,
 p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
 on p.location = d.dLocation and p.collid = d.dCollid
     and p.name = d.dName and  p.conToken = d.dConToken     2.22.129867'
re
 (bQualifier, bName, bType) in
 (  select dbName, name, 'R'
         from sysIbm.sysTablespace
         where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
 )
     from gdb0283.vnz240a1v
    where    SearchValue01            = ?
          -- dec(SearchValue01,15,3)  = ?
      and CreateDateTime           < ?
      and dec(SearchValue02,15,3) >= ?
      and dec(SearchValue02,15,3) <= ?
      and Objtype                 ^= 'PORDSPLT'
    order by CreateDateTime
    fetch first 101 rows only
    optimize for 101 rows
    with ur
;
select * from plan_view5A
    where queryno = 999
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAISU) cre=2012-01-24 mod=2012-01-24-17.11.09 A540769 ---
--- temporary explain --------------------------------------------------00000100
set current sqlid = 'A540769';                                          00000200
delete from A540769.plan_table;                                         00000300
delete from A540769.DSN_STATEMNT_TABLE;                                 00000400
delete from A540769.DSN_DetCost_TABLE ;                                 00000500
delete from A540769.dsn_filter_Table  ;                                 00000600
delete from A540769.dsn_predicat_table;                                 00000700
                                                                        00000801
     EXPLAIN ALL SET QUERYNO = 1     FOR                                00003900
    (                                                                   00004000
     SELECT                                                             00004100
      SU201_INDEX,                                                      00004200
      SU201_PROGRAM_PATH,                                               00005000
      SU201_MODULE_NAME,                                                00006000
      SU201_INFO_OBJECT,                                                00007000
      SU201_VARIANT,                                                    00008000
      SU201_LAST_UPDATE,                                                00009000
      SU201_PID,                                                        00009100
      SU201_COMMENT                                                     00009200
     FROM                                                               00009300
      OA1A.TSU201A1                                                     00009400
     WHERE                                                              00009500
      SU201_PROGRAM_PATH = '/WP5020' OR                                 00009600
      SU201_PROGRAM_PATH IN                                             00009700
      (                                                                 00009800
       SELECT(SU203_GROUP_PATH)                                         00009900
       FROM                                                             00010000
        OA1A.TSU203A1                                                   00010100
       WHERE                                                            00010200
        SU201_PROGRAM_PATH = '/WP5020'                                  00010300
      )                                                                 00010400
    )                                                                   00010500
     UNION                                                              00010600
    (                                                                   00010700
     SELECT                                                             00010800
      SU201_INDEX,                                                      00010900
      SU201_PROGRAM_PATH,                                               00011000
      SU201_MODULE_NAME,                                                00011100
      SU201_INFO_OBJECT,                                                00011200
      SU201_VARIANT,                                                    00011300
      SU201_LAST_UPDATE,                                                00011400
      SU201_PID,                                                        00011500
      SU201_COMMENT                                                     00011600
    FROM                                                                00011700
      OA1A.TSU201A1                                                     00011800
     WHERE                                                              00011900
     (                                                                  00012000
      SU201_PROGRAM_PATH = '#Imposed' OR                                00012100
      SU201_PROGRAM_PATH = '#Default'                                   00012200
     ) AND                                                              00012300
     SU201_MODULE_NAME = 'YSUSIFM'                                      00012400
    )                                                                   00012500
    with UR                                                             00012600
    ;                                                                   00012700
     EXPLAIN ALL SET QUERYNO = 2 FOR                                    00013000
    (                                                                   00020000
     SELECT                                                             00030000
      SU201_INDEX,                                                      00040000
      SU201_PROGRAM_PATH,                                               00050000
      SU201_MODULE_NAME,                                                00060000
      SU201_INFO_OBJECT,                                                00070000
      SU201_VARIANT,                                                    00080000
      SU201_LAST_UPDATE,                                                00090000
      SU201_PID,                                                        00100000
      SU201_COMMENT                                                     00110000
     FROM                                                               00120000
      OA1A.TSU201A1                                                     00130000
     WHERE                                                              00140000
      SU201_PROGRAM_PATH = '/WP5020'                                    00150000
    )                                                                   00160000
     UNION                                                              00170000
    (                                                                   00180000
     SELECT                                                             00190000
      SU201_INDEX,                                                      00200000
      SU201_PROGRAM_PATH,                                               00210000
      SU201_MODULE_NAME,                                                00220000
      SU201_INFO_OBJECT,                                                00230000
      SU201_VARIANT,                                                    00240000
      SU201_LAST_UPDATE,                                                00250000
      SU201_PID,                                                        00260000
      SU201_COMMENT                                                     00270000
     FROM                                                               00280000
      OA1A.TSU201A1                                                     00290000
     WHERE                                                              00300000
     (                                                                  00310000
      SU201_PROGRAM_PATH = '#Imposed' OR                                00320000
      SU201_PROGRAM_PATH = '#Default'                                   00330000
     ) AND                                                              00340000
     SU201_MODULE_NAME = 'YSUSIFM'                                      00350000
 )                                                                      00360000
 with ur                                                                00370000
 ;                                                                      00380000
select * from  plan_view1                                               00400000
    order by -- collid, progName, version, bind_time,                   00410000
             queryNo, qblockno, planno, mixOpSeq                        00420000
;                                                                       00430000
select * from  plan_view2                                               00440000
    order by -- collid, progName, version, bind_time,                   00450000
             queryNo, qblockno, planno, mixOpSeq                        00460000
;                                                                       00470000
select * from  plan_view2det                                            00480000
    order by -- collid, progName, version, bind_time,                   00490000
             queryNo, qblockno, planno, mixOpSeq                        00500000
;                                                                       00510000
select *                                                                00520000
    from plan_viewPred                                                  00530000
    order by --collid, progName, applName, explain_time,                00540000
             queryNo, qBlockNo, planno,                                 00550000
             stage, predNo                                              00560000
    with ur                                                             00570000
;                                                                       00580000
rollback                                                                00590000
;;;;                                                                    00600000
}¢--- A540769.WK.SQL(EXPLAISV) cre=2012-01-26 mod=2012-01-26-09.51.21 A540769 ---
--- ausgewählte Explains analysieren                                    00100001
select *                                                                00110001
 -- from cmnbatch.plan_view1                                            00120001
    from cmnbatch.plan_view2                                            00130001
 -- from cmnbatch.plan_view2Det                                         00140001
    where     collid     = 'SV'                                         00150001
        and progName     = 'YSV016G'                                    00160001
        and bind_time   in('2012-01-26-09.48.56.445311'                 00170007
                          ,'2011-08-12-23.50.33.890848'                 00180001
                          )                                             00190001
    order by collid, progName, version, bind_time,                      00200001
             queryno, qBlockNo, planno, mixopSeq                        00210001
;                                                                       00220002
select *                                                                00230002
    from cmnbatch.plan_viewPred                                         00240002
    where     collid     = 'SV'                                         00250002
        and progName     = 'YSV016G'                                    00260002
        and bind_time   in('2012-01-26-09.48.56.445311'                 00270006
                          ,'2011-08-12-23.50.33.890848'                 00280002
                          )                                             00290002
    order by collid, progName, applName, bind_time,                     00300002
             queryNo, qBlockNo, planno,                                 00310002
             stage, predNo                                              00320002
    with ur                                                             00330002
;;                                                                      00340006
--- temporary explain --------------------------------------------------00350006
set current sqlid = 'A540769';                                          00360006
delete from A540769.plan_table;                                         00370006
delete from A540769.DSN_STATEMNT_TABLE;                                 00380006
delete from A540769.DSN_DetCost_TABLE ;                                 00390006
delete from A540769.dsn_filter_Table  ;                                 00400006
delete from A540769.dsn_predicat_table;                                 00410006
explain plan set queryno = 3   for                                      00420006
                             SELECT ID, CIFNO, BUID, ORDERNO, TXTYPE,   00430006
BOOKINGDATE, VALUEDATE, ACNO, TXCYCDCS, ACCYCDCS, FUCYCDCS, FEEBESL,    00440006
VATBESL, FEEAMNTTXCY, FEEAMNTACCY, FEEAMNTFUCY, VATAMNTTXCY,            00450006
VATAMNTACCY, VATAMNTFUCY, VATPERCENT, XRATETXFU, XRATETXAC, XRATEACFU,  00460006
PRODUCTCON, PRODUCTNO, PRICEMDMCD, PRICECMPNTNO, MUTATIONTMSTMP,        00470006
MUTATINGINST                                                            00480006
FROM oa1p.TSV016A1                                                      00490006
WHERE CIFNO = ? AND ID > ? AND (VALUEDATE                               00500006
>= ? AND VALUEDATE <= ?) ORDER BY ID ASC                                00510006
;                                                                       00520006
select * from  plan_view1                                               00530006
    order by -- collid, progName, version, bind_time,                   00540006
             queryNo, qblockno, planno, mixOpSeq                        00550006
;                                                                       00560006
select * from  plan_view2                                               00570006
    order by -- collid, progName, version, bind_time,                   00580006
             queryNo, qblockno, planno, mixOpSeq                        00590006
;                                                                       00600006
select * from  plan_view2det                                            00610006
    order by -- collid, progName, version, bind_time,                   00620006
             queryNo, qblockno, planno, mixOpSeq                        00630006
;                                                                       00640006
select *                                                                00650006
    from plan_viewPred                                                  00660006
    order by --collid, progName, applName, explain_time,                00670006
             queryNo, qBlockNo, planno,                                 00680006
             stage, predNo                                              00690006
    with ur                                                             00700006
;                                                                       00710006
rollback                                                                00720006
;                                                                       00730006
--- versionen, compiles und explains eines packages ------------------  00740006
select *                                                                00750006
    from cmnbatch.plan_view0                                            00760006
    where   collid       = 'SV'                                         00770006
        and prog         = 'YSV016G'                                    00780006
    order by pcBi  desc, bind_Time desc                                 00790006
    with ur                                                             00800006
;;;                                                                     00810006
}¢--- A540769.WK.SQL(EXPLAIUU) cre=2011-02-11 mod=2011-02-11-13.00.33 A540769 ---
set current sqlid = 'A540769';
set current schema = 'OA1T';
select count(*), UU100020
    from tuu100a2
    group by UU100020
    order by 1 desc
    fetch first 10 rows only
    with ur
;;;
delete from  A540769.plan_table;
explain plan set queryno =   1 for
    select CURRENT DATE - (?+0) DAYS
        from sysibm.sysDummy1
        ;
explain plan set queryno = 991 for
                                SELECT UU290090, UU100010,
 UU100020,    UU100060, '1' AS UEUE_ART from TUU140A2 B,
 TUU100A2 C, TUU290A2 D,                tUU130A2 E,
 TUU135A2 F WHERE
 UU140040 IN (?, ?, ?, ?, ?, ?, ?,          ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130100 IN              (?,
 ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
 ?,     ?, ?, ?) AND UU130110 IN (?, ?, ?, ?, ?, ?,
 ?, ?, ?, ?,        ?, ?, ?, ?, ?) AND UU140010 =
 UU100010 AND UU130020 LIKE ? AND     UU130260 LIKE ? AND
 UU130270 LIKE ? AND UU100030 < CURRENT DATE - (?+0)    DAYS AND
 UU100030 > CURRENT DATE - (?+0) DAYS AND UU100060 < 5 AND
UU100240 IN (?, ?, ?) AND UU100020 = UU130010 AND
 UU100010 =         UU290010 AND UU135010 = UU100010 AND
 UU135060 = 'A' AND UU135100 IN     ('1', '3') AND UU135170
= ? AND UU290090 >= ? AND UU290090 <= ? AND     UU290020 =
 (SELECT MAX (UU290020) from TUU290A2 WHERE UU290010 =
C.UU100010)

UNION SELECT UU290090, UU100010, UU100020,
 UU100060, '2' AS UEUE_ART from TUU140A2 B, TUU100A2 C,
 tUu290A2 D, tUu130A2 E, tUu135A2 F
WHERE UU140040 IN (?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,               ?, ?, ?,
 ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
 ?, ?,      ?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?,
 ?, ?, ?, ?, ?,         ?, ?, ?, ?, ?, ?, ?, ?, ?)
AND UU140010 = UU100010 AND         UU130020 LIKE ? AND
 UU130260 LIKE ? AND UU130270 LIKE ? AND UU100030 <
 CURRENT DATE - (?+0) DAYS AND UU100030 > CURRENT DATE - (?+0)
 DAYS AND      UU100060 < 5 AND UU100240 IN (?, ?, ?) AND
 UU100020 = UU130010 AND   UU100010 = UU290010 AND UU135010
= UU100010 AND UU135060 = 'A' AND      UU135100 IN ('1',
 '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) from
 TUU290A2      WHERE UU290010 = C.UU100010) UNION SELECT
 UU290090, UU100010, UU100020, UU100060, '3' AS UEUE_ART
 from TUU140A2 B, tUu100A2 C, tUu290A2 D,
 tUu130A2 E,
 tUu135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?,
 ?, ?,      ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND
 UU130110 IN (?, ?, ?,       ?, ?, ?, ?, ?, ?, ?, ?,
 ?, ?, ?, ?) AND UU140010 = UU100010 AND UU130020 LIKE
 ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - (?+0) DAYS AND UU100030 > CURRENT
 DATE - (?+0) DAYS AND UU100060 < 5 AND UU100240 IN (?, ?,
 ?) AND UU100020 = UU130010    AND UU100010 = UU290010 AND
 UU135010 = UU100010 AND UU135060 = 'A' AND  UU135100 IN
 ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) from
 TUU290A2      WHERE UU290010 = C.UU100010) UNION SELECT
 UU290090, UU100010, UU100020, UU100060, '4' AS UEUE_ART
 from TUU140A2 B, tUu100A2 C, tUu290A2 D,
 tUu130A2 E,
 tUu135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?,
 ?, ?,      ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND
 UU130110 IN (?, ?, ?,       ?, ?, ?, ?, ?, ?, ?, ?,
 ?, ?, ?, ?) AND UU140010 = UU100010 AND UU130020 LIKE
 ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - (?+0) DAYS AND UU100030 > CURRENT
 DATE - (?+0) DAYS AND UU100060 < 5 AND UU100240 IN (?, ?,
 ?) AND UU100020 = UU130010    AND UU100010 = UU290010 AND
 UU135010 = UU100010 AND UU135060 = 'A' AND  UU135100 IN
 ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) from
 TUU290A2      WHERE UU290010 = C.UU100010) UNION SELECT
 UU290090, UU100010, UU100020, UU100060, '5' AS UEUE_ART
 from TUU140A2 B, tUu100A2 C, tUu290A2 D,
 tUu130A2 E,
 tUu135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?,
 ?, ?,      ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND
 UU130110 IN (?, ?, ?,       ?, ?, ?, ?, ?, ?, ?, ?,
 ?, ?, ?, ?) AND UU140010 = UU100010 AND UU130020 LIKE
 ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - (?+0) DAYS AND UU100030 > CURRENT
 DATE - (?+0) DAYS AND UU100060 < 5 AND UU100240 IN (?, ?,
 ?) AND UU100020 = UU130010    AND UU100010 = UU290010 AND
 UU135010 = UU100010 AND UU135060 = 'A' AND  UU135100 IN
 ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM
 tUu290A2 WHERE UU290010 = C.UU100010) FOR FETCH ONLY
;
select * from A540769.plan_view2
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
; original ;
                            FOR SELECT UU290090, UU100010, UU100020,
UU100060, '1' AS UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D,
TUU130A2 E, TUU135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130100 IN
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130110 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?) AND UU140010 = UU100010 AND UU130020 LIKE ? AND
UU130260 LIKE ? AND UU130270 LIKE ? AND UU100030 < CURRENT DATE - ?
DAYS AND UU100030 > CURRENT DATE - ? DAYS AND UU100060 < 5 AND
UU100240 IN (?, ?, ?) AND UU100020 = UU130010 AND UU100010 =
UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND UU135100 IN
('1', '3') AND UU135170 = ? AND UU290090 >= ? AND UU290090 <= ? AND
UU290020 = (SELECT MAX (UU290020) FROM TUU290A2 WHERE UU290010 =
C.UU100010) UNION SELECT UU290090, UU100010, UU100020, UU100060, '2' AS
UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D, TUU130A2 E, TUU135A2
F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU140010 = UU100010 AND
UU130020 LIKE ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND UU100030
< CURRENT DATE - ? DAYS AND UU100030 > CURRENT DATE - ? DAYS AND
UU100060 < 5 AND UU100240 IN (?, ?, ?) AND UU100020 = UU130010 AND
UU100010 = UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND
UU135100 IN ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM TUU290A2
WHERE UU290010 = C.UU100010) UNION SELECT UU290090, UU100010, UU100020,
UU100060, '3' AS UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D,
TUU130A2 E, TUU135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU140010 = UU100010
AND UU130020 LIKE ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - ? DAYS AND UU100030 > CURRENT DATE - ? DAYS
AND UU100060 < 5 AND UU100240 IN (?, ?, ?) AND UU100020 = UU130010
AND UU100010 = UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND
UU135100 IN ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM TUU290A2
WHERE UU290010 = C.UU100010) UNION SELECT UU290090, UU100010, UU100020,
UU100060, '4' AS UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D,
TUU130A2 E, TUU135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU140010 = UU100010
AND UU130020 LIKE ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - ? DAYS AND UU100030 > CURRENT DATE - ? DAYS
AND UU100060 < 5 AND UU100240 IN (?, ?, ?) AND UU100020 = UU130010
AND UU100010 = UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND
UU135100 IN ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM TUU290A2
WHERE UU290010 = C.UU100010) UNION SELECT UU290090, UU100010, UU100020,
UU100060, '5' AS UEUE_ART FROM TUU140A2 B, TUU100A2 C, TUU290A2 D,
TUU130A2 E, TUU135A2 F WHERE UU140040 IN (?, ?, ?, ?, ?, ?, ?,
?, ?, ?) AND UU130100 IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU130110 IN (?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND UU140010 = UU100010
AND UU130020 LIKE ? AND UU130260 LIKE ? AND UU130270 LIKE ? AND
UU100030 < CURRENT DATE - ? DAYS AND UU100030 > CURRENT DATE - ? DAYS
AND UU100060 < 5 AND UU100240 IN (?, ?, ?) AND UU100020 = UU130010
AND UU100010 = UU290010 AND UU135010 = UU100010 AND UU135060 = 'A' AND
UU135100 IN ('1', '3') AND UU135170 = ? AND UU290090 >= ? AND
UU290090 <= ? AND UU290020 = (SELECT MAX (UU290020) FROM TUU290A2
WHERE UU290010 = C.UU100010) FOR FETCH ONLY
;

}¢--- A540769.WK.SQL(EXPLAIU0) cre=2011-11-14 mod=2011-11-14-20.42.11 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'UU'
        and prog         = 'YUU1016'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
 -- from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
    from cmnbatch.plan_view2Det
    where     collid     = 'UU'
        and progName     = 'YUU1016'
        and bind_time    = '2011-08-11-12.20.58.014422'
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'UU'
        and progName     = 'YUU1016'
        and bind_time    = '2011-08-11-12.20.58.014422'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
}¢--- A540769.WK.SQL(EXPLAIU1) cre=2011-11-11 mod=2011-11-11-10.12.11 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
select  UU612010
       ,UU612020
       ,UU612030
       ,UU612040
       ,UU612050
       ,UU612060
       ,UU612070
       ,UU612080
       ,UU612090
       ,UU612100
       ,UU600040
       ,UU600080
       ,UU600090
       ,UU600100

from oa1t.TUU612A2
   , oa1t.TUU600A2

where  UU612010   =  ?
and    UU612020   =  ?
and    UU612030   =  ?

and    UU600010   =  UU612010
and    UU600020   =  UU612020
and    UU600030   =  UU612030
and    (UU612070 * 30) + UU612080 >= 0
and    UU612050   =  ?

order by UU612070 desc
        ,UU612080 desc
for fetch only
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIU2) cre=2011-11-11 mod=2011-11-11-10.18.07 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
   select value(count(*),0)
   from   oa1t.tui200a1 a

   left join oa1t.tui310a1 b
   on(   a.i_id_unit        = b.i_id_unit
   and   a.i_id_cltrl       = b.i_id_cltrl)

   where a.i_id_unit        = ?
   and   a.i_id_cstmr       = ?
   and   a.f_omnbs          = 1
   and   b.i_id_unit        is null
   and   b.i_id_cltrl       is null
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIU3) cre=2011-11-11 mod=2011-11-11-10.24.17 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
     select value(sum(xx.a_lndng_vle_rep),0)
     from

    (select distinct a.a_lndng_vle_rep as a_lndng_vle_rep
          , a.i_id_cltrl as i_id_cltrl
     from   oa1t.tui200a1 a
        ,   oa1t.tui310a1 b
     where a.i_id_unit   = ?
     and   a.i_id_unit   = b.i_id_unit
     and   a.i_id_cltrl  = b.i_id_cltrl
     and   a.i_id_cstmr  = ?
     and   a.i_id_cstmr ^= b.i_id_cstmr_crdt) as xx
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIU4) cre=2011-11-11 mod=2011-11-11-10.40.06 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
  select value(TRV400.I_UP          , '***')
        ,value(TRV400.I_ID_UP       , -999999999999999)
        ,value(TRV110.I_PRTNR       , '***')
    --  ,value(TempTab.partnerCSID  , -999999999999999)
    --  ,value(TempTab.reportingDate, '31.12.9999')
        ,value(TRV110.I_ID_RM       , '***')
        ,value(TRV110.I_ID_CSP      , '***')

  from  oa1t.TRV400A1 TRV400

        left outer join oa1t.TRV110A1 TRV110
        on  TRV400.I_UP = TRV110.I_UP
  --    left outer join session.t_reportingData TempTab
  --    on  TRV110.I_PRTNR = TempTab.partnerUUID

  where TRV400.I_UP = ?

  order by 5 asc

  for fetch only
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIVA) cre=2012-04-22 mod=2012-04-22-15.41.40 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
DECLARE GLOBAL TEMPORARY TABLE SESSION.XTGLOBAL (TEMP_DBKEY INTEGER NOT
NULL, OUT_IDSYMBOL_1 CHAR (30) WITH DEFAULT NULL, OUT_SCHEMESYMBOL_1
CHAR (30) WITH DEFAULT NULL, OUT_IDSYMBOL_2 CHAR (30) WITH DEFAULT
NULL, OUT_IDSYMBOL_3 CHAR (30) WITH DEFAULT NULL, OUT_INPUT_3 CHAR
(150) WITH DEFAULT NULL, OUT_INPUT_4 CHAR (30) WITH DEFAULT NULL,
OUT_INPUT_5 CHAR (30) WITH DEFAULT NULL) ON COMMIT PRESERVE ROWS
;
explain plan set queryno = 3   for
---         : YVV3250    191A870D1E62017A
-- Last page referenced:   WKDBDOF2   DSN32K01  PAGE: X'0000064A'
-- Collection ID:  VV


SELECT OUT_IDSYMBOL_1,OUT_SCHEMESYMBOL_1,IDSYMBOL_RATING,RATINGDATE
  FROM SESSION.XTGLOBAL INNER JOIN oa1p.VVV_IDS_VISRG319 v ON
    V.INSTRUMENTID = SESSION.XTGLOBAL.TEMP_DBKEY AND
    V.SCHEME_RATING = 'SPSICRLC' AND V.ROLetype
    = 25 WITH UR FOR FETCH ONLY;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIVV) cre=2010-12-10 mod=2013-02-27-16.08.54 A540769 ---
set current path = OA1T;
set current sqlid = 'A540769';
delete from plan_table;
delete from dsn_filter_table;
delete from dsn_predicat_table;
delete from dsn_detcost_table;
delete from dsn_query_table;
 EXPLAIN ALL SET QUERYNO=300 FOR
 SELECT SYMBOLCSFI,EVENTFUNCTIONTYPE,EFFECTIVEDATE,PROVIDERID,
 SYMBOLCH,SYMBOLISIN,CSEXDATE,PAYMENTSTATUSTYPE,VALIDATIONTYPE,
 RECORDDATE,ASSEMBLYDATE,DESCRIPTION_E,DESCRIPTION_F,DESCRIPTION_G,
 DESCRIPTION_I,DESCRIPTION_N,PHYSICALSECURITYNO,INTERESTCALCTYPE,
 ENTITLEBEGINDATE,ENTITLEENDDATE,ENTITLETIMENO,ENTITLETIMEUNITTP,
 IRREGULARCPNTYPE,DIVIOCCURENCETYPE,DIVIDENDTYPE,HOSTLINKID,
 BUSINESSTYPE,TYPEX,CSEVENTSTATUSTYPE,CSDESCRIPTION,
 INFORMATIONSOURCE,ORGANISATIONALUNIT,USERID,USERTELEPHONENUM,
 HASNOTIFICATION,ISVALIDRANGEEXDEPO,ISVALIDRANGEPRESEN,CSEVENTID
 FROM OA1T.VVV_IDS_STD842_V02 A WHERE A.CATEGORYVDPS
 BETWEEN '1' AND '99' AND A.CATEGORYVDPS NOT IN ('7','18') AND
 A.STATUSTYPE <> 5 AND A.ROWSTATUS = 1 AND A.INFOCUSTYPE IN (1,2,3)
 AND A.EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38,89,90,91)
 WITH UR FOR FETCH ONLY
;
select * from  plan_view1
--  where queryNo = 322
    order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select * from  plan_view2
--  where queryNo = 322
    order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select * from  plan_view2Det
--  where queryNo = 322
    order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select *
    from plan_viewPred
    order by collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno, mixOpSeqNo,
             stage, orderNo
; rollback ;x;

with r as
(
select instrumentid,
       row_number() over (order by instrumentid) row
    from VDPS2.VTINSTRFLATDATA
)
select  *
    from r
    where mod(row, 4000000) = 0
    with ur
;;;;
select count(*), min(instrumentid), max(instrumentid)
    from VDPS2.VTINSTRFLATDATA
    group by floor(real(instrumentid/10000000))
    order by min(instrumentid)
    with ur
;;;;
select count(*), min(instrumentid), max(instrumentid)
    from VDPS2.VTINSTRFLATDATA
    group by floor(real(instrumentid/10000000))
    order by min(instrumentid)
    with ur
;;;;
select mc_o, substr(accessName, 1, 25),
       k.colSeq, substr(k.colName, 1, 25), k.ordering,
       v.*
    from  cmnbatch.plan_view1 v
      LEft join sysibm.sysKeys k
        on k.ixCreator in ('VDPS2', 'OA1T')
          and k.ixName = v.accessName
    where progName = 'YVVZZ19'
        and bind_time >= '2011-08-12-23.47.31.260807'
    and queryno = 376
    order by collid, progName, applName,   bind_time desc,
             queryNo, qBlockNo, planno
            , k.colSeq
;;;;
set current path = oA1P;
set current sqlid = 'A540769';
delete from plan_table;
delete from dsn_filter_table;
delete from dsn_predicat_table;
delete from dsn_detcost_table;
delete from dsn_query_table;
 EXPLAIN ALL SET QUERYNO=300 FOR
 SELECT SYMBOLCSFI,EVENTFUNCTIONTYPE,EFFECTIVEDATE,PROVIDERID,SYMBOLCH,
 SYMBOLISIN,CSEXDATE,PAYMENTSTATUSTYPE,VALIDATIONTYPE,RECORDDATE,
 ASSEMBLYDATE,DESCRIPTION_E,DESCRIPTION_F,DESCRIPTION_G,DESCRIPTION_I,
 DESCRIPTION_N,PHYSICALSECURITYNO,INTERESTCALCTYPE,ENTITLEBEGINDATE,
 ENTITLEENDDATE,ENTITLETIMENO,ENTITLETIMEUNITTP,IRREGULARCPNTYPE,
 DIVIOCCURENCETYPE,DIVIDENDTYPE,HOSTLINKID,BUSINESSTYPE,TYPEX,
 CSEVENTSTATUSTYPE,CSDESCRIPTION,INFORMATIONSOURCE,ORGANISATIONALUNIT,
 USERID,USERTELEPHONENUM,HASNOTIFICATION,ISVALIDRANGEEXDEPO,
 ISVALIDRANGEPRESEN
 FROM oA1P.VVV_IDS_STD842
 WHERE                CATEGORYVDPS BETWEEN '1' AND '99'
 AND                CATEGORYVDPS NOT IN ('7','18')
 AND                STATUSTYPE <> 5
 AND                ROWSTATUS = 1
 AND                INFOCUSTYPE IN (1,2,3)
 AND                EVENTFUNCTIONTYPE
 IN (6,7,10,11,15,20,32,33,36,37,38)
 WITH UR FOR FETCH ONLY
;
    EXPLAIN ALL SET QUERYNO=311 FOR
 SELECT SYMBOLCSFI,EVENTFUNCTIONTYPE,EFFECTIVEDATE,PROVIDERID,SYMBOLCH,
 SYMBOLISIN,CSEXDATE,PAYMENTSTATUSTYPE,VALIDATIONTYPE,RECORDDATE,
 ASSEMBLYDATE,DESCRIPTION_E,DESCRIPTION_F,DESCRIPTION_G,DESCRIPTION_I,
 DESCRIPTION_N,PHYSICALSECURITYNO,INTERESTCALCTYPE,ENTITLEBEGINDATE,
 ENTITLEENDDATE,ENTITLETIMENO,ENTITLETIMEUNITTP,IRREGULARCPNTYPE,
 DIVIOCCURENCETYPE,DIVIDENDTYPE,HOSTLINKID,BUSINESSTYPE,TYPEX,
 CSEVENTSTATUSTYPE,CSDESCRIPTION,INFORMATIONSOURCE,
 ORGANISATIONALUNIT,USERID,USERTELEPHONENUM,HASNOTIFICATION,
 ISVALIDRANGEEXDEPO,ISVALIDRANGEPRESEN FROM oA1P.VVV_IDS_STD842
 WHERE oA1P.VVV_IDS_STD842.CATEGORYVDPS BETWEEN '1' AND '99'
 AND oA1P.VVV_IDS_STD842.CATEGORYVDPS NOT IN ('7','18')
 AND oA1P.VVV_IDS_STD842.INSTRUMENTUPDATETIMESTAMP >= '2011041306000000'
 AND oA1P.VVV_IDS_STD842.INSTRUMENTUPDATETIMESTAMP < '2011041410562200'
 AND oA1P.VVV_IDS_STD842.INFOCUSTYPE IN (1,2,3)
 AND oA1P.VVV_IDS_STD842.EVENTFUNCTIONTYPE IN
 (6,7,10,11,15,20,32,33,36,37,38)
 with UR for fetch only
 ;
   EXPLAIN ALL SET QUERYNO=322 FOR
 SELECT SYMBOLCSFI,EVENTFUNCTIONTYPE,EFFECTIVEDATE,PROVIDERID,
 CFAMOUNTTYPE,SYMBOLCH,SYMBOLISIN,PAYMENTSTATUSTYPE,ACTUALAMOUNT,
 ACTUALEXERCISETP,AMOUNTQUOTATIONTP,DRAWDATE,MAXAMORTIZQUOTETP,
 ENTITLEDPERSONTP,REASONTYPE,TERMCHANGETYPE,MAXNOTICEPERIOD,
 MINNOTICEPERIOD,NOTICEPERIODUNITP,NOMINALAFTERREDUCT,
 NOMINALREDUCTION,REPAYCURRENCY_I1,REPAYCURRENCY_I2,
 REPAYCURRENCY_WS80,PLANNEDPAYRATE,SETTLESTYLETYPE,
 PLANNEDPAYAMOUNT,PLANNEDPAYINSTR_I1,PLANNEDPAYINSTR_I2,
 PLANNEDPAYINSTR_WS80,PLANNEDBEGINDATE,PLANNEDENDDATE,
 PAYAMOUNT,PAYINSTRUMENT_I1,PAYINSTRUMENT_I2,
 PAYINSTRUMENT_WS80,PAYRATE FROM oA1P.VVV_IDS_STD856
 WHERE oA1P.VVV_IDS_STD856.CATEGORYVDPS BETWEEN '1' AND '99'
 AND oA1P.VVV_IDS_STD856.CATEGORYVDPS NOT IN ('7','18')
 AND oA1P.VVV_IDS_STD856.INSTRUMENTUPDATETIMESTAMP >= '2011041306000000'
 AND oA1P.VVV_IDS_STD856.INSTRUMENTUPDATETIMESTAMP < '2011041410562200'
 AND oA1P.VVV_IDS_STD856.EVENTFUNCTIONTYPE IN (2,3,9,17,26,39)
 AND oA1P.VVV_IDS_STD856.PROVIDERTYPE = 1
 WITH UR FOR FETCH ONLY ;
 EXPLAIN ALL SET QUERYNO=801 FOR
       select count(*) from sysibm.sysTables
     where           tsName = 'A001' ;
 EXPLAIN ALL SET QUERYNO=802 FOR
       select count(*) from sysibm.sysTables
     where case when tsName = 'A001' then 1 else 0 end = 1;
select * from  plan_view1
--  where queryNo = 322
    order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select * from  plan_view2
--  where queryNo = 322
    order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select * from  plan_view2Det
--  where queryNo = 322
    order by applname, progname, queryNo, qblockno, planno, mixopseq
;
select *
    from plan_viewPred
    order by collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno, mixOpSeqNo,
             stage, orderNo
;





commit;
;;;;
select count(*), INSTRUMENTID
               , INSTRUMENTEVENTNO
    from vdps2.  VTCASHFLOWAMOUNT
    group by     INSTRUMENTID
               , INSTRUMENTEVENTNO
    order by 1 desc
    with ur
;
;;;;
rollback
 EXPLAIN ALL SET QUERYNO=300 FOR
    SELECT T1.INSTRUMENTID, T1.SYMBOLCSFI, T2.EVENTFUNCTIONTYPE,
           T2.EFFECTIVEDATE, T1.SYMBOLCH, T1.SYMBOLISIN,
           T1.CATEGORYVDPS, T1.ROWSTATUS, T1.STATUSTYPE,
           T1.INSTRUMENTUPDATETIMESTAMP, T2.CSEXDATE,
           T2.PAYMENTSTATUSTYPE, T2.VALIDATIONTYPE, T2.RECORDDATE,
           T2.PROVIDERTYPE, (CASE
           WHEN T2.PROVIDER3ID IS NULL THEN T2.PROVIDER1ID ELSE T2.
           PROVIDER3ID END) AS PROVIDERID, T2.ASSEMBLYDATE,
           T2.DESCRIPTION_E, T2.DESCRIPTION_F, T2.DESCRIPTION_G,
           T2.DESCRIPTION_I, T2.DESCRIPTION_N, T2.PHYSICALSECURITYNO,
           T2.IDSYMBOL HOSTLINKID, T2.BUSINESSTYPE, T2.TYPEX,
           T2.CSEVENTSTATUSTYPE, T2.CSDESCRIPTION,
           T2.INFORMATIONSOURCE, T2.ORGANISATIONALUNIT, T2.USERID,
           T2.USERTELEPHONENUM, T2.HASNOTIFICATION,
           T2.ISVALIDRANGEEXDEPO, T2.ISVALIDRANGEPRESEN,
           T2.INFOCUSTYPE, T3.INTERESTCALCTYPE, T3.ENTITLEBEGINDATE,
           T3.ENTITLEENDDATE, T3.ENTITLETIMENO, T3.ENTITLETIMEUNITTP,
           T3.IRREGULARCPNTYPE, T3.DIVIOCCURENCETYPE, T3.DIVIDENDTYPE
      FROM VDPS2.VTINSTRUMENTEVENT T2
           INNER JOIN
           VDPS2.VTINSTRFLATSYMBOLS T1
           ON T1.INSTRUMENTID = T2.INSTRUMENTID
           INNER JOIN
           VDPS2.VTCASHFLOW T3
           ON T3.INSTRUMENTID = T2.INSTRUMENTID AND T3.
           INSTRUMENTEVENTNO = T2.INSTRUMENTEVENTNO
     WHERE T2.INFOCUSTYPE IN (1,2,3) AND
           T2.EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38) AND
           DAYS(CURRENT DATE) -
           DAYS(DATE(T1.INSTRUMENTUPDATETIMESTAMP)) <= 1 AND
           T1.CATEGORYVDPS BETWEEN '1' AND '99' AND
           T1.CATEGORYVDPS NOT IN ('7','18')
           WITH UR FOR FETCH ONLY
;
select * from  plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;x;
explain plan set queryno = 2 for
    SELECT * FROM oA1P.VVV_IDS_STD842
    WHERE INFOCUSTYPE IN (1,2,3)
    AND EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38)
;
explain plan set queryno = 1 for
    SELECT * FROM oA1P.VVV_IDS_STD843
    WHERE INFOCUSTYPE IN (1,2,3)
    AND EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38)
    SELECT * FROM oA1P.VVV_IDS_STD844
    WHERE INFOCUSTYPE IN (1,2,3)
    AND EVENTFUNCTIONTYPE IN (6,7,10,11,15,20,32,33,36,37,38)
        select *
        from oA1P.TWP703A101
      where
        left(wp70302e, 5)    in ('BFTBB','WPSPM')  and
             wp70302q     >=    ?                                  and
        wp70302q <=    ?                                        and
        wp70306  in   (?                  ,?)
;
explain plan set queryno = 1 for
        select *
        from oA1P.TWP703A101
      where
        substr(wp70302e,1,5) in ('BFTBB','WPSPM')               and
        wp70302q >=    ?                                        and
        wp70302q <=    ?                                        and
        wp70306  in   (?                  ,?)
;
explain plan set queryno = 2 for
        select *
        from oA1P.TWP703A102
      where
        substr(wp70302e,1,5) in ('BFTBB','WPSPM')               and
        wp70302q >=    ?                                        and
        wp70302q <=    ?                                        and
        wp70306  in   (?                  ,?)
;
explain plan set queryno = 3 for
        select *
        from oA1P.TWP703A103
      where
        substr(wp70302e,1,5) in ('BFTBB','WPSPM')               and
        wp70302q >=    ?                                        and
        wp70302q <=    ?                                        and
        wp70306  in   (?                  ,?)
;
explain plan set queryno = 4 for
        select *
        from oA1P.TWP703A104
      where
        substr(wp70302e,1,5) in ('BFTBB','WPSPM')               and
        wp70302q >=    ?                                        and
        wp70302q <=    ?                                        and
        wp70306  in   (?                  ,?)
;
explain plan set queryno = 5 for
        select *
        from oA1P.TWP703A105
      where
        substr(wp70302e,1,5) in ('BFTBB','WPSPM')               and
        wp70302q >=    ?                                        and
        wp70302q <=    ?                                        and
        wp70306  in   (?                  ,?)
;
explain plan set queryno = 6 for
        select *
        from oA1P.TWP703A106
      where
        substr(wp70302e,1,5) in ('BFTBB','WPSPM')               and
        wp70302q >=    ?                                        and
        wp70302q <=    ?                                        and
        wp70306  in   (?                  ,?)
;
explain plan set queryno = 7 for
        select *
        from oA1P.TWP703A107
      where
        substr(wp70302e,1,5) in ('BFTBB','WPSPM')               and
        wp70302q >=    ?                                        and
        wp70302q <=    ?                                        and
        wp70306  in   (?                  ,?)
;
select * from  s100447.plan_view1
 where progName in ('YWPLXL3')  and collid     = 'A540769'
  --   and bind_time = '2010-07-18-22.01.54.199935'
    order by applname, progname, queryNo, qblockno, planno,
             bind_time, tname
;x;
select * from   cmnbatch.dsn_statemnt_table
 where progName in ('YWPLXL3')
       and explain_time = '2010-07-18-22.01.54.199935'
 -- order by applname, progname, queryNo, qblockno, planno
;x;
select '4', count(*), sum(case when substr(wp70302e,1,5)
        in ('BFTBB','WPSPM') then 1 else 0 end)
    from oA1P.TWP703A104
union all select '5', count(*), sum(case when substr(wp70302e,1,5)
        in ('BFTBB','WPSPM') then 1 else 0 end)
    from oA1P.TWP703A105
    with ur
;;
set current sqlid = 'A540769';
delete from plan_table;
   explain plan set queryno = 1 for
   SELECT * FROM A540769.VMFNVEXT
       WHERE MF150023 > '038 ' AND MF150023 <= '052 '
       WITH UR
;
   explain plan set queryno = 2 for
   SELECT * FROM A540769.VMFNVPART
       WHERE MF150023 > '052 ' AND MF150023 <= '057 '
;
   explain plan set queryno = 3 for
   select t.*, i.mf150Hash
       from oA1P.tmf150a1   t, A540769.tmfnvPart i
       where t.mf150013 = i.mf150013
         and t.mf150023 = i.mf150023
         and i.part = 1
       order by i.MF150023              ASC,
                i.MF150013              DESC
;
   explain plan set queryno = 4 for
   select t.*, i.mf150Hash
       from oA1P.tmf150a1   t, A540769.tmfnvPart i
       where t.mf150013 = i.mf150013
         and t.mf150023 = i.mf150023
         and t.MF150082 = ' '
         and i.part = 1
       order by i.MF150023              ASC,
                i.MF150013              DESC
;
 --explain plan set queryno = 7 for
 --ect                s.*
 -- from tstRts.tsIxStats        S
 -- where db  like    'MF%'  and ts like 'A1%1%' and part in (0,1,5,7,9)
 -- order by db, ts, part
 --
 --ect current timestamp from sysibm.sysdummy1;
--lect                s.*
--  from tstRts.tsIxStats        S
--  where db =     'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
--  order by db    , ts -- , part
--
--lect current timestamp from sysibm.sysdummy1;
--lect                s.*
--  from tstRts.tsIxStats        S
--  where db like  'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
--  order by db    , ts -- , part
--
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
 x
select * from A540769.plan_view5
 where progName in ('SV5003', 'SV5390', 'SV8240')
    order by applname, progname, queryNo, qblockno, planno
;x;

select * from cmnbatch.plan_view2
 where progName in ('FI5700') and version = 'BKUR000319'
    order by applname, progname, queryNo, qblockno, planno
;x;

-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'A540769';
delete from plan_table;
   explain plan set queryno = 3 for
select                s.*
    from tstRts.VRtsReoTSSchwelle  s
    where db =     'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
   explain plan set queryno = 7 for
select                s.*
    from tstRts.tsIxStats        S
    where db  like    'MF%'  and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db, ts, part
;
select current timestamp from sysibm.sysdummy1;
select                s.*
    from tstRts.tsIxStats        S
    where db =     'MF01A1P' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select                s.*
    from tstRts.tsIxStats        S
    where db like  'MF0%' and ts like 'A1%1%' and part in (0,1,5,7,9)
    order by db    , ts -- , part
;
select current timestamp from sysibm.sysdummy1;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
 x
 xxx
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for        -- mit concat
with c as
( select mf150023 cif, mf150013 dat, count(*) cnt
      from oA1P.tmf150A1
      where    mf150023 like '000%'
      group by mf150023 , mf150013
) , h as
( select
  smallint(mod(
  int(
  translate(
  translate('08642' , hex(substr(cif     , 8, 5)), '1234567890'),
            '024579', 'ABCDEF'))
                + month(dat)  ,11113)) h
      , cnt
      from c
)
, g as
( select    sum(cnt) c
    from h
    group by h
)
, p as
( select    sum(cnt) c
    from h
    group by floor(h/111.14)
)
select 'h', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
   from g
   group by floor(log10(c) * 6)
union all
select 'p', min(c) "min", max(c) "max", count(*) "count", sum(c) "sum"
   from p
   group by floor(log10(c) * 6)
order by 1, 2
with ur
;
explain plan set queryno = 5 for        -- mit concat
with h as
( select mf150023 cif,
  smallint(mod(
  int(
  translate(
  translate('08642' , hex(substr(mf150023  , 8, 5)), '1234567890'),
            '024579', 'ABCDEF')), 9973)) t
      from oA1P.tmf150A1
   -- where cif like '000%'
)
, g as
( select t, count(*) c
    from h
    group by t
)
select sum(c), min(c), max(c), count(*) "dist c"
   from g
   group by floor(log10(c) * 6)
   with ur
;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from cmnBatch.plan_view5
 where progName = 'YDG129'
    order by applname, progname, queryNo, qblockno, planno
;
x
select * from cmnBatch.plan_view5
 where progName = 'MF8500' -- and version = 'MFR0000203'
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 1 for        -- mit concat
    SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
           RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
           RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
    FROM oA1P.TRM010A1
    WHERE ?       BETWEEN RM01002 AND RM01006
      AND  RM01015 || '' IN ('RT001','RT002','RT004',
                      'RT010','RT015','RT018','RT201')
    ORDER BY RM01015, RM01011, RM01014, RM01002
    FOR FETCH ONLY;
explain plan set queryno = 3 for        -- mit or
    SELECT RM01001,RM01002,RM01003,RM01004,RM01005,RM01006,
           RM01007,RM01008,RM01009,RM01010,RM01011,RM01012,
           RM01013,RM01014,RM01015,RM01016,RM01017,RM01018
    FROM oA1P.TRM010A1
    WHERE ?       BETWEEN RM01002 AND RM01006
      AND  (RM01015 IN('RT001','RT002','RT004',
                      'RT010','RT015','RT018','RT201')
            or  1 = 0
           )
    ORDER BY RM01015, RM01011, RM01014, RM01002
    FOR FETCH ONLY;
explain plan set queryno = 9 for        -- neu ohne or
    SELECT *
    FROM oA1P.TRM010A1
    WHERE ?       BETWEEN RM01002 AND RM01006
      AND  RM01015 IN('RT001','RT002','RT004',
                      'RT010','RT015','RT018','RT201')
    ORDER BY RM01015, RM01011, RM01014, RM01002
    FOR FETCH ONLY;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for        -- alt schnell
  Select MF150023,MF150067,
     sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
     sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
  FROM oA1P.TMF150A1
  WHERE MF150066 = '        A965367'
  AND   MF150013 BETWEEN '01.01.2009' and '30.11.2009'
  AND   MF150085 BETWEEN 10 AND 89
  AND   MF150084 BETWEEN 10 AND 89
  GROUP BY MF150023,MF150067
  with ur
;
explain plan set queryno = 9 for        -- neu langsam
  Select MF150023,MF150067,MF150019A,
     sum(Case when MF150055 = 'Z' then DEC(MF150019,18,3) else 0 end),
     sum(Case when MF150055 = 'A' then DEC(MF150019,18,3) else 0 end)
  FROM oA1P.TMF150A1
  WHERE MF150066 = '        A965367'
  AND   MF150013 BETWEEN '01.01.2009' and '30.11.2009'
  AND   MF150085 BETWEEN 10 AND 89
  AND   MF150084 BETWEEN 10 AND 89
  GROUP BY MF150023,MF150067,MF150019A
  with ur;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
x
delete from plan_table;
explain plan set queryno = 3 for
   SELECT SV363012
   FROM oA1P.TSV361A1 JOIN oA1P.TSV363A1
   ON SV361003=SV363001
   WHERE SV361002=1
   AND SV361008=2
   AND SV361009= ?
   AND(SV363007='1' OR SV363007='2')
   AND(ABS(SV363010 - '01.01.2009')<30 OR ABS(SV363011
   - date('01.01.2009'))<30)
   ORDER BY SV363010 DESC,SV363011 DESC
;
select * from plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
select count(*), SV363001
   FROM oA1P.TSV363A1
    group by SV363001
    ORDER BY 1 DESC
    WITH UR
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
    from a540769.vrtsReoTs
    where dbName like 'MF%'
;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
----- query 1532  YXEBV2E,               30.6.09
----- Kumar Sandeep will sequenz  TKS835, TKS833, TKS843, TKS843
-----      seit einem Jahr bind  TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359  for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
select * from cmnbatch.plan_view5a
    where progname = 'WI8710'
         and version in ('WS8B000786', 'WS8B000325')
         and queryno in ( 241)
    order by applname, progname, queryNo, timestamp, qblockno, planno
;
x
x
select * from CMNbatch.plan_view5
    where queryno between 142 and 147
    and progname = 'YCI017C'
    order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
    UPDATE bua.TXBH111
    SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
      EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
      select count(*), jobname, max(partition), min(partition)
          from sysibm.syscopy c, sysibm.systablepart p
          where c.dbName = p.dbName and c.tsName = p.tsname
              and c.dsNum in (0, p.partition)
          group by jobName
          order by 1 desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
    from CMNBATCH.plan_view5
    where progName = 'DBWK3'
    order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
    from oA1P.vpw210a1V
    group by auftrags_nummer, pm_id
    order by 1 desc
;
--select count(*) from oA1P.TSN100A1
--    with ur
--    ;
select *
    from CMNBATCH.plan_view5
    where progName = 'YPW2KPI' and queryNo = 4235
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
 explain plan set queryno = 111 for
         SELECT T.* FROM oA1P.VNI600A101A C
               , oA1P.VNI203A101A T
           WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
           AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
    WITH NI600 (PERENDDT) AS
            (SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
               FROM oA1P.VNI600A101A C
               WHERE C.CTRLID = 'NI6220R'
             )
             SELECT T.* FROM NI600
                   ,oA1P.VNI203A101A T
               WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
    from cmnbatch.plan_view5
    where progName = 'YRPNIMP' and queryNo = 866
    order by applname, progname, queryNo, qblockno, planno
;
x
         d.bType, p.collid, p.Name, p.version,
 p.conToken, p.timeStamp, p.type,
 p.validate, p.isolation, p.valid, p.operative,
 p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
 on p.location = d.dLocation and p.collid = d.dCollid
     and p.name = d.dName and  p.conToken = d.dConToken     2.22.129867'
re
 (bQualifier, bName, bType) in
 (  select dbName, name, 'R'
         from sysIbm.sysTablespace
         where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
 )
     from gdb0283.vnz240a1v
    where    SearchValue01            = ?
          -- dec(SearchValue01,15,3)  = ?
      and CreateDateTime           < ?
      and dec(SearchValue02,15,3) >= ?
      and dec(SearchValue02,15,3) <= ?
      and Objtype                 ^= 'PORDSPLT'
    order by CreateDateTime
    fetch first 101 rows only
    optimize for 101 rows
    with ur
;
select * from plan_view5A
    where queryno = 999
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIWI) cre=2011-03-18 mod=2014-04-30-15.38.39 A540769 ---
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'WI'
        and prog         = 'YWIESOQ'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'WI'
        and progName     = 'YWIESOQ'
        and bind_time    = '2014-04-20-03.53.16.805962'
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;x;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'MF'
        and progName     = 'MF7010'
        and bind_time    = '2011-08-30-14.14.59.234601'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
select count(*), WI10500
     from oa1p.tWI105A1004
     group by  WI10500
     order by 1 desc
     fetch first 1000 rows only
     with ur
;x;
select count(*), WI10500, WI10501T, WI10501D, WI10501L, WI10501G
     from oa1p.tWI105A1004
     group by  WI10500, WI10501T, WI10501D, WI10501L, WI10501G
     order by 1 desc
     fetch first 1000 rows only
     with ur
;x;
select count(*), WI10501T, WI10501D, WI10501L, WI10501G
     from oa1p.tWI105A1004
     group by  WI10501T, WI10501D, WI10501L, WI10501G
     order by 1 desc
     fetch first 1000 rows only
     with ur
;x;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
  SELECT
      DISTINCT WI10304G ,
      WI10501V ,
      WI10501B ,
      WI10302CIF ,
      WI10302BK ,
      WI10300 ,
      WI10302DA ,
      WI10500V ,
      WI103D150301 ,
      WI10505 ,
      WI10518C ,
      WI103D150305 ,
      WI10305 ,
      WI10307G ,
      WI10307A
  FROM
      oa1p.TWI103A1003
  JOIN
      oa1p.TWI105A1003
          ON WI10500 = WI10300
          AND WI10501T = WI10301T
          AND WI10501D = WI10301D
          AND WI10501L = WI10301L
          AND WI10501G = WI10301G
  WHERE
      WI10301T = ?
      AND WI10301D = ?
      AND WI10301L = ?
      AND WI10301G = ?
      AND WI10301GK = '01'
  ORDER BY
      WI10501V ,
      WI10501B WITH UR
;
explain plan set queryno = 4   for
  SELECT
      DISTINCT WI10304G ,
      WI10501V ,
      WI10501B ,
      WI10302CIF ,
      WI10302BK ,
      WI10300 ,
      WI10302DA ,
      WI10500V ,
      WI103D150301 ,
      WI10505 ,
      WI10518C ,
      WI103D150305 ,
      WI10305 ,
      WI10307G ,
      WI10307A
  FROM
      oa1p.TWI103A1004
  JOIN
      oa1p.TWI105A1004
          ON WI10500 = WI10300
          AND WI10501T = WI10301T
          AND WI10501D = WI10301D
          AND WI10501L = WI10301L
          AND WI10501G = WI10301G
  WHERE
      WI10301T = ?
      AND WI10301D = ?
      AND WI10301L = ?
      AND WI10301G = ?
      AND WI10301GK = '01'
  ORDER BY
      WI10501V ,
      WI10501B WITH UR
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;rollback
;x;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
????????????????????????????????????????
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'WI'
        and prog         = 'WI8710'
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'WI'
        and progName     = 'WI8710'
        and bind_time   in ('2012-11-10-00.11.55.137885'
                           ,'2012-11-09-20.22.41.252382'
                           ,'2012-08-11-00.28.08.942942'
                           )
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;;;;;;;
set current schema cmnbatch;
-- versionen, Compiles und Binds pro Programm
with e as
(
select count(*) c, progName pg, version vr, collid co, bind_time bt,
        sum(case when opthint = '' then 0 else 1 end) cOpt
    from cmnBatch.plan_table
    group by progName, version, collid, bind_time
)
select substr(e.pg, 1, 8) pg, date(p.pcTimeStamp) "preComp",
         date(e.bt) "bind", c "#plan_t", cOpt "#hints", vr,

        e.*, p.*
    from e
    full outer join sysibm.sysPackage p
    on e.co = p.collid and e.pg = p.name and e.vr = p.version
    where e.pg = 'WI8710'
    order by e.pg, p.pcTimeStamp desc, e.bt desc
    with ur
;
select * from  cmnBatch.plan_view1
 where progName in ('WI8710') -- and collid     = 'WP'
  --   and bind_time in ('2011-04-12-14.09.51.446149'
  --                    ,'2011-04-11-17.07.54.101644'
  --                    ,'2011-02-11-23.34.35.249197'
  --                    )
       and  opthint <> ''
    -- and  version = 'DBH000012659B91C5F'
       and queryno = 269
       and qBlockNo = 1 and planNo = 1
    order by bind_time desc,
    applname, progname, queryNo, qblockno, planno, mixOpSeq

;;;
set current sqlid = 'A540769';
select * from cmnbatch.plan_view2
    where progname = 'WI8710'
      -- and version in ('WS8B000786', 'WS8B000325')
      -- and queryno in ( 241)
         and opthint <> ''
    order by applname, progname, queryNo, timestamp, qblockno, planno
;
;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
                                   SELECT DISTINCT C.WI10001T,
 C.WI10001D, C.WI10001L, C.WI10001G, C.WI10001V, C.WI10001B, C.WI10002
 FROM oa1p.TWI100A1 C INNER JOIN
 (SELECT A.WI11701T AS TERM, A.WI11701D AS
 ADATE, A.WI11701L AS ALNR, A.WI11701G AS GANR, A.WI11701V AS VVNR,
 A.WI11701B AS VBNR FROM oa1p.TWI117A1 A INNER JOIN
 (SELECT MAX (WI11701I) AS
 MAXI, B.WI11701T AS TERM, B.WI11701D AS ADATE, B.WI11701L AS ALNR,
 B.WI11701G AS GANR, B.WI11701V AS VVNR, B.WI11701B AS VBNR FROM
 oa1p.TWI117A1 B
 WHERE B.WI11701R = 'B' GROUP BY B.WI11701T, B.WI11701D,
 B.WI11701L, B.WI11701G, B.WI11701V, B.WI11701B) AS TEMPTAB ON
 A.WI11701T = TEMPTAB.TERM AND A.WI11701D = TEMPTAB.ADATE AND A.WI11701L
 = TEMPTAB.ALNR AND (A.WI11701G = TEMPTAB.GANR OR A.WI11701G = '') AND
 (A.WI11701V = TEMPTAB.VVNR OR A.WI11701V = '') AND (A.WI11701B =
 TEMPTAB.VBNR OR A.WI11701B = '') AND A.WI11701I = TEMPTAB.MAXI WHERE
 A.WI11703 = 'Y') AS TEMPTAB2 ON TEMPTAB2.TERM = C.WI10001T AND
 TEMPTAB2.ADATE = C.WI10001D AND TEMPTAB2.ALNR = C.WI10001L AND
 (TEMPTAB2.GANR = C.WI10001G OR TEMPTAB2.GANR = '') AND (TEMPTAB2.VVNR =
 C.WI10001V OR TEMPTAB2.VVNR = '') AND (TEMPTAB2.VBNR = C.WI10001B OR
 TEMPTAB2.VBNR = '') FOR FETCH ONLY WITH UR
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 0   for
DELETE
  FROM  oa1p.TWI020A1
  WHERE WI02040T < TIMESTAMP(CURRENT TIMESTAMP - 21 DAYS)
    AND WI02001S IN ('D','P','R')
;
explain plan set queryno = 5   for
select count(*), min(WI02025d)
  FROM  oa1p.TWI020A1
  WHERE WI02040T < TIMESTAMP(CURRENT TIMESTAMP - 21 DAYS)
    AND WI02001S IN ('D','P','R')
;
select * from  plan_view1
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;
select current timestamp from sysibm.sysDummy1;
select count(*), min(WI02025d)
  FROM  oa1p.TWI020A1
  WHERE WI02040T < TIMESTAMP(CURRENT TIMESTAMP - 21 DAYS)
    AND WI02001S IN ('D','P','R')
  with ur
;
select current timestamp from sysibm.sysDummy1;
;;;
delete from A540769.plan_table;
insert into A540769.plan_table
    select * from cmnbatch.plan_Table
    where   collid       = 'WI'
        and progName     = 'WI8710'
        and bind_time =  '2012-08-11-00.28.08.942942'
        and hint_used = 'HBD1'
;
update      A540769.plan_table
    set queryno = 224, version = 'WS8I000685'
      , bind_time = '2012-11-09-23.00.00' , opthint = 'HBD1'
      , hint_used = ''
;
select * from A540769.plan_View1
    where   collid       = 'WI'
        and progName     = 'WI8710'
        and bind_time =  '2012-11-09-23.00.00'
;
delete from cmnBatch.plan_table
    where   collid       = 'WI'
        and progName     = 'WI8710'
        and bind_time =  '2012-11-09-23.00.00'
;
insert into cmnbatch.plan_table
    select * from A540769.plan_Table
;
commit
;
}¢--- A540769.WK.SQL(EXPLAIWM) cre=2010-10-14 mod=2013-08-29-17.12.09 A540769 ---
select *
    from cmnbatch.plan_view0
    where   -- collid       = 'YY'  and
            prog   in    ( '?YWM51E', 'YYWM05E')
            and version = 'WSIN000114'
    order by pcBi  desc, bind_Time desc
    with ur
;
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where  -- collid     = 'YY' and
            progName    in    ( '?YWM51E' , 'YYWM05E')
        and bind_time   in('2013-08-08-12.01.22.006192'
                          ,'1012-03-28-09.10.55.577306'
                          )
    order by         progName, version,
             queryno,
             bind_time desc,
             qBlockNo, planno, mixopSeq
    with ur
; x;
                -- keys eines indexes in der form a<b>c|d<
                --             a,b,c,d keys
                --             <>| ascending, descending, random
with k0 (cr, ix, keys, colCount, kCnt) as
                -- start selektiere Indexe
( select creator, name,     -- start selektiere Indexe
        cast('' as varchar(500) ccsid unicode), colCount, 0
      from sysibm.sysIndexes
      where creator = 'OA1T'  and tbName like 'TWM005A1'
                -- Rekursion: nächster key
  union all select cr, ix, keys || strip(q.colName)
            || case when ordering = 'A' then '<'
                    when ordering = 'D' then '>'
                    when ordering = 'R' then '|'
                    else '?' || ordering || '?' end,
          k0.colCount, kCnt + 1
       from k0
         join sysibm.sysKeys q
         on q.ixCreator = k0.cr and q.ixName = k0.ix
             and q.colSeq = kCnt + 1
         where kCnt < 9999
)
, k as
(
select cr, ix, colCount , keys
    from k0
    where colCount = kCnt
)
select substr(ix, 1, 8) ix, smallint(colCount), keys
    from k
    order by ix
;
                -- keys eines indexes in der form a<b>c|d<
                --             a,b,c,d keys
                --             <>| ascending, descending, random
with k0 (cr, ix, keys, colCount, kCnt) as
                -- start selektiere Indexe
( select creator, name,     -- start selektiere Indexe
        cast('' as varchar(500) ccsid unicode), colCount, 0
      from sysibm.sysIndexes
      where creator = 'OA1T'  and tbName like 'TWM005A1'
                -- Rekursion: nächster key
  union all select cr, ix, keys || strip(q.colName)
            || case when ordering = 'A' then '<'
                    when ordering = 'D' then '>'
                    when ordering = 'R' then '|'
                    else '?' || ordering || '?' end,
          k0.colCount, kCnt + 1
       from k0
         join sysibm.sysKeys q
         on q.ixCreator = k0.cr and q.ixName = k0.ix
             and q.colSeq = kCnt + 1
         where kCnt < 9999
)
, k as
(
select cr, ix, colCount , keys
    from k0
    where colCount = kCnt
)
select queryNo qn, substr(ix, 1, 8) ix,
         mc_o || '/' || substr(strip(char(colCount)), 1, 1) "mc O i",
         substr(keys, 1, 30) keys, v.*
    from cmnbatch.plan_view1 v
    left join k
        on accessName = ix
    where  -- collid     = 'YY'
            progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-04-06-16.29.25.501534'
                          ,'2012-04-06-16.30.46.232929'
                          ,'2012-04-20-10.30.31.730896'
                          ,'2012-04-20-10.34.20.522454'
                          )
    order by         progName, version,
         --  mod(queryno, 100),
             queryno,
             bind_time desc,
             qBlockNo, planno, mixopSeq
    with ur
;
--- ausgewählte Explains analysieren                          ---dbtf---
select index, count(*), min(mc_o), max(mc_o)
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where  -- collid     = 'YY' and
            progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-04-05-17.01.57.402640'
                          ,'2012-03-28-09.10.55.577306'
                          )
    group by index, bind_time
    order by index, bind_time  desc
    with ur
;
select *
    from cmnbatch.plan_view1
    where  -- collid     = 'YY'
            progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-04-05-17.01.57.402640'
                          ,'2012-03-28-09.10.55.577306'
                          )
    order by         progName, version,
             queryno,
             bind_time desc,
             qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where  -- collid     = 'YY'
            progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-04-05-17.01.57.402640'
                          ,'2012-03-28-09.10.55.577306'
                          )
    order by         progName, version,
             queryNo,
             bind_time desc,
             qBlockNo, planno,
             stage, predNo
;;;;
--- ausgewählte Explains analysieren                          ---dbaf---
select index, count(*), min(mc_o), max(mc_o)
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-30-14.34.00.445119'
                          ,'2012-03-30-08.15.45.557519'
                          )
    group by index, bind_time
    order by index, bind_time  desc
    with ur
;
select *
    from cmnbatch.plan_view1
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-30-14.34.00.445119'
                          ,'2012-03-30-08.15.45.557519'
                          )
    order by collid, progName, version,
             queryno,
             bind_time desc,
             qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-30-14.34.00.445119'
                          ,'2012-03-30-08.15.45.557519'
                          )
    order by collid, progName, version,
             queryNo,
             bind_time desc,
             qBlockNo, planno,
             stage, predNo
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 427  for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1a.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
    CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND TWMD2 = ?
;
explain plan set queryno = 527  for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1a.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
    CDEFAULT BETWEEN ? AND ? AND CTYP = ? || '' AND TWMD2 = ?
;
explain plan set queryno = 627  for
with DSN_INLINE_opt_Hint( -- table_creator, table_name,
             access_type, access_creator, access_name) AS
( values ('INDEX', 'OA1A', 'IWM005AG')
)
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1a.TWM005A1
WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
    CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND TWMD2 = ?
;
explain plan set queryno = 71  for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1a.TWM005A1
        WHERE
            D$GUEA <= ?
            AND D$GUEB >= ?
            AND CSTAT = ?  || ''
            AND CDEFAULT || '' BETWEEN ? AND ?
            AND CTYP = ?
            AND CGA = ?
            AND TWMD1 = ? || '' QUERYNO 064
-- WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
--CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU = ? AND NDEP = '' ¨¨
--'' AND TWMD1 = '' ¨¨ '' QUERYNO 071
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
--- ausgewählte Explains analysieren
select index, count(*), min(mc_o), max(mc_o)
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-28-09.10.52.339989'
                          ,'2012-03-28-09.10.55.577306'
                          )
    group by index
    with ur
;
select *
    from cmnbatch.plan_view0
    where   collid       = 'YY'
        and prog   in    ( 'YYWM51E' , 'YYWM05E')
    order by pcBi  desc, bind_Time desc
    with ur
;;;
--- ausgewählte Explains analysieren
select index, count(*), min(mc_o), max(mc_o)
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-28-09.10.52.339989'
                          ,'2012-03-28-09.10.55.577306'
                          )
    group by index
    with ur
;
select *                       --dbtf
    from cmnbatch.plan_view1
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-28-09.10.52.339989'
                          ,'2012-03-28-09.10.55.577306'
                          )
    order by collid, progName, version,
             queryno,
             bind_time desc,
             qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-28-09.10.52.339989'
                          ,'2012-03-28-09.10.55.577306'
                          )
    order by collid, progName, version, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
;
;;,
--- ausgewählte Explains analysieren
select index, count(*), min(mc_o), max(mc_o)
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-22-09.55.02.438577'
                          ,'2012-03-22-09.54.58.171886'
                          )
    group by index
    with ur
;
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-22-09.55.02.438577'
                          ,'2012-03-22-09.54.58.171886'
                          )
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
       and bind_time in('2012-03-22-09.55.02.438577'
                          ,'2012-03-22-09.54.58.171886'
                          )
    order by collid, progName, version, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
;
;;,
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 71  for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
FROM oa1t.TWM005A1
        WHERE
            D$GUEA <= ?
            AND D$GUEB >= ?
            AND CSTAT = ?  || ''
            AND CDEFAULT || '' BETWEEN ? AND ?
            AND CTYP = ?
            AND CGA = ?
            AND TWMD1 = ? || '' QUERYNO 064
-- WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
--CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU = ? AND NDEP = '' ¨¨
--'' AND TWMD1 = '' ¨¨ '' QUERYNO 071
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
--- versionen, compiles und explains eines packages -------------------
select *
    from cmnbatch.plan_view0
    where   collid       = 'YY'
        and prog   in    ( 'YYWM51E' , 'YYWM05E')
    order by pcBi  desc, bind_Time desc
    with ur
;
--- ausgewählte Explains analysieren
select *
    from cmnbatch.plan_view1
 -- from cmnbatch.plan_view2
 -- from cmnbatch.plan_view2Det
    where     collid     = 'YY'
        and progName    in    ( 'YYWM51E' , 'YYWM05E')
        and bind_time   in('2012-03-22-09.55.02.438577'
                          ,'2012-03-22-09.54.58.171886'
                          )
        and queryno = 64
    order by collid, progName, version, bind_time,
             queryno, qBlockNo, planno, mixopSeq
    with ur
;
select *
    from cmnbatch.plan_viewPred
    where     collid     = 'YY'
        and progName     = 'YYWM51E'
        and bind_time    = '2012-03-09-11.43.48.725773'
    order by collid, progName, applName, bind_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;;;;;
select *
    from cmnbatch.dsn_filter_table
    where     collid     = 'YY'
        and progName     = 'YYWM51E'
        and explain_time    = '2012-03-09-11.43.48.725773'
        and queryno = 1
    order by
             queryNo, qBlockNo, planno,
             stage, predNo
;
select current timestamp from sysibm.sysDummy1;
with v3 as
( select 3 keys, count(*) cnt, CKAT, nkto, d$gueb
      from oa1a.twm005A1
      group by CKAT, nkto, d$gueb
)
, v2 as
( select 2 keys, sum(cnt) cnt, CKAT, nkto
     from v3
      group by CKAT, nkto
)
, v1 as
( select 1 keys, sum(cnt) cnt, CKAT
     from v2
      group by CKAT
)
, v (keys, cnt, val) as
(
( select keys, cnt
      , char(ckat) || ' + ' || char(nkto) || ' + ' || char(d$gueb)
       from v3
       order by cnt desc
       fetch first 10 rows only )
union all (select keys, cnt
      , char(ckat) || ' + ' || char(nkto)
       from v2
       order by cnt desc
       fetch first 10 rows only
        )
union all ( select keys, cnt
      , char(ckat)
       from v1
       order by cnt desc
       fetch first 10 rows only
)    )
select *
    from v
    order by keys, cnt desc
    with ur
;
select current timestamp from sysibm.sysDummy1;
with v (keys, cnt, val) as
( (select 3, count(*)
      , char(ckat) || ' + ' || char(nkto) || ' + ' || char(d$gueb)
      from oa1a.twm005A1
      group by CKAT, nkto, d$gueb
      order by 2 desc
      fetch first 10 rows only
) union all (select 2, count(*)
      , char(ckat) || ' + ' || char(nkto)
      from oa1a.twm005A1
      group by CKAT, nkto
      order by 2 desc
      fetch first 10 rows only
) union all (select 1, count(*)
      , char(ckat)
      from oa1a.twm005A1
      group by CKAT
      order by 2 desc
      fetch first 10 rows only
) )
select *
    from v
    order by keys, cnt desc
    with ur
;
select current timestamp from sysibm.sysDummy1;
;;;;
select *
    from cmnBatch.plan_view1
    where progName in ( 'YYWM51E') --, 'YYWM05E')
     -- and version = 'WSIN000086'
          and queryNo = 71
    --    and optHint = 'WK1'
    --      and bind_time =   '2011-06-16-18.06.33.125938'
    --    and bind_time in ('2011-01-19-14.34.47.972473',
    --                      '2010-12-17-11.16.20.037477')
 -- order by index, mc_O
   order by applname, progname, version desc, bind_time desc ,
            queryNo, qblockno, planno, mixOpSeq
;     ;;
set current sqlid = 'A540769';
--select hex(X'C2E4D9C1'), X'C2E4D9C1'
--    from sysibm.sysDummy1;;;
delete from plan_table;
explain plan for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = ? QUERYNO 070
;
explain plan set queryno = 1070 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU || '' = '' AND NDEP || ''
    = '' AND TWMD1 = ? QUERYNO 070
;
explain plan set queryno = 1270 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp AND CSTAT = 'A' and
CDEFAULT BETWEEN ' ' AND '9' AND
CTYP = X'C2E4D9C1'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = 'ab' QUERYNO 070
;
explain plan set queryno = 1370 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU       = '' AND NDEP
    = '' AND TWMD1 = ? QUERYNO 070
;
explain plan set queryno = 9070 for
-- SQL in stmt: 3332
                        SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG,
TGRUND, UWM005, D$GUEA, D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF,
NDEP, NBESTDEP, NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE,
CTIT, CTITLAND, NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5,
TWMD6, TWMD7, TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1,
TWM2, TWM3, TWM4, TWM5, TWM6
FROM oa1t.TWM005A1
WHERE D$GUEA <= ? AND
D$GUEB >= ? AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
AND CTYP = ? AND NBU = '' ¨¨ '' AND NDEP = ? AND TWMD1 = ? FOR FETCH
ONLY QUERYNO 070
;
explain plan set queryno = 9170 for
-- SQL in stmt: 3332
                        SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG,
TGRUND, UWM005, D$GUEA, D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF,
NDEP, NBESTDEP, NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE,
CTIT, CTITLAND, NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5,
TWMD6, TWMD7, TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1,
TWM2, TWM3, TWM4, TWM5, TWM6
FROM oa1t.TWM005A1
WHERE D$GUEA <= ? AND
D$GUEB >= ? AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
AND CTYP = ? AND NBU = '' ¨¨ '' AND NDEP = ? || ''
AND TWMD1 = ? FOR FETCH
ONLY QUERYNO 070
;
select *
    from          plan_view1
    order by applname, progname, queryNo, qblockno, planno
;;;
explain plan for -- set queryno = 124 for
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp
AND CSTAT = 'A'
and CDEFAULT BETWEEN ' ' AND '9'
AND CTYP = X'C2E4D9C1'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = '0499'
;
explain plan for -- set queryno = 224 for
SELECT count(*), sum(length(strip(TGRUND)))
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp
AND CSTAT = 'A'
and CDEFAULT BETWEEN ' ' AND '9'
AND CTYP = X'C2E4D9C1'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = '0499'
;
with g2 as
(
select count(*) c, twmd1 , cTyp
    from OA1T.twm005a1
    group by twmd1 , cTyp
) , g (c, twmd1 , cTyp) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), twmd1 , '---' from g2
         group by twmd1  order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cTyp from g2
         group by cTyp order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
    order by 1 desc
    with ur
;;;
select current timestamp from sysibm.sysdummy1;
SELECT PERF, D$ERF, PLMUT, D$LMUT, TAUFTRG, TGRUND, UWM005, D$GUEA,
D$GUEB, CSTAT, CDEFAULT, CKAT, CTYP, NBU, NCIF, NDEP, NBESTDEP,
NBESTVAL, NBESTSEQ, CGA, CGAPH, NAUFTR, NVALOR, CWAE, CTIT, CTITLAND,
NDEPST, NDEPLAND, TWMD1, TWMD2, TWMD3, TWMD4, TWMD5, TWMD6, TWMD7,
TWMD8, IS40KEY, NKTO, CWAE2, NCIF2, CWM1, CWM2, TWM1, TWM2, TWM3, TWM4,
TWM5, TWM6
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp AND CSTAT = 'A' and
CDEFAULT BETWEEN ' ' AND '9' AND
CTYP = X'C2E4D9C1'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' AND TWMD1 = 'ab' QUERYNO 070
;
select current timestamp from sysibm.sysdummy1;
;;
with g2 as
(
select count(*) c, nValor, cTyp
    from OA1T.twm005a1
    group by nValor, cTyp
) , g (c, nValor, cTyp) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nValor, '---' from g2
         group by nValor order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cTyp from g2
         group by cTyp order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
    order by 1 desc
    with ur
;;;
select current timestamp from sysibm.sysDummy1;
SELECT count(*), sum(length(strip(TGRUND)))
from
OA1T.TWM005A1 WHERE D$GUEA <= current timestamp
AND D$GUEB >= current timestamp
AND CSTAT = 'A'
and CDEFAULT BETWEEN ' ' AND '9'
AND CTYP =  'BURA'
AND NBU = '' ¨¨ '' AND NDEP =
'' ¨¨ '' -- AND TWMD1 = '0499'
;
select current timestamp from sysibm.sysDummy1;
;;;
select count(*) c, uwm005
    from oa1p.twm005a1
    group by uwm005
    order by 1 desc
    fetch first 100 rows only
    with ur
;;;
select count(*) c, nkto
    from oa1p.twm005a1
    group by nkto
    order by 1 desc
    fetch first 100 rows only
    with ur
;;;
with g2 as                        y
(
select count(*) c, nCif, cKat
    from oa1p.twm005a1
    group by nCif, cKat
) , g (t, c, nCif, cKat) as
(
(select 'ck', g2.* from g2 order by c desc fetch first 100 rows only)
union all (select '-k', sum(c), nCif, '---' from g2
         group by nCif  order by 1 desc fetch first 100 rows only)
union all (select 'c-', sum(c), '---', cKat from g2
         group by cKat order by 1 desc fetch first 100 rows only)
union all select '--', sum(c), '---', '---' from g2
)
select * from g
    order by 1 , 2 desc
    with ur
;;;
with g2 as
(
select count(*) c, nValor, cTyp
    from oa1p.twm005a1
    group by nValor, cTyp
) , g (c, nValor, cTyp) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nValor, '---' from g2
         group by nValor order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cTyp from g2
         group by cTyp order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
    order by 1 desc
    with ur
;;;
with g2 as
(
select count(*) c, nBu, cTyp
    from oa1p.twm005a1
    group by nBu, cTyp
) , g (c, nBu, cTyp) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nBu, '---' from g2
         group by nBu   order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cTyp from g2
         group by cTyp order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
    order by 1 desc
    with ur
;;;
with g2 as
(
select count(*) c, nCif, ndep
    from oa1p.twm005a1
    group by nCif, ndep
) , g (c, nCif, ndep) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nCif, '---' from g2
         group by nCif  order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', nDep from g2
         group by nDep order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
    order by 1 desc
    with ur
;;;
with g2 as
(
select count(*) c, nCif, cStat
    from oa1p.twm005a1
    group by nCif, cStat
) , g (c, nCif, cStat) as
(
(select * from g2 order by c desc fetch first 100 rows only)
union all (select sum(c), nCif, '---' from g2
         group by nCif  order by 1 desc fetch first 100 rows only)
union all (select sum(c), '---', cStat from g2
         group by cStat order by 1 desc fetch first 100 rows only)
union all select sum(c), '---', '---' from g2
)
select * from g
    order by 1 desc
    with ur
;;;
select * from g
;;;
select count(*), TWMD1
    from oa1p.twm005a1
    group by TWMD1
    order by 1 desc
    fetch first 100 rows only
    with ur; ;
select count(*), nCif, ctyp
    from oa1p.twm005a1
    group by nCif, cTyp
    order by 1 desc
    fetch first 100 rows only
    with ur;
select count(*), nCif
    from oa1p.twm005a1
    group by nCif
    order by 1 desc
    fetch first 100 rows only
    with ur; ;
select count(*), nCif, ndep
    from oa1p.twm005a1
    group by nCif, nDep
    order by 1 desc
    fetch first 100 rows only
    with ur;  ;
select count(*), nCif
    from oa1p.twm005a1
    group by nCif
    order by 1 desc
    fetch first 100 rows only
    with ur; ;
select count(distinct CTYP || nCif || ndep ) "cTyp,nCif,nDep",
       count(distinct CTYP ||         ndep ) "cTyp,    ,nDep"
    from oa1p.twm005a1
 --   group by CTYP, nCif, ndep
 --   order by 1 desc
 --   fetch first 100 rows only
    with ur
;
select count(*), UWM005, CSTAT, CDEFault
    from oa1p.twm005a1
    group by UWM005, CSTAT, CDEFault
    order by 1 desc
    with ur
;;
select INDEX, count(*), min(mc_o), max(mc_o)
    from cmnBatch.plan_view1
    where progName = 'YYWM05E' and version = 'WSIN000086'
    --    and queryNo = 24
    --    and optHint = 'WK1'
          and table = 'TWM005A1'
          and bind_time = '2010-11-22-12.00.23.698521'
    group by index
    order by 1
;x
select *
    from cmnBatch.plan_view1
    where progName = 'YYWM51E' and version = 'WSIN000086'
    --    and queryNo = 24
    --    and optHint = 'WK1'
          and bind_time = '2010-11-22-11.42.58.58655'
    order by applname, progname, queryNo, qblockno, planno
;x
set current sqlid = 'A540769';
delete from plan_table;
insert into plan_table
    select * from s100447.tOptHint
    where progName = 'YYWM51E' and version = 'WSIN000086'
;
update plan_table set progName = 'YYWM05E';
delete
    from s100447.tOpthint
    where progName = 'YYWM05E' and version = 'WSIN000086'
;
insert into s100447.tOptHint
    select * from plan_table;
delete
    from cmnbatch.plan_table
    where progName = 'YYWM05E' and version = 'WSIN000086'
;
insert into cmnBatch.plan_table
    select * from plan_table;
commit  ; x
   --     and queryNo = 24
    order by applname, progname, queryNo, qblockno, planno
select *
    from cmnBatch.plan_view1
    where progName = 'YYWM05E' and version = 'WSIN000086'
    --    and queryNo = 24
    order by applname, progname, queryNo, qblockno, planno
;
select *
    from s100447.vOpthint_view1
    where progName = 'YYWM05E' and version = 'WSIN000086'
   --     and queryNo = 24
    order by applname, progname, queryNo, qblockno, planno
; x
select *
    from cmnbatch.plan_view1
    where progName = 'YYWM51E' and version = 'WSIN000086'
          and queryNo = 24
    order by applname, progname, queryNo, qblockno, planno
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 24 for
select *
from oa1p.TWM005A1
         WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NVALOR = ? QUERYNO 024
;
select * from plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
update plan_table           ---> richtige Keys setzen
     set queryno =  24
       , collid     = 'YY'
       , progname = 'YYWM51E'
       , version = 'WSIN000086'
       , optHint  = 'WK1'
;
update plan_table           ---> richtige access
    set accessName = 'IWM005A9'
;
delete   from cmnBatch.plan_table
    where opthint = 'WK1' and progName = 'YYWM05E'
        and version = 'WSIN000086'
        and queryno =   24
;
insert into cmnBatch.plan_table
    select * from A540769.plan_table
;
select * from  cmnBatch.plan_view1
    where opthint = 'WK1' and progName = 'YYWM51E'
    order by applname, progname, queryNo, qblockno, planno
;
delete   from s100447.tOpthint
    where opthint = 'WK1' and progName = 'YYWM05E'
        and version = 'WSIN000086'
        and queryno =   24
;
insert into s100447.tOpthint
    select * from A540769.plan_table;
--rollback;
select *
    from cmnbatch.plan_view1
    where progName = 'YYWM51E' and version = 'WSIN000086'
          and queryNo = 15
    order by applname, progname, queryNo, qblockno, planno
;
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 15 for
select *
from oa1p.TWM005A1
         WHERE D$GUEA <= ? AND D$GUEB >= ? AND CSTAT = ? AND
CDEFAULT BETWEEN ? AND ? AND CTYP = ? AND NBU = ? QUERYNO 015
;
select * from plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
update plan_table           ---> richtige Keys setzen
     set queryno =  15
       , collid     = 'YY'
       , progname = 'YYWM51E'
       , version = 'WSIN000086'
       , optHint  = 'WK1'
;
update plan_table           ---> richtige access
    set accessName = 'IWM005AB'
;
delete   from cmnBatch.plan_table
    where opthint = 'WK1' and progName = 'YYWM05E'
        and version = 'WSIN000086'
        and queryno =   15
;
insert into cmnBatch.plan_table
    select * from A540769.plan_table
;
select * from  cmnBatch.plan_view1
    where opthint = 'WK1' and progName = 'YYWM51E'
    order by applname, progname, queryNo, qblockno, planno
;
delete   from s100447.tOpthint
    where opthint = 'WK1' and progName = 'YYWM05E'
        and version = 'WSIN000086'
        and queryno =   15
;
insert into s100447.tOpthint
    select * from A540769.plan_table;
commit;x;
rollback; x; --> commit falls es richtig kommt ein
;;
select bind_time, count(*), version
    from cmnBatch.plan_table
    where progName = 'YYWM51E' -- and version = 'WSIN000086'
        and bind_time in ('2010-11-15-21.10.29.921543',
                          '2010-05-12-18.32.34.335450')
    group by bind_time, version
    order by 3 desc , 1 desc
;
select case when bind_time = '2010-11-15-21.10.29.921543'
             then 'n' else 'o' end, v.*
    from cmnBatch.plan_VIEW1 v
    where progName = 'YYWM51E' -- and version = 'WSIN000086'
        and bind_time in ('2010-11-15-21.10.29.921543',
                          '2010-05-12-18.32.34.335450')
    order by applname, progname, queryNo
          ,  1   , qblockno, planno
; x
;x;
select bind_time, count(*), version
    from cmnBatch.plan_table
    where progName = 'YYWM05E' -- and version = 'WSIN000086'
   --   and bind_time in ('2010-11-16-15.56.39.031094',
   --                     '2010-08-12-11.00.17.093367')
        --  and queryNo = 21
    group by bind_time, version
    order by 3 desc , 1 desc
;x;
    from
set current path = oa1p;
select SUBSTR(d.name, 1, 8), substr(c1.name, 1, 8),
        substr(c2.name, 1, 8), substr(c3.name, 1, 8),
        fosFmte7(cardf) "cardf",
        numColumns, length(colGroupColNo), hex(colGroupColNo), d.*
    from sysibm.syscoldist d
    left join sysibm.syscolumns c1
    on hex(substr(d.colGroupColNo, 1, 2))
        = hex(c1.colno)
        and c1.tbCreator = d.tbOwner
        and c1.tbName = d.tbName
    left join sysibm.syscolumns c2
    on hex(substr(d.colGroupColNo, 3, 2))
        = hex(c2.colno)
        and c2.tbCreator = d.tbOwner
        and c2.tbName = d.tbName
    left join sysibm.syscolumns c3
    on hex(substr(d.colGroupColNo, 5, 2))
        = hex(c3.colno)
        and c3.tbCreator = d.tbOwner
        and c3.tbName = d.tbName
    where tbOwner   = 'OA1P' and d.tbName = 'TWM005A1'
         and c1.name is not null
    order by statstime desc
;  x;
select *
    from sysibm.syscolstats
    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
;
select *
    from sysibm.syscoldist
    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
;
select *
    from sysibm.syscoldiststats
    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
;
select *
    from cmnBatch.plan_VIEW1
    where progName = 'YYWM05E' and version = 'WSIN000086'
          and queryNo = 21
    order by applname, progname, queryNo, qblockno, planno
          ,  bind_time desc
; x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 21 for
select *
                    FROM oa1p.TWM005A1 WHERE D$GUEA <= ? AND
D$GUEB >= ?  AND CSTAT BETWEEN ?  AND ? AND CDEFAULT BETWEEN ? AND ?
AND CTYP = ? AND NCIF = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
explain plan set queryno = 821 for
select *
                    FROM oa1p.TWM005A1 WHERE

 CTYP = ? AND NCIF = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
explain plan set queryno = 921 for
select *
                    FROM oa1p.TWM005A1 WHERE

 NCIF = ? AND CTYP = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
select * from plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
DELETE from plan_table where queryNo <> 21;
update plan_table           ---> richtige Keys setzen
     set queryno =  21
       , collid     = 'YY'
       , progname = 'YYWM05E'
       , version = 'WSIN000086'
       , optHint  = 'WK1'
;
update plan_table           ---> richtige access
    set accessName = 'IWM005A3'
;
delete   from cmnBatch.plan_table
    where opthint = 'WK1' and progName = 'YYWM05E'
        and version = 'WSIN000086'
;
insert into cmnBatch.plan_table
    select * from A540769.plan_table
;
select * from  cmnBatch.plan_view1
    where opthint = 'WK1' and progName = 'YYWM05E'
    order by applname, progname, queryNo, qblockno, planno
;
delete   from s100447.tOpthint
    where opthint = 'WK1' and progName = 'YYWM05E'
        and version = 'WSIN000086'
;
insert into s100447.tOpthint
    select * from A540769.plan_table;
commit  ;x;
rollback; x; --> commit falls es richtig kommt ein
;;
select *
    from cmnbatch.plan_view1
    where progName = 'YYWM51E' and version = 'WSIN000086'
          and queryNo = 21
    order by applname, progname, queryNo, qblockno, planno
;  x
set current sqlid = 'A540769';
set current path  = oa1p;
delete from plan_table;
explain plan set queryno = 21 for
select *
                    FROM oa1p.TWM005A1 WHERE D$GUEA <= ? AND
D$GUEB >= ?  AND CSTAT BETWEEN ?  AND ? AND CDEFAULT BETWEEN ? AND ?
AND CTYP = ? AND NCIF = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
explain plan set queryno = 821 for
select *
                    FROM oa1p.TWM005A1 WHERE

 CTYP = ? AND NCIF = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
explain plan set queryno = 921 for
select *
                    FROM oa1p.TWM005A1 WHERE

 NCIF = ? AND CTYP = ? AND NDEP = ? FOR FETCH ONLY QUERYNO 021
;
select * from plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
select SUBSTR(d.name, 1, 8), substr(c1.name, 1, 8),
        substr(c2.name, 1, 8), substr(c3.name, 1, 8),
        fosFmte7(cardf) "cardf",
        numColumns, length(colGroupColNo), hex(colGroupColNo), d.*
    from sysibm.syscoldist d
    left join sysibm.syscolumns c1
    on hex(substr(d.colGroupColNo, 1, 2))
        = hex(c1.colno)
        and c1.tbCreator = d.tbOwner
        and c1.tbName = d.tbName
    left join sysibm.syscolumns c2
    on hex(substr(d.colGroupColNo, 3, 2))
        = hex(c2.colno)
        and c2.tbCreator = d.tbOwner
        and c2.tbName = d.tbName
    left join sysibm.syscolumns c3
    on hex(substr(d.colGroupColNo, 5, 2))
        = hex(c3.colno)
        and c3.tbCreator = d.tbOwner
        and c3.tbName = d.tbName
    where tbOwner   = 'OA1P' and d.tbName = 'TWM005A1'
    order by statstime desc
;  x;
select numColumns, length(colGroupColNo), hex(colGroupColNo), d.*
    from sysibm.syscoldist d
    where tbOwner   = 'OA1P' and tbName = 'TWM005A1'
;  x;
rollback;
set current sqlid = 'A540769';
delete from plan_table;
   explain plan set queryno = 1 for
   SELECT *
     FROM OA1P.TWM005A1
    WHERE D$GUEA     <=    CURRENT TIMESTAMP
      AND D$GUEB     >=    CURRENT TIMESTAMP
      AND CSTAT    BETWEEN 'A' AND 'A'
      AND CDEFAULT BETWEEN 'C' AND 'C'
      AND CTYP        =    ? -- 'SPEX'
   explain plan set queryno = 1 for
   SELECT *
     FROM OA1P.TWM005A1
    WHERE
      AND CSTAT    BETWEEN 'A' AND 'A'
      AND CDEFAULT BETWEEN 'C' AND 'C'
      AND CTYP        =    ? -- 'SPEX'
;
select * from plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
select count(distinct CTYP || nCif || ndep ) "cTyp,nCif,nDep",
       count(distinct CTYP ||         ndep ) "cTyp,    ,nDep"
    from oa1p.twm005a1
 --   group by CTYP, nCif, ndep
 --   order by 1 desc
 --   fetch first 100 rows only
    with ur
;
x;
set current sqlid = 'S100447';
update sysibm.sysColumns set
       statstime = '0001-01-01-00.00.00.00000'
     , colCardf = -1
    where tbCreator = 'OA1P' and tbName like 'TWM005A1'
;
commit;
--delete
--    from sysibm.syscoldist
--    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
--;
select *
    from sysibm.syscolstats
    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
;
select *
    from sysibm.syscoldist
    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
;
select *
    from sysibm.syscoldiststats
    where tbOwner   like 'OA1P%' and tbName like 'TWM005%'
;
select *
    from cmnBatch.plan_view1
    where progName = 'YYWM51E' -- and version = 'WSIN000086'
    --    and queryNo = 70
    --    and optHint = 'WK1'
    --    and bind_time = '2010-12-16-14.36.37.738425'
          and (optHint <> '' or hint_Used <> '')
 -- order by index, mc_O
    order by applname, progname, queryNo, qblockno, planno
;x
with c as
(
  select count(*) c, ctyp, nbu
    from oa1t.twm005a1
    where nbu <> ''
    group by ctyp, nbu
)
select count(*) "ctypCnt", sum(c) tot, min(c) min, max(c) max,
         min(ctyp || '-' || nbu), max(ctyp || '-' || nbu)
    from c
    group by floor(log10(c)*3)
    order by 3 desc
    with ur
;;;;;;
with c as
(
  select count(*) c, ctyp
    from oa1t.twm005a1
    group by ctyp
)
select count(*) "ctypCnt", sum(c) tot, min(c) min, max(c) max,
         min(ctyp), max(ctyp)
    from c
    group by floor(log10(c)*3)
    order by 3 desc
    with ur
;;;;;;
}¢--- A540769.WK.SQL(EXPLAIWP) cre=2011-07-14 mod=2011-07-14-14.37.45 A540769 ---
-- versionen, Compiles und Binds pro Programm
select * from A540769.plan_view0
    where name like 'YWPR2PX'
    order by co, pg, pcTimestamp desc, bind_time desc
    with ur
;
select * from  cmnbatch.plan_table
    where progname = 'YWPR2PX'
        and bind_time='2011-05-12-12.20.06.467267'
    -- DBH0000211602508  2011-02-11-11.36.35.916411
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 3   for
select *             FROM oa1t.TWP011A101 WHERE WP011_DEPOT_NR = ?
AND WP011_VALOR_NR LIKE ? AND WP011_POS_FOLGE = 0 ORDER BY
WP011_VALOR_NR, WP011_POS_SEQUENZ WITH UR
;
select * from  plan_view1
    order by applname, progname, queryNo, qblockno, planno, mixOpSeq
;
rollback
;;;;;;;;
}¢--- A540769.WK.SQL(EXPLAIW5) cre=2008-07-03 mod=2008-07-14-11.53.03 F540769 ---
WITH V5A AS
(
SELECT
   SUBSTR(DIGITS(A.QUERYNO),5) AS STMT,
   QBLOCK_TYPE  AS TYPE,
   CASE
        WHEN METHOD = 3             THEN '      '
        ELSE                        CHAR(S.PROCSU)
     END  AS MSU,
   CASE
     WHEN PRIMARY_ACCESSTYPE = 'D'  THEN 'DIR.ROW'
     WHEN ACCESSTYPE = 'I '         THEN 'IX-SCAN'
     WHEN ACCESSTYPE = 'I1'         THEN 'IX-ONE '
     WHEN ACCESSTYPE = 'R '         THEN 'TS-SCAN'
     WHEN ACCESSTYPE = 'N '         THEN 'IX-ACC '
     WHEN ACCESSTYPE = 'M '         THEN 'IX-SC.M'
     WHEN ACCESSTYPE = 'MX'         THEN 'IX-SC.X'
     WHEN ACCESSTYPE = 'MI'         THEN 'IX-SC.I'
     WHEN ACCESSTYPE = 'MU'         THEN 'IX-SC.U'
     WHEN ACCESSTYPE = 'T'          THEN 'IX-SPRS'
     WHEN ACCESSTYPE = ' '          THEN '       '
     ELSE                                NULL
     END  AS ACCESS,
   CASE WHEN ACCESSTYPE = 'R  '     THEN '       '
        WHEN PRIMARY_ACCESSTYPE = 'D'
                                    THEN '       '
        ELSE                        SUBSTR(ACCESSNAME,1,12)
        END  AS INDEX,
   SUBSTR(TNAME,1,12) AS TABLE,
   CASE
        WHEN TABLE_TYPE IS NULL     THEN '      '
        ELSE                             TABLE_TYPE
        END
             AS TTYP,
   CASE
        WHEN METHOD = 3             THEN '      '
        WHEN ACCESSTYPE = 'R '      THEN '      '
        ELSE
   SUBSTR(DIGITS(MATCHCOLS),5,1) CONCAT '  ' CONCAT INDEXONLY
        END
             AS MC_O,
   CASE METHOD
        WHEN 0    THEN '      '
        WHEN 1    THEN 'NLJOIN'
        WHEN 2    THEN 'SMJOIN'
        WHEN 3    THEN 'SORT  '
        WHEN 4    THEN 'HYJOIN'
        ELSE NULL END
             AS METHOD,
   CASE JOIN_TYPE
        WHEN 'F'  THEN 'FULL '
        WHEN 'L'  THEN 'LEFT '
        WHEN 'S'  THEN 'STAR '
        ELSE ' '  END
             AS JOIN,
   SORTN_UNIQ    CONCAT SORTN_JOIN CONCAT
                        SORTN_ORDERBY CONCAT SORTN_GROUPBY
             AS UJOG,
   SORTC_UNIQ    CONCAT SORTC_JOIN CONCAT
                        SORTC_ORDERBY CONCAT SORTC_GROUPBY
             AS UJOC,
   TSLOCKMODE AS LCK,
   SUBSTR(CORRELATION_NAME,1,4)
             AS CORR,
   CASE PARALLELISM_MODE
        WHEN 'C'  THEN 'CPU'
        WHEN 'I'  THEN 'I-O'
        WHEN 'X'  THEN 'SYSPLEX'
        ELSE NULL END
             AS PARAL,
   STRIP(DIGITS(ACCESS_DEGREE),LEADING,'0')
     CONCAT ' ' CONCAT  STRIP(DIGITS(JOIN_DEGREE),LEADING,'0')
             AS AJ_DEG,
   STRIP(DIGITS(ACCESS_PGROUP_ID),LEADING,'0')
     CONCAT ' ' CONCAT
     STRIP(DIGITS(JOIN_PGROUP_ID),LEADING,'0')
             AS PG_DEG,
   STRIP(DIGITS(MERGE_JOIN_COLS),LEADING,'0')
             AS MC,
   PREFETCH  AS PRE,
   STRIP(DIGITS(A.QUERYNO),LEADING,'0')
             AS QNO,
   SUBSTR(DIGITS(QBLOCKNO),4,2)  CONCAT ' '
     CONCAT  SUBSTR(DIGITS(PLANNO),4,2)
             AS BL_PL,
   A.PARENT_QBLOCKNO,
   A.QBLOCKNO,
   A.PLANNO,
   A.TNAME,
   A.ACCESSNAME,
   A.OPTHINT,
   A.HINT_USED,
   A.APPLNAME,
   A.COLLID,
   A.PROGNAME,
   A.VERSION,
   A.TIMESTAMP,
   A.QUERYNO ,
   A.MIXOPSEQ,
   A.BIND_TIME,
   S.COST_CATEGORY,
   S.PROCMS,
   S.PROCSU,
   S.REASON
 FROM CMNBATCH.PLAN_TABLE A
   LEFT JOIN CMNBATCH.DSN_STATEMNT_TABLE S
     ON  --  S.COLLID = A.COLLID
             S.APPLNAME = A.APPLNAME
         AND S.PROGNAME = A.PROGNAME
         AND S.QUERYNO  = A.QUERYNO
         AND S.EXPLAIN_TIME = A.BIND_TIME
)      ----------------------------------------------
SELECT * FROM V5A
    where progName = 'YNZHIST'
     --   and stmt   = '000982'
         AND VERSION = 'ZVHI0000395ACB65FEMVS'
     --  AND VERSION = 'ZVHI0000395B3A344DMVS'
      -- and bind_time = '2008-05-19-08.34.31.808699'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
xelect PROCMS, PROCSU, float(procSu) / float(procMs) * 1000
    from cmnbatch.dsn_statemnt_table
--  where progname = 'MF7270' and queryNo = 149
    where group_member = 'DOF1' and procMS > 1000
    fetch first 100 rows only
;
x
delete   from A540769.plan_table
;
explain plan for -- set queryno = 149 for
SELECT count(*)
    FROM oa1p.TWM005A1
    WHERE D$GUEA <= ?  AND D$GUEB >= ?
        AND CSTAT BETWEEN ? AND ? AND CDEFAULT BETWEEN ? AND ?
       AND CKAT = ? AND NVALOR = ? QUERYNO 149
     for fetch only
    ;
select * from plan_view5
    where queryno in ( 149, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select * from cmnbatch.plan_view5
    where progName = 'YYWM51E'
          and stmt   = '000149'
      -- and version = 'WS8B000620'
      -- and bind_time = '2008-05-19-08.34.31.808699'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
------- dangelmeier
xelect * from cmnbatch.plan_view5a
    where progName = 'YDWGBG'--   and timestamp > '200802'
          and stmt   = '000754'
         and version = 'DEPO0000535AA7DD34MVS'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
xelect *
    from sysibm.syscoldist
    where tbname like 'TWU11%'
     --   and name = 'WU111003'
;
xelect a.* , b.*
    from
        (select case when 1=0 then 1 else null end k, 'a' t
             from sysibm.sysdummy1 ) a
      join
        (select case when 1=0 then 1 else null end k, 'b' t
             from sysibm.sysdummy1 ) b
      on  a.k = b.k --or (a.k is null and b.k is null)
;
x
select count(*), wu110021
    from oa1p.twu110a1
    group by wu110021
    order by 1 desc
    with ur
;
xelect count(*), wu111003
    from oa1p.twu111a1
    group by wu111003
    order by 1 desc
    with ur
;
x
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
     select T111.auftrnr,                    -- /* Alle Daten        */
            t111.rectyp,
            t111.ahnr,
            t111.shlnr,
            t111.shbu,
            t111.uuid,
            t111.bestauftr,
            t111.briefnr,
            t111.briefvar,
            t111.antnr,
            t111.antvar,
            t111.antterm,
            t111.sprache,
            t111.verarbstat,
            t111.ausgrund,
            t110.paketid

     from  oa1p.VWU110A1V T110,              --  /* Bestandestable    */
           oa1p.VWU111A1V T111               --  /* Auftragstable     */

     where t110.auftrnr    =  t111.auftrnr  --  /* Auftragsnummer    */
     and   t111.ahnr       = 'abcdefgh'    --  /* Aktionsheader     */
     and   t110.paketid    = 'abcedef'      --  Paket-Nummer      */
     and   t111.verarbstat = 123            --  /* Status            */

     group by  T111.auftrnr,               --      je Gruppe einmal
               t111.rectyp,
               t111.ahnr,
               t111.shlnr,
               t111.shbu,
               t111.uuid,
               t111.bestauftr,
               t111.briefnr,
               t111.briefvar,
               t111.antnr,
               t111.antvar,
               t111.antterm,
               t111.sprache,
               t111.verarbstat,
               t111.ausgrund,
               t110.paketid
     order by  t111.ahnr,                  --      Sortierreihenfolge
               t111.shlnr,
               t111.shbu,
               t111.auftrnr
     for fetch only
    ;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
xelect queryNo, qBlockno, planno, timestamp, bind_time, version
   from cmnbatch.plan_table
    where progName = 'YDWGBG'--   and timestamp > '200802'
      --  and stmt   = '000754'
    order by applname, progname, version , timestamp ,
        queryNo, qblockno, planno
;
select * from cmnbatch.plan_view5
    where progName = 'YDWGBG'--   and timestamp > '200802'
      --  and stmt   = '000754'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
x -- Härdi 16.5.08
select * from cmnbatch.plan_view5
    where progName = 'YYWM51E'--   and timestamp > '200802'
          and stmt   = '000153'
    order by applname, progname, timestamp ,
        queryNo, qblockno, planno
;
x
select ckat, count(*) from oa1p.tWM005A1
    group by ckat
    order by 2 desc
;
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
  select
      c.dbname, c.tsName, c.dsNum, s.pgSize,
      icType, copyPagesf, dsName, timestamp,
      case when timestamp > current timestamp - 24 hours   then 'h'
           else 'g' end gest
      from sysibm.syscopy c, sysibm.systablespace s
      where icType in ('F', 'I') and c.dbName like 'M%'
          and s.dbName = c.dbName and s.name = c.tsName
;
explain plan set queryno = 222 for
  select
      c.dbname, c.tsName, c.dsNum, s.pgSize,
      icType, copyPagesf, dsName, timestamp,
      case when timestamp > current timestamp - 24 hours   then 'h'
           else 'g' end gest
      from sysibm.syscopy c, sysibm.systablespace s
      where icType in ('F', 'I') and c.dbName like 'M%'
          and s.dbName = c.dbName and s.name = c.tsName
      order by 1, 2,3, timestamp desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
 x
      select count(*), jobname, max(partition), min(partition)
          from sysibm.syscopy c, sysibm.systablepart p
          where c.dbName = p.dbName and c.tsName = p.tsname
              and c.dsNum in (0, p.partition)
          group by jobName
          order by 1 desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
    from CMNBATCH.plan_view5
    where progName = 'DBWK3'
    order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
    from oa1t.vpw210a1V
    group by auftrags_nummer, pm_id
    order by 1 desc
;
--select count(*) from oa1t.TSN100A1
--    with ur
--    ;
select *
    from CMNBATCH.plan_view5
    where progName = 'YPW2KPI' and queryNo = 4235
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
 explain plan set queryno = 111 for
         SELECT T.* FROM oa1t.VNI600A101A C
               , oa1t.VNI203A101A T
           WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
           AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
    WITH NI600 (PERENDDT) AS
            (SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
               FROM oa1t.VNI600A101A C
               WHERE C.CTRLID = 'NI6220R'
             )
             SELECT T.* FROM NI600
                   ,oa1t.VNI203A101A T
               WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
    from cmnbatch.plan_view5
    where progName = 'YRPNIMP' and queryNo = 866
    order by applname, progname, queryNo, qblockno, planno
;
x
         d.bType, p.collid, p.Name, p.version,
 p.conToken, p.timeStamp, p.type,
 p.validate, p.isolation, p.valid, p.operative,
 p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
 on p.location = d.dLocation and p.collid = d.dCollid
     and p.name = d.dName and  p.conToken = d.dConToken     2.22.129867'
re
 (bQualifier, bName, bType) in
 (  select dbName, name, 'R'
         from sysIbm.sysTablespace
         where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
 )
     from gdb0283.vnz240a1v
    where    SearchValue01            = ?
          -- dec(SearchValue01,15,3)  = ?
      and CreateDateTime           < ?
      and dec(SearchValue02,15,3) >= ?
      and dec(SearchValue02,15,3) <= ?
      and Objtype                 ^= 'PORDSPLT'
    order by CreateDateTime
    fetch first 101 rows only
    optimize for 101 rows
    with ur
;
select * from plan_view5A
    where queryno = 999
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLAIXB) cre=2013-01-24 mod=2013-01-24-17.31.14 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
    SELECT DISTINCT  (substr(char(A.ET1SEOCC),1,4)), A.EN1ENTERTAG
    FROM A540769.tper19        A
    FOR FETCH ONLY
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIXX) cre=2010-12-13 mod=2015-02-11-17.02.26 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_query_table;
delete from A540769.dsn_queryInfo_table;
explain plan set queryno = 3   for
    select oa1p.fosFmtE7(cardF)
        from sysibm.sysTables
        where creator = 'SYSIBM' and name like 'SYSTAB%'
        order by cardf Desc
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
select * from  plan_table
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  dsn_function_table
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno
;
select * from  dsn_STAT_FEEDBACK
;
select * from A540769.dsn_query_table;
select * from A540769.dsn_queryInfo_table;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAIXY) cre=2015-12-09 mod=2015-12-09-09.21.18 A540769 ---
with s as
(
  select rz, dbSys, dbName, name, partition, instance
        , max(updatestatstime) updatestatstime
    from OA1P.TQZ006GBGRTSSTATS s0
    where rz = 'RZ2' and dbSys = 'DBOF' and state = 'a'
        and dbName in ('XC01A1P', 'XR01A1P')
        and (name like 'A2%' or name like 'A5%')
  group by rz, dbSys, dbName, name, partition, instance
)
, n as
(
  select nN.*
    , ( select max(nD.updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS nD
        where nS.rz = nD.rz and nS.dbSys = nD.dbSys
                and nS.dbName = nD.dbName and nS.name = nD.name
                and nS.partition = nD.partition
                and nS.instance = nD.instance and nD.state = 'a'
                and not
            (   nN.totalRows        = nD.totalRows
            and nN.nActive          = nD.nActive
            and nN.nPages           = nD.nPages
            and nN.reorgInserts     = nD.reorgInserts
            and nN.REORGDELETES     = nD.REORGDELETES
            and nN.REORGUPDATES     = nD.REORGUPDATES
            and nN.REORGMASSDELETE  = nD.REORGMASSDELETE
            and nN.dataSize         = nD.dataSize
    )       ) difNew
    from s nS
      join OA1P.TQZ006GBGRTSSTATS nN
        on nS.rz = nN.rz and nS.dbSys = nN.dbSys
          and nS.dbName = nN.dbName and nS.name = nN.name
          and nS.partition = nN.partition and nS.instance = nN.instance
          and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
  select
    ( select min(updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS a
        where a.rz = d.rz and a.dbSys = d.dbSys and a.state = 'a'
                and a.dbName = d.dbName and a.name = d.name
                and a.partition = d.partition
                and a.instance  = d.instance
                and a.updateStatsTime
                   > value(d.difNew, d.updateStatsTime - 1e-6 seconds)
    ) eqOld
    , d.*
    from n d
)
select *
    from n
    where name = 'A517A'
    order by 1 desc ,   dbName, name, partition
;x;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with s as
(
  select rz, dbSys, dbName, name, partition, instance
        , max(updatestatstime) updatestatstime
    from OA1P.TQZ006GBGRTSSTATS s1
    where rz = 'RZ2' and dbSys = 'DBOF' and state = 'a'
        and dbName in ('XC01A1P', 'XR01A1P')
        and (name like 'A2%' or name like 'A5%')
    group by rz, dbSys, dbName, name, partition, instance
)
, n as
(
  select nN.*
    , ( select max(nD.updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS nD
        where nS.rz = nD.rz and nS.dbSys = nD.dbSys
                and nS.dbName = nD.dbName and nS.name = nD.name
                and nS.partition = nD.partition
                and nS.instance = nD.instance and nD.state = 'a'
                and not
            (   nN.totalRows        = nD.totalRows
            and nN.nActive          = nD.nActive
            and nN.nPages           = nD.nPages
            and nN.reorgInserts     = nD.reorgInserts
            and nN.REORGDELETES     = nD.REORGDELETES
            and nN.REORGUPDATES     = nD.REORGUPDATES
            and nN.REORGMASSDELETE  = nD.REORGMASSDELETE
            and nN.dataSize         = nD.dataSize
    )       ) difNew
    from s nS
      join OA1P.TQZ006GBGRTSSTATS nN
        on nS.rz = nN.rz and nS.dbSys = nN.dbSys
          and nS.dbName = nN.dbName and nS.name = nN.name
          and nS.partition = nN.partition and nS.instance = nN.instance
          and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
  select
    ( select min(updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS a
        where a.rz = d.rz and a.dbSys = d.dbSys
                and a.dbName = d.dbName and a.name = d.name
                and a.partition = d.partition
                and a.instance  = d.instance and a.state = 'a'
                and a.updateStatsTime
                   > value(d.difNew, d.updateStatsTime - 1e-6 seconds)
    ) eqOld
    , d.*
    from n d
)
select char(value(strip(dbName) || ',' || strip(name)
           || ',' || partition
           || ',' || char(eqOld)
           || ',' || char(updateStatsTime), ''), 80) txt
    from e
    order by dbName, name, partition
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXPLAKAU) cre=2008-12-01 mod=2008-12-01-09.09.42 F540769 ---
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 111 for
SELECT FI10.TKKEY                   AS TKKEY
      ,KK2.VR4204S                  AS UNDERLAYER
      ,KK2.VR4204L                  AS LAUFNR
      ,KK2.VR4204G                  AS GENERATION
      ,KK2.KA4204T                  AS VERFALLP42
      ,KK1.KA4205                   AS VERFALLP42DD
      ,FI10.VERFALL                 AS VERFALLFI04
      ,KK2.KA4204W                  AS BASISPREIS
      ,KK2.KA4204A                  AS KONTRAKT
      ,KK2.KK4222P                  AS BOERSE
      ,KK2.KK4222W                  AS WHRG
      ,FI21.KURSDATUM               AS KURSDATUM
      ,FI21.KURS_LIEFERUNG          AS PRICEFI04
   FROM GDB0503.KK2   KK2
       ,GDB0503.KK1   KK1
       ,GDB0503.KB    KB
       ,GDB0503.FI10  FI10
       ,GDB0503.FI21  FI21
  WHERE KB.VR4204S       = KK2.VR4204S
    AND KB.VR4204L       = KK2.VR4204L
    AND KB.VR4204G       = KK2.VR4204G
    AND KB.KB4212P       = KK2.KK4222P
    AND KB.KB4212W       = KK2.KK4222W
    AND KK1.VR4204S      = KK2.VR4204S
    AND KK1.VR4204L      = KK2.VR4204L
    AND KK1.VR4204G      = KK2.VR4204G
    AND KK1.KA4204T      = KK2.KA4204T
    AND KK1.KA4204W      = KK2.KA4204W
    AND KK1.KA4204A      = KK2.KA4204A
    AND FI10.UNDERLAYER  = KK2.VR4204S
    AND FI10.LAUFNR      = KK2.VR4204L
    AND FI10.GENERATION  = KK2.VR4204G
    AND (
         ( FI10.VERFALL  = '99991231'   )
       OR
         ( FI10.VERFALL  = KK2.KA4204T  )
        )
    AND FI10.BASISPREIS  = KK2.KA4204W
    AND FI10.KONTRAKT    = KK2.KA4204A
    AND FI10.BOERSE      = KK2.KK4222P
    AND FI10.WHRG        = KK2.KK4222W
    AND FI21.TKKEY       = FI10.TKKEY
    AND FI21.BOERSE      = FI10.BOERSE
    AND FI21.WHRG        = FI10.WHRG
    AND ( FI21.KURSDATUM = KK2.KK4224D_01
       OR FI21.KURSDATUM = KK2.KK4224D_02
       OR FI21.KURSDATUM = KK2.KK4224D_03
       OR FI21.KURSDATUM = KK2.KK4224D_04
       OR FI21.KURSDATUM = KK2.KK4224D_05
        )
       with ur
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(EXPLA5CM) cre=2010-07-28 mod=2010-07-28-14.56.27 A540769 ---
set current sqlId = 'A540769';
delete from  plan_table where queryno in (3, 4) ;
explain plan set queryno = 3 for
select * from SSXX28Q0.VIEW_EVENTS     ;
explain plan set queryno = 7 for
select * from SSXX28Q0.VIEW_EVENTS  WHERE DATA_SMNM = 'WI0100' ;
select p.* from   plan_view2 p
   -- where queryno in (3, 4)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select current timestamp from sysibm.sysdummy1;
select * from SSXX28Q0.VIEW_EVENTS  WHERE DATA_SMNM = 'WI0100' ;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(EXPLA5FI) cre=2010-08-03 mod=2010-08-03-15.37.04 A540769 ---
-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'A540769';
delete from  plan_table;
explain plan set queryno = 1 for
select count(*), min(verfall), max(verfall)
    from  GDB0351.vFI027A1 where tkKey = 5003240
;
explain plan set queryno = 11 for
select count(*), min(verfall), max(verfall)
    from  GDB0351.vFI027A1 where tkKey = ?
;
select * from plan_view2
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLHIST) cre=2011-01-25 mod=2011-01-25-14.14.36 A540769 ---
with e as
(
select count(*) c, progName pg, version vr, collid co, bind_time bt
    from cmnBatch.plan_table
    group by progName, version, collid, bind_time
)
select substr(e.pg, 1, 8) pg, p.pcTimeStamp, e.bt, c, vr,

        e.*, p.*
    from e
    full outer join sysibm.sysPackage p
    on e.co = p.collid and e.pg = p.name and e.vr = p.version
    where e.pg = 'YYWM51E'
    order by e.pg, p.pcTimeStamp desc, e.bt desc
    with ur
}¢--- A540769.WK.SQL(EXPLMAT) cre=2007-05-14 mod=2007-05-14-12.14.41 F540769 ---
delete from plan_table where queryno = 999
;
   set current refresh age = any;
   select current refresh age from sysibm.sysdummy1;
explain plan set queryno = 999 for
    SELECT NI920001
       , NI920002
       , NI920003
       , COUNT(*) COUNT
       , SUM(CASE WHEN NI920005 ='U' THEN 1 ELSE 0 END) URVRS
       , SUM(CASE WHEN NI920005 ='S' THEN 1 ELSE 0 END) SRVS
       , SUM(CASE WHEN NI920005 ='E' THEN 1 ELSE 0 END) ERRS
       , SUM(CASE WHEN NI920005 ='W' THEN 1 ELSE 0 END) WARNS
       , SUM(CASE WHEN NI920005 ='I' THEN 1 ELSE 0 END) INFOS
       FROM gdb0237.TNI920A101A
         WHERE NI920001='20070511'
       GROUP BY NI920001
       , NI920002
       , NI920003
;
select * from plan_view5
    where queryno = 999
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
}¢--- A540769.WK.SQL(EXPLMODE) cre=2014-02-05 mod=2014-02-05-13.00.14 A540769 ---
           -- explain mode yes: explain wie üblich
           --                   statements in dsn_statement_cache_table
delete from A540769.plan_table;
delete from A540769.dsn_statement_cache_table;
commit;
set current explain mode explain
;
set current explain mode yes
;
select strip(tbcreator) || '.' || strip(tbName), c.*
    from sysibm.sysColumns c
    where name like '%CLUST%' and tbCreator = 'SYSIBM'
    order by 1
;
set current explain mode no
;
select * from A540769.plan_view1
;
select * from A540769.dsn_statement_cache_table
;
rollback
}¢--- A540769.WK.SQL(EXPLVERS) cre=2008-09-18 mod=2008-09-18-12.27.25 F540769 ---
select char(collid, 8) coll, char(progName, 8) pgm,
                 char(version, 12) vers,
       bind_time,
       count(*) cnt, min(timestamp) tst_min, max(timestamp) tst_max,
                 count(distinct timestamp) tsts,
                 count(distinct queryNo)   ques,
             COLLID, APPLNAME, PROGNAME, version
    from cmnbatch.plan_table
    where progName like 'YYWM0%'
    group by COLLID, APPLNAME, PROGNAME, version, bind_time
    order by progName, version, collid, bind_time
    with ur
}¢--- A540769.WK.SQL(EXPOS) cre=2013-05-23 mod=2013-05-23-13.41.13 A540769 -----
with s (h, n) as
(
  select           'abcdAbcdAb', 'a' from sysibm.sysDummy1
  union all select 'abcdAbcdAb', 'c' from sysibm.sysDummy1
  union all select 'abcdAbcdAb', 'd' from sysibm.sysDummy1
  union all select 'abcdAbcdAb', 'q' from sysibm.sysDummy1
)
select locate(n, h) "locate(n, h)"
, locate_in_string(h, n) "locate_in_string(h, n)"
, locate_in_string(h, n, 5) "l_i(h, n, 5)"
, locate_in_string(h, n, 1, 2) "l_i(h, n, 1, 2)"
, substr(h, locate(n,h)+1, 10) || '|'
-- , posstr(h, n)       -- needle muss konstante sein|
, n, h
    from s
}¢--- A540769.WK.SQL(EXPSTAVV) cre=2011-02-11 mod=2011-02-11-16.26.27 A540769 ---
$#@
$>.fEdit('~wk.texv(tt)')
$<|¢
tb
VTINSTRFLATSYMBOLS
VTCASHFLOW
VTINSTRUMENTEVENT
$!
wh = ''
$@forWith r $@¢
    if $tb \== '' then
        wh = wh", '"$tb"'"
    $** $$ tbl $TABLE
    $!
$@=¢
select *
    from sysibm.sysTables
    where creator = 'VDPS2' and name in ($-{substr(wh, 3)})
$!
$|
call sqlConnect dbtf
call sqlSel
$| call fmtFTab
$#end
$|
$@forWith r $@¢
    if $STATSTIME < '2011-01' then
       $$ $'  INCLUDE TABLESPACE' $*+
$-{strip($DBNAME)}.$-{strip($TSNAME)} -- $STATSTIME  $SPACEF
    else
       $$ $'--' ${DBNAME}.$TSNAME -- $STATSTIME
    $!
call sqlDisconnect
$| $@=¢
//A540769S JOB (CP00,KE50),
//       'CATALOG',MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
//   PARM=(DBAF,'A540769S.RUNSTA'),
//   REGION=0M
//*DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//RNPRIN01 DD SYSOUT=*
//SYSIN DD *
     LISTDEF LST#STA
     $@for i $$ $i
     OPTIONS EVENT (ITEMERROR, SKIP)

   RUNSTATS TABLESPACE LIST LST#STA
         SHRLEVEL CHANGE
           TABLE(ALL)
           INDEX (ALL  KEYCARD -- FREQVAL NUMCOLS 1  COUNT 10 BOTH
                               -- FREQVAL NUMCOLS 2  COUNT 10 BOTH
                 )
           UPDATE ALL REPORT NO
$!
$#out                                              20110211 14:36:09
$#out                                              20110211 14:08:17
$#out                                              20110211 14:08:03
*** run error tsoAlloc rc 12 for alloc dd(CAT1) SHR DSN('A540769.WK.TEXV(TT)')
$#out                                              20110211 14:07:34
*** run error adrTso rc 1 for execio 4 diskw CAT1 (stem M.FILETSO.BUF1.)
$#out                                              20110211 14:07:18
*** run error tsoAlloc rc 12 for alloc dd(CAT1) NEW  recfm(f b) lrecl(80) block(
$#out                                              20110211 14:06:50
@O.133.1 class=SQL133, NAME=VTCASHFLOW, CREATOR=VDPS2, TYPE=T, DBNAME=VV27A1T...
@O.133.2 class=SQL133, NAME=VTINSTRFLATSYMBOLS, CREATOR=VDPS2, TYPE=T, DBNAME...
@O.133.3 class=SQL133, NAME=VTINSTRUMENTEVENT, CREATOR=VDPS2, TYPE=T, DBNAME=...
$#out                                              20110211 14:06:04
*** run error no method o2String in class SQL133 of object O.133.1
$#out                                              20110211 14:05:24
}¢--- A540769.WK.SQL(EXPVIIA) cre=2008-08-22 mod=2008-09-01-15.03.54 F540769 ---
DECLARE GLOBAL TEMPORARY TABLE
    IDS (GM CHAR(16) ,ZV CHAR(16))
;
  CREATE UNIQUE INDEX SESSION.XIDS
      ON SESSION.IDS (GM ASC, zv asc);
--EXPLAIN PLAN SET QUERYNO = 9901 FOR
INSERT INTO SESSION.IDS
WITH J AS
  ( SELECT T.*
        FROM OA1A.TMF150A1 T, OA1A.VMF202A1
        WHERE MF150085 IN(0,10)
          AND MF150084 IN(0,2)
          AND MF150060 BETWEEN TEV_TIMESTAMP AND
  TRANSLATE('7890-45-12',TEV_DAT_NEXT,'1234567890')¨¨'-23.00.00.000000'
          AND MF150003 IN('CNGM1','CNZV1')
          AND MF150009 = '00805'
  )
SELECT GM.MF150001   , MIN(ZV.MF150001) END
    FROM J GM, J ZV
          WHERE   GM.MF150003 = 'CNGM1'
            AND   ZV.MF150003 = 'CNZV1'
            AND   GM.MF150009 = '00805'
            AND   ZV.MF150009 = '00805'
            AND   ABS(ZV.MF150018) BETWEEN ABS(GM.MF150018)
                                   AND     ABS(GM.MF150018) * 1.06
    group by GM.MF150001
;
select * from session.ids;
SELECT * FROM OA1A.VMF150A1V
    WHERE ID_MITTELFLUSS IN (SELECT Distinct gm FROM SESSION.IDS)
union SELECT * FROM OA1A.VMF150A1V
    WHERE ID_MITTELFLUSS IN (SELECT Distinct zv FROM SESSION.IDS)
    WITH UR
;
rollback
;
xelete   FROM OA1P.VMF150A1V
    WHERE ID_MITTELFLUSS IN (SELECT gm FROM SESSION.IDS )
;
delete   FROM OA1P.VMF150A1V
     where ID_MITTELFLUSS IN (SELECT zv FROM SESSION.IDS )
;
rollback
;
}¢--- A540769.WK.SQL(EXPVIIAA) cre=2008-09-01 mod=2008-09-01-14.56.50 F540769 ---
DECLARE GLOBAL TEMPORARY TABLE
    IDS (GM CHAR(16) ,ZV CHAR(16), pp char(4))
;
  CREATE UNIQUE INDEX SESSION.XIDS
      ON SESSION.IDS (GM ASC, zv asc)
;
INSERT INTO SESSION.IDS
WITH J AS
  ( SELECT T.*
        FROM oa1a.TMF150A1 T, oa1a.VMF202A1
        WHERE MF150085 IN(0,10)
          AND MF150084 IN(0,2)
          AND MF150060 BETWEEN TEV_TIMESTAMP AND
  TRANSLATE('7890-45-12',TEV_DAT_NEXT,'1234567890')¨¨'-23.00.00.000000'
          AND MF150003 IN('CNGM1','CNZV1')
          AND MF150009 = '00805'
  )
SELECT GM.MF150001   , ZV.MF150001,
        left(GM.MF150001, 1) || substr(GM.MF150001, 10, 1)
     || left(ZV.MF150001, 1) || substr(ZV.MF150001, 10, 1)
    FROM J GM, J ZV
          WHERE   GM.MF150003 = 'CNGM1'
            AND   ZV.MF150003 = 'CNZV1'
            AND   GM.MF150009 = '00805'
            AND   ZV.MF150009 = '00805'
            AND   ABS(ZV.MF150018) BETWEEN ABS(GM.MF150018)
                                   AND     ABS(GM.MF150018) * 1.06
  -- group by GM.MF150001
;
select gm, min(zv) from session.ids group by gm;
select * from session.ids;
SELECT i.pp, m.* FROM session.ids i, oa1a.VMF150A1V m
    WHERE m.ID_MITTELFLUSS = i.gm
union SELECT i.pp, m.* FROM session.ids i, oa1a.VMF150A1V m
    WHERE m.ID_MITTELFLUSS = i.zv
;
rollback
;
xelete   FROM OA1P.VMF150A1V
    WHERE ID_MITTELFLUSS IN (SELECT gm FROM SESSION.IDS )
;
xelete   FROM OA1P.VMF150A1V
     where ID_MITTELFLUSS IN (SELECT zv FROM SESSION.IDS )
;
rollback
;
}¢--- A540769.WK.SQL(EXPVIIB) cre=2008-09-04 mod=2008-09-04-09.21.17 F540769 ---
DECLARE GLOBAL TEMPORARY TABLE
    IDS (GM CHAR(16) ,ZV CHAR(16))
;
  CREATE UNIQUE INDEX SESSION.XIDS
      ON SESSION.IDS (GM ASC, zv asc);
EXPLAIN PLAN SET QUERYNO = 9901 FOR
INSERT INTO SESSION.IDS
WITH J AS
  ( SELECT T.*
        FROM OA1A.TMF150A1 T, OA1A.VMF202A1
        WHERE MF150085 IN(0,10)
          AND MF150084 IN(0,2)
          AND MF150060 BETWEEN TEV_TIMESTAMP AND
  TRANSLATE('7890-45-12',TEV_DAT_NEXT,'1234567890')¨¨'-23.00.00.000000'
          AND MF150003 IN('CNGM1','CNZV1')
          AND MF150009 = '00805'
  )
SELECT MIN(gm), zv
FROM (
SELECT GM.MF150001 gm  , MIN(ZV.MF150001) zv
    FROM J GM, J ZV
          WHERE   GM.MF150003 = 'CNGM1'
            AND   ZV.MF150003 = 'CNZV1'
            AND   GM.MF150009 = '00805'
            AND   ZV.MF150009 = '00805'
            AND   ABS(ZV.MF150018) BETWEEN ABS(GM.MF150018)
                                   AND     ABS(GM.MF150018) * 1.06
    GROUP BY GM.MF150001
     ) g1
GROUP BY ZV
;
select * from plan_view5a
    where queryno in ( 9901    )
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select * from session.ids;
SELECT * FROM OA1A.VMF150A1V
    WHERE ID_MITTELFLUSS IN (SELECT Distinct gm FROM SESSION.IDS)
union SELECT * FROM OA1A.VMF150A1V
    WHERE ID_MITTELFLUSS IN (SELECT Distinct zv FROM SESSION.IDS)
    WITH UR
;
rollback
;
xelete   FROM OA1P.VMF150A1V
    WHERE ID_MITTELFLUSS IN (SELECT gm FROM SESSION.IDS )
;
delete   FROM OA1P.VMF150A1V
     where ID_MITTELFLUSS IN (SELECT zv FROM SESSION.IDS )
;
rollback
;
}¢--- A540769.WK.SQL(EXPVIV) cre=2008-08-06 mod=2008-08-06-13.54.37 F540769 ----
SET CURRENT SQLID = 'A540769';
delete   from A540769.plan_table where queryno = 81
;
EXPLAIN PLAN SET QUERYNO = 81 FOR
  SELECT *
  FROM oa1t.VMF150A1V
  WHERE ID_MITTELFLUSS IN(
           SELECT AB.ID_MITTELFLUSS
           FROM TABLE
                 (SELECT ID_MITTELFLUSS,CIFNUMMER_KUNDE,BUCHUNGSDATUM,
                         ZU_ABFLUSS,POLICEN_NR,KURSDATUM,KURSWHGR,
                         NOMINAL_STUECK
                  FROM oa1t.VMF150A1V JOIN oa1t.TMF401A1
                    ON ID_MITTELFLUSS  = UUID
                  WHERE LIFE_CYCLE_STATUS  = 10
                    AND TRANSACTION_TYP    = 20
                    AND ERSTELLUNGSTIMSTMP BETWEEN
                                               CURRENT TIMESTAMP - 1 DAY
                                           AND CURRENT TIMESTAMP
                    AND BETRAG_FWHRG       < 0
                    AND VALOR_SEQUENZ      = 'NDF'
                   ) AS AB
               ,TABLE
                 (SELECT ID_MITTELFLUSS,CIFNUMMER_KUNDE,BUCHUNGSDATUM,
                         ZU_ABFLUSS,POLICEN_NR,KURSDATUM,KURSWHGR,
                         NOMINAL_STUECK
                  FROM oa1t.VMF150A1V JOIN oa1t.TMF401A1
                    ON ID_MITTELFLUSS  = UUID
                  WHERE LIFE_CYCLE_STATUS  = 10
                    AND TRANSACTION_TYP    = 20
                    AND ERSTELLUNGSTIMSTMP BETWEEN
                                               CURRENT TIMESTAMP - 1 DAY
                                           AND CURRENT TIMESTAMP
                    AND BETRAG_FWHRG       > 0
                    AND VALOR_SEQUENZ      = 'NDF'
                   ) AS ZU
           WHERE AB.CIFNUMMER_KUNDE = ZU.CIFNUMMER_KUNDE
           AND   AB.BUCHUNGSDATUM   = ZU.BUCHUNGSDATUM
           AND   AB.POLICEN_NR      = ZU.POLICEN_NR
           AND   AB.KURSDATUM       = ZU.KURSDATUM
           AND   AB.KURSWHGR        = ZU.KURSWHGR
           AND   AB.NOMINAL_STUECK  = ZU.NOMINAL_STUECK
           UNION ALL
           SELECT ZU.ID_MITTELFLUSS
           FROM TABLE
                 (SELECT ID_MITTELFLUSS,CIFNUMMER_KUNDE,BUCHUNGSDATUM,
                         ZU_ABFLUSS,POLICEN_NR,KURSDATUM,KURSWHGR,
                         NOMINAL_STUECK
                  FROM oa1t.VMF150A1V JOIN oa1t.TMF401A1
                    ON ID_MITTELFLUSS  = UUID
                  WHERE LIFE_CYCLE_STATUS  = 10
                    AND TRANSACTION_TYP    = 20
                    AND ERSTELLUNGSTIMSTMP BETWEEN
                                               CURRENT TIMESTAMP - 1 DAY
                                           AND CURRENT TIMESTAMP
                    AND BETRAG_FWHRG       < 0
                    AND VALOR_SEQUENZ      = 'NDF'
                   ) AS AB
               ,TABLE
                 (SELECT ID_MITTELFLUSS,CIFNUMMER_KUNDE,BUCHUNGSDATUM,
                         ZU_ABFLUSS,POLICEN_NR,KURSDATUM,KURSWHGR,
                         NOMINAL_STUECK
                  FROM oa1t.VMF150A1V JOIN oa1t.TMF401A1
                    ON ID_MITTELFLUSS  = UUID
                  WHERE LIFE_CYCLE_STATUS  = 10
                    AND TRANSACTION_TYP    = 20
                    AND ERSTELLUNGSTIMSTMP BETWEEN
                                               CURRENT TIMESTAMP - 1 DAY
                                           AND CURRENT TIMESTAMP
                    AND BETRAG_FWHRG       > 0
                    AND VALOR_SEQUENZ      = 'NDF'
                   ) AS ZU
           WHERE AB.CIFNUMMER_KUNDE = ZU.CIFNUMMER_KUNDE
           AND   AB.BUCHUNGSDATUM   = ZU.BUCHUNGSDATUM
           AND   AB.POLICEN_NR      = ZU.POLICEN_NR
           AND   AB.KURSDATUM       = ZU.KURSDATUM
           AND   AB.KURSWHGR        = ZU.KURSWHGR
           AND   AB.NOMINAL_STUECK  = ZU.NOMINAL_STUECK
          )
  WITH UR;
select * from plan_view5
    where queryno in (  81,  91)
    order by applname, progname, queryNo, qblockno, planno
;
commit
;
}¢--- A540769.WK.SQL(EXRAISE) cre=2013-08-05 mod=2013-08-05-13.43.30 A540769 ---
select case when 1=0 then 'c1'
            when 1=0 then raise_error('80000', 'dieser error....')
            when 1=1 then raise_error(
                70000 + hour(  current timestamp)*100
                      + minute(current timestamp)
                     , 'ein Fehler um ' || char(current timestamp)) end
    from sysibm.sysDummy1
}¢--- A540769.WK.SQL(EXRECURS) cre=2013-09-04 mod=2013-09-04-16.55.09 A540769 ---
with a (id, nm) as
( select           1, 'apple'      from sysibm.sysDummy1
  union all select 1, 'tomato'      from sysibm.sysDummy1
  union all select 1, 'potato'      from sysibm.sysDummy1
  union all select 2, 'banana'      from sysibm.sysDummy1
  union all select 2, 'peach'       from sysibm.sysDummy1
)
, n as
(
  select a.*
       , row_number() over (partition by id order by nm) n
    from a
)
, j (m, id, nms) as
(
  select 'j', n1.id, n1.nm || value(', ' || n2.nm, '')
                           || value(', ' || n3.nm, '')
    from n n1
      left join n n2 on n1.id = n2.id and n2.n = 2
      left join n n3 on n1.id = n3.id and n3.n = 3
    where n1.n = 1
)
, r (id, nms, lv) as
(
  select id, cast(nm as varchar(50)), 1 from n where n=1
  union all select r.id, r.nms || ', ' || n.nm, lv+1
      from r join n on r.id = n.id and n.n = r.lv+1
      where lv < 999999
)
select * from j
union all select 'r', id, nms from r s
    where not exists ( select 1 from r g
                           where s.id = g.id and g.lv > s.lv)
}¢--- A540769.WK.SQL(EXREPL) cre=2012-06-07 mod=2012-06-07-13.21.42 A540769 ----
select replace('abc?1efg?2hij?1klm'
    , substr( char(current date) ||  '?' || '5', 11)
    , char(current date))
    from sysibm.sysDummy1
}¢--- A540769.WK.SQL(EXREPLAC) cre=2013-05-26 mod=2013-05-26-12.10.14 A540769 ---
with s (s) as
(
  select 'a b cde f g  ' from sysibm.sysDummy1
)
select s, replace(s, ' '), replace (s, ' ', '?'), replace(s, ' ', '???')
     from s
}¢--- A540769.WK.SQL(EXRID) cre=2013-06-07 mod=2015-04-09-17.07.49 A540769 -----
set current sqlid = 'S100447';
select rid(c), strip(tbCreator) || '.' || strip(tbName)
               || '.' ||strip(name)
    from sysibm.sysColumns c
    where tbCreator = 'SYSIBM'
    order by name
    fetch first 10 rows only
;
create global temporary table session.r (r bigInt, nm char(100))
 --    with no data on commit preserve rows
;
insert into session.r
select rid(c)
    , strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
    from sysibm.sysColumns c
    where tbCreator = 'SYSIBM'
    order by name
    fetch first 10 rows only
;
select rid(c)
    , strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
    from sysibm.sysColumns c
    where rid(c) in (select r from session.r)
;
select rid(c)
    , strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
    , r.*
    from sysibm.sysColumns c join session.r r
        on rid(c) = r.r
;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 1   for
select rid(c)
    , strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
    from sysibm.sysColumns c
    where rid(c) =   234
;
explain plan set queryno = 2   for
select rid(c)
    , strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
    from sysibm.sysColumns c
    where rid(c) = 234 or rid(c) = 6789234
;
explain plan set queryno = 3   for
select rid(c)
    , strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
    from sysibm.sysColumns c
    where rid(c) in (select r from session.r)
;
explain plan set queryno = 7   for
select rid(c)
    , strip(tbCreator) || '.' || strip(tbName) || '.' ||strip(name)
    , r.*
    from sysibm.sysColumns c join session.r r
        on rid(c) = r.r
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
select rid(t), hex(rid(t)), t.*
    from BUA.TXBC041 t
    where rid(t) = 4075884
    ;  x;
select rid(t), hex(rid(t)), name
    from sysibm.sysTables t
--  where name like 'TMF150%'
    where rid(t) = 421384
    ;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
select rid(t), hex(rid(t)), name
    from sysibm.sysTables t
--  where name like 'TMF150%'
    where rid(t) = 421384
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(EXROWCHA) cre=2011-11-14 mod=2011-11-14-11.39.28 A540769 ---
select row change timestamp for p,
       hex(row change token     for p), p.*
    from cmnbatch.plan_view1 p
    where progName = 'MF7300'
    order by 1
}¢--- A540769.WK.SQL(EXROWCH2) cre=2012-07-19 mod=2012-07-20-10.01.10 A540769 ---
set current sqlid = 'S100447';
drop    table A540769.r2 ;
create  table A540769.r2 (
-- , r2 timestamp not null generated always
--        for each row on update as row change timestamp
     ROWCHg               TIMESTAMP NOT NULL GENERATED ALWAYS
       FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP
   , tx varchar(500) not null
) in dA540769.Aper15
;
TERMINATOR ? ;
create trigger A540769.r2AftUpd
    no cascade before update on A540769.r2
    referencing New as n old as o
    for each row mode db2sql begin atomic
         set tx = left('old=' || char(o.rowChg)
               || ', new=' || char(n.rowChg) || ', before ' || o.tx
                            , 500)
         ;
    end
?
TERMINATOR ; ?
insert into A540769.r2 (tx) values('1');
insert into A540769.r2 (tx) values('2');
select * from A540769.r2 ;
update A540769.r2 set tx = 'u';
select * from A540769.r2 ;
}¢--- A540769.WK.SQL(EXROWNUM) cre=2016-09-15 mod=2016-09-15-15.18.44 A540769 ---
with r as
(
select row_number() over (partition by left(dbName, 1)
                          order by creator, name desc) rn
       , strip(creator) || '.' || name crNm
       , t.*
    from sysibm.systables t
)
select *
    from r
    where 1 = rn
}¢--- A540769.WK.SQL(EXSCROLL) cre=2014-03-13 mod=2014-03-13-17.53.34 A540769 ---
$#@
call errReset 'h', "say 'err ox='ox':' arg(1)"
call sqlConnect dp4g
src = "select name, row_number() over() rn" ,
     "from sysibm.sysTables" ,
     "where creator = 'SYSIBM'  and name like 'DSN%'"
cx = 7
attr = 'with hold'
attr = 'insensitive scroll with hold'
cCom = 1e9
res = sqlExec('prepare s'cx 'attributes :attr from :src')
if 1 then do /* open close cursor, do we get sqlCode -497 ?
                      with scroll at 11768
                      without scroll not
                      hold is irrelevant */
    do ox=1
       if ox // 1000 = 1 then
           say ox time('e')
        res = sqlExec('declare c'cx 'cursor for s'cx)
        res = sqlExec('open  c'cx)
        res = sqlExec('close  c'cx)
        if ox // cCom = 0 then
            say ox 'commit' sqlCOmmit()
        end
    end
else if 1 then do   /* scroll forward/backward thru cursor */
    res = sqlExec('prepare s'cx 'attributes :attr from :src')
    res = sqlExec('declare c'cx 'cursor for s'cx)
    res = sqlExec('open  c'cx)
    do ox=1 until res <> 0
        if ox // 4 = 0 then
            ori = 'prior'
        else
            ori = ''
        res = sqlExec('fetch' ori 'c'cx 'into :nm, :rn')
        say right(ox, 3) left(ori, 10) res':' rn nm
        if ox // cCom = 0 then
            say ox 'commit' sqlCOmmit()
        end
    res = sqlExec('close  c'cx)
    end
$#out                                              20140313 17:15:53
}¢--- A540769.WK.SQL(EXSERVER) cre=2013-07-19 mod=2013-07-19-07.19.20 A540769 ---
with nmC1 as
(
select right(strip(current server), 4) dbSys
    from sysibm.sysDummy1
)
, nmC2 as
( select case when posStr(dbSys, 'V') > 0 then 'V'
              when dbSys = 'DBAF'         then 'A'
              when dbSys = 'DBTF'         then 'T'
                                          else 'P'
         end nmCn, dbSys
    from nmC1
)
, nmCn as
( select case when nmCn = 'V' then 'BUA' else 'OA1' || nmCn end cr
       , case when nmCn = 'V' then ''    else '99'          end cr99
       , nmCn, dbSys
    from nmC2
)
select * from nmCn
}¢--- A540769.WK.SQL(EXSORT) cre=2011-11-17 mod=2011-11-17-13.45.54 A540769 ----
select *
    from sysibm.systables
    order by lower(name)
}¢--- A540769.WK.SQL(EXSTRLEN) cre=2015-12-14 mod=2015-12-14-17.29.08 A540769 ---
$#@
call sqlConnect
if 1 then $@¢
s = 'abcd' || x'ff' || 'fghij'
do forever
   say 'rexx' length(s)
   say 'sql ' sql2one("select 'len=' ||length('"s"') || ' unicodeLen='",
            "|| length(cast('"s"' as varchar(32000) ccsid unicode))",
                 "from sysibm.sysDummy1")
   s = copies(s, 10)
   end
$! else $@¢
   eMsg = left("so'/=.''''oder'so", 3000, 'a')
   if length(eMsg) > 2000 then
       eMsg = left(eMsg, 1997)'...'
   say 'len' length(eMsg) length(quote(eMsg, "'")) left(eMsg, 30)
   eMsg = "cast("quote(eMsg, "'")" as varchar(6000) ccsid unicode)"
   asUni = "as varchar(6000) ccsid unicode"
   id = -234
   install = '01.01.1956'
   tst     = '1956-04-01-00.00.00'
   call sqlUpdate 3, "update oa1p.tQZ043BindGen" ,
           "set result = '"res"', cmJob = '"jobPP"'" ,
           ", resTst = current timestamp" ,
           ", cmRes =" cmRes ,
           ", errMsg  = case when length(cast("quote(eMsg, "'") asUni ,
                         ")) < 2000 then" quote(eMsg,"'") ,
                       "else" quote(left(eMsg, 1500),"'") "end" ,
           "where genId =" id ,
             "and cmPkg = '"pkg"' and genTst = '"tst"'" ,
             "and appl = '"appl"'   and install = '"install"'" ,
             "and rz   = '"rz"'     and dbSys = '"dbSys"'"
   call sqlUpdate ,'rollback'
   say 'rollback'
$*(
           ", errMsg  = case when length(cast("quote(eMsg, "'") asUni ,
                         ")) < 2000 then" quote(eMsg,"'") ,
                       "else" quote(left(eMsg, 1500),"'") "end" ,
$*)
$!
   say 'after'
$#out                                              20151214 17:25:51
*** run error ***
SQLCODE = -102: STRING CONSTANT IS TOO LONG.  STRING BEGINS
    "abcdXfffgh"
src                    select 'len=' ||length('abcdXfffghijabcdXfffgh...
  >                      >>>pos 24 of 240118>>>
sql = select 'len=' ||length('abcdXfffghijabcdXfffghijabcdXfffghijabcdXfffghijab
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
$#out                                              20151214 13:35:08
*** run error ***
SQLCODE = -102: STRING CONSTANT IS TOO LONG.  STRING BEGINS
    "ab/=:fghij"
src                    select 'len=' ||length('ab/=:fghijab/=:fghijab...
  >                      >>>pos 24 of 200118>>>
sql = select 'len=' ||length('ab/=:fghijab/=:fghijab/=:fghijab/=:fghijab/=:fghij
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
$#out                                              20151214 13:32:52
*** run error ***
SQLCODE = -102: STRING CONSTANT IS TOO LONG.  STRING BEGINS
    "ab/=.fghij"
src                    select 'len=' ||length('ab/=.fghijab/=.fghijab...
  >                      >>>pos 24 of 200118>>>
sql = select 'len=' ||length('ab/=.fghijab/=.fghijab/=.fghijab/=.fghijab/=.fghij
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
$#out                                              20151214 13:32:30
*** run error ***
SQLCODE = -102: STRING CONSTANT IS TOO LONG.  STRING BEGINS
    "ab/=.fghij"
src                    select 'len=' ||length('ab/=.fghijab/=.fghijab...
  >                      >>>pos 24 of 200118>>>
sql = select 'len=' ||length('ab/=.fghijab/=.fghijab/=.fghijab/=.fghijab/=.fghij
stmt = prepare s49 into :M.SQL.49.D from :src
with into :M.SQL.49.D = M.SQL.49.D
$#out                                              20151214 13:25:02
*** run error ***
SQLCODE = -404: THE SQL STATEMENT SPECIFIES A STRING THAT IS
    TOO LONG
warnings  4=W no where
sql = update oa1p.tQZ043BindGen set result = 'RES', cmJob = 'JOBPP' , resTst = c
$#out                                              20151214 13:22:45
SQLCODE = 100, NOT FOUND:  ROW NOT FOUND FOR FETCH, UPDATE, OR
    DELETE, OR THE RESULT OF A QUERY IS AN EMPTY TABLE
sql = update oa1p.tQZ043BindGen set result = 'RES', cmJob = 'JOBPP' , resTst = c
$#out                                              20151214 13:22:05
SQLCODE = 100, NOT FOUND:  ROW NOT FOUND FOR FETCH, UPDATE, OR
    DELETE, OR THE RESULT OF A QUERY IS AN EMPTY TABLE
sql = update oa1p.tQZ043BindGen set result = 'RES', cmJob = 'JOBPP' , resTst = c
$#out
}¢--- A540769.WK.SQL(EXSUBSTR) cre=2014-09-25 mod=2014-09-25-09.15.18 A540769 ---
select substr(varchar('abcdef', 40), 3, 20)
    from sysibm.sysDummy1
}¢--- A540769.WK.SQL(EXTEMP) cre=2015-01-12 mod=2015-01-12-11.49.07 A540769 ----
set current sqlid = 'S100447';
select *
    from oa1p.TQZ041BINDPARM
        for system_time as of '2014-10-01-00.00.00'
    fetch first 10 rows only
;
create view A540769.ttt as
    select * from oa1p.TQZ041BINDPARM
;
select * from A540769.ttt
        for system_time as of '2014-10-01-00.00.00'
;
rollback
}¢--- A540769.WK.SQL(EXTERM) cre=2014-09-12 mod=2014-09-12-13.17.25 A540769 ----
select current timestamp from sysibm.sysDummy1;
--#SET TERMINATOR ?
select current timestamp from sysibm.sysDummy1?
select current
--#SET  TERMINATOR    /
timestamp from sysibm.sysDummy1/
select current
--#SET  TERMINATOR    \
timestamp from sysibm.sysDummy1\
}¢--- A540769.WK.SQL(EXTS) cre=2016-05-02 mod=2016-05-02-06.54.33 A540769 ------
set current sqlid = 'S100447';
create tablespace exTs in qz92a1t
    numParts 256
    dssize 64 g
    bufferpool bp2
    define no
;
rollback
}¢--- A540769.WK.SQL(EXTST) cre=2015-06-01 mod=2016-01-04-15.21.01 A540769 -----
with g2 as
(
  select loadTs, max(updateStatsTime) stats
    , days(max(updateStatsTime)) - days(loadTs) d1
    from oa1p.tqz006gbgrTsStats
    where rz = 'RR2' -- and dbSys = 'DP2G'
      -- and loadTs > current timestamp - 1 month
    group by rz, dbSys, loadTs
)
, g3 as
(
  select g2.*
    , case when stats <= loadTs then 0
           when stats - (d1-1) days <= loadTs       then d1-1
           when stats - (d1  ) days <= loadTs       then d1
           else d1+1 end di
    from g2
)
, g as
(
  select g3.*
    , stats - di days stMod
    from g3
)
select *
    from g
    where stMod is null or loadTs is null or stats is null
        or stMod > loadTs or stMod <= loadTs - 1 day
        or d1 <> di
    order by 1 desc
;x;
with t (t) as
(
  select current timestamp from sysibm.sysDummy1
  union all select timestamp('1956-04-01-06.00.00')from sysibm.sysDummy1
  union all select timestamp('2015-01-01-01.00.00')from sysibm.sysDummy1
)
, j2 (f, t) as
(
  select f.t, t.t
    from t f, t t
    where f.t <= t.t
)
, j3 as
(
select j2.*
        , days(t) - days(f) di
        , days(t) - days(f)
           + (midnight_seconds(t) - midnight_seconds(f)
             + float(microsecond(t) - microsecond(f)) * 1e-6
             ) / 86400 dd
    from j2
)
, j as
(
  select j3.*
    , case when t - di days     between f - 1 day and f then di
           when t - (di-1) days between f - 1 day and f then di - 1
           when t - (di+1) days between f - 1 day and f then di + 1
      end dc
    from j3
)
select days(f), midnight_seconds(f), f
        , di, dc, t - dc days
        , t
        , decimal(dd, 20, 12)
        , decimal(mod(dd, 1), 20, 12)
        , dec(mod(dd, 1) * 86400, 12, 6)
    from j
;x;
(days(t)-days(b)) * 86400 "days*86400",
(days(t)-days(b)) * 86400
  + midnight_seconds(t) -  midnight_seconds(b) "days* midnight",
from sysibm.sysDummy1
select timestamp('2012-02-29-12:13:14   ')
    from sysibm.sysDummy1
;
declare global temporary table tst (tst timestamp);
insert into session.tst values (current timestamp);
insert into session.tst values ('2012-02-29 12:13:14   ');
insert into session.tst values ('2012-02-29-12:13:14   ');
select * from session.tst;
                 -- timestamp format: : statt . funktioniert nur <= v9|
}¢--- A540769.WK.SQL(EXTSTDIF) cre=2015-09-22 mod=2015-09-22-08.09.02 A540769 ---
with t (t) as                                                           00001000
(                                                                       00002000
  select current timestamp from sysibm.sysDummy1                        00003000
  union all select '2014-06-17-00.00.00' from sysibm.sysDummy1          00004000
)                                                                       00005000
, u (a, b) as                                                           00006000
(                                                                       00007000
  select t, t - 1 minute from t                                         00010000
  union all select t, t + 2 hour from t                                 00020000
  union all select t, t - 3 day  from t                                 00030000
  union all select t, t + 4 month  from t                               00040006
)                                                                       00050000
select a - b minus                                                      00060006
    , timestampDiff(2, char(a-b)) "secs"                                00061007
    , timestampDiff(16, char(a-b)) "days"                               00062007
    , timestampDiff(256, char(a-b)) "years"                             00062107
    , a, b                                                              00063006
    from u                                                              00070000
}¢--- A540769.WK.SQL(EXTSTFOR) cre=2014-01-13 mod=2014-01-13-06.59.48 A540769 ---
with f(f) as
(
  select 'MM' from sysibm.sysDummy1
  union all select 'DDD' from sysibm.sysDummy1
)
select timestamp_format(current timestamp, f) from f
}¢--- A540769.WK.SQL(EXUNICOD) cre=2016-02-09 mod=2016-02-09-16.39.53 A540769 ---
with u (a, b, c) as
(
  select ibmReqd, 'abc', 'efghij' from sysibm.sysDummyU
 union all  select ibmReqd, 'ABC', 'EFGHIJ' from sysibm.sysDummyU
)
select * from u;
select a, cast(cast(b as char(3) ccsid ebcdic)
        , cast(c as char(6) ccsid ebcdic)
        , a
     from u
}¢--- A540769.WK.SQL(EXUNIEBC) cre=2013-08-23 mod=2013-08-23-08.26.55 A540769 ---
with c (c, l, all) as
(
  select '', 0, ' abcXYZ0189' from sysibm.sysDummy1
  union all select substr(all, l+1, 1), l+1, all
     from c where l < length(all) and l < 9e9
)
select c, hex(char(c, 1))
    , row_number() over (order by cast(c as char(1) ccsid ebcdic)) ebc
    , row_number() over (order by cast(c as char(1) ccsid unicode)) uni
    , row_number() over (order by cast(c as char(1) ccsid ascii  )) asc
    from c
    order by l
}¢--- A540769.WK.SQL(EXWITH) cre=2011-11-14 mod=2011-11-14-09.00.24 A540769 ----
with c (spc, c) as
(
  select bigInt(space)*1024, count(*)
    from sysibm.sysTableSpace
    group by space
)
select sum(c) "count", min(spc) "byte von", max(spc) "byte bis"
    from c
    group by case when spc <= 1 then spc -9
                  else floor(3 * log10(spc)) end
    order by 2 asc
}¢--- A540769.WK.SQL(FANKHAU) cre=2006-06-30 mod=2006-06-30-08.46.38 F540769 ---
  CREATE VIEW    GDB0389.VMF202A1
   ( TEV_DAT_ISO
    ,TEV_DAT_EUR
   )
  AS SELECT CHAR(DATE(SUBSTR(PARAMETER,1,10)),ISO),
            CHAR(DATE(SUBSTR(PARAMETER,1,10)),EUR)
  FROM GDB0389.TMF202A1
  WHERE BUID       = '0000'
    AND SELCD      = 'TEV_ORDERDATE'
    AND GUELTIGAB  <= CURRENT TIMESTAMP
    AND GUELTIGBIS >= CURRENT TIMESTAMP
  ;
}¢--- A540769.WK.SQL(FI027ALT) cre=2015-06-30 mod=2015-06-30-11.25.12 A540769 ---
select count(*) from oa1p.TFI027J1 where tkkey = 26861187;
?LTER TABLE OA1P.TFI027J1 ALTER PARTITION 309 ENDING AT(26861187);
}¢--- A540769.WK.SQL(FLOAT) cre=2007-02-05 mod=2007-02-05-16.27.45 F540769 -----
with ii (int) as
(
values (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
)
select      float(2272) / 1000, float(2273) / 1000 , float(2274) / 1000
from ii ;-- sysibm.sysdummy1;
}¢--- A540769.WK.SQL(FOSREALK) cre=2010-07-15 mod=2010-07-15-11.59.11 A540769 ---
--
--  convert a number 17K, 5M etc to real
--
set current sqlid = 'S100447';
drop function OA1P.fosRealK(n varchar(40));
drop function OA1P.fosRealK(n varchar(40), unit char(1));
create function OA1P.fosRealK(n varchar(40), unit char(1)) returns real
    return case
           when unit = 'K' then real(strip(left(n, length(n)-1)))* 1024
           when unit = 'M' then real(strip(left(n, length(n)-1)))
                         * 1024 * 1024
           when unit = 'G' then real(strip(left(n, length(n)-1)))
                         * 1024 * 1024 * 1024
           when unit = 'T' then real(strip(left(n, length(n)-1)))
                         * 1024 * 1024 * 1024 * 1024
           else real(n)
           end;
create function OA1P.fosRealK(n varchar(40)) returns real
    return oa1p.fosRealK(strip(n), char(upper(right(strip(n), 1)), 1));
select char(a, 20), oa1p.fosRealK(a) from
(           select ' 1234 '     a from sysibm.sysDummy1
  union all select ' 567K '     a from sysibm.sysDummy1
  union all select ' 89   K '   a from sysibm.sysDummy1
  union all select '10      K'  a from sysibm.sysDummy1
  union all select ' 23 M '     a from sysibm.sysDummy1
  union all select '   45G'     a from sysibm.sysDummy1
) v;
}¢--- A540769.WK.SQL(FOSXX) cre=2013-02-15 mod=2013-02-15-11.56.34 A540769 -----
set current sqlid = 'S100447';
-- drop   function A540769.tosXX(a float, b float, c float);
terminator?;
create function A540769.tosXX(a float, b float, c float)
          returns  varchar(20)
          deterministic
begin
    declare sm float;
    declare res, a1, a2 varchar(30) default '';
    declare la, cu char(4);
    declare cx int;
    set sm = a+b+c;
    if sm < 0 then
        return oa1a.fosFmtE8(sm) || ' |||';
    elseif sm < 1e-9 then
        return oa1a.fosFmtE7(sm);
    end if;
    set a1  =
           case when a      <= sm/200 then ''
          else digits(dec(round(min(99, 100 * a / sm)), 2))||'a ' end
        || case when b      <= sm/200 then ''
          else digits(dec(round(min(99, 100 * b / sm)), 2))||'b ' end
        || case when c      <= sm/200 then ''
          else digits(dec(round(min(99, 100 * c / sm)), 2))||'c ' end;
    set la = x'ffffffff';
    loop
        set cx = 1;
        set cu = '';
        while cx < length(a1) do
            if substr(a1, cx, 4) < la and substr(a1, cx, 4) > cu then
                set cu = substr(a1, cx, 4);
            end if;
            set cx = cx + 4;
        end while;
        set a2 = a2 || cu;
        if cu = '' or length(a2) >= 12 then
            return oa1a.fosFmtE7(sm) || ' ' || a2;
        end if;
        set la = cu;
    end loop;
end
?
terminator;?

select A540769.tosxx( 3 , -1   , -3)
    from sysibm.sysDummy1
;
rollback
;x;
--     convert chars to the corresponding integer value
--      e.g. x'FF' -> 255, ' ' -> 64, '010000' -> 65536
--  UDFs    oa1a.fosC2I1: char(1) --> int
--          oa1a.fosC2I2: varchar(2) --> int
--          oa1a.fosC2I4: varchar(4) --> bigInt
--          oa1a.fosC2I8: varchar(8) --> bigInt
--                    values >= x'80000000000000' yield fixPointOverflow
--                           or negativ results due to bigInt arithmetic
-- 8.1.10 W. Keller neu
--
set current sqlid = 'S100447';
--  drop function OA1a.c2d8;
--  drop function OA1a.c2d4;
--  drop function OA1a.c2d2;
--  drop function OA1a.c2d1;
    drop function oa1a.fosC2I8;
    drop function oa1a.fosC2I4;
    drop function oa1a.fosC2I2;
    drop function oa1a.fosC2I1;
create function oa1a.fosC2I1(c char(1)) returns int
    return posStr(x'000102030405060708090A0B0C0D0E0F'
               || x'101112131415161718191A1B1C1D1E1F'
               || x'202122232425262728292A2B2C2D2E2F'
               || x'303132333435363738393A3B3C3D3E3F'
               || x'404142434445464748494A4B4C4D4E4F'
               || x'505152535455565758595A5B5C5D5E5F'
               || x'606162636465666768696A6B6C6D6E6F'
               || x'707172737475767778797A7B7C7D7E7F'
               || x'808182838485868788898A8B8C8D8E8F'
               || x'909192939495969798999A9B9C9D9E9F'
               || x'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF'
               || x'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF'
               || x'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'
               || x'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'
               || x'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'
               || x'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF', c) - 1
;
create function oa1a.fosC2I2(c varchar(2)) returns int
    return case when length(c) = 0 then -1
                when length(c) = 1 then oa1a.fosC2I1(char(c, 1))
                else        oa1a.fosC2I1(char(left(c, 1), 1)) * 256
                          + oa1a.fosC2I1(char(substr(c, 2), 1))
           end
;
create function oa1a.fosC2I4(c varchar(4)) returns bigInt
    return case when length(c) < 3 then oa1a.fosC2I2(c)
                else   oa1a.fosC2I2(left(c, length(c) - 2))
                       * bigInt(65536)
                       + oa1a.fosC2I2(right(c, 2))
           end
;
create function oa1a.fosC2I8(c8 varchar(8)) returns bigInt
    return case when length(c8) < 5 then oa1a.fosC2I4(c8)
                else   oa1a.fosC2I4(left(c8, length(c8) - 4))
                       * bigInt(4294967296)
                       + oa1a.fosC2I4(right(c8, 4))
           end
;
with i (i) as
(
select ''    from sysibm.sysDummy1
union select x'03' from sysibm.sysDummy1
union select x'0C' from sysibm.sysDummy1
union select x'1E' from sysibm.sysDummy1
union select x'40' from sysibm.sysDummy1
union select x'AA' from sysibm.sysDummy1
union select x'FF' from sysibm.sysDummy1
union select x'6407' from sysibm.sysDummy1
union select x'0009' from sysibm.sysDummy1
union select x'9999' from sysibm.sysDummy1
union select x'FFFF' from sysibm.sysDummy1
union select x'01FF' from sysibm.sysDummy1
union select x'01FFFF' from sysibm.sysDummy1
union select x'01FFFFFF' from sysibm.sysDummy1
union select x'FFFFFFFF' from sysibm.sysDummy1
union select x'FFFFFFFFFF' from sysibm.sysDummy1
union select x'FFFFFFFFFFFF' from sysibm.sysDummy1
union select x'FFFFFFFFFFFFFF' from sysibm.sysDummy1
union select x'7FFFFFFFFFFFFFFF' from sysibm.sysDummy1
union select 'abcdefgh'          from sysibm.sysDummy1
union select x'8000000000000000' from sysibm.sysDummy1
union select x'8000000000000001' from sysibm.sysDummy1
union select x'BFFFFFFFFFFFFFFF' from sysibm.sysDummy1
union select x'C000000000000000' from sysibm.sysDummy1
union select x'C000000000000001' from sysibm.sysDummy1
union select x'FFFFFFFFFFFFFFFE' from sysibm.sysDummy1
union select x'FFFFFFFFFFFFFFFF' from sysibm.sysDummy1
)
select hex(i), length(i), oa1a.fosC2I8(i)
    from i
;
commit
}¢--- A540769.WK.SQL(FRANZAP) cre=2006-10-24 mod=2006-10-24-16.08.35 F540769 ---
set current sqlid = 'S100447';
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 1
      ENDING AT (X'0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 2
      ENDING AT (X'0007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 3
      ENDING AT (X'000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 4
      ENDING AT (X'000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 5
      ENDING AT (X'0013FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 6
      ENDING AT (X'0017FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 7
      ENDING AT (X'001BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 8
      ENDING AT (X'001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 9
      ENDING AT (X'0023FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 10
      ENDING AT (X'0027FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 11
      ENDING AT (X'002BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 12
      ENDING AT (X'002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 13
      ENDING AT (X'0033FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 14
      ENDING AT (X'0037FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 15
      ENDING AT (X'003BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 16
      ENDING AT (X'003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 17
      ENDING AT (X'0043FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 18
      ENDING AT (X'0047FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 19
      ENDING AT (X'004BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 20
      ENDING AT (X'004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 21
      ENDING AT (X'0053FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 22
      ENDING AT (X'0057FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 23
      ENDING AT (X'005BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 24
      ENDING AT (X'005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 25
      ENDING AT (X'0063FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 26
      ENDING AT (X'0067FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 27
      ENDING AT (X'006BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 28
      ENDING AT (X'006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 29
      ENDING AT (X'0073FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 30
      ENDING AT (X'0077FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 31
      ENDING AT (X'007BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 32
      ENDING AT (X'007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 33
      ENDING AT (X'0083FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 34
      ENDING AT (X'0087FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 35
      ENDING AT (X'008BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 36
      ENDING AT (X'008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 37
      ENDING AT (X'0093FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 38
      ENDING AT (X'0097FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 39
      ENDING AT (X'009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 40
      ENDING AT (X'009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 41
      ENDING AT (X'00A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 42
      ENDING AT (X'00A7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 43
      ENDING AT (X'00ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 44
      ENDING AT (X'00AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 45
      ENDING AT (X'00B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 46
      ENDING AT (X'00B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 47
      ENDING AT (X'00BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 48
      ENDING AT (X'00BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 49
      ENDING AT (X'00C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 50
      ENDING AT (X'00C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 51
      ENDING AT (X'00CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 52
      ENDING AT (X'00CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 53
      ENDING AT (X'00D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 54
      ENDING AT (X'00D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 55
      ENDING AT (X'00DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 56
      ENDING AT (X'00DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 57
      ENDING AT (X'00E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 58
      ENDING AT (X'00E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 59
      ENDING AT (X'00EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ALTER PARTITION 60
      ENDING AT (X'00EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ADD   PARTITION -- 61
      ENDING AT (X'00F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ADD   PARTITION -- 62
      ENDING AT (X'00F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ADD   PARTITION -- 63
      ENDING AT (X'00FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ADD   PARTITION -- 64
      ENDING AT (X'00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
ALTER TABLE A540769.TNZ242A1
      ADD   PARTITION -- 65
      ENDING AT (X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
}¢--- A540769.WK.SQL(FRANZDDL) cre=2006-10-24 mod=2006-10-24-15.45.38 F540769 ---
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBOF (810)     Extract time : 2006-10-23 16:35 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=N AL=N LB=Y CM=Y FK=Y  --
--            TG=N UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A242A In Database DA540769    --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769  Stogroup=GSMS (for partition 1)
-- Tablespace=DA540769.A242A
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
--
  drop   TABLESPACE dA540769.A242A;
  commit;
  CREATE TABLESPACE A242A
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY 360000 SECQTY 28800
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    DSSIZE 4 G
    NUMPARTS 60
     (PART 2 USING STOGROUP GSMS PRIQTY 360000 SECQTY 57600,
      PART 3 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 4 USING STOGROUP GSMS PRIQTY 360000 SECQTY 266400,
      PART 5 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 6 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
      PART 7 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 8 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
      PART 9 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
      PART 10 USING STOGROUP GSMS PRIQTY 198000 SECQTY 10800,
      PART 11 USING STOGROUP GSMS PRIQTY 216000 SECQTY 14400,
      PART 12 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
      PART 13 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
      PART 14 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
      PART 15 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
      PART 16 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 17 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 18 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 19 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
      PART 20 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 21 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
      PART 22 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 23 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 24 USING STOGROUP GSMS PRIQTY 216000 SECQTY 14400,
      PART 25 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
      PART 26 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
      PART 27 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 28 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 29 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
      PART 30 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
      PART 31 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
      PART 32 USING STOGROUP GSMS PRIQTY 360000 SECQTY 72000,
      PART 33 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
      PART 34 USING STOGROUP GSMS PRIQTY 216000 SECQTY 14400,
      PART 35 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 36 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 37 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
      PART 38 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 39 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
      PART 40 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 41 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 42 USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
      PART 43 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
      PART 44 USING STOGROUP GSMS PRIQTY 360000 SECQTY 93600,
      PART 45 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 46 USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
      PART 47 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 48 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
      PART 49 USING STOGROUP GSMS PRIQTY 360000 SECQTY 93600,
      PART 50 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 51 USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 52 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
      PART 53 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
      PART 54 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
      PART 55 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
      PART 56 USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
      PART 57 USING STOGROUP GSMS PRIQTY 360000 SECQTY 43200,
      PART 58 USING STOGROUP GSMS PRIQTY 360000 SECQTY 100800,
      PART 59 USING STOGROUP GSMS PRIQTY 360000 SECQTY 64800,
      PART 60 USING STOGROUP GSMS PRIQTY 360000 SECQTY 273600
        FREEPAGE 20 PCTFREE 10)
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=A540769.TNZ242A1 In DA540769.A242A
------------------------------------------------------------------------
--
  SET CURRENT SQLID='A540769';
--
  CREATE TABLE A540769.TNZ242A1
     (NZ242001             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242002             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242003             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242004             CHAR(10) FOR SBCS DATA NOT NULL,
      NZ242005             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242006             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242007             CHAR(10) FOR SBCS DATA NOT NULL,
      NZ242008             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242009             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242010             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242011             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242012             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242013             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242014             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242015             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242016             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242017             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242018             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242019             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242020             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242021             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242022             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242023             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242024             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242025             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242026             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242027             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242028             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242029             CHAR(10) FOR SBCS DATA NOT NULL,
      NZ242030             CHAR(26) FOR SBCS DATA NOT NULL,
      NZ242031             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242032             CHAR(1) FOR SBCS DATA NOT NULL,
      NZ242033             VARCHAR(3100) FOR SBCS DATA NOT NULL)
    IN DA540769.A242A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE A540769.TNZ242A1 IS 'ZV Histo: HistoData';
--
  COMMENT ON A540769.TNZ242A1
   (NZ242033 IS 'SERIALISIERTE OBJEKTE BZW DER DATENTEIL',
    NZ242032 IS 'SOLL/HABEN IDENTIFIKATION',
    NZ242031 IS 'STRUKTURTYP DES OBJEKTS',
    NZ242030 IS 'TIMESTAMP ERSTELLZEITPUNKT',
    NZ242029 IS 'VERSION DES OBJEKTES BZW. SOFTWARESTAND DER STRUKTUR',
    NZ242028 IS 'BESCHREIBUNG SUCHWERT 10',
    NZ242027 IS 'SUCHWERT 10',
    NZ242026 IS 'BESCHREIBUNG SUCHWERT 09',
    NZ242025 IS 'SUCHWERT 09',
    NZ242024 IS 'BESCHREIBUNG SUCHWERT 08',
    NZ242023 IS 'SUCHWERT 08',
    NZ242022 IS 'BESCHREIBUNG SUCHWERT 07',
    NZ242021 IS 'SUCHWERT 07',
    NZ242020 IS 'BESCHREIBUNG SUCHWERT 06',
    NZ242019 IS 'SUCHWERT 06',
    NZ242018 IS 'BESCHREIBUNG SUCHWERT 05',
    NZ242017 IS 'SUCHWERT 05',
    NZ242016 IS 'BESCHREIBUNG SUCHWERT 04',
    NZ242015 IS 'SUCHWERT 04',
    NZ242014 IS 'BESCHREIBUNG SUCHWERT 03',
    NZ242013 IS 'SUCHWERT 03',
    NZ242012 IS 'BESCHREIBUNG SUCHWERT 02',
    NZ242011 IS 'SUCHWERT 02',
    NZ242010 IS 'BESCHREIBUNG SUCHWERT 01',
    NZ242009 IS 'SUCHWERT 01',
    NZ242008 IS 'OBJEKTTYP',
    NZ242007 IS 'GESCHAEFTSFALLTYP',
    NZ242006 IS 'ID DES STATUSAUSLOESERS ODER BEARBEITUNGSMITTEL',
    NZ242005 IS 'STATUSANGABE',
    NZ242004 IS 'IDENTIFIKATIONSNUMMER',
    NZ242003 IS 'REFERENZNUMMER DES SENDEOBJEKTES',
    NZ242002 IS 'TECHNISCHER IDENTIFIKATIONSSCHLUESSEL UNIQUE',
    NZ242001 IS 'TECHNISCHER SCHLUESSEL ZUM HISTO HEADERTEIL');
--
  LABEL ON A540769.TNZ242A1
   (NZ242033 IS 'Object',
    NZ242032 IS 'SideType',
    NZ242031 IS 'ObjDescType',
    NZ242030 IS 'CreateDateTime',
    NZ242029 IS 'ObjTypeVersion',
    NZ242028 IS 'SearchType10',
    NZ242027 IS 'SearchValue10',
    NZ242026 IS 'SearchType09',
    NZ242025 IS 'SearchValue09',
    NZ242024 IS 'SearchType08',
    NZ242023 IS 'SearchValue08',
    NZ242022 IS 'SearchType07',
    NZ242021 IS 'SearchValue07',
    NZ242020 IS 'SearchType06',
    NZ242019 IS 'SearchValue06',
    NZ242018 IS 'SearchType05',
    NZ242017 IS 'SearchValue05',
    NZ242016 IS 'SearchType04',
    NZ242015 IS 'SearchValue04',
    NZ242014 IS 'SearchType03',
    NZ242013 IS 'SearchValue03',
    NZ242012 IS 'SearchType02',
    NZ242011 IS 'SearchValue02',
    NZ242010 IS 'SearchType01',
    NZ242009 IS 'SearchValue01',
    NZ242008 IS 'ObjType',
    NZ242007 IS 'GfsType',
    NZ242006 IS 'ProcesserId',
    NZ242005 IS 'ProcessStatus',
    NZ242004 IS 'IdentNumber',
    NZ242003 IS 'RefId',
    NZ242002 IS 'IdentUwi',
    NZ242001 IS 'HeaderUwi');
--
------------------------------------------------------------------------
-- Database=DA540769
--    Index=A540769.INZ242A1 On A540769.TNZ242A1
------------------------------------------------------------------------
--
  CREATE INDEX A540769.INZ242A1
    ON A540769.TNZ242A1
     (NZ242001              ASC,
      NZ242003              ASC,
      NZ242004              ASC,
      NZ242005              ASC,
      NZ242006              ASC,
      NZ242007              ASC,
      NZ242008              ASC)
    USING STOGROUP GSMS
    PRIQTY 324000 SECQTY 18000
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    CLUSTER
     (PART 1 VALUES(X'0002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 2 VALUES(X'0005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 3 VALUES(X'0009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
      PART 4 VALUES(X'0011FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 86400,
      PART 5 VALUES(X'0015FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 6 VALUES(X'0019FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
      PART 7 VALUES(X'001DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 8 VALUES(X'0021FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 9 VALUES(X'0025FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
      PART 10 VALUES(X'0029FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 11 VALUES(X'002DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
      PART 12 VALUES(X'0031FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 13 VALUES(X'0035FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 14 VALUES(X'0039FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
      PART 15 VALUES(X'003DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 16 VALUES(X'0041FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 17 VALUES(X'0045FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
      PART 18 VALUES(X'0049FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
      PART 19 VALUES(X'004DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
      PART 20 VALUES(X'0051FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 21 VALUES(X'0055FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
      PART 22 VALUES(X'0059FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 23 VALUES(X'005DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
      PART 24 VALUES(X'0061FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
      PART 25 VALUES(X'0065FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 26 VALUES(X'0069FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
      PART 27 VALUES(X'006DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 28 VALUES(X'0071FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 29 VALUES(X'0075FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 30 VALUES(X'0079FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
      PART 31 VALUES(X'007DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 32 VALUES(X'0081FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
      PART 33 VALUES(X'0085FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 720 SECQTY 7200,
      PART 34 VALUES(X'0089FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
      PART 35 VALUES(X'008DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 36 VALUES(X'0091FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 37 VALUES(X'0095FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 38 VALUES(X'0099FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 39 VALUES(X'009DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 40 VALUES(X'00A1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 41 VALUES(X'00A5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 42 VALUES(X'00A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 43 VALUES(X'00ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 44 VALUES(X'00B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 45 VALUES(X'00B5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 46 VALUES(X'00B9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 47 VALUES(X'00BDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 48 VALUES(X'00C1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 49 VALUES(X'00C5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
      PART 50 VALUES(X'00C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 28800,
      PART 51 VALUES(X'00CDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 52 VALUES(X'00D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 252000 SECQTY 14400,
      PART 53 VALUES(X'00D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 54 VALUES(X'00D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
      PART 55 VALUES(X'00DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 56 VALUES(X'00E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 18000,
      PART 57 VALUES(X'00E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 58 VALUES(X'00E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 25200,
      PART 59 VALUES(X'00EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 21600,
      PART 60 VALUES(X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF')
        USING STOGROUP GSMS PRIQTY 360000 SECQTY 288000)
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES;
--
------------------------------------------------------------------------
--    View=A540769.VNZ242A1V
------------------------------------------------------------------------
--
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0283" ;
--
  CREATE VIEW A540769.VNZ242A1V(HEADERUWI, IDENTUWI, REFID, IDENTNUMBER,
      PROCESSSTATUS, PROCESSERID, GFSTYPE, OBJTYPE, SEARCHVALUE01,
      SEARCHTYPE01, SEARCHVALUE02, SEARCHTYPE02, SEARCHVALUE03,
      SEARCHTYPE03, SEARCHVALUE04, SEARCHTYPE04, SEARCHVALUE05,
      SEARCHTYPE05, SEARCHVALUE06, SEARCHTYPE06, SEARCHVALUE07,
      SEARCHTYPE07, SEARCHVALUE08, SEARCHTYPE08, SEARCHVALUE09,
      SEARCHTYPE09, SEARCHVALUE10, SEARCHTYPE10, OBJTYPEVERSION,
      CREATEDATETIME, OBJDESCTYPE, SIDETYPE, OBJECT) AS
    SELECT ALL NZ242001, NZ242002, NZ242003, NZ242004, NZ242005,
           NZ242006, NZ242007, NZ242008, NZ242009, NZ242010, NZ242011,
           NZ242012, NZ242013, NZ242014, NZ242015, NZ242016, NZ242017,
           NZ242018, NZ242019, NZ242020, NZ242021, NZ242022, NZ242023,
           NZ242024, NZ242025, NZ242026, NZ242027, NZ242028, NZ242029,
           NZ242030, NZ242031, NZ242032, NZ242033
      FROM A540769.TNZ242A1 ;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(FRANZDDN) cre=2006-10-26 mod=2006-10-26-11.16.06 F540769 ---
 --
   SET CURRENT SQLID='S100447';
 --
   drop   TABLESPACE dA540769.A242A;
   commit;
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-10-26 10:47 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A242A In Database DA540769    --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769   Stogroup=GSMS (for partition 1)
-- Tablespace=DA540769.A242A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A242A
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY 360000 SECQTY 72000
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    DSSIZE 16 G
    NUMPARTS 65
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=A540769.TNZ242A1 In DA540769.A242A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.TNZ242A1
     (NZ242001             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242002             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242003             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242004             CHAR(10) FOR SBCS DATA NOT NULL,
      NZ242005             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242006             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242007             CHAR(10) FOR SBCS DATA NOT NULL,
      NZ242008             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242009             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242010             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242011             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242012             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242013             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242014             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242015             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242016             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242017             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242018             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242019             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242020             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242021             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242022             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242023             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242024             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242025             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242026             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242027             CHAR(50) FOR SBCS DATA NOT NULL,
      NZ242028             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242029             CHAR(10) FOR SBCS DATA NOT NULL,
      NZ242030             CHAR(26) FOR SBCS DATA NOT NULL,
      NZ242031             CHAR(20) FOR SBCS DATA NOT NULL,
      NZ242032             CHAR(1) FOR SBCS DATA NOT NULL,
      NZ242033             VARCHAR(3100) FOR SBCS DATA NOT NULL)
    IN DA540769.A242A
    PARTITION BY (NZ242001 ASC,
                  NZ242003 ASC,
                  NZ242004 ASC,
                  NZ242005 ASC,
                  NZ242006 ASC,
                  NZ242007 ASC,
                  NZ242008 ASC)
     (PART 1 VALUES(X'0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 2 VALUES(X'0007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 3 VALUES(X'000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 4 VALUES(X'000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 5 VALUES(X'0013FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 6 VALUES(X'0017FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 7 VALUES(X'001BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 8 VALUES(X'001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 9 VALUES(X'0023FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 10 VALUES(X'0027FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 11 VALUES(X'002BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 12 VALUES(X'002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 13 VALUES(X'0033FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 14 VALUES(X'0037FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 15 VALUES(X'003BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 16 VALUES(X'003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 17 VALUES(X'0043FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 18 VALUES(X'0047FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 19 VALUES(X'004BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 20 VALUES(X'004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 21 VALUES(X'0053FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 22 VALUES(X'0057FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 23 VALUES(X'005BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 24 VALUES(X'005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 25 VALUES(X'0063FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 26 VALUES(X'0067FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 27 VALUES(X'006BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 28 VALUES(X'006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 29 VALUES(X'0073FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 30 VALUES(X'0077FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 31 VALUES(X'007BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 32 VALUES(X'007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 33 VALUES(X'0083FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 34 VALUES(X'0087FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 35 VALUES(X'008BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 36 VALUES(X'008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 37 VALUES(X'0093FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 38 VALUES(X'0097FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 39 VALUES(X'009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 40 VALUES(X'009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 41 VALUES(X'00A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 42 VALUES(X'00A7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 43 VALUES(X'00ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 44 VALUES(X'00AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 45 VALUES(X'00B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 46 VALUES(X'00B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 47 VALUES(X'00BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 48 VALUES(X'00BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 49 VALUES(X'00C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 50 VALUES(X'00C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 51 VALUES(X'00CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 52 VALUES(X'00CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 53 VALUES(X'00D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 54 VALUES(X'00D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 55 VALUES(X'00DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 56 VALUES(X'00DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 57 VALUES(X'00E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 58 VALUES(X'00E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 59 VALUES(X'00EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 60 VALUES(X'00EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 61 VALUES(X'00F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 62 VALUES(X'00F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 63 VALUES(X'00FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 64 VALUES(X'00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'),
      PART 65 VALUES(X'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'))
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE A540769.TNZ242A1 IS 'ZV Histo: HistoData';
--
  COMMENT ON A540769.TNZ242A1
   (NZ242033 IS 'SERIALISIERTE OBJEKTE BZW DER DATENTEIL',
    NZ242032 IS 'SOLL/HABEN IDENTIFIKATION',
    NZ242031 IS 'STRUKTURTYP DES OBJEKTS',
    NZ242030 IS 'TIMESTAMP ERSTELLZEITPUNKT',
    NZ242029 IS 'VERSION DES OBJEKTES BZW. SOFTWARESTAND DER STRUKTUR',
    NZ242028 IS 'BESCHREIBUNG SUCHWERT 10',
    NZ242027 IS 'SUCHWERT 10',
    NZ242026 IS 'BESCHREIBUNG SUCHWERT 09',
    NZ242025 IS 'SUCHWERT 09',
    NZ242024 IS 'BESCHREIBUNG SUCHWERT 08',
    NZ242023 IS 'SUCHWERT 08',
    NZ242022 IS 'BESCHREIBUNG SUCHWERT 07',
    NZ242021 IS 'SUCHWERT 07',
    NZ242020 IS 'BESCHREIBUNG SUCHWERT 06',
    NZ242019 IS 'SUCHWERT 06',
    NZ242018 IS 'BESCHREIBUNG SUCHWERT 05',
    NZ242017 IS 'SUCHWERT 05',
    NZ242016 IS 'BESCHREIBUNG SUCHWERT 04',
    NZ242015 IS 'SUCHWERT 04',
    NZ242014 IS 'BESCHREIBUNG SUCHWERT 03',
    NZ242013 IS 'SUCHWERT 03',
    NZ242012 IS 'BESCHREIBUNG SUCHWERT 02',
    NZ242011 IS 'SUCHWERT 02',
    NZ242010 IS 'BESCHREIBUNG SUCHWERT 01',
    NZ242009 IS 'SUCHWERT 01',
    NZ242008 IS 'OBJEKTTYP',
    NZ242007 IS 'GESCHAEFTSFALLTYP',
    NZ242006 IS 'ID DES STATUSAUSLOESERS ODER BEARBEITUNGSMITTEL',
    NZ242005 IS 'STATUSANGABE',
    NZ242004 IS 'IDENTIFIKATIONSNUMMER',
    NZ242003 IS 'REFERENZNUMMER DES SENDEOBJEKTES',
    NZ242002 IS 'TECHNISCHER IDENTIFIKATIONSSCHLUESSEL UNIQUE',
    NZ242001 IS 'TECHNISCHER SCHLUESSEL ZUM HISTO HEADERTEIL');
--
  LABEL ON A540769.TNZ242A1
   (NZ242033 IS 'Object',
    NZ242032 IS 'SideType',
    NZ242031 IS 'ObjDescType',
    NZ242030 IS 'CreateDateTime',
    NZ242029 IS 'ObjTypeVersion',
    NZ242028 IS 'SearchType10',
    NZ242027 IS 'SearchValue10',
    NZ242026 IS 'SearchType09',
    NZ242025 IS 'SearchValue09',
    NZ242024 IS 'SearchType08',
    NZ242023 IS 'SearchValue08',
    NZ242022 IS 'SearchType07',
    NZ242021 IS 'SearchValue07',
    NZ242020 IS 'SearchType06',
    NZ242019 IS 'SearchValue06',
    NZ242018 IS 'SearchType05',
    NZ242017 IS 'SearchValue05',
    NZ242016 IS 'SearchType04',
    NZ242015 IS 'SearchValue04',
    NZ242014 IS 'SearchType03',
    NZ242013 IS 'SearchValue03',
    NZ242012 IS 'SearchType02',
    NZ242011 IS 'SearchValue02',
    NZ242010 IS 'SearchType01',
    NZ242009 IS 'SearchValue01',
    NZ242008 IS 'ObjType',
    NZ242007 IS 'GfsType',
    NZ242006 IS 'ProcesserId',
    NZ242005 IS 'ProcessStatus',
    NZ242004 IS 'IdentNumber',
    NZ242003 IS 'RefId',
    NZ242002 IS 'IdentUwi',
    NZ242001 IS 'HeaderUwi');
--
------------------------------------------------------------------------
-- Database=DA540769
--    Index=A540769.INZ242A1 On A540769.TNZ242A1
------------------------------------------------------------------------
--
  CREATE INDEX A540769.INZ242A1
    ON A540769.TNZ242A1
     (NZ242001              ASC,
      NZ242003              ASC,
      NZ242004              ASC,
      NZ242005              ASC,
      NZ242006              ASC,
      NZ242007              ASC,
      NZ242008              ASC)
    PARTITIONED
    USING STOGROUP GSMS
    PRIQTY 180000 SECQTY 36000
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES;
--
------------------------------------------------------------------------
--    View=A540769.VNZ242A1V
------------------------------------------------------------------------
--
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0283" ;
--
  CREATE VIEW A540769.VNZ242A1V(HEADERUWI, IDENTUWI, REFID,
      IDENTNUMBER, PROCESSSTATUS, PROCESSERID, GFSTYPE, OBJTYPE,
      SEARCHVALUE01, SEARCHTYPE01, SEARCHVALUE02, SEARCHTYPE02,
      SEARCHVALUE03, SEARCHTYPE03, SEARCHVALUE04, SEARCHTYPE04,
      SEARCHVALUE05, SEARCHTYPE05, SEARCHVALUE06, SEARCHTYPE06,
      SEARCHVALUE07, SEARCHTYPE07, SEARCHVALUE08, SEARCHTYPE08,
      SEARCHVALUE09, SEARCHTYPE09, SEARCHVALUE10, SEARCHTYPE10,
      OBJTYPEVERSION, CREATEDATETIME, OBJDESCTYPE, SIDETYPE, OBJECT)
      AS
    SELECT ALL A540769.TNZ242A1.NZ242001, A540769.TNZ242A1.NZ242002,
           A540769.TNZ242A1.NZ242003, A540769.TNZ242A1.NZ242004,
           A540769.TNZ242A1.NZ242005, A540769.TNZ242A1.NZ242006,
           A540769.TNZ242A1.NZ242007, A540769.TNZ242A1.NZ242008,
           A540769.TNZ242A1.NZ242009, A540769.TNZ242A1.NZ242010,
           A540769.TNZ242A1.NZ242011, A540769.TNZ242A1.NZ242012,
           A540769.TNZ242A1.NZ242013, A540769.TNZ242A1.NZ242014,
           A540769.TNZ242A1.NZ242015, A540769.TNZ242A1.NZ242016,
           A540769.TNZ242A1.NZ242017, A540769.TNZ242A1.NZ242018,
           A540769.TNZ242A1.NZ242019, A540769.TNZ242A1.NZ242020,
           A540769.TNZ242A1.NZ242021, A540769.TNZ242A1.NZ242022,
           A540769.TNZ242A1.NZ242023, A540769.TNZ242A1.NZ242024,
           A540769.TNZ242A1.NZ242025, A540769.TNZ242A1.NZ242026,
           A540769.TNZ242A1.NZ242027, A540769.TNZ242A1.NZ242028,
           A540769.TNZ242A1.NZ242029, A540769.TNZ242A1.NZ242030,
           A540769.TNZ242A1.NZ242031, A540769.TNZ242A1.NZ242032,
           A540769.TNZ242A1.NZ242033
      FROM A540769.TNZ242A1 ;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(FRANZOS) cre=2006-10-23 mod=2006-10-23-16.02.06 F540769 ---
SET CURRENT SQLID = 'S100447';                                          00010000
COMMIT;                                                                 00020000
                                                                        00030000
SET CURRENT SQLID = 'S100447';                                          00040000
COMMIT;                                                                 00050000
                                                                        00060000
-- ALTER PARTITION                                                      00070000
ALTER TABLE A914227B.TNZ243A1                                           00080000
      ALTER PARTITION 1                                                 00090000
      ENDING AT (X'0003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00100000
COMMIT;                                                                 00110000
ALTER TABLE A914227B.TNZ243A1                                           00120000
      ALTER PARTITION 2                                                 00130000
      ENDING AT (X'0007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00140000
COMMIT;                                                                 00150000
ALTER TABLE A914227B.TNZ243A1                                           00160000
      ALTER PARTITION 3                                                 00170000
      ENDING AT (X'000BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00180000
COMMIT;                                                                 00190000
ALTER TABLE A914227B.TNZ243A1                                           00200000
      ALTER PARTITION 4                                                 00210000
      ENDING AT (X'000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00220000
COMMIT;                                                                 00230000
ALTER TABLE A914227B.TNZ243A1                                           00240000
      ALTER PARTITION 5                                                 00250000
      ENDING AT (X'0013FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00260000
COMMIT;                                                                 00270000
ALTER TABLE A914227B.TNZ243A1                                           00280000
      ALTER PARTITION 6                                                 00290000
      ENDING AT (X'0017FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00300000
COMMIT;                                                                 00310000
ALTER TABLE A914227B.TNZ243A1                                           00320000
      ALTER PARTITION 7                                                 00330000
      ENDING AT (X'001BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00340000
COMMIT;                                                                 00350000
ALTER TABLE A914227B.TNZ243A1                                           00360000
      ALTER PARTITION 8                                                 00370000
      ENDING AT (X'001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00380000
COMMIT;                                                                 00390000
ALTER TABLE A914227B.TNZ243A1                                           00400000
      ALTER PARTITION 9                                                 00410000
      ENDING AT (X'0023FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00420000
COMMIT;                                                                 00430000
ALTER TABLE A914227B.TNZ243A1                                           00440000
      ALTER PARTITION 10                                                00450000
      ENDING AT (X'0027FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00460000
COMMIT;                                                                 00470000
ALTER TABLE A914227B.TNZ243A1                                           00480000
      ALTER PARTITION 11                                                00490000
      ENDING AT (X'002BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00500000
COMMIT;                                                                 00510000
ALTER TABLE A914227B.TNZ243A1                                           00520000
      ALTER PARTITION 12                                                00530000
      ENDING AT (X'002FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00540000
COMMIT;                                                                 00550000
ALTER TABLE A914227B.TNZ243A1                                           00560000
      ALTER PARTITION 13                                                00570000
      ENDING AT (X'0033FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00580000
COMMIT;                                                                 00590000
ALTER TABLE A914227B.TNZ243A1                                           00600000
      ALTER PARTITION 14                                                00610000
      ENDING AT (X'0037FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00620000
COMMIT;                                                                 00630000
ALTER TABLE A914227B.TNZ243A1                                           00640000
      ALTER PARTITION 15                                                00650000
      ENDING AT (X'003BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00660000
COMMIT;                                                                 00670000
ALTER TABLE A914227B.TNZ243A1                                           00680000
      ALTER PARTITION 16                                                00690000
      ENDING AT (X'003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00700000
COMMIT;                                                                 00710000
ALTER TABLE A914227B.TNZ243A1                                           00720000
      ALTER PARTITION 17                                                00730000
      ENDING AT (X'0043FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00740000
COMMIT;                                                                 00750000
ALTER TABLE A914227B.TNZ243A1                                           00760000
      ALTER PARTITION 18                                                00770000
      ENDING AT (X'0047FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00780000
COMMIT;                                                                 00790000
ALTER TABLE A914227B.TNZ243A1                                           00800000
      ALTER PARTITION 19                                                00810000
      ENDING AT (X'004BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00820000
COMMIT;                                                                 00830000
ALTER TABLE A914227B.TNZ243A1                                           00840000
      ALTER PARTITION 20                                                00850000
      ENDING AT (X'004FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00860000
COMMIT;                                                                 00870000
ALTER TABLE A914227B.TNZ243A1                                           00880000
      ALTER PARTITION 21                                                00890000
      ENDING AT (X'0053FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00900000
COMMIT;                                                                 00910000
ALTER TABLE A914227B.TNZ243A1                                           00920000
      ALTER PARTITION 22                                                00930000
      ENDING AT (X'0057FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00940000
COMMIT;                                                                 00950000
ALTER TABLE A914227B.TNZ243A1                                           00960000
      ALTER PARTITION 23                                                00970000
      ENDING AT (X'005BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            00980000
COMMIT;                                                                 00990000
ALTER TABLE A914227B.TNZ243A1                                           01000000
      ALTER PARTITION 24                                                01010000
      ENDING AT (X'005FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01020000
COMMIT;                                                                 01030000
ALTER TABLE A914227B.TNZ243A1                                           01040000
      ALTER PARTITION 25                                                01050000
      ENDING AT (X'0063FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01060000
COMMIT;                                                                 01070000
ALTER TABLE A914227B.TNZ243A1                                           01080000
      ALTER PARTITION 26                                                01090000
      ENDING AT (X'0067FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01100000
COMMIT;                                                                 01110000
ALTER TABLE A914227B.TNZ243A1                                           01120000
      ALTER PARTITION 27                                                01130000
      ENDING AT (X'006BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01140000
COMMIT;                                                                 01150000
ALTER TABLE A914227B.TNZ243A1                                           01160000
      ALTER PARTITION 28                                                01170000
      ENDING AT (X'006FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01180000
COMMIT;                                                                 01190000
ALTER TABLE A914227B.TNZ243A1                                           01200000
      ALTER PARTITION 29                                                01210000
      ENDING AT (X'0073FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01220000
COMMIT;                                                                 01230000
ALTER TABLE A914227B.TNZ243A1                                           01240000
      ALTER PARTITION 30                                                01250000
      ENDING AT (X'0077FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01260000
COMMIT;                                                                 01270000
ALTER TABLE A914227B.TNZ243A1                                           01280000
      ALTER PARTITION 31                                                01290000
      ENDING AT (X'007BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01300000
COMMIT;                                                                 01310000
ALTER TABLE A914227B.TNZ243A1                                           01320000
      ALTER PARTITION 32                                                01330000
      ENDING AT (X'007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01340000
COMMIT;                                                                 01350000
ALTER TABLE A914227B.TNZ243A1                                           01360000
      ALTER PARTITION 33                                                01370000
      ENDING AT (X'0083FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01380000
COMMIT;                                                                 01390000
ALTER TABLE A914227B.TNZ243A1                                           01400000
      ALTER PARTITION 34                                                01410000
      ENDING AT (X'0087FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01420000
COMMIT;                                                                 01430000
ALTER TABLE A914227B.TNZ243A1                                           01440000
      ALTER PARTITION 35                                                01450000
      ENDING AT (X'008BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01460000
COMMIT;                                                                 01470000
ALTER TABLE A914227B.TNZ243A1                                           01480000
      ALTER PARTITION 36                                                01490000
      ENDING AT (X'008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01500000
COMMIT;                                                                 01510000
ALTER TABLE A914227B.TNZ243A1                                           01520000
      ALTER PARTITION 37                                                01530000
      ENDING AT (X'0093FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01540000
COMMIT;                                                                 01550000
ALTER TABLE A914227B.TNZ243A1                                           01560000
      ALTER PARTITION 38                                                01570000
      ENDING AT (X'0097FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01580000
COMMIT;                                                                 01590000
ALTER TABLE A914227B.TNZ243A1                                           01600000
      ALTER PARTITION 39                                                01610000
      ENDING AT (X'009BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01620000
COMMIT;                                                                 01630000
ALTER TABLE A914227B.TNZ243A1                                           01640000
      ALTER PARTITION 40                                                01650000
      ENDING AT (X'009FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01660000
COMMIT;                                                                 01670000
ALTER TABLE A914227B.TNZ243A1                                           01680000
      ALTER PARTITION 41                                                01690000
      ENDING AT (X'00A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01700000
COMMIT;                                                                 01710000
ALTER TABLE A914227B.TNZ243A1                                           01720000
      ALTER PARTITION 42                                                01730000
      ENDING AT (X'00A7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01740000
COMMIT;                                                                 01750000
ALTER TABLE A914227B.TNZ243A1                                           01760000
      ALTER PARTITION 43                                                01770000
      ENDING AT (X'00ABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01780000
COMMIT;                                                                 01790000
ALTER TABLE A914227B.TNZ243A1                                           01800000
      ALTER PARTITION 44                                                01810000
      ENDING AT (X'00AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01820000
COMMIT;                                                                 01830000
ALTER TABLE A914227B.TNZ243A1                                           01840000
      ALTER PARTITION 45                                                01850000
      ENDING AT (X'00B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01860000
COMMIT;                                                                 01870000
ALTER TABLE A914227B.TNZ243A1                                           01880000
      ALTER PARTITION 46                                                01890000
      ENDING AT (X'00B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01900000
COMMIT;                                                                 01910000
ALTER TABLE A914227B.TNZ243A1                                           01920000
      ALTER PARTITION 47                                                01930000
      ENDING AT (X'00BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01940000
COMMIT;                                                                 01950000
ALTER TABLE A914227B.TNZ243A1                                           01960000
      ALTER PARTITION 48                                                01970000
      ENDING AT (X'00BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            01980000
COMMIT;                                                                 01990000
ALTER TABLE A914227B.TNZ243A1                                           02000000
      ALTER PARTITION 49                                                02010000
      ENDING AT (X'00C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02020000
COMMIT;                                                                 02030000
ALTER TABLE A914227B.TNZ243A1                                           02040000
      ALTER PARTITION 50                                                02050000
      ENDING AT (X'00C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02060000
COMMIT;                                                                 02070000
ALTER TABLE A914227B.TNZ243A1                                           02080000
      ALTER PARTITION 51                                                02090000
      ENDING AT (X'00CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02100000
COMMIT;                                                                 02110000
ALTER TABLE A914227B.TNZ243A1                                           02120000
      ALTER PARTITION 52                                                02130000
      ENDING AT (X'00CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02140000
COMMIT;                                                                 02150000
ALTER TABLE A914227B.TNZ243A1                                           02160000
      ALTER PARTITION 53                                                02170000
      ENDING AT (X'00D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02180000
COMMIT;                                                                 02190000
ALTER TABLE A914227B.TNZ243A1                                           02200000
      ALTER PARTITION 54                                                02210000
      ENDING AT (X'00D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02220000
COMMIT;                                                                 02230000
ALTER TABLE A914227B.TNZ243A1                                           02240000
      ALTER PARTITION 55                                                02250000
      ENDING AT (X'00DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02260000
COMMIT;                                                                 02270000
ALTER TABLE A914227B.TNZ243A1                                           02280000
      ALTER PARTITION 56                                                02290000
      ENDING AT (X'00DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02300000
COMMIT;                                                                 02310000
ALTER TABLE A914227B.TNZ243A1                                           02320000
      ALTER PARTITION 57                                                02330000
      ENDING AT (X'00E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02340000
COMMIT;                                                                 02350000
ALTER TABLE A914227B.TNZ243A1                                           02360000
      ALTER PARTITION 58                                                02370000
      ENDING AT (X'00E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02380000
COMMIT;                                                                 02390000
ALTER TABLE A914227B.TNZ243A1                                           02400000
      ALTER PARTITION 59                                                02410000
      ENDING AT (X'00EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02420000
COMMIT;                                                                 02430000
ALTER TABLE A914227B.TNZ243A1                                           02440000
      ALTER PARTITION 60                                                02450000
      ENDING AT (X'00EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');            02460000
COMMIT;                                                                 02470000
                                                                        02480000
--ALTER TABLE A914227B.TNZ243A1                                         02490000
--      ADD PARTITION ENDING AT                                         02500000
--      (X'00F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');                    02510000
--COMMIT;                                                               02520000
--ALTER TABLE A914227B.TNZ243A1                                         02530000
--      ADD PARTITION ENDING AT                                         02540000
--      (X'00F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');                    02550000
--COMMIT;                                                               02560000
--ALTER TABLE A914227B.TNZ243A1                                         02570000
--      ADD PARTITION ENDING AT                                         02580000
--      (X'00FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');                    02590000
--COMMIT;                                                               02600000
--ALTER TABLE A914227B.TNZ243A1                                         02610000
--      ADD PARTITION ENDING AT                                         02620000
--      (X'00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');                    02630000
--COMMIT;                                                               02640000
}¢--- A540769.WK.SQL(FUNC) cre=2011-03-18 mod=2011-03-22-13.29.39 A540769 ------
set current sqlid  = 'S100447';
-- drop   function t1.f1(n int);
create function A540769.fCr(i varchar(10)) returns varchar(50)
    return 'A540769.fCr(' || i || ')';
create function oa1a.fCr(i varchar(10)) returns varchar(50)
    return 'oa1a.fCr(' || i || ', ' || a540769.fCr('->' || i) || ')';
select A540769.fCr('eins'), oa1a.fCr('zwei') from sysibm.sysDummy1;
set path oa1a;
select fCr('paOA1A') from sysibm.sysDummy1;
set path A540769;
select fCr('paA540') from sysibm.sysDummy1;
create procedure A540769.pCr(in i varchar(10), out o varchar(50))
 -- qualifier A540769
    sql path sysproc, x540769
    set o = fCr(i)
;
;;,
    return 't1.f1=' || fosFmte7(n)
;
select t1.f1(123) from sysibm.sysDummy1;
set current path t1;
select    f1(456) from sysibm.sysDummy1;
call abc;
select 'sqlid ' || left(current sqlid, 9)
   ||  ' schema ' || left(current schema, 9) || 'path ' || current path
    from sysibm.sysDummy1
;
set current schema = 'S100447';
select 'sqlid ' || left(current sqlid, 9)
   ||  ' schema ' || left(current schema, 9) || 'path ' || current path
    from sysibm.sysDummy1
;
commit;
select 'sqlid ' || left(current sqlid, 9)
   ||  ' schema ' || left(current schema, 9) || 'path ' || current path
    from sysibm.sysDummy1
;
commit;
set current sqlid = 'A540769';
select 'sqlid ' || left(current sqlid, 9) || 'path ' || current path
    from sysibm.sysDummy1
;
;;;
set current sqlid = 'S100447';
select oa1a.fosFmtE7(123.45) from sysibm.sysDummy1;
set current path oa1a;
select      fosFmtE7(123.45) from sysibm.sysDummy1;
drop   function t1.f1(n int);
create function t1.f1(n int) returns varchar(11)
    return 't1.f1=' || fosFmte7(n)
;
select t1.f1(123) from sysibm.sysDummy1;
set current path t1;
select    f1(456) from sysibm.sysDummy1;
}¢--- A540769.WK.SQL(FUNCTION) cre=2010-06-29 mod=2010-06-29-15.24.55 A540769 ---
set current sqlid = 'S100447';
create function oa1t.fosIxTime(db varchar(24), ts varchar(24),
                               part smallint) returns real
     language sql not deterministic contains sql
     return
            (select 1      from sysibm.sysDummy1)
;
}¢--- A540769.WK.SQL(FUNFAK) cre=2009-08-14 mod=2009-08-14-18.43.09 A540769 ----
set current sqlid = 'S100447';
-- drop   function A540769.FMTSq2;
create function A540769.fak(n int) returns int
    return case when n < 3 then n else n * a540769.fak(n-1) end
;
select a540769.fak(1),  a540769.fak(3),  a540769.fak(5)
    from sysibm.sysdummy1
;
ROLLBACK
}¢--- A540769.WK.SQL(FUNNAT) cre=2009-08-14 mod=2009-08-14-17.18.44 A540769 ----
set current sqlid = 'S100447';
-- drop   function A540769.FMTSq2;
create function A540769.fmtSq(n varchar(10), int l) returns varchar(30)
        return case when left(n, 1) = '-' then
                   case when length(n) <= l then
                       '-' || repeat('0', n-length(n)) || substr(n, 2)
                       else   repeat('-', n)
                       end
                   when length(n) <= l then
                       repeat('0', n-length(n)) || n
                   else repeat('+', n)
                  end
;
           || substr(char(r), posstr(char(r), 'E')), 8)
;
with reals (r) as
(
          select  float(0)+0       from sysibm.sysDummy1
    union select  float(123.456)+0 from sysibm.sysDummy1
    union select  float(-23.456)   from sysibm.sysDummy1
    union select  float(-23.456e7)   from sysibm.sysDummy1
    union select  float(-23.456e17)   from sysibm.sysDummy1
    union select  float(-23.456e-6)   from sysibm.sysDummy1
    union select  float(-23.456e-16)   from sysibm.sysDummy1
    union select  float(-10000)/7      from sysibm.sysDummy1
)
select
     r, '<' || char(float(r)) || '>', length(char(r)),
        char(char(
           dec(left(char(r), posstr(char(r), 'E') - 1), 3, 2))
  || '<'   || substr(char(r), posstr(char(r), 'E')), 10) || '>'
     from reals
;
set current sqlid = 's100447';
drop   function A540769.FMT;
create function A540769.FMT(r float) returns char(30)
        return
        char(char(
           dec(left(char(r), posstr(char(r), 'E') - 1), 3, 2))
           || substr(char(r), posstr(char(r), 'E')), 8)
;
select float(0),             float(123.456) from sysibm.sysDummy1;
select a540769.fmt(0), a540769.fmt(123.456e12) from sysibm.sysDummy1;
}¢--- A540769.WK.SQL(FZ01001) cre= mod= ----------------------------------------
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-11-21 10:00 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A023A In Database FZ01A1A     --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=FZ01A1P   Stogroup=GSMS
-- Tablespace=FZ01A1P.A023A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A023A
    IN FZ01A1P
    USING STOGROUP GSMS
    PRIQTY 720 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 40;
--
------------------------------------------------------------------------
--    Table=OA1P.TFZ023A1 In FZ01A1P.A023A
------------------------------------------------------------------------
--
  CREATE TABLE OA1P.TFZ023A1
     (FZ02300              TIMESTAMP NOT NULL,
      FZ02301              CHAR(16) FOR SBCS DATA NOT NULL,
      FZ02302              INTEGER NOT NULL,
      FZ02303              CHAR(3) FOR SBCS DATA NOT NULL,
      FZ02304              CHAR(3) FOR SBCS DATA NOT NULL,
      FZ02305              INTEGER NOT NULL,
      FZ02306              INTEGER NOT NULL,
      FZ02307              INTEGER NOT NULL,
      FZ02308              CHAR(1) FOR SBCS DATA NOT NULL,
      FZ02309              CHAR(2) FOR SBCS DATA NOT NULL,
      FZ02310              CHAR(16) FOR SBCS DATA NOT NULL,
      FZ02311              CHAR(20) FOR SBCS DATA NOT NULL,
      FZ02312              CHAR(1) FOR SBCS DATA NOT NULL,
      FZ02313              CHAR(5) FOR SBCS DATA NOT NULL,
      FZ02314              CHAR(2) FOR SBCS DATA NOT NULL,
      FZ02315              CHAR(11) FOR SBCS DATA NOT NULL,
      CONSTRAINT FZ02301
      PRIMARY KEY (FZ02301,
                   FZ02305,
                   FZ02302,
                   FZ02304))
    IN FZ01A1P.A023A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE OA1P.TFZ023A1 IS 'Buchungsposten    ';
--
  LABEL ON OA1P.TFZ023A1
   (FZ02315 IS 'Zahlungs-Empfänger ',
    FZ02314 IS 'TP-Status-Code',
    FZ02313 IS 'Zahlungs-Meldungs-Typ',
    FZ02312 IS 'KONTO-MERKMALE',
    FZ02311 IS 'CIF-UWI KONTOINHABER',
    FZ02310 IS 'KONTO-GUTSCHRIFT/BELAST',
    FZ02309 IS 'ZAHLUNGSVERKEHRSFALL',
    FZ02308 IS 'EINGANG/AUSGANG',
    FZ02307 IS 'ANZAHL POSTEN ',
    FZ02306 IS 'POSTEN-GEGENSEITE',
    FZ02305 IS 'POSTEN-NR.CODE',
    FZ02304 IS 'VERARBEITUNGS-ART',
    FZ02303 IS 'STATUS-CODE   ',
    FZ02302 IS 'LAUF-NUMMER   ',
    FZ02301 IS 'UUID          ',
    FZ02300 IS 'TIMESTAMP     ');
--
------------------------------------------------------------------------
-- Database=FZ01A1P
--    Index=OA1P.IFZ023A0 On OA1P.TFZ023A1
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX OA1P.IFZ023A0
    ON OA1P.TFZ023A1
     (FZ02301               ASC,
      FZ02305               ASC,
      FZ02302               ASC,
      FZ02304               ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=FZ01A1P
--    Index=OA1P.IFZ023A1 On OA1P.TFZ023A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IFZ023A1
    ON OA1P.TFZ023A1
     (FZ02305               ASC,
      FZ02310               ASC,
      FZ02301               ASC)
    USING STOGROUP GSMS
    PRIQTY 720 SECQTY 720
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(FZ02) cre=2006-02-24 mod=2006-02-24-19.01.27 F540769 ------
drop tablespace fz02a1a.a026H;                                          00010002
commit;                                                                 00010103
drop table    oa1a.TFZ026H1;                                            00011002
select * from oa1a.TFZ026H1;                                            00020001
}¢--- A540769.WK.SQL(GAECH) cre=2006-06-19 mod=2006-06-19-13.58.37 F540769 -----
SET CURRENT SQLID = 'S100447';                                          00010001
CREATE ALIAS OA1L03.TAV211A1 FOR OA1L.TAV211A1         ;                00020005
CREATE ALIAS OA1L03.TAV313A1 FOR OA1L.TAV313A1         ;                00030005
CREATE ALIAS OA1L01.TAV413A1 FOR OA1L03.TAV413A1       ;                00040005
CREATE ALIAS OA1L02.TAV413A1 FOR OA1L03.TAV413A1       ;                00050005
CREATE ALIAS OA1L05.TAV413A1 FOR OA1L03.TAV413A1       ;                00060005
CREATE ALIAS OA1L06.TAV413A1 FOR OA1L03.TAV413A1       ;                00070005
CREATE ALIAS OA1L07.TAV413A1 FOR OA1L03.TAV413A1       ;                00080005
CREATE ALIAS OA1L08.TAV413A1 FOR OA1L03.TAV413A1       ;                00090005
CREATE ALIAS OA1L09.TAV413A1 FOR OA1L03.TAV413A1       ;                00100005
CREATE ALIAS OA1L10.TAV413A1 FOR OA1L03.TAV413A1       ;                00110005
CREATE ALIAS OA1L11.TAV413A1 FOR OA1L03.TAV413A1       ;                00120005
CREATE ALIAS OA1L12.TAV413A1 FOR OA1L03.TAV413A1       ;                00130005
CREATE ALIAS OA1L01.TAV414A1 FOR OA1L03.TAV414A1       ;                00140005
CREATE ALIAS OA1L02.TAV414A1 FOR OA1L03.TAV414A1       ;                00150005
CREATE ALIAS OA1L05.TAV414A1 FOR OA1L03.TAV414A1       ;                00160005
CREATE ALIAS OA1L06.TAV414A1 FOR OA1L03.TAV414A1       ;                00170005
CREATE ALIAS OA1L07.TAV414A1 FOR OA1L03.TAV414A1       ;                00180005
CREATE ALIAS OA1L08.TAV414A1 FOR OA1L03.TAV414A1       ;                00190005
CREATE ALIAS OA1L09.TAV414A1 FOR OA1L03.TAV414A1       ;                00200005
CREATE ALIAS OA1L10.TAV414A1 FOR OA1L03.TAV414A1       ;                00210005
CREATE ALIAS OA1L11.TAV414A1 FOR OA1L03.TAV414A1       ;                00220005
CREATE ALIAS OA1L12.TAV414A1 FOR OA1L03.TAV414A1       ;                00230005
}¢--- A540769.WK.SQL(GANTER) cre=2007-06-22 mod=2007-06-22-20.24.23 F540769 ----
SET CURRENT SQLID='S100447';
CREATE UNIQUE INDEX OA1T.ISN100A1
  ON OA1T.TSN100A1
   (SN100BDP              ASC,
    SN100BVA              ASC,
    SN100SEQ              ASC,
    SN100SEE              ASC)
  USING STOGROUP GSMS
  PRIQTY 720 SECQTY 7200
  ERASE  NO
  FREEPAGE 10 PCTFREE 10
  GBPCACHE CHANGED
  NOT CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G;
COMMIT;
}¢--- A540769.WK.SQL(GARCIA) cre=2008-05-22 mod=2008-05-22-17.55.18 F540769 ----
with e as
( select cast(remarks as varchar(1500) ccsid ebcdic) remEbc, c.*
    from sysibm.syscolumns c
)
,    x as
( SELECT tbCreator, tbName, name, remarks, remEbc,
        --       smallInt(posstr(remEbc, x'50')) x50,     ist &
                 smallInt(posstr(remEbc, x'51')) x51,  -- ist é e aigu
                 smallInt(posstr(remEbc, x'52')) x52,
                 smallInt(posstr(remEbc, x'53')) x53,
                 smallInt(posstr(remEbc, x'54')) x54,
                 smallInt(posstr(remEbc, x'55')) x55,  -- ist i aigu
                 smallInt(posstr(remEbc, x'56')) x56,
                 smallInt(posstr(remEbc, x'57')) x57,
                 smallInt(posstr(remEbc, x'59')) x58,
                 smallInt(posstr(remEbc, x'59')) x59,
        --       smallInt(posstr(remEbc, x'5A')) x5A,     ist !  ??
        --       smallInt(posstr(remEbc, x'5B')) x5B,     ist $  ??
        --       smallInt(posstr(remEbc, x'5C')) x5C,     ist *
        --       smallInt(posstr(remEbc, x'5D')) x5D,     ist )
        --       smallInt(posstr(remEbc, x'5E')) x5E,     ist ;
        --       smallInt(posstr(remEbc, x'5F')) x5F,     ist ^
                 smallInt(posstr(remEbc, x'41')) x41,
                 smallInt(posstr(remEbc, x'42')) x42,
        --       smallInt(posstr(remEbc, x'43')) x43,     ist ä
        --       smallInt(posstr(remEbc, x'44')) x44,     ist à
                 smallInt(posstr(remEbc, x'45')) x45,
                 smallInt(posstr(remEbc, x'46')) x46,
                 smallInt(posstr(remEbc, x'47')) x47,
                 smallInt(posstr(remEbc, x'48')) x48,
                 smallInt(posstr(remEbc, x'49')) x49,
        --       smallInt(posstr(remEbc, x'4A')) x4A,    ist ¢ ??
        --       smallInt(posstr(remEbc, x'4B')) x4B,    ist .
        --       smallInt(posstr(remEbc, x'4C')) x4C     ist < ??
        --       smallInt(posstr(remEbc, x'4D')) x4D,    ist (
        --       smallInt(posstr(remEbc, x'4E')) x4E,    ist +
        --       smallInt(posstr(remEbc, x'4F')) x4F     ist |
    from e
)
select char(left(x.tbCreator, 10)
              || left(x.tbName,10) || left(x.name,20),40)
              ,x52,x53,x54,x55,x56,x57,x58,x59,x5a,x5b            ,x5f
          ,x41,x42        ,x45,x46,x47,x48,x49,x4a,    x4c,
         x.tbCreator, x.tbName, x.name, createdts,
         x.remarks, hex(remEbc) hexEbc, hex(x.remarks) hexUni
    from x, sysibm.systables t
    where (x.tbName like 'VW%' or x.tbName like 'TW%')
        and int(0)
              +x52+x53+x54+x55+x56+x57+x58+x59+x5a+x5b            +x5f
          +x41+x42        +x45+x46+x47+x48+x49+x4a    +x4c
      > 0
        and t.name = x.tbName and t.creator = x.tbCreator
    order by x.tbName, x.name, x.tbcreator
    with ur
;
xith x as
( SELECT tbCreator, tbName, name, remarks,
                 smallInt(posstr(remarks, x'C3AD')) xC3Ad
    from sysibm.syscolumns
)
select char(left(tbCreator, 10) || left(tbName,10) || left(name,20),40),
         xc3ad  ,
         remarks, hex(remarks), tbCreator, tbName, name
    from x
    where (tbName like 'VWB%' or tbName like 'TWB%')
        and int(xc3Ad) > 0
    order by tbName, name, tbcreator
    with ur
;
xELECT strip(tbCreator) || '.' || STRIP(tbName) ||'.' || strip(name)
    from sysibm.syscolumns
    where tbName like 'VWB%'
        and (    posstr(remarks, x'55') > 0
              or posstr(remarks, x'56') > 0
              or posstr(remarks, x'57') > 0
              or posstr(remarks, x'58') > 0
            )
    order by tbName, name, tbcreator
}¢--- A540769.WK.SQL(GA01) cre=2006-02-24 mod=2006-02-24-16.13.56 F540769 ------
   delete from                                                          00001006
         oa1a.tga009a1;                                                 00002006
                                                                        00003004
select count(*), ga009012 from                                          00010005
       oa1a.tga009a1                                                    00020004
       group by ga009012                                                00030004
       order by 1 desc                                                  00040002
}¢--- A540769.WK.SQL(GBGRCLEA) cre=2015-12-09 mod=2015-12-12-09.51.06 A540769 ---
-- gbGr cleanup
--     check / delete duplicate in tqz006gbgrTsStats
--
-- ==> benutze gbgrCleC, das alle rows zwischen erstem und letzem loadTS
--         der duplicate rausputzt,
--         sonst reproduziert sich der Fehler wieder beim nächsten Load
--
--     duplicates (rz, ..., updateSTatsTime) but with distinct loadTS
--     (1) select count
--     (2) delete
--     switch  zwischen (1) und (2) durch anpassen der mit --??
--                                  markierten stellen
--
delete  --??
--?? select count(*), rz, dbSys, loadTs, state  --??
    from OA1P.TQZ006GBGRTSSTATS where  state = 'a'  and --??
      (rz, dbSys, dbName, name, partition, instance, updatestatstime
       ,loadTs) in
      ( select
         rz, dbSys, dbName, name, partition, instance, updatestatstime
         ,loadTs from
( -- r duplicates with row number
  select s.*
      , row_number() over(partition by s.rz, s.dbSys, s.dbName
                                     , s.name, s.partition, s.instance
                                     , s.updateSTatsTime
                          order by a.loadTs
                          ) rn
      , a.loadTs
    from
( -- s keys with duplicates
  select rz, dbSys, dbName, name, partition, instance, updatestatstime
      , count(*) cnt
    from OA1P.TQZ006GBGRTSSTATS
     where rz = 'RZ2'  and dbSys = 'DVBP'
  group by rz, dbSys, dbName, name, partition, instance, updatestatstime
  having count(*) > 1
) s
      join OA1P.TQZ006GBGRTSSTATS a
        on a.rz = s.rz and a.dbSys = s.dbSys
                and a.dbName = s.dbName and a.name = s.name
                and a.partition = s.partition
                and a.instance = s.instance
                and a.updateStatsTime = s.updateStatsTime
) r
where rn > 1 )
    /*  --??
group by rz, dbSys, loadTs, state
order by 1 desc
     */  --??
;
commit
}¢--- A540769.WK.SQL(GBGRCLEB) cre=2015-12-09 mod=2015-12-14-07.07.07 A540769 ---
-- gbGr cleanup
--     check / delete ungültige drops (state = 'd')
--     (1) select count
--     (2) delete
--     switch  zwischen (1) und (2) durch anpassen der mit --??
--                                  markierten stellen
--
with d as
(
  select rz, dbSys, dbName, name, partition, instance, updatestatstime
        , state, loadTs
        , ( select char(n.loadTS) || char(n.updateStatsTime) || n.state
              from OA1P.TQZ006GBGRTSSTATS n
              where d.rz = n.rz and d.dbSys = n.dbSys
                  and d.dbName = n.dbName and d.name = n.name
                  and d.partition = n.partition
                  and d.instance = n.instance
                  and d.loadTS   < n.loadTS
              order by n.loadTs
              fetch first 1 rows only
          ) nx
    from OA1P.TQZ006GBGRTSSTATS d
    where state <> 'a'
        and rz = 'RZ2' -- and dbSys = 'DBOF'
)
, n as
(
  select d.*
    , timestamp(substr(nx,  1, 26)) nxLoad
    , timestamp(substr(nx, 27, 26)) nxUpd
    ,           substr(nx, 53    )  nxState
    from d
)
, o2 as
(
  select n.*
        , ( select char(o.loadTS) || char(o.updateStatsTime) || o.state
              from OA1P.TQZ006GBGRTSSTATS o
              where n.rz = o.rz and n.dbSys = o.dbSys
                  and n.dbName = o.dbName and n.name = o.name
                  and n.partition = o.partition
                  and n.instance = o.instance
                  and n.nxLoad   < o.loadTs
              order by o.loadTs
              fetch first 1 rows only
          ) ov
    from n
)
, o as
(
  select o2.*
    , timestamp(substr(ov,  1, 26)) ovLoad
    , timestamp(substr(ov, 27, 26)) ovUpd
    ,           substr(ov, 53    )  ovState
    from o2
)
, p as
(
  select o.*
    , case when days(ovLoad) - days(loadTs) < 8 then 'o<8 '
           when days(ovLoad) - days(loadTs) < 15 then 'o<15 '
           else '' end
    ||case when days(nxLoad) - days(loadTs) <= 7 then 'n<8 '
           when days(nxLoad) - days(loadTs) <= 15 then 'n<15 '
           else '' end
    ||case when nxUpd < loadTs then 'nx<Lo' else '' end dno
    , case when ovState = 'a' and nxUpd < loadTs then 'dn'
           when ovState = 'a' and nxLoad < loadTs + 8 days then 'd'
           when ovState = 'd' and ( nxUpd < loadTs
                                 or nxLoad < loadTs + 8 days) then 'no'
           when ovState is not null then ''
           when nxState = 'd' then 'n'
           when nxState = 'a' and nxUpd < loadTs then 'dn'
           when nxState = 'a' and nxLoad < loadTs + 8 days then 'd'
           else '' end deldno
      from o
)
select state, nxState, ovState, dno, delDno, count(*)
   from p
   group by state, nxState, ovState, dno, delDno
;x;
select count(*), dd
   from d
   group by dd
   order by value(dd, -99)
;
;x;
with s as
(
  select rz, dbSys, dbName, name, partition, instance, updatestatstime
      , count(*) cnt
    from OA1P.TQZ006GBGRTSSTATS
    where rz = 'RZ2' and dbSys = 'DBOF'
  --    and dbName in ('XC01A1P', 'XR01A1P')
  --    and (name like 'A2%' or name like 'A5%')
  group by rz, dbSys, dbName, name, partition, instance, updatestatstime
  having count(*) > 1
)
, l as
(
  select s.*
      , row_number() over(partition by s.rz, s.dbSys, s.dbName
                                     , s.name, s.partition, s.instance
                                     , s.updateSTatsTime
                          order by a.loadTs
                          ) rn
      , a.loadTs
    from s
      join OA1P.TQZ006GBGRTSSTATS a
        on a.rz = s.rz and a.dbSys = s.dbSys
                and a.dbName = s.dbName and a.name = s.name
                and a.partition = s.partition
                and a.instance = s.instance
                and a.updateStatsTime = s.updateStatsTime
)
select loadTs, count(*)
    from l
    where rn > 1
    group by loadTs
    order by 2 desc
;x;
select *
    from l
    order by rz, dbSys, dbName, name, partition, instance
               , updatestatstime, rn
;x;
, n as
(
  select nN.*
    , ( select max(nD.updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS nD
        where nS.rz = nD.rz and nS.dbSys = nD.dbSys
                and nS.dbName = nD.dbName and nS.name = nD.name
                and nS.partition = nD.partition
                and nS.instance = nD.instance and nD.state = 'a'
                and not
            (   nN.totalRows        = nD.totalRows
            and nN.nActive          = nD.nActive
            and nN.nPages           = nD.nPages
            and nN.reorgInserts     = nD.reorgInserts
            and nN.REORGDELETES     = nD.REORGDELETES
            and nN.REORGUPDATES     = nD.REORGUPDATES
            and nN.REORGMASSDELETE  = nD.REORGMASSDELETE
            and nN.dataSize         = nD.dataSize
    )       ) difNew
    from s nS
      join OA1P.TQZ006GBGRTSSTATS nN
        on nS.rz = nN.rz and nS.dbSys = nN.dbSys
          and nS.dbName = nN.dbName and nS.name = nN.name
          and nS.partition = nN.partition and nS.instance = nN.instance
          and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
  select
    ( select min(updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS a
        where a.rz = d.rz and a.dbSys = d.dbSys and a.state = 'a'
                and a.dbName = d.dbName and a.name = d.name
                and a.partition = d.partition
                and a.instance  = d.instance
                and a.updateStatsTime
                   > value(d.difNew, d.updateStatsTime - 1e-6 seconds)
    ) eqOld
    , d.*
    from n d
)
select *
    from n
    where name = 'A517A'
    order by 1 desc ,   dbName, name, partition
;x;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with s as
(
  select rz, dbSys, dbName, name, partition, instance
        , max(updatestatstime) updatestatstime
    from OA1P.TQZ006GBGRTSSTATS s1
    where rz = 'RZ2' and dbSys = 'DBOF' and state = 'a'
        and dbName in ('XC01A1P', 'XR01A1P')
        and (name like 'A2%' or name like 'A5%')
    group by rz, dbSys, dbName, name, partition, instance
)
, n as
(
  select nN.*
    , ( select max(nD.updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS nD
        where nS.rz = nD.rz and nS.dbSys = nD.dbSys
                and nS.dbName = nD.dbName and nS.name = nD.name
                and nS.partition = nD.partition
                and nS.instance = nD.instance and nD.state = 'a'
                and not
            (   nN.totalRows        = nD.totalRows
            and nN.nActive          = nD.nActive
            and nN.nPages           = nD.nPages
            and nN.reorgInserts     = nD.reorgInserts
            and nN.REORGDELETES     = nD.REORGDELETES
            and nN.REORGUPDATES     = nD.REORGUPDATES
            and nN.REORGMASSDELETE  = nD.REORGMASSDELETE
            and nN.dataSize         = nD.dataSize
    )       ) difNew
    from s nS
      join OA1P.TQZ006GBGRTSSTATS nN
        on nS.rz = nN.rz and nS.dbSys = nN.dbSys
          and nS.dbName = nN.dbName and nS.name = nN.name
          and nS.partition = nN.partition and nS.instance = nN.instance
          and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
  select
    ( select min(updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS a
        where a.rz = d.rz and a.dbSys = d.dbSys
                and a.dbName = d.dbName and a.name = d.name
                and a.partition = d.partition
                and a.instance  = d.instance and a.state = 'a'
                and a.updateStatsTime
                   > value(d.difNew, d.updateStatsTime - 1e-6 seconds)
    ) eqOld
    , d.*
    from n d
)
select char(value(strip(dbName) || ',' || strip(name)
           || ',' || partition
           || ',' || char(eqOld)
           || ',' || char(updateStatsTime), ''), 80) txt
    from e
    order by dbName, name, partition
;
;x;
}¢--- A540769.WK.SQL(GBGRCLEC) cre=2015-12-11 mod=2015-12-14-07.23.10 A540769 ---
-- gbGr cleanup
--     check / delete duplicate in tqz006gbgrTsStats
--     duplicates (rz, ..., updateSTatsTime) but with distinct loadTS
--     (1) select ...
--     (2) delete
--     switch  zwischen (1) und (2) durch anpassen der mit --??
--                                  markierten stellen
--
--     bei jedem duplicate: all rows > min(loadTs) und <= max(loadTS)
--         rausputzen, die sind nämlich alle falsch
--         z.B. wenn duplicate durch irrtümliches stage=d entstand
--
/*
--?? delete  --??
select rz, dbSys, state, count(*) --??
--lect rz, dbSys, dbName, name, partition, instance, state
--     , loadTs, updateStatstime
    from OA1P.TQZ006GBGRTSSTATS where
      (rz, dbSys, dbName, name, partition, instance, updatestatstime
       ,loadTs) in
      ( select s.rz, s.dbSys, s.dbName, s.name, s.partition
            , s.instance, a.updatestatstime, a.loadTs
          from     ???????? */
select count(*), cnt, aFr, cFr, aBe, cBe, aTo, cTo
from
( -- j
  select s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
      , s.loadFr, s.loadTo
      , cnt
      , sum(case when a.loadTs = s.loadFr and a.state = 'a'
                 then 1 else 0 end) aFr
      , sum(case when a.loadTs = s.loadFr and a.state <> 'a'
                 then 1 else 0 end) cFr
      , sum(case when a.loadTs > s.loadFr
                  and a.loadTs < s.loadTo and a.state = 'a'
           then 1 else 0 end) aBe
      , sum(case when a.loadTs > s.loadFr
                  and a.loadTs < s.loadTo and a.state <> 'a'
           then 1 else 0 end) cBe
      , sum(case when a.loadTs = s.loadTo and a.state = 'a'
           then 1 else 0 end) aTo
      , sum(case when a.loadTs = s.loadTo and a.state <> 'a'
           then 1 else 0 end) cTo
from
( -- s keys with duplicates
  select rz, dbSys, dbName, name, partition, instance, updatestatstime
      , count(*) cnt, min(loadTs) loadFr, max(loadTs) loadTo
    from OA1P.TQZ006GBGRTSSTATS
     where rz = 'RR2' -- and dbSys = 'DBOF'
     --and dbName like 'MF01A%'
  group by rz, dbSys, dbName, name, partition, instance, updatestatstime
  having count(*) > 1
) s
      join OA1P.TQZ006GBGRTSSTATS a
        on a.rz = s.rz and a.dbSys = s.dbSys
                and a.dbName = s.dbName and a.name = s.name
                and a.partition = s.partition
                and a.instance = s.instance
                and a.loadTs >= s.loadFr
                and a.loadTs <= s.loadTo
/* ???
)
--der by rz, dbSys, dbName, name, partition, instance, loadTs
group by rz, dbSys, state
???? */
group by s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
         , s.loadFr, s.loadTo, s.cnt
) j
group by cnt, aFr, cFr, aBe, cBe, aTo, cTo
;
commit
}¢--- A540769.WK.SQL(GBGRCLED) cre=2015-12-14 mod=2015-12-14-07.38.30 A540769 ---
select rz, dbSys, loadTs, count(*)
       , sum(case when state='a' then 1 else 0 end) sA
       , sum(case when state='d' then 1 else 0 end) sD
-- gbGr cleanup
    from OA1P.TQZ006GBGRTSSTATS
    where -- rz ='RZ2'
            loadTs between '2015-10-01-00.00.00'
                       and '2015-11-01-00.00.00'
    group by rz,dbSys, loadTs
    order by rz, dbSys, loadTs
;
}¢--- A540769.WK.SQL(GBGRCLEE) cre=2015-12-14 mod=2015-12-14-16.38.51 A540769 ---
-- gbGr cleanup
--     2 days bad restart and bad data
--         check previous and next row, and delete if bad
--     (1) select ...
--     (2) delete
--     switch  zwischen (1) und (2) durch anpassen der mit --??
--                                  markierten stellen
--
delete --??
    from OA1P.TQZ006GBGRTSSTATS where
      (rz, dbSys, dbName, name, partition, instance, loadTs
       , updateStatsTIme) in
      ( select d.rz, d.dbSys, d.dbName, d.name, d.partition, d.instance
            , d.aftLoad, d.aftUpd
from
( -- d give reason to delete or not to
select case when cnt <= 0 then '-bad0'
            when aftLoad is null then '-aftNull ' || befState
            when aftLoad > '2015-10-22-00.00.00'
                                 then '-aftLoad> ' || befState||aftState
            when befState = 'd' and aftState = 'd' then 'dd'
            when befState <> aftState then '-state '||befState||aftState
            when befUpd = aftUpd then '=='||befState
            when befUpd > aftUpd then '=>'||befState
            else '-else ' ||befState || aftState end del
      , t.*
from
( -- t decode s
  select s.*
      , case when befLUS <> '' then timestamp(substr(befLUS, 1, 26))
             else null end befLoad
      , case when befLUS <> '' then timestamp(substr(befLUS, 27, 26))
             else null end befUpd
      , case when befLUS <> '' then substr(befLUS, 53)
             else null end befState
      , case when aftLUS <> '99' then timestamp(substr(aftLUS, 1, 26))
             else null end aftLoad
      , case when aftLUS <> '99' then timestamp(substr(aftLUS, 27, 26))
             else null end aftUpd
      , case when aftLUS <> '99' then substr(aftLUS, 53)
             else null end aftState
from
( -- s keys with duplicates
  select rz, dbSys, dbName, name, partition, instance
      , count(*) cnt
      , sum(case when loadTs <  '2015-10-14-00.00.00'
                   or loadTs >= '2015-10-16-00.00.00'
                 then 0 else 1 end) cBad
      , max(case when loadTs <  '2015-10-14-00.00.00'
                     then char(loadTs) || char(updateStatsTime) || state
                     else '' end) befLUS
      , min(case when loadTs >= '2015-10-16-00.00.00'
                     then char(loadTs) || char(updateStatsTime) || state
                     else '99' end) aftLUS
      , max(loadTs) loadFr, max(loadTs) loadTo
    from OA1P.TQZ006GBGRTSSTATS
        where rz = 'RQ2' --  and dbSys = 'DBOF'
      -- and dbName like 'MF01A%'
    group by rz, dbSys, dbName, name, partition, instance
) s
) t
) d
where left(del, 1) <> '-'
) -- where in
--?? group by rz, dbSys, state
--?? order by rz, dbSys, state
;
commit
;
}¢--- A540769.WK.SQL(GBGRCLEF) cre=2015-12-14 mod=2015-12-14-15.26.28 A540769 ---
--?? select rz, dbSys, state, count(*) --??
delete --??
    from OA1P.TQZ006GBGRTSSTATS
    where rz = 'RR2'
        and loadTs between '2015-10-14-00.00.00'
                       and '2015-10-16-00.00.00'
;
commit
;
}¢--- A540769.WK.SQL(GBGRCLEX) cre=2015-12-09 mod=2015-12-09-10.50.15 A540769 ---
;x;
with s as
(
  select rz, dbSys, dbName, name, partition, instance, updatestatstime
      , count(*) cnt
    from OA1P.TQZ006GBGRTSSTATS
    where rz = 'RZ2' and dbSys = 'DBOF'
  --    and dbName in ('XC01A1P', 'XR01A1P')
  --    and (name like 'A2%' or name like 'A5%')
  group by rz, dbSys, dbName, name, partition, instance, updatestatstime
  having count(*) > 1
)
, l as
(
  select s.*
      , row_number() over(partition by s.rz, s.dbSys, s.dbName
                                     , s.name, s.partition, s.instance
                                     , s.updateSTatsTime
                          order by a.loadTs
                          ) rn
      , a.loadTs
    from s
      join OA1P.TQZ006GBGRTSSTATS a
        on a.rz = s.rz and a.dbSys = s.dbSys
                and a.dbName = s.dbName and a.name = s.name
                and a.partition = s.partition
                and a.instance = s.instance
                and a.updateStatsTime = s.updateStatsTime
)
select loadTs, count(*)
    from l
    where rn > 1
    group by loadTs
    order by 2 desc
;x;
select *
    from l
    order by rz, dbSys, dbName, name, partition, instance
               , updatestatstime, rn
;x;
, n as
(
  select nN.*
    , ( select max(nD.updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS nD
        where nS.rz = nD.rz and nS.dbSys = nD.dbSys
                and nS.dbName = nD.dbName and nS.name = nD.name
                and nS.partition = nD.partition
                and nS.instance = nD.instance and nD.state = 'a'
                and not
            (   nN.totalRows        = nD.totalRows
            and nN.nActive          = nD.nActive
            and nN.nPages           = nD.nPages
            and nN.reorgInserts     = nD.reorgInserts
            and nN.REORGDELETES     = nD.REORGDELETES
            and nN.REORGUPDATES     = nD.REORGUPDATES
            and nN.REORGMASSDELETE  = nD.REORGMASSDELETE
            and nN.dataSize         = nD.dataSize
    )       ) difNew
    from s nS
      join OA1P.TQZ006GBGRTSSTATS nN
        on nS.rz = nN.rz and nS.dbSys = nN.dbSys
          and nS.dbName = nN.dbName and nS.name = nN.name
          and nS.partition = nN.partition and nS.instance = nN.instance
          and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
  select
    ( select min(updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS a
        where a.rz = d.rz and a.dbSys = d.dbSys and a.state = 'a'
                and a.dbName = d.dbName and a.name = d.name
                and a.partition = d.partition
                and a.instance  = d.instance
                and a.updateStatsTime
                   > value(d.difNew, d.updateStatsTime - 1e-6 seconds)
    ) eqOld
    , d.*
    from n d
)
select *
    from n
    where name = 'A517A'
    order by 1 desc ,   dbName, name, partition
;x;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with s as
(
  select rz, dbSys, dbName, name, partition, instance
        , max(updatestatstime) updatestatstime
    from OA1P.TQZ006GBGRTSSTATS s1
    where rz = 'RZ2' and dbSys = 'DBOF' and state = 'a'
        and dbName in ('XC01A1P', 'XR01A1P')
        and (name like 'A2%' or name like 'A5%')
    group by rz, dbSys, dbName, name, partition, instance
)
, n as
(
  select nN.*
    , ( select max(nD.updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS nD
        where nS.rz = nD.rz and nS.dbSys = nD.dbSys
                and nS.dbName = nD.dbName and nS.name = nD.name
                and nS.partition = nD.partition
                and nS.instance = nD.instance and nD.state = 'a'
                and not
            (   nN.totalRows        = nD.totalRows
            and nN.nActive          = nD.nActive
            and nN.nPages           = nD.nPages
            and nN.reorgInserts     = nD.reorgInserts
            and nN.REORGDELETES     = nD.REORGDELETES
            and nN.REORGUPDATES     = nD.REORGUPDATES
            and nN.REORGMASSDELETE  = nD.REORGMASSDELETE
            and nN.dataSize         = nD.dataSize
    )       ) difNew
    from s nS
      join OA1P.TQZ006GBGRTSSTATS nN
        on nS.rz = nN.rz and nS.dbSys = nN.dbSys
          and nS.dbName = nN.dbName and nS.name = nN.name
          and nS.partition = nN.partition and nS.instance = nN.instance
          and nS.updatestatstime = nN.updateStatsTime
)
, e as
(
  select
    ( select min(updatestatsTime)
        from OA1P.TQZ006GBGRTSSTATS a
        where a.rz = d.rz and a.dbSys = d.dbSys
                and a.dbName = d.dbName and a.name = d.name
                and a.partition = d.partition
                and a.instance  = d.instance and a.state = 'a'
                and a.updateStatsTime
                   > value(d.difNew, d.updateStatsTime - 1e-6 seconds)
    ) eqOld
    , d.*
    from n d
)
select char(value(strip(dbName) || ',' || strip(name)
           || ',' || partition
           || ',' || char(eqOld)
           || ',' || char(updateStatsTime), ''), 80) txt
    from e
    order by dbName, name, partition
;
select rz, dbSys, loadTs, state,  count(*)
    from OA1P.TQZ006GBGRTSSTATS
    where rz = 'RZ2' and dbSys = 'DBOF' and state <> 'a'
    group by loadTs, state
    order by 3 desc
;x;
}¢--- A540769.WK.SQL(GBGRCLEY) cre=2015-12-14 mod=2015-12-14-06.42.53 A540769 ---
-- gbGr cleanup
--     check / delete duplicate in tqz006gbgrTsStats
--     duplicates (rz, ..., updateSTatsTime) but with distinct loadTS
--     (1) select ...
--     (2) delete
--     switch  zwischen (1) und (2) durch anpassen der mit --??
--                                  markierten stellen
--
--     bei jedem duplicate: all rows > min(loadTs) und <= max(loadTS)
--         rausputzen, die sind nämlich alle falsch
--         z.B. wenn duplicate durch irrtümliches stage=d entstand
--
--?? delete  --??
/*select rz, dbSys, state, count(*) --??
--lect rz, dbSys, dbName, name, partition, instance, state
--     , loadTs, updateStatstime
    from OA1P.TQZ006GBGRTSSTATS where
      (rz, dbSys, dbName, name, partition, instance, updatestatstime
       ,loadTs) in
      ( select s.rz, s.dbSys, s.dbName, s.name, s.partition
            , s.instance, a.updatestatstime, a.loadTs
          from */
select count(*), cFr, cBe, cTo, cnt
from
( -- g
  select rz, dbSys, dbName, name, partition, instance
      , loadFr, loadTo
      , cnt
      , sum(case when a.loadTs = s.loadFr then 1 else 0 end) cFr
      , sum(case when a.loadTs > s.loadFr
                  and a.loadTs < s.loadTo then 1 else 0 end) cBe
      , sum(case when a.loadTs = s.loadTo then 1 else 0 end) cTo
from
( -- j
  select s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
  , a.updatestatstime, a.state, s.loadFr, s.loadTo
      , count(*) cnt, min(loadTs) loadFr, max(loadTs) loadTo
from
( -- s keys with duplicates
  select rz, dbSys, dbName, name, partition, instance, updatestatstime
      , count(*) cnt, min(loadTs) loadFr, max(loadTs) loadTo
    from OA1P.TQZ006GBGRTSSTATS
     where rz = 'RR2' --  and dbSys = 'DBOF'
     and dbName like 'MF01%'
  group by rz, dbSys, dbName, name, partition, instance, updatestatstime
  having count(*) > 1
) s
      join OA1P.TQZ006GBGRTSSTATS a
        on a.rz = s.rz and a.dbSys = s.dbSys
                and a.dbName = s.dbName and a.name = s.name
                and a.partition = s.partition
                and a.instance = s.instance
                and a.loadTs >= s.loadFr
                and a.loadTs <= s.loadTo
group by s.rz, s.dbSys, s.dbName, s.name, s.partition, s.instance
          , s.loadFr, s.loadTo
) j
group by rz, dbSys, cFr, cBe, cTo, cnt
) g
order by rz, dbSys, cFr, cBe, cTo, cnt
;
commit
}¢--- A540769.WK.SQL(GBGRCLID) cre=2015-12-14 mod=2015-12-14-19.28.17 A540769 ---
select rz, dbSys, loadTs, count(*)
       , sum(case when state='a' then 1 else 0 end) sA
       , sum(case when state='d' then 1 else 0 end) sD
-- gbGr cleanup
    from OA1P.TQZ007GBGRIXSTATS
    where -- rz ='RZ2'
            loadTs between '2015-10-01-00.00.00'
                       and '2015-11-01-00.00.00'
    group by rz,dbSys, loadTs
    order by rz, dbSys, loadTs
;
}¢--- A540769.WK.SQL(GBGRCLIE) cre=2015-12-14 mod=2015-12-14-20.03.37 A540769 ---
set current application compatibility 'V11R1';
-- gbGr cleanup  index
--     2 days bad restart and bad data
--         check previous and next row, and delete if bad
--     (1) select ...
--     (2) delete
--     switch  zwischen (1) und (2) durch anpassen der mit --??
--                                  markierten stellen
--
   delete --??
    from OA1P.TQZ007GBGRIXSTATS where
      (rz, dbSys, dbName, ts, indexSpace, partition, instance, loadTs
       , updateStatsTIme) in
      ( select d.rz, d.dbSys, d.dbName, d.ts, d.indexSpace
       , d.partition, d.instance, d.aftLoad, d.aftUpd

/* --??
select rz, dbSys, del, sum(cBad) cBad
  , sum(case when left(del, 1) <> '-' then 1 else 0 end) cAft
  , count(*) g, sum(cnt) cnt
*/ --??
from
( -- d give reason to delete or not to
select case when cnt <= 0 then '-bad0'
            when aftLoad is null then '-aftNull ' || befState
            when aftLoad > '2015-10-22-00.00.00'
                                 then '-aftLoad> ' || befState||aftState
            when befState = 'd' and aftState = 'd' then 'dd'
            when befState <> aftState then '-state '||befState||aftState
            when befUpd = aftUpd then '=='||befState
            when befUpd > aftUpd then '=>'||befState
            else '-else ' ||befState || aftState end del
      , t.*
from
( -- t decode s
  select s.*
      , case when befLUS <> '' then timestamp(substr(befLUS, 1, 26))
             else null end befLoad
      , case when befLUS <> '' then timestamp(substr(befLUS, 27, 26))
             else null end befUpd
      , case when befLUS <> '' then substr(befLUS, 53)
             else null end befState
      , case when aftLUS <> '99' then timestamp(substr(aftLUS, 1, 26))
             else null end aftLoad
      , case when aftLUS <> '99' then timestamp(substr(aftLUS, 27, 26))
             else null end aftUpd
      , case when aftLUS <> '99' then substr(aftLUS, 53)
             else null end aftState
from
( -- s keys with duplicates
  select rz, dbSys, dbName, ts, indexSpace, partition, instance
      , count(*) cnt
      , sum(case when loadTs <  '2015-10-14-00.00.00'
                   or loadTs >= '2015-10-16-00.00.00'
                 then 0 else 1 end) cBad
      , max(case when loadTs <  '2015-10-14-00.00.00'
                     then char(loadTs) || char(updateStatsTime) || state
                     else '' end) befLUS
      , min(case when loadTs >= '2015-10-16-00.00.00'
                     then char(loadTs) || char(updateStatsTime) || state
                     else '99' end) aftLUS
      , max(loadTs) loadFr, max(loadTs) loadTo
    from OA1P.TQZ007GBGRIxSTATS
        where rz = 'RQ2'  -- and dbSys = 'DBOF'
         -- and dbName like 'MF01A%'
    group by rz, dbSys, dbName, ts, indexSpace, partition, instance
) s
) t
) d
where left(del, 1) <> '-'
) -- where in
--?? group by rollup(rz, dbSys, del)
--?? order by rz, dbSys, del
;
commit
;
}¢--- A540769.WK.SQL(GBGRCLIF) cre=2015-12-14 mod=2015-12-14-20.12.41 A540769 ---
--?? select rz, dbSys, state, count(*) --??
delete --??
    from OA1P.TQZ007GBGRIXSTATS
    where rz = 'RQ2'
        and loadTs between '2015-10-14-00.00.00'
                       and '2015-10-16-00.00.00'
;
commit
;
}¢--- A540769.WK.SQL(GBGRCOVR) cre=2016-01-08 mod=2016-01-08-11.08.41 A540769 ---
with d (l, d) as
(
  select 0, current timestamp from sysibm.sysDummy1
  union all select l+1, d - 7 days from d where l < 4
)
select d, indexSpace, name, i.*
    from d, oa1p.tqz007GbGrIxStats i
    where rz = 'RZZ' and dbSys = 'DE0G' and dbName = 'MF01A1P'
           and ts = 'A150A'
           and d between validBegin and validEnd
    order by 1 desc, 2, partition
;x;
with l2 as
(
  select rz, dbSys, dbName, ts, indexSpace, partition, instance
         , max(substr(char(validEnd)
              || strip(creator) || '.' || strip(name), 1, 60)) vn
    from oa1p.tqz007GbGrIxStats i
    where rz = 'RZZ' and dbSys = 'DE0G'
    group by rz, dbSys, dbName, ts, indexSpace, partition, instance
)
, l as
, l as
(
  select l2.*
      , timestamp(substr(vn, 1, 26)) validEnd
      , substr(vn, 27) ix
    from l2
)
select validEnd, ix, l.*
    from l
    where validEnd between current timestamp - 10 days
                       and '9000-01-01-00.00.00'
    order by 3,4,5,6,7, 8, 9
;x;
  select *
    from oa1p.tqz007GbGrIxHist  i
    where rz = 'RZZ' and dbSys = 'DE0G' and state = 'd'
        and updateStatsTime > current timestamp - 10 days
    order by rz, dbSys, dbName, ts, indexSpace, partition, instance
;x;
set current application compatibility 'V11R1';
with t as
(
  select rz || '/' || dbSys || ':' || dbName || ':' || name
            || '#' || partition || 'i' || instance
            || '@' || char(validBegin) id
        , validBegin
        , validEnd
        , ( select count(*)
              from oa1p.tqz006GbGrTsStats a
              where t.rz = a.rz and t.dbSys = a.dbSys
                  and t.dbName = a.dbName and t.name = a.name
                  and t.partition = a.partition
                  and t.instance  = a.instance
                  and t.validBegin = a.validEnd
          ) || '<'
        ||( select count(*)
              from oa1p.tqz006GbGrTsStats a
              where t.rz = a.rz and t.dbSys = a.dbSys
                  and t.dbName = a.dbName and t.name = a.name
                  and t.partition = a.partition
                  and t.instance  = a.instance
                  and t.validBegin <= a.validEnd
                  and t.validEnd   >= a.validBegin
          ) || '>'
        ||( select count(*)
              from oa1p.tqz006GbGrTsStats a
              where t.rz = a.rz and t.dbSys = a.dbSys
                  and t.dbName = a.dbName and t.name = a.name
                  and t.partition = a.partition
                  and t.instance  = a.instance
                  and t.validEnd   = a.validBegin
          ) over
    from oa1p.tqz006GbGrTsStats t
    where rz = 'RZ2' and dbSys = 'DVBP'
)
, c as
(
   select id
        , case when validEnd > '9000-01-01-00.00.00'
                     then 'end' else 'act' end valEnd
        , case when validBegin < validEnd then '<'
               when validBegin = validEnd then '='
               else '>' end valBegEnd
        , over
     from t
)
select valBegEnd, substr(over, 1, 10) over, valEnd
      , count(*)
      , min(id), max(id)
    from c
    group by cube(valBegEnd, over, valEnd)
    order by      valBegEnd, over, valEnd
}¢--- A540769.WK.SQL(GBGRDDL) cre=2013-08-26 mod=2016-05-02-09.49.42 A540769 ---
       -- ddl gbGrenzen
       --  2. 5.16 mit lastDataChange etc. in view
       --  7. 1.16 mit validBegin validEnd in Zuerichtime
       --              and updateStatsTime and loadTs original
       --  6. 1.16 mit origStatsTime original
       --              und updateStatsTime shifted to local time
       -- 19. 2.15 v11 Kolonnen
       -- 12.12.14 Zusätzliche Cols in vQZ006GBGRENZE für Elar subSelect
       --
set current sqlid = 'S100447';

$@ if 1 then $@=/view/ $***** recreate view **************************
drop   view OA1P.vQZ006GBGRENZE ;
create view OA1P.vQZ006GBGRENZE as
with t  as       -- Daten der neuesten Table Partitionen (von t2)
(
  select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
      , smallInt(t.partition * t.limPart) partition
      , t.instance
      , min(t.limGb) limGb
      , min(t.parts) parts
      , min(t.clone) clone
      , min(t.tsInst) tsInst
      , max(t.updateStatsTime) updateStatsTime
      , max(validBegin) validBegin
      , real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
      , sum(cast(t.nActive as bigInt)) nActive
      , sum(cast(t.nPages as bigInt)) nPages
      , sum(t.space) space
      , sum(t.totalRows) totalRows
      , sum(t.dataSize) dataSize
      , sum(cast(t.REORGINSERTS as bigInt)) REORGINSERTS
      , max(lastDataChange) lastDataChange
      , max(t.pgSize) pgSize
    from OA1P.TQZ006GBGRTSSTATS t
    where   current timestamp >= validBegin
        and current timestamp <  validEnd
    group by t.rz, t.dbSys, t.dbName, t.name
      , smallInt(t.partition * t.limPart)
      , t.instance
)
, i  as       -- Daten der neuest Index Partitionen (wie i2)
(
  select i.*
      , real(real(nActive) * ixPgSz / 1048576) actGB
    from OA1P.TQZ007GBGRIxSTATS i
    where   current timestamp >= validBegin
        and current timestamp <  validEnd
)
              -- ix und ts daten union
, u (limGb, actGb, db, ts, ix, part, inst, rz, dbSys
     , tsTy, tsLimGb, tsParts, tsClone, tsInst
     , updateStatsTime, validBegin
     , nActive, nPages, space, totalRows, dataSize
     , reorgInserts, lastDataChange, pgSize
) as
(
  select           limGb, actGb, dbName, name, ' --ts--'
          , partition, instance, rz, dbSys
          , tsTy, limGb,   parts,   clone  , tsInst
          , updateStatsTime, validBegin
          , nActive, nPages, space, totalRows, dataSize
          , reorgInserts, lastDataChange, pgSize
    from t
  union all select limGb, actGb, dbName, ts  , name
          , partition, instance, rz, dbSys
          , tsTy, tslimGb, tsParts, tsClone, tsInst
          , updateStatsTime, validBegin
          , nActive, nPages, space, totalEntries
          , cast( null as bigint)
          , reorgInserts, cast(null as timestamp), ixPgSz
    from i
)
, s as        -- passenden Schwellwert aus MQT lesen
(
  select u.*
    ,  (select max(info) from oa1p.tqz008GbGrSchweExp e
            where e.rz = u.rz and e.dbSys = u.dbSys
              and left(e.db   , e.dbLen) = left(u.db   , e.dbLen)
              and left(e.ts   , e.tsLen) = left(u.ts   , e.tsLen)
              and e.part in(u.part, 0)
              and e.tsTy in (u.tsTy, ' ')
              and e.dsMin <= u.tslimGB
              and validBegin <= current date
              and validEnd   >  current date
       ) schwInfo
    from u
)
, v as        -- Schwelle extrahieren oder Fehler falls null
(
  select int(case when schwInfo is not null
                  then int(substr(schwInfo, 16, 6))
                  else raise_error(70001, 'schwelle null ts='
                       || db || '.' || ts || '#' || part)
                  end) schwelle
         , s.*
    from s
 -- order by db, ts, part, ix
)
select * from v
;
commit;
$/view/

$@ if 0 then $@=/altV11/ $***** alter columns vor v11 *****************
 alter TABLE OA1P.TQZ007GbGrIxSTATS
       alter COPYUPDATELRSN set data type CHARACTER(10) -- FOR BIT DATA
 ;
 alter TABLE OA1P.tqz006gbgrtsStats
       alter COPYUPDATELRSN set data type CHARACTER(10) -- FOR BIT DATA

      -- v11 columns
       add UPDATESIZE BIGINT
 WITH DEFAULT NULL
       add LASTDATACHANGE TIMESTAMP (6) WITHOUT TIME ZONE
             WITH DEFAULT NULL
;
$/altV11/

$@ if 0 then  $@=/creStatsH/ $***** create stats tables 7.1.16 ****
?rop   TABLESPACE qz01a1p.a007a;
commit ;
?rop   TABLESPACE qz01a1p.a006a;
commit ;
;?;
-- ts stats -----------
CREATE TABLESPACE a006a
    IN qz01a1p
    numparts 15
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255
;
--
CREATE TABLE OA1P.tqz006gbgrtsStats
  (
    primary key (rz, dbSys, dbName, name, partition, instance
           , validBegin)
       --  , business_time without overlaps)
  , rz        char(3)  not null with default '?'
  , dbSys     char(4)  not null with default '?'
  , validBegin TIMESTAMP(6) WITHOUT TIME ZONE not null with default
  , validEnd   timestamp(6) WITHOUT TIME ZONE not null
                   with default '9999-12-30-00.00.00'
               constraint validCheck
               check ( validEnd > validBegin )
  , loadTS     TIMESTAMP(6) WITHOUT TIME ZONE not null
                   with default '9999-12-30-00.00.00'
  , tsType    char(1)  not null
  , tsTy      char(1)  not null
  , pgSize    smallint not null
  , segSize   smallint not null
  , parts     smallint not null
  , maxParts  smallint not null
  , dsSize    int not null
  , dsGB      real not null
  , limGB     real not null
  , limPart   smallint not null
  , obId      smallint not null
  , clone     char(1)  not null
  , tsInst    smallint not null
  , tbCr      varchar(128) not null
  , tb        varchar(128) not null
  , tbTy      char(1)      not null
  , tbObId      smallint     not null
  , UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE not null
        ,NACTIVE INTEGER
  WITH DEFAULT NULL
        ,NPAGES INTEGER
  WITH DEFAULT NULL
        ,EXTENTS SMALLINT
  WITH DEFAULT NULL
        ,LOADRLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REORGLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REORGINSERTS INTEGER
  WITH DEFAULT NULL
        ,REORGDELETES INTEGER
  WITH DEFAULT NULL
        ,REORGUPDATES INTEGER
  WITH DEFAULT NULL
        ,REORGUNCLUSTINS INTEGER
  WITH DEFAULT NULL
        ,REORGDISORGLOB INTEGER
  WITH DEFAULT NULL
        ,REORGMASSDELETE INTEGER
  WITH DEFAULT NULL
        ,REORGNEARINDREF INTEGER
  WITH DEFAULT NULL
        ,REORGFARINDREF INTEGER
  WITH DEFAULT NULL
        ,STATSLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,STATSINSERTS INTEGER
  WITH DEFAULT NULL
        ,STATSDELETES INTEGER
  WITH DEFAULT NULL
        ,STATSUPDATES INTEGER
  WITH DEFAULT NULL
        ,STATSMASSDELETE INTEGER
  WITH DEFAULT NULL
        ,COPYLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,COPYUPDATEDPAGES INTEGER
  WITH DEFAULT NULL
        ,COPYCHANGES INTEGER
  WITH DEFAULT NULL
        ,COPYUPDATELRSN CHARACTER(10) FOR BIT DATA
  WITH DEFAULT NULL
        ,COPYUPDATETIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,IBMREQD CHARACTER(1) FOR MIXED DATA
                                                        NOT NULL
        ,DBID SMALLINT
                                                        NOT NULL
        ,"PSID" SMALLINT
                                                        NOT NULL
        ,"PARTITION" SMALLINT
                                                        NOT NULL
        ,INSTANCE SMALLINT
                                                        NOT NULL
  WITH DEFAULT 1
        ,SPACE BIGINT
  WITH DEFAULT NULL
        ,TOTALROWS BIGINT
  WITH DEFAULT NULL
        ,DATASIZE BIGINT
  WITH DEFAULT NULL
        ,UNCOMPRESSEDDATASIZE BIGINT
  WITH DEFAULT NULL
        ,DBNAME char(8)
                                                        NOT NULL
  WITH DEFAULT
        ,"NAME" char(8)
                                                        NOT NULL
  WITH DEFAULT
        ,REORGCLUSTERSENS BIGINT
  WITH DEFAULT NULL
        ,REORGSCANACCESS BIGINT
  WITH DEFAULT NULL
        ,REORGHASHACCESS BIGINT
  WITH DEFAULT NULL
        ,HASHLASTUSED DATE
  WITH DEFAULT NULL
        ,DRIVETYPE CHARACTER(3) FOR MIXED DATA
                                                        NOT NULL
  WITH DEFAULT 'HDD'
        ,LPFACILITY CHARACTER(1) FOR MIXED DATA
  WITH DEFAULT NULL
        ,STATS01 BIGINT
  WITH DEFAULT NULL
      -- v11 columns
       , UPDATESIZE BIGINT
  WITH DEFAULT NULL
       , LASTDATACHANGE TIMESTAMP (6) WITHOUT TIME ZONE
             WITH DEFAULT NULL
        ,CONSTRAINT DSNTSS_INSTANCE CHECK
        (INSTANCE = 1 OR INSTANCE = 2
        )
  )
  in qz01a1p.a006A
  partition by (rz, dbSys, dbName)
  ( partition  1 ending ('?')
  , partition  2 ending ('RQ2')
  , partition  3 ending ('RR2', 'DBOF')
  , partition  4 ending ('RR2' )
  , partition  5 ending ('RZ2', 'DBOF', 'NI03A1P' )
  , partition  6 ending ('RZ2', 'DBOF'  )
  , partition  7 ending ('RZ2', 'DP2G'  )
  , partition  8 ending ('RZ2', 'DVBP', 'XBDNR001' )
  , partition  9 ending ('RZ2', 'DVBP', 'XBFC2002' )
  , partition 10 ending ('RZ2', 'DVBP' )
  , partition 11 ending ('RZ4'         )
  , partition 12 ending ('RZX')
  , partition 13 ending ('RZY')
  , partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
  , partition 15 ending ('RZZ')
  )
    AUDIT NONE
    DATA CAPTURE changes
    CCSID      unicode
    NOT VOLATILE;

CREATE UNIQUE INDEX oa1p.iQZ006A1
  ON oa1p.tqz006gbGrTsStats
   (rz, dbsys, dbName, name, partition, instance, validBegin desc )
   include(validEnd, updateStatsTime, loadTS)
  partitioned
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
;
commit
;
-- index stats ---------------------------------------------------------
CREATE TABLESPACE a007A
    IN qz01a1p
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    numparts 15
    dssize 16 g
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255
;
--
CREATE TABLE OA1P.tqz007gbGrIxStats
  ( primary key (rz, dbSys, dbName, ts, indexSpace, partition, instance
           , validBegin)
  , rz        char(3)  not null with default '?'
  , dbSys     char(4)  not null with default '?'
  , validBegin TIMESTAMP(6) WITHOUT TIME ZONE not null with default
  , validEnd   timestamp(6) WITHOUT TIME ZONE not null
                   with default '9999-12-30-00.00.00'
               constraint validCheck
                   check ( validEnd > validBegin )
  , loadTS     TIMESTAMP(6) WITHOUT TIME ZONE not null
                   with default '9999-12-30-00.00.00'
  , indexType char(1) not null
  , compress  char(1) not null
  , ixParts   smallint not null
  , ixPgSz    smallint not null
  , pieceSize int not null
  , pieceGB   real not null
  , limGB     real not null
  , tbCreator varchar(128)  not null
  , tbName    varchar(128)  not null
  , ts        char(8)  not null
  , tsTy      char(1)  not null
  , tsParts   smallint not null
  , tsClone   char(1)  not null
  , tsInst    smallInt not null
  , tsDsSize  int not null
  , tsDsGb    real not null
  , tsLimGB     real not null
  , tsLimPart   smallint not null
  , tsPgSz    smallint not null
  ,      UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE NOT NULL
        ,NLEVELS SMALLINT
  WITH DEFAULT NULL
        ,NPAGES INTEGER
  WITH DEFAULT NULL
        ,NLEAF INTEGER
  WITH DEFAULT NULL
        ,NACTIVE INTEGER
  WITH DEFAULT NULL
        ,SPACE INTEGER
  WITH DEFAULT NULL
        ,EXTENTS SMALLINT
  WITH DEFAULT NULL
        ,LOADRLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REBUILDLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REORGLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REORGINSERTS INTEGER
  WITH DEFAULT NULL
        ,REORGDELETES INTEGER
  WITH DEFAULT NULL
        ,REORGAPPENDINSERT INTEGER
  WITH DEFAULT NULL
        ,REORGPSEUDODELETES INTEGER
  WITH DEFAULT NULL
        ,REORGMASSDELETE INTEGER
  WITH DEFAULT NULL
        ,REORGLEAFNEAR INTEGER
  WITH DEFAULT NULL
        ,REORGLEAFFAR INTEGER
  WITH DEFAULT NULL
        ,REORGNUMLEVELS INTEGER
  WITH DEFAULT NULL
        ,STATSLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,STATSINSERTS INTEGER
  WITH DEFAULT NULL
        ,STATSDELETES INTEGER
  WITH DEFAULT NULL
        ,STATSMASSDELETE INTEGER
  WITH DEFAULT NULL
        ,COPYLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,COPYUPDATEDPAGES INTEGER
  WITH DEFAULT NULL
        ,COPYCHANGES INTEGER
  WITH DEFAULT NULL
        ,COPYUPDATELRSN CHARACTER(10) FOR BIT DATA
  WITH DEFAULT NULL
        ,COPYUPDATETIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,LASTUSED DATE
  WITH DEFAULT NULL
        ,IBMREQD CHARACTER(1) FOR MIXED DATA
                                                        NOT NULL
        ,DBID SMALLINT
                                                        NOT NULL
        ,"ISOBID" SMALLINT
                                                        NOT NULL
        ,"PSID" SMALLINT
                                                        NOT NULL
        ,"PARTITION" SMALLINT
                                                        NOT NULL
        ,INSTANCE SMALLINT
                                                        NOT NULL
  WITH DEFAULT 1
        ,TOTALENTRIES BIGINT
  WITH DEFAULT NULL
        ,DBNAME char(8) not null
        ,"NAME" VARCHAR(128) FOR MIXED DATA
                                                        NOT NULL
  WITH DEFAULT
        ,CREATOR VARCHAR(128) FOR MIXED DATA
                                                        NOT NULL
  WITH DEFAULT
        ,INDEXSPACE char(8) not null
  WITH DEFAULT
        ,REORGINDEXACCESS BIGINT
  WITH DEFAULT NULL
        ,DRIVETYPE CHARACTER(3) FOR MIXED DATA
                                                        NOT NULL
  WITH DEFAULT 'HDD'
        ,STATS101 BIGINT
  WITH DEFAULT NULL
        ,CONSTRAINT DSNISS_INSTANCE CHECK
        (INSTANCE = 1 OR INSTANCE = 2
        )
        )
  partition by (rz, dbSys, dbName)
  ( partition  1 ending ('?')
  , partition  2 ending ('RQ2')
  , partition  3 ending ('RR2', 'DBOF')
  , partition  4 ending ('RR2' )
  , partition  5 ending ('RZ2', 'DBOF', 'NI03A1P' )
  , partition  6 ending ('RZ2', 'DBOF'  )
  , partition  7 ending ('RZ2', 'DP2G'  )
  , partition  8 ending ('RZ2', 'DVBP', 'XBDNR001' )
  , partition  9 ending ('RZ2', 'DVBP', 'XBFC2002' )
  , partition 10 ending ('RZ2', 'DVBP' )
  , partition 11 ending ('RZ4'         )
  , partition 12 ending ('RZX')
  , partition 13 ending ('RZY')
  , partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
  , partition 15 ending ('RZZ')
  )
  in qz01a1p.a007A
    AUDIT NONE
    DATA CAPTURE changes
    CCSID      unicode
    NOT VOLATILE;

CREATE UNIQUE INDEX oa1p.iQZ007A1
  ON oa1p.tqz007gbGrIxStats
   (rz, dbsys, dbName, ts, indexSpace, partition, instance
      , validBegin )
   include(validEnd, updateStatstime, loadTs)
  partitioned
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
$/creStatsH/

$@ if 0 then  $@=/creStatG/ $***** create stats tables 5.1.16 *******
  xrop   TABLESPACE qz01a1p.a006a;
commit ;
  xrop   TABLESPACE qz01a1p.a007a;
commit ;
;
-- ts stats -----------
CREATE TABLESPACE a006a
    IN qz01a1p
    numparts 15
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255
;
--
CREATE TABLE OA1P.tqz006gbgrtsStats
  ( state     char(1)  not null with default '?'
  , rz        char(3)  not null with default '?'
  , dbSys     char(4)  not null with default '?'
  , tsType    char(1)  not null
  , tsTy      char(1)  not null
  , pgSize    smallint not null
  , segSize   smallint not null
  , parts     smallint not null
  , maxParts  smallint not null
  , dsSize    int not null
  , dsGB      real not null
  , limGB     real not null
  , limPart   smallint not null
  , obId      smallint not null
  , clone     char(1)  not null
  , tsInst    smallint not null
  , tbCr      varchar(128) not null
  , tb        varchar(128) not null
  , tbTy      char(1)      not null
  , tbObId      smallint     not null
  , loadTS        TIMESTAMP (6) WITHOUT TIME ZONE
                                   NOT NULL WITH DEFAULT
  , ORIGSTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
                                   NOT NULL WITH DEFAULT
  , UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
                                   NOT NULL WITH DEFAULT
        ,NACTIVE INTEGER
  WITH DEFAULT NULL
        ,NPAGES INTEGER
  WITH DEFAULT NULL
        ,EXTENTS SMALLINT
  WITH DEFAULT NULL
        ,LOADRLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REORGLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REORGINSERTS INTEGER
  WITH DEFAULT NULL
        ,REORGDELETES INTEGER
  WITH DEFAULT NULL
        ,REORGUPDATES INTEGER
  WITH DEFAULT NULL
        ,REORGUNCLUSTINS INTEGER
  WITH DEFAULT NULL
        ,REORGDISORGLOB INTEGER
  WITH DEFAULT NULL
        ,REORGMASSDELETE INTEGER
  WITH DEFAULT NULL
        ,REORGNEARINDREF INTEGER
  WITH DEFAULT NULL
        ,REORGFARINDREF INTEGER
  WITH DEFAULT NULL
        ,STATSLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,STATSINSERTS INTEGER
  WITH DEFAULT NULL
        ,STATSDELETES INTEGER
  WITH DEFAULT NULL
        ,STATSUPDATES INTEGER
  WITH DEFAULT NULL
        ,STATSMASSDELETE INTEGER
  WITH DEFAULT NULL
        ,COPYLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,COPYUPDATEDPAGES INTEGER
  WITH DEFAULT NULL
        ,COPYCHANGES INTEGER
  WITH DEFAULT NULL
        ,COPYUPDATELRSN CHARACTER(10) FOR BIT DATA
  WITH DEFAULT NULL
        ,COPYUPDATETIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,IBMREQD CHARACTER(1) FOR MIXED DATA
                                                        NOT NULL
        ,DBID SMALLINT
                                                        NOT NULL
        ,"PSID" SMALLINT
                                                        NOT NULL
        ,"PARTITION" SMALLINT
                                                        NOT NULL
        ,INSTANCE SMALLINT
                                                        NOT NULL
  WITH DEFAULT 1
        ,SPACE BIGINT
  WITH DEFAULT NULL
        ,TOTALROWS BIGINT
  WITH DEFAULT NULL
        ,DATASIZE BIGINT
  WITH DEFAULT NULL
        ,UNCOMPRESSEDDATASIZE BIGINT
  WITH DEFAULT NULL
        ,DBNAME char(8)
                                                        NOT NULL
  WITH DEFAULT
        ,"NAME" char(8)
                                                        NOT NULL
  WITH DEFAULT
        ,REORGCLUSTERSENS BIGINT
  WITH DEFAULT NULL
        ,REORGSCANACCESS BIGINT
  WITH DEFAULT NULL
        ,REORGHASHACCESS BIGINT
  WITH DEFAULT NULL
        ,HASHLASTUSED DATE
  WITH DEFAULT NULL
        ,DRIVETYPE CHARACTER(3) FOR MIXED DATA
                                                        NOT NULL
  WITH DEFAULT 'HDD'
        ,LPFACILITY CHARACTER(1) FOR MIXED DATA
  WITH DEFAULT NULL
        ,STATS01 BIGINT
  WITH DEFAULT NULL
      -- v11 columns
       , UPDATESIZE BIGINT
  WITH DEFAULT NULL
       , LASTDATACHANGE TIMESTAMP (6) WITHOUT TIME ZONE
             WITH DEFAULT NULL
        ,CONSTRAINT DSNTSS_INSTANCE CHECK
        (INSTANCE = 1 OR INSTANCE = 2
        )
  )
  in qz01a1p.a006a
  partition by (rz, dbSys, dbName)
  ( partition  1 ending ('?')
  , partition  2 ending ('RQ2')
  , partition  3 ending ('RR2', 'DBOF')
  , partition  4 ending ('RR2' )
  , partition  5 ending ('RZ2', 'DBOF', 'NI03A1P' )
  , partition  6 ending ('RZ2', 'DBOF'  )
  , partition  7 ending ('RZ2', 'DP2G'  )
  , partition  8 ending ('RZ2', 'DVBP', 'XBDNR001' )
  , partition  9 ending ('RZ2', 'DVBP', 'XBFC2002' )
  , partition 10 ending ('RZ2', 'DVBP' )
  , partition 11 ending ('RZ4'         )
  , partition 12 ending ('RZX')
  , partition 13 ending ('RZY')
  , partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
  , partition 15 ending ('RZZ')
  )
    AUDIT NONE
    DATA CAPTURE changes
    CCSID      unicode
    NOT VOLATILE;

CREATE UNIQUE INDEX oa1p.iQZ006a1
  ON oa1p.tqz006gbGrTsStats
   (rz, dbsys, dbName, name, partition, instance, updateStatsTime desc)
   include(state, origStatsTime, loadTS)
  partitioned
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
;    $*( ???????????
CREATE UNIQUE INDEX oa1p.iQZ006a2
  ON oa1p.tqz006gbGrTsStats
   (rz, dbsys, dbName, name, partition, instance, loadTS desc)
   include(state, origstatstime, updateStatsTime)
  partitioned
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  DEFER  YES
;   ???????? $*)
commit
;
-- index stats ---------------------------------------------------------
CREATE TABLESPACE a007a
    IN qz01a1p
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    numparts 15
    dssize 16 g
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255
;
--
CREATE TABLE OA1P.tqz007gbGrIxStats
  ( state     char(1)  not null with default '?'
  , rz        char(3)  not null with default '?'
  , dbSys     char(4)  not null with default '?'
  , indexType char(1) not null
  , compress  char(1) not null
  , ixParts   smallint not null
  , ixPgSz    smallint not null
  , pieceSize int not null
  , pieceGB   real not null
  , limGB     real not null
  , tbCreator varchar(128)  not null
  , tbName    varchar(128)  not null
  , ts        char(8)  not null
  , tsTy      char(1)  not null
  , tsParts   smallint not null
  , tsClone   char(1)  not null
  , tsInst    smallInt not null
  , tsDsSize  int not null
  , tsDsGb    real not null
  , tsLimGB     real not null
  , tsLimPart   smallint not null
  , tsPgSz    smallint not null
  ,      loadTs          TIMESTAMP (6) WITHOUT TIME ZONE
                               NOT NULL WITH DEFAULT
  ,      origSTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
                               NOT NULL WITH DEFAULT
  ,      UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
                               NOT NULL WITH DEFAULT
        ,NLEVELS SMALLINT
  WITH DEFAULT NULL
        ,NPAGES INTEGER
  WITH DEFAULT NULL
        ,NLEAF INTEGER
  WITH DEFAULT NULL
        ,NACTIVE INTEGER
  WITH DEFAULT NULL
        ,SPACE INTEGER
  WITH DEFAULT NULL
        ,EXTENTS SMALLINT
  WITH DEFAULT NULL
        ,LOADRLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REBUILDLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REORGLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,REORGINSERTS INTEGER
  WITH DEFAULT NULL
        ,REORGDELETES INTEGER
  WITH DEFAULT NULL
        ,REORGAPPENDINSERT INTEGER
  WITH DEFAULT NULL
        ,REORGPSEUDODELETES INTEGER
  WITH DEFAULT NULL
        ,REORGMASSDELETE INTEGER
  WITH DEFAULT NULL
        ,REORGLEAFNEAR INTEGER
  WITH DEFAULT NULL
        ,REORGLEAFFAR INTEGER
  WITH DEFAULT NULL
        ,REORGNUMLEVELS INTEGER
  WITH DEFAULT NULL
        ,STATSLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,STATSINSERTS INTEGER
  WITH DEFAULT NULL
        ,STATSDELETES INTEGER
  WITH DEFAULT NULL
        ,STATSMASSDELETE INTEGER
  WITH DEFAULT NULL
        ,COPYLASTTIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,COPYUPDATEDPAGES INTEGER
  WITH DEFAULT NULL
        ,COPYCHANGES INTEGER
  WITH DEFAULT NULL
        ,COPYUPDATELRSN CHARACTER(10) FOR BIT DATA
  WITH DEFAULT NULL
        ,COPYUPDATETIME TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
        ,LASTUSED DATE
  WITH DEFAULT NULL
        ,IBMREQD CHARACTER(1) FOR MIXED DATA
                                                        NOT NULL
        ,DBID SMALLINT
                                                        NOT NULL
        ,"ISOBID" SMALLINT
                                                        NOT NULL
        ,"PSID" SMALLINT
                                                        NOT NULL
        ,"PARTITION" SMALLINT
                                                        NOT NULL
        ,INSTANCE SMALLINT
                                                        NOT NULL
  WITH DEFAULT 1
        ,TOTALENTRIES BIGINT
  WITH DEFAULT NULL
        ,DBNAME char(8) not null
        ,"NAME" VARCHAR(128) FOR MIXED DATA
                                                        NOT NULL
  WITH DEFAULT
        ,CREATOR VARCHAR(128) FOR MIXED DATA
                                                        NOT NULL
  WITH DEFAULT
        ,INDEXSPACE char(8) not null
  WITH DEFAULT
        ,REORGINDEXACCESS BIGINT
  WITH DEFAULT NULL
        ,DRIVETYPE CHARACTER(3) FOR MIXED DATA
                                                        NOT NULL
  WITH DEFAULT 'HDD'
        ,STATS101 BIGINT
  WITH DEFAULT NULL
        ,CONSTRAINT DSNISS_INSTANCE CHECK
        (INSTANCE = 1 OR INSTANCE = 2
        )
        )
  partition by (rz, dbSys, dbName)
  ( partition  1 ending ('?')
  , partition  2 ending ('RQ2')
  , partition  3 ending ('RR2', 'DBOF')
  , partition  4 ending ('RR2' )
  , partition  5 ending ('RZ2', 'DBOF', 'NI03A1P' )
  , partition  6 ending ('RZ2', 'DBOF'  )
  , partition  7 ending ('RZ2', 'DP2G'  )
  , partition  8 ending ('RZ2', 'DVBP', 'XBDNR001' )
  , partition  9 ending ('RZ2', 'DVBP', 'XBFC2002' )
  , partition 10 ending ('RZ2', 'DVBP' )
  , partition 11 ending ('RZ4'         )
  , partition 12 ending ('RZX')
  , partition 13 ending ('RZY')
  , partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
  , partition 15 ending ('RZZ')
  )
  in qz01a1p.a007a
    AUDIT NONE
    DATA CAPTURE changes
    CCSID      unicode
    NOT VOLATILE;

CREATE UNIQUE INDEX oa1p.iQZ007a1
  ON oa1p.tqz007gbGrIxStats
   (rz, dbsys, dbName, ts, indexSpace, partition
       , instance, updateStatsTime desc)
   include(state, origStatstime, loadTs)
  partitioned
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
$/creStatG/

$@ if 0 then $@=/creSchw/ $***** create SchwellWert Tb ****************
xrop   TABLESPACE qz01a1p.a008A;
xrop   TABLESPACE qz01a1p.a008H;
xrop   TABLESPACE qz01a1p.a008E;
commit
;

CREATE TABLESPACE a008A
    IN QZ01A1P
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    maxpartitions 16
    dsSize 4 G
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255;
;
CREATE TABLESPACE a008H
    IN QZ01A1P
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    maxpartitions 16
    dsSize 4 G
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255;
--
CREATE TABLE OA1P.tqz008GbGrSchwelle
  ( prio            smallint not null
  ,     constraint cprio check (prio >= 0 and prio <= 99
                             or prio >= -99 and prio <= -70)
  , rz              CHAR(3) not null
  , dbSys           CHAR(4) not null
  , db              CHAR(8) not null
  , ts              CHAR(8) not null
  , part            smallint not null
  ,     constraint cpart check (part >= 0 and part <= 4096)
  , tsTy            char(1) not null
  , dsMin           int not null
  ,     constraint cDsMin check (dsMin between 0 and 999999)
  , schwelle        smallint not null
  ,     constraint cschwelle check ( schwelle between 0 and 100)
  , validBegin date NOT NULL WITH DEFAULT
  , validEnd   date NOT NULL WITH DEFAULT
  , erfasser        char(8) not null
  , grUse           smallint not null with default -99
  , grund           varchar(160) not null
  , rowBegin not null generated always as row begin
  , rowEnd   not null generated always as row end
  , rowtrans not null generated always as transaction start id
  , period business_time (validBegin, validEnd)
  , period system_time (rowBegin, rowEnd)
  , primary key (prio, rz, dbSys, db, ts, part, tsTy, dsMin
           , business_time without overlaps)
  )
  in QZ01A1P.a008A
    AUDIT NONE
    DATA CAPTURE changes
    CCSID      unicode
    NOT VOLATILE;

CREATE UNIQUE INDEX oa1p.iqz008S1
  ON oa1p.tqz008GbGrSchwelle
   (      rz, dbSys, db, ts, part, tsTy, dsMin, prio
        , business_time without overlaps )
   include (schwelle)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE INDEX oa1p.iqz008S2
  ON oa1p.tqz008GbGrSchwelle
   (rz || dbSys || left(db, 1), db, ts, part, tsTy, dsMin, prio
        , validBegin, validEnd, schwelle)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  not CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
CREATE TABLE oa1p.tqz008GbGrSchwHist
        like oa1p.tqz008GbGrSchwelle
  in QZ01A1P.a008H
    AUDIT NONE
    DATA CAPTURE changes
    CCSID      unicode
    NOT VOLATILE
;
  CREATE INDEX oa1p.Iqz008H1
    ON oa1p.tqz008GbGrSchwHist
     (prio, rz, dbSys, db, ts, part, tsTy, dsMin, validBegin)
    USING STOGROUP GSMS
    ERASE  NO
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
;
alter table oa1p.tqz008GbGrSchwelle add versioning
      use history table oa1p.tqz008GbGrSchwHist
;
CREATE TABLESPACE a008E
    IN QZ01A1P
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    maxpartitions 16
    dsSize 4 G
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255;
;
CREATE TABLE OA1P.tqz008GbGrSchweExp as
(
select
       gRZ rz
     , gSYS dbSys
     , DB
     , TS
     , PART
     , TSTY
     , DSMIN
     , SCHWELLE
     , char(value(INFO, ''), 50) info
     , smallint(value(DBLEN, 99)) dbLen
     , smallint(value(tsLen, 99)) TSLEN
     , VALIDBEGIN
     , VALIDEND
     from
( -- t
   select
      row_number() over(partition by gRz, gSys, db, ts, part
                                          , tsTy, dsMin
                          order by info desc
                   ) rn
     , g.*, s2.*
     from
( -- g
  select rz gRz, dbSys gSys
    from oa1p.tqz008gbGrSchwelle
    where prio = -99
) g join
( -- s2
   select right('  ' || prio, 3) || rzLen || syLen || dbLen || tsLen
       || case when part = 0 then 'a' else 'p' end
       || tsTy || right('     ' || dsMin, 5)
       || '?' || right('      ' || schwelle, 6)
       || '@' || left(strip(rz) ||'/'|| strip(dbSys) ||':'|| strip(db)
       || '.' || strip(ts) ||'#'|| strip(part) || tsTy || dsMin
            , 28) info
       , s1.*
       from
( -- s1
   select posStr(translate(left(rz   , 3)||'%', '%','*'), '%') -1 rzLen
       ,  posStr(translate(left(dbSys, 3)||'%', '%','*'), '%') -1 syLen
       ,  posStr(translate(left(db   , 8)||'%', '%','*'), '%') -1 dbLen
       ,  posStr(translate(left(ts   , 8)||'%', '%','*'), '%') -1 tsLen
       ,  s.*
       from oa1p.tqz008gbGrSchwelle s
       where prio >= 0
) s1
) s2
       on left(grz, rzLen) = left(rz, rzLen)
         and left(gSys, syLen) = left(dbSys, syLen)
) t
   where rn = 1 and validEnd > current date
)  data initially deferred refresh deferred
   maintained by system disable query optimization
  in QZ01A1P.a008E
    AUDIT NONE
    DATA CAPTURE changes
    CCSID      unicode
    NOT VOLATILE
;

CREATE INDEX oa1p.iqz008E1    -- unique not allowed on MQT|
  ON oa1p.tqz008GbGrSchweExp
   ( rz, dbSYs, info, db, ts, part, tsTy, dsMin
   , dbLen, tsLen, validBegin, validEnd, schwelle)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
  PIECESIZE 2 G
;
$/creSchw/

$@ if 0 then $@=/creSchwTri/
xrop   trigger oa1p.tqz008GbGrSchwelleIns ;
xrop   trigger oa1p.tqz008GbGrSchwelleUpd ;
xrop   trigger oa1p.tqz008GbGrSchwelleDel ;
create trigger oa1p.tqz008GbGrSchwelleIns after insert
    on oa1p.tqz008GbGrSchwelle
    for each statement mode db2sql
    refresh table oa1p.tqz008GbGrSchweExp
;
create trigger oa1p.tqz008GbGrSchwelleUpd after update
    on oa1p.tqz008GbGrSchwelle
    for each statement mode db2sql
    refresh table oa1p.tqz008GbGrSchweExp
;
create trigger oa1p.tqz008GbGrSchwelleDel after delete
    on oa1p.tqz008GbGrSchwelle
    for each statement mode db2sql
    refresh table oa1p.tqz008GbGrSchweExp
;
refresh table oa1p.tqz008GbGrSchweExp;
;
commit
;
$/creSchwTri/

$@ if 0 then $@=/creHist/
       -- ddl gbGrenzen
       -- History Tabelle für alte Version
       --  6. 1.16 neu
       --
set current sqlid = 'S100447';
CREATE TABLESPACE a006J
    IN qz01a1p
    numparts 15
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255
;
CREATE TABLE OA1P.tqz006gbgrTsHjjj
    like OA1P.tqz006gbgrTsStats
    in qz01A1p.a006J
    partition by (rz, dbSys, dbName)
    ( partition  1 ending ('?')
    , partition  2 ending ('RQ2')
    , partition  3 ending ('RR2', 'DBOF')
    , partition  4 ending ('RR2' )
    , partition  5 ending ('RZ2', 'DBOF', 'NI03A1P' )
    , partition  6 ending ('RZ2', 'DBOF'  )
    , partition  7 ending ('RZ2', 'DP2G'  )
    , partition  8 ending ('RZ2', 'DVBP', 'XBDNR001' )
    , partition  9 ending ('RZ2', 'DVBP', 'XBFC2002' )
    , partition 10 ending ('RZ2', 'DVBP' )
    , partition 11 ending ('RZ4'         )
    , partition 12 ending ('RZX')
    , partition 13 ending ('RZY')
    , partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
    , partition 15 ending ('RZZ')
    )
      AUDIT NONE
      DATA CAPTURE changes
      CCSID      unicode
      NOT VOLATILE;
;
CREATE UNIQUE INDEX oa1p.iQZ006j1
  ON oa1p.tqz006gbGrTsHjjj
   (rz, dbsys, dbName, name, partition, instance, updateStatsTime desc)
   include(state, loadTs, origStatsTime)
  partitioned
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
;
CREATE TABLESPACE a007J
    IN qz01a1p
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    numparts 15
    dssize 16 g
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255
;
CREATE TABLE OA1P.tqz007gbGrIxHjjj
       like  OA1P.tqz007gbGrIxStats
    in qz01A1p.a007j
    partition by (rz, dbSys, dbName)
    ( partition  1 ending ('?')
    , partition  2 ending ('RQ2')
    , partition  3 ending ('RR2', 'DBOF')
    , partition  4 ending ('RR2' )
    , partition  5 ending ('RZ2', 'DBOF', 'NI03A1P' )
    , partition  6 ending ('RZ2', 'DBOF'  )
    , partition  7 ending ('RZ2', 'DP2G'  )
    , partition  8 ending ('RZ2', 'DVBP', 'XBDNR001' )
    , partition  9 ending ('RZ2', 'DVBP', 'XBFC2002' )
    , partition 10 ending ('RZ2', 'DVBP' )
    , partition 11 ending ('RZ4'         )
    , partition 12 ending ('RZX')
    , partition 13 ending ('RZY')
    , partition 14 ending ('RZZ', 'DE0G', 'NI03A1P' )
    , partition 15 ending ('RZZ')
    )
      AUDIT NONE
      DATA CAPTURE changes
      CCSID      unicode
      NOT VOLATILE;
;
CREATE UNIQUE INDEX oa1p.iQZ007j1
  ON oa1p.tqz007gbGrIxHjjj
   (rz, dbsys, dbName, ts, indexSpace, partition
       , instance, updateStatsTime desc)
   include(state, loadTS, origstatstime)
  partitioned
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
;
commit
;
$/creHist/

$@ if 0 then $@=/cre666/
    ?rop tablespace qz01a1p.a666a;
    ?rop tablespace qz01a1p.a667a;
$/cre666/

$@ if 0 then  $@=/creStaTriNew/ $***** create stats ttiggr new *******
?rop   TRIGGER oa1p.qz006gbgrtsNewInsert;
CREATE TRIGGER oa1p.qz006gbgrtsNewInsert
 --   after insert ON oa1p.tqz006GbGrTsNew
      no cascade before insert ON oa1p.tqz006GbGrTsNew
      REFERENCING new AS n
      FOR EACH ROW MODE DB2SQL
         update oa1p.tqz006GbGrTsNew o
             set o.validEnd = n.validBegin
           where o.rz = n.rz and o.dbSys = n.dbSys
               and o.dbName = n.dbName and o.name = n.name
               and o.partition = n.partition
               and o.instance = n.instance
               and n.validBegin >  o.validBegin
               and n.validBegin <  o.validEnd
    ;
$/creStaTriNew/

$@ if 0 then $@=/creKey/ $***** create key table for mig **************
?ROP   TABLESPACE QZ01A1P.a666b;
?ROP   TABLESPACE QZ01A1P.a667b;
commit;
;?;
CREATE TABLESPACE a666b
    IN qz01a1p
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255
;
--
CREATE TABLE OA1P.tqz666gbgrtsKey
  (
    rz        char(3)  not null with default '?'
  , dbSys     char(4)  not null with default '?'
  , loadTS        TIMESTAMP (6) WITHOUT TIME ZONE
                                   NOT NULL WITH DEFAULT
  , UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
                                   NOT NULL WITH DEFAULT
        ,di      INTEGER not null
  )
  in qz01a1p.a666b
;
CREATE UNIQUE INDEX oa1p.iQZ666b1
  ON oa1p.tqz666gbGrTSKey
   (rz, dbsys, loadTs)
   include(updateStatstime, di)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
;
commit
;
set current sqlid = 'S100447';
CREATE TABLESPACE a667b
    IN qz01a1p
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      unicode
    DEFINE YES
    MAXROWS 255
;
--
CREATE TABLE OA1P.tqz667gbgrIxKey
  (
    rz        char(3)  not null with default '?'
  , dbSys     char(4)  not null with default '?'
  , loadTS        TIMESTAMP (6) WITHOUT TIME ZONE
                                   NOT NULL WITH DEFAULT
  , UPDATESTATSTIME TIMESTAMP (6) WITHOUT TIME ZONE
                                   NOT NULL WITH DEFAULT
        ,di      INTEGER not null
  )
  in qz01a1p.a667b
;
CREATE UNIQUE INDEX oa1p.iQZ667b1
  ON oa1p.tqz667gbGrIxKey
   (rz, dbsys, loadTs)
   include(updateStatstime, di)
  USING STOGROUP GSMS
  ERASE  NO
  GBPCACHE CHANGED
  CLUSTER
  BUFFERPOOL BP1
  CLOSE YES
  COPY NO
  DEFINE YES
$/creKey/
}¢--- A540769.WK.SQL(GBGRELAR) cre=2014-12-10 mod=2014-12-10-16.14.01 A540769 ---
select substr(db, 1, 8) "db"
      , substr(ts, 1, 8) "ts"
      , substr(tsTy
          || case when tsClone = 'N' and inst=1 and tsInst=1 then ''
                  else case when inst=tsInst then 'b' else 'c' end
                      || inst end, 1, 3) "yci"
      , substr(ix, max(1, length(ix) - 7), 8) "...index"
      , substr(case when part = 0 and tsParts = 0 then ''
            else case when part is null                 then ' ---'
                      when part = 0 and ix <> ' --ts--' then ' npi'
                      when part = 0 and tsTy = 'G'      then ' pbg'
                      when part = 0                     then ' ???'
                      else right('   ' || part, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
      , substr(right(case when actGB < 1000
                         then '    ' || dec(round(actGb, 2), 6, 2)
                         else '    ' || int(round(actGb, 0))
                     end, 7), 1, 7) "usedGB"
      , substr(right(case when limGb/100*schwelle < 1000
              then '    ' || dec(round(limGb/100*schwelle, 2), 6, 2)
              else '    ' || int(round(limGb/100*schwelle, 0))
                     end, 7), 1, 7) "schwGB"
      , substr(right('     ' || schwelle, 5), 1, 5) "schw%"
      , substr(right('      ' || int(round(limGb)), 6), 1, 6) "limGB"
      , date(updStats) "lastUpdate"
      , substr(schwinfo, 23, 18) "schwellwert key"
      , g.*
    from OA1P.vQZ006GbGrenz2 g
    where ( actGb > real(limGb / 100 * schwelle)
            or ( db like 'XB%' and actGb > 8.8) )
    and ( db not like 'XB%'
        or (updStats >= '2014-11-17-00.00.00'
        and (nActive, nPages, REORGINSERTS, space, totalRows, dataSize)
        not in ( select z.nActive, z.nPages, z.REORGINSERTS
                  , z.space, z.totalRows, z.dataSize
               from oa1p.tqz006GBGRTSSTATS z
               where    g.rz         = z.rz
                    and g.dbSys      = z.dbSys
                    and g.DB         = z.DBNAME
                    and g.ts         = z.NAME
                    and g.PART       = z.PARTITION
                    and g.INST       = z.INSTANCE
                    and z.loadTs     < '2014-11-17-00.00.00'
               order by z.loadTs desc
               fetch first 1 row only
     )  )  )
        and db <> 'DSNDB01'  -- directory ist anders
        and rz = 'RZ2' and dbSys = 'DVBP'
    order by db, ts, inst, ix, actGb desc, part
 -- fetch first 100 rows only
    ;x;
    order by actGb desc
;
--
-- db         = Datenbank
-- ts         = Tablespace
-- yci        = ts type oder s=Segmented,i=Simple p=PartitionedClassic,
--              clone und Instance (falls geKlont)
-- part/ tot  = betroffene PartitionsNummer / Total Partitonen des ts
-- ...index   = index oder --ts--
-- usedGB     = aktuelle benutzter Platz in GB
-- schwGB     = Schwellwert in GB
-- schw%      = Schwellwert in Prozent der Limite
-- limGB      = physische Limite in GB
-- lastUpdate = letzter update aus RealTimeStats
-- Schwellwert key = key des Schwellwerts in oa1p.tqz008GbGrSchwelle
}¢--- A540769.WK.SQL(GBGRENZE) cre=2013-09-09 mod=2016-05-29-17.42.58 A540769 ---
select substr(db, 1, 8) "db"
      , substr(ts, 1, 8) "ts"
      , substr(tsTy
          || case when tsClone = 'N' and inst=1 and tsInst=1 then ''
                  else case when inst=tsInst then 'b' else 'c' end
                      || inst end, 1, 3) "yci"
      , substr(ix, max(1, length(ix) - 7), 8) "...index"
      , substr(case when part = 0 and tsParts = 0 then ''
            else case when part is null                 then ' ---'
                      when part = 0 and ix <> ' --ts--' then ' npi'
                      when part = 0 and tsTy = 'G'      then ' pbg'
                      when part = 0                     then ' ???'
                      else right('   ' || part, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
      , substr(right(case when actGB < 1000
                         then '    ' || dec(round(actGb, 2), 6, 2)
                         else '    ' || int(round(actGb, 0))
                     end, 7), 1, 7) "usedGB"
      , substr(right(case when limGb/100*schwelle < 1000
              then '    ' || dec(round(limGb/100*schwelle, 2), 6, 2)
              else '    ' || int(round(limGb/100*schwelle, 0))
                     end, 7), 1, 7) "schwGB"
      , substr(right('     ' || schwelle, 5), 1, 5) "schw%"
      , substr(right('      ' || int(round(limGb)), 6), 1, 6) "limGB"
      , date(validBegin) "lastValid"
      , substr(schwinfo, 23, 18) "schwellwert key"
      , g.*
    from OA1P.vQZ006GbGrenze g
    where db <> 'DSNDB01'  -- directory ist anders
        and rz = 'RZ2' and dbSys = 'DBOF'
   --   and actGb > real(limGb / 100 * schwelle)
        and db = 'NI03A1P'
        and TS = 'A250A04'
   --   and updStats > '2014-11-15-00.00.00'
   --   and db like 'XC%'  --  and ts like 'A515%'
   --       db = 'QZ01A1P' --and ts = 'A112A'
   --       db = 'RP03A1P'  and ts = 'A307A'
 -- order by db, ts, inst,  part, ix -- actGb desc, part, ix
    order by nPages desc
 -- fetch first 100 rows only
    ;x;
    order by actGb desc
;
--
-- db         = Datenbank
-- ts         = Tablespace
-- yci        = ts type oder s=Segmented,i=Simple p=PartitionedClassic,
--              clone und Instance (falls geKlont)
-- part/ tot  = betroffene PartitionsNummer / Total Partitonen des ts
-- ...index   = index oder --ts--
-- usedGB     = aktuelle benutzter Platz in GB
-- schwGB     = Schwellwert in GB
-- schw%      = Schwellwert in Prozent der Limite
-- limGB      = physische Limite in GB
-- lastUpdate = letzter update aus RealTimeStats
-- Schwellwert key = key des Schwellwerts in oa1p.tqz008GbGrSchwelle
}¢--- A540769.WK.SQL(GBGRFUN1) cre=2014-07-14 mod=2014-07-30-09.45.53 A540769 ---
     -- versuch gbGr schwellwert Abfrage zu beschleunigen
     -- durch Konkatinierung aller schwellwerte und
     --        auswahl der richtigen mittels funktion
     -- gescheitert, weil Loop innerhalb der Funktion
     --        zuviel cpu braucht (aufruf der funktion war schnell)
     --
with i1 as
(
   select left(rz, 3) || left(dbSys, 4) || left(db, 8) || left(ts, 8)
          || left('' || schwelle, 6) i
       ,         translate(rz, '%', '*')       rzT
       ,  posStr(translate(rz, '%', '*'), '%') rzLen
       ,  posStr(translate(dbSys, '%', '*'), '%') syLen
       ,  posStr(translate(db   , '%', '*'), '%') dbLen
       ,  posStr(translate(ts   , '%', '*'), '%') tsLen
       , s.*
       from oa1p.tqz008gbGrSchwelle s
)
, i2 as
(
  select row_number() over(order by prio desc
           , case when rzLen = 0 then 9 else rzLen end desc
           , case when syLen = 0 then 9 else syLen end desc
           , case when dbLen = 0 then 9 else dbLen end desc
           , case when tsLen = 0 then 9 else tsLen end desc
           ) r, i1.*
    from i1
)
, i3 (i, l) as
(
  select varchar(i, 20000), 1  from i2 where r = 1
  union all select i3.i || i2.i
  , i3.l+1 from i3 join i2 on i2.r = i3.l+1
       where i3.l < 99999
)
, i as
(
  select i from i3 order by l desc fetch first row only
)
, s as
(
select A540769.gbgrSchwelle('RZZ', 'DE0G', 'MF01A1P', 'A150A'
         ,  i.i) si
    from sysibm.sysDummyE, i
)
select int(left(si, 6)) sw, si from s
;
select * from i
;
;x;
$#@
call sqlConnect dp4g
$<>
call sqlStmts
$<=¢
set current sqlid = 'S100447';
drop view OA1P.VQZ006GBGRENZE;
drop   function a540769.gbGrSchwelle(rz char(3), dbSys char(4)
        ,db char(8), ts char(8), all varchar(32000));
terminator^;
create function a540769.gbGrSchwelle(rz char(3), dbSys char(4)
        ,db char(8), ts char(8), all varchar(32000))
                returns varchar(80)
      deterministic
begin
  declare r1, s1, d1, t1 varchar(10) default '?';
  declare cx, px int default -28;
  one: $** loop begin
      set cx = cx + 29;
      if cx > length(all) then
      $** return '  2      defaut no search ??????';
          return '-- notfound ' || length(all) || ' cx ' || cx
            || ' la ' || r1 || '/' || s1 || ':' || d1
            || ' arg ' || rz || '/' || dbSys || ':' || db;
          end if;
  $*( if cx > 9975 then
      return 'len' || length(all) || ' cx ' || cx;
      end if;
  $*) set r1 =       substr(all, cx   , 3);
      set px = posStr(r1, '%');
      if (px > 0 and left(r1, px-1) <> left(rz, px-1))
          or (px <= 0 and rz <> r1) then
          goto one;
      end if;
      set s1 =       substr(all, cx+ 3, 4);
      set px = posStr(s1, '%');
      if (px > 0 and left(s1, px-1) <> left(dbSys, px-1))
        or (px <= 0 and dbSys <> s1) then
          goto one;
      end if;
 $*(  if cx > 9990 then
      return 'x ' || cx ||': ' || r1 || '/' || s1 || ':' || d1
          || ' arg ' || rz || '/' || dbSys || ':' || db;
      end if;
 $*)  set d1 =       substr(all, cx+ 7, 8);
      set px = posStr(d1, '%');
      if (px > 0 and left(d1, px-1) <> left(db, px-1))
        or (px <= 0 and db <> d1) then
          goto one;
      end if;
      set t1 =       substr(all, cx+15, 8);
      set px = posStr(t1, '%');
      if (px > 0 and left(t1, px-1) <> left(ts, px-1))
        or (px <= 0 and t1 <> ts) then
          goto one;
      end if;
      return substr(all, cx+23, 6)
           || ' key ' || '/' || s1 ||':'|| d1 ||'.'||t1;
      return 'f ' || cx ||': ' || r1 || '/' || s1 ||':'|| d1 ||'.'||t1;
$**   end; end loop one;
  return '--- notfound ---';
end
^
terminator;^
with s as
(
select A540769.gbgrSchwelle('RZZ', 'DE0G', 'MF01A1P', 'A150A'
         ,  'RZ2DBOF%2345678%2345678001   '
         || 'RZ2%           %2345678   002'
         || 'RZZDEVG%       %2345678   3  '
         || 'RZZDE0GNONO    %2345678  4   '
         || 'RZZDE0GMF01%   A150A     5   '
         || '%  %   %       %         6   '
         ) si
    from sysibm.sysDummyE
)
select int(left(si, 6)) sw, si from s
$!
$#out                                              20140714 20:02:01
sqlCode 0: set current sqlid = 'S100447'
sqlCode 0: drop view OA1P.VQZ006GBGRENZE
sqlCode 0: drop function a540769.gbGrSchwelle(rz char(3), dbSys char(4) ,d...
sqlCode 0: create function a540769.gbGrSchwelle(rz char(3), dbSys char(4) ...
S SI
5   5    key /DE0G:MF01%   .A150A
1 rows fetched: with s as ( select A540769.gbgrSchwelle('RZZ', 'DE0G', 'MF...
$#out                                              20140714 19:56:19
}¢--- A540769.WK.SQL(GBGRFUN2) cre=2014-07-29 mod=2014-07-30-09.38.07 A540769 ---
   -- versuch mit einer Table SQL Funktion
   --      die richtigen Zeitreihen schlüssel zu selektieren
   -- gescheitert, aus Performance Gründen:
   --      db2 generiert unsinnig Casts,
   --           die aus matching predicates stage2 predicates machen
   --
set current sqlid = 'S100447';
drop   function oa1p.fQz006Day(aRz char(3), aDbSys char(4)
        , ts  char(8), aTs char(8)
        , aNew date, aOld date, aStep smallint);
create function oa1p.fQz006Day(aRz char(3), aDbSys char(4)
        , aDb char(8), aTs char(8)
        , aNew date, aOld date, aStep smallint)
returns table (gDay date, rz char(3), dbSys char(4)
        , db char(8), ts char(8), inst smallInt, part smallInt
        , loadTs timestamp)
parameter ccsid unicode
return
with n (g, l, rz, dbSys, db, ts, inst, part, loadTs) as
(
  select aNew, 0
      ,  rz, dbSys, dbName, name, instance, partition
      , max(loadTs)
    from oa1p.tqz006GbGrTsSTats
    where rz = aRz and dbSys like aDbSys and  dbName like aDb
          and name like aTs
          and loadTs < timestamp(aNew + 1 day)
    group by rz, dbSys, dbName, name, instance, partition
  union all select g - aStep days, l+1
      ,  rz, dbSys, db, ts, inst, part
      ,  (select max(o.loadTs)
            from oa1p.tqz006GbGrTsSTats o
            where n.rz = o.rz
                and n.dbSys = o.dbSys
                and n.db    = o.dbName
                and n.ts    = o.name
                and n.inst  = o.instance
                and n.part  = o.partition
                and timestamp(n.g - (aStep-1) days, '00.00.00')
                            > o.loadTS
         )
    from n where l < 3000 and g - aStep days >= aOld
)
select g, rz, dbSys, db, ts, inst, part, loadTs from n
;
commit
;
select *
     from table(oa1p.fQz006Day('RZ4', 'DP4G', 'QZ01A1%', 'A006%'
         , current date, current date - 12 days, 3)) a
    order by db, ts, inst, part, gDay desc
;
;x;
set current path oa1p;
select dbName, name, instance, partition
         , fosFmte7(real(nActive) * pgSize * 1024) used
         , fosFmte7(totalRows) rows
         , loadTs, updateStatsTime, r.*
    from oa1p.tqz006GbGrTsSTats r
    where rz = 'RZ2' and dbSys = 'DP2G' and  dbName = 'DB2ADMIN'
                     and name = 'A013A'
    order by dbName, name, instance, partition, loadTs desc
;x;
select loadTs, dbSys, count(*)
     , sum(case when state = 'a' then 1 else 0 end) act
     , sum(case when state = 'd' then 1 else 0 end) del
    from oa1p.tqz006GbGrTsSTats r
    where rz = 'RZ2' -- and dbSys = 'DVBP'
    group by loadTs, dbSys
    order by 1 desc, dbSys
;x;
select *
    from oa1p.tqz006GbGrTsSTats r
    where rz = 'RZ2' and dbSys = 'DVBP'
         and dbName = 'XB058287'
    and loadTs < '2014-07-01-00.00.00'
    order by loadTs desc, name, partition
;x;
select dbName, count(*)
    from oa1p.tqz006GbGrTsSTats r
    where rz = 'RZ2' and dbSys = 'DVBP'
    and loadTs < '2014-07-01-00.00.00'
    group by dbName
;x;
delete from oa1p.tqz006GbGrTsSTats d
    where rz = 'RZ2' and dbSys = 'DP2G'
         and loadTS >= '2014-07-22-00.00.00' and state = 'd'
         and (select loadTs
           from oa1p.tqz006GbGrTsSTats b
               where d.rz = b.rz and d.dbSys = b.dbSys
                   and d.dbName    = b.dbName
                   and d.name      = b.name
                   and d.instance  = b.instance
                   and d.partition = b.partition
                   and d.loadTS    > b.loadTs
               order by b.loadTS desc
               fetch first 1 rows only
              ) < '2014-07-22-00.00.00'
;
commit
;
select dbName, name, instance, partition, loadTs
      , (select max(char(loadTs) || state)
           from oa1p.tqz006GbGrTsSTats b
               where d.rz = b.rz and d.dbSys = b.dbSys
                   and d.dbName    = b.dbName
                   and d.name      = b.name
                   and d.instance  = b.instance
                   and d.partition = b.partition
                   and d.loadTS    > b.loadTs
        )
    from oa1p.tqz006GbGrTsSTats d
    where rz = 'RZ2' and dbSys = 'DP2G'
        and state = 'd' and loadTs > '2014-07-01-00.00.00'
    order by 6 desc
 -- order by dbName, name, instance, partition
;x;
select loadTs,        count(*)
     , sum(case when state = 'a' then 1 else 0 end) act
     , sum(case when state = 'd' then 1 else 0 end) del
    from oa1p.tqz006GbGrTsSTats r
    where rz = 'RZ2' and dbSys = 'DP2G'
    group by loadTs
    order by 1 desc
;x;
;x;
select trunc_timestamp(loadTs, 'iw'), count(*)
     , sum(case when state = 'a' then 1 else 0 end) act
     , sum(case when state = 'd' then 1 else 0 end) del
    from oa1p.tqz006GbGrTsSTats r
    where rz = 'RZ4' and dbSys = 'DBOL'
    group by trunc_timestamp(loadTs, 'iw')
    order by 1 desc
;x;
;
;x;
set current path oa1p;
select trunc_timestamp(loadTs, 'iw'), count(*)
     , sum(case when state = 'a' then 1 else 0 end) act
     , sum(case when state = 'd' then 1 else 0 end) del
    from oa1p.tqz006GbGrTsSTats r
    where rz = 'RZ4' and dbSys = 'DBOL'
    group by trunc_timestamp(loadTs, 'iw')
    order by 1 desc
;x;
;x;
set current path oa1p;
select trunc_timestamp(loadTs, 'iw'), count(*)
     , sum(case when state = 'a' then 1 else 0 end) act
     , sum(case when state = 'd' then 1 else 0 end) del
    from oa1p.tqz006GbGrTsSTats r
    where rz = 'RZ4' -- and dbSys = 'DP4G'
    group by trunc_timestamp(loadTs, 'iw')
    order by 1 desc
;x;
select *
    from oa1p.tqz006tmp
    where p = 3 and  db = 'MF01A1P'
                     and ts = 'A150A'
    order by db, ts, partition, datum  desc
;x;
set current path oa1p;
with n (g, l, rz, dbSys, db, ts, inst, part, loadTs) as
(
  select current date, 0
      ,  rz, dbSys, dbName, name, instance, partition
      , max(loadTs)
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ4' and dbSys = 'DP4G' and  dbName = 'DB2ADMIN'
          and name = 'A009A'
    --    and partition <> 1
    group by rz, dbSys, dbName, name, instance, partition
  union all select g - 1 day, l+1
      ,  rz, dbSys, db, ts, inst, part
      ,  (select max(loadTs)
            from oa1p.tqz006GbGrTsSTats o
            where n.rz = o.rz
                and n.dbSys = o.dbSys
                and n.db    = o.dbName
                and n.ts    = o.name
                and n.inst  = o.instance
                and n.part  = o.partition
                and timestamp(n.g, '00.00.00') > o.loadTS
         )
    from n where l < 3000
)
select n.g, n.db, n.ts, n.inst, n.part
         , fosFmte7(real(j.nActive) * j.pgSize * 1024) used
         , fosFmte7(totalRows) rows
         , n.loadTs, j.updateStatsTime
         , j.*
    from n
      left join oa1p.tqz006GbGrTsSTats j
        on      j.rz = n.rz and j.dbSys = n.dbSys
            and j.dbName = n.db and j.Name = n.ts
            and j.partition = n.part
            and j.instance = n.inst
            and j.loadTs = n.loadTs
    where n.loadTs is not null and date(n.loadTs) = n.g
    order by n.rz, n.dbSys, n.db, n.ts,
             n.inst, n.part, n.g desc
;x;
select * from sysibm.sysTablespace where clone = 'Y'
;x;
select p, large, count(*)
    from oa1p.tqz006tmp
    group by p, large
;x;

  select *
    from oa1p.tqz006tmp
    where  db     = 'DB2ADMIN'
          and ts = 'APRSRC'
          and p = 3
    order by db, ts, partition, datum desc
;x;
select n.g, n.rz, n.dbSys, n.db, n.ts
         , fosFmte7(sum(real(j.nActive) * j.pgSize) * 1024) used
    --   , n.*, j.*
    from n
      left join oa1p.tqz006GbGrTsSTats j
        on      j.rz = n.rz and j.dbSys = n.dbSys
            and j.dbName = n.db and j.Name = n.ts
            and j.partition = n.part
            and j.instance = n.inst
            and j.loadTs = n.loadTs
 -- where n.loadTs is not null
    group by n.g, n.rz, n.dbSys, n.db, n.ts
    order by n.rz, n.dbSys, n.db, n.ts, n.g desc
;x;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
;x;
select *
    from oa1p.tqz006GbGrTsSTats
    order by rz, dbSys, dbName, name, instance, partition, loadts desc
}¢--- A540769.WK.SQL(GBGRHILO) cre=2016-01-06 mod=2016-01-07-14.01.53 A540769 ---
//A540769T JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,CLASS=M1,                               00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL                       00030003
//S1       EXEC PGM=DSNUTILB,PARM='DP4G,A540769T.LOAD'                  00020001
//SYSMAP   DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSERR   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL  DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN    DD *
EXEC SQL
DECLARE CURT CURSOR FOR
  select * from oa1p.tqz006gbgrTSStats
ENDEXEC
LOAD DATA INCURSOR CURT  LOG NO RESUME NO REPLACE
     COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
 SORTDEVT DISK
 WORKDDN(TSYUTS,TSOUTS)
 INTO TABLE  OA1P.TQZ006GBGRTSHJJJ
//A540769I JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,CLASS=M1,                               00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL                       00030003
//S1       EXEC PGM=DSNUTILB,PARM='DP4G,A540769I.LOAD'                  00020001
//SYSMAP   DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSERR   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL  DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN    DD *
EXEC SQL
DECLARE CURI CURSOR FOR
  select * from oa1p.tqz007gbgrIXStats
ENDEXEC
LOAD DATA INCURSOR CURI  LOG NO RESUME NO REPLACE
     COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
 SORTDEVT DISK
 WORKDDN(TSYUTS,TSOUTS)
 INTO TABLE  OA1P.TQZ007GBGRIXHJJJ
}¢--- A540769.WK.SQL(GBGRMICI) cre=2016-01-06 mod=2016-01-06-09.28.43 A540769 ---
with u as
(
  select 'old' on, rz, dbSys, dbName, ts, indexSpace,partition,instance
      , loadTs
      , updateStatsTime origStatsTime
      , timestamp('1010-10-10-10.10.10') updateStatsTime
      , INDEXTYPE
      , COMPRESS
      , IXPARTS
      , IXPGSZ
      , PIECESIZE
      , PIECEGB
      , LIMGB
      , TBCREATOR
      , TBNAME
      , TSTY
      , TSPARTS
      , TSCLONE
      , TSINST
      , TSDSSIZE
      , TSDSGB
      , TSLIMGB
      , TSLIMPART
      , TSPGSZ
      , NLEVELS
      , NPAGES
      , NLEAF
      , NACTIVE
      , SPACE
      , EXTENTS
      , LOADRLASTTIME
      , REBUILDLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGAPPENDINSERT
      , REORGPSEUDODELETES
      , REORGMASSDELETE
      , REORGLEAFNEAR
      , REORGLEAFFAR
      , REORGNUMLEVELS
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , LASTUSED
      , IBMREQD
      , DBID
      , ISOBID
      , PSID
      , TOTALENTRIES
      , NAME
      , CREATOR
      , REORGINDEXACCESS
      , DRIVETYPE
      , STATS101
    from oa1p.tqz007gbgrIxStats
    where rz ='RR2' and  dbSys = 'DBOF' and dbName = 'NI03A1P'
           and ts = 'A200A03'   and partition = 38
  union all select 'new' on
      , rz, dbSys, dbName, ts, indexSpace,partition,instance
      , loadTs
      , origStatsTime
      , updateStatsTime
      , INDEXTYPE
      , COMPRESS
      , IXPARTS
      , IXPGSZ
      , PIECESIZE
      , PIECEGB
      , LIMGB
      , TBCREATOR
      , TBNAME
      , TSTY
      , TSPARTS
      , TSCLONE
      , TSINST
      , TSDSSIZE
      , TSDSGB
      , TSLIMGB
      , TSLIMPART
      , TSPGSZ
      , NLEVELS
      , NPAGES
      , NLEAF
      , NACTIVE
      , SPACE
      , EXTENTS
      , LOADRLASTTIME
      , REBUILDLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGAPPENDINSERT
      , REORGPSEUDODELETES
      , REORGMASSDELETE
      , REORGLEAFNEAR
      , REORGLEAFFAR
      , REORGNUMLEVELS
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , LASTUSED
      , IBMREQD
      , DBID
      , ISOBID
      , PSID
      , TOTALENTRIES
      , NAME
      , CREATOR
      , REORGINDEXACCESS
      , DRIVETYPE
      , STATS101
    from oa1p.tqz667gbgrIxStats
    where rz ='RR2' and  dbSys = 'DBOF' and dbName = 'NI03A1P'
           and ts = 'A200A03'   and partition = 38
)
select * from u
   order by rz, dbSys, dbName, ts,indexSpace, partition, instance
       , loadTs desc, on
}¢--- A540769.WK.SQL(GBGRMICT) cre=2016-01-06 mod=2016-01-06-09.23.16 A540769 ---
with u as
(
  select 'old' on, rz, dbSys, dbName, name, partition, instance
      , loadTs
      , updateStatsTime origStatsTime
      , timestamp('1010-10-10-10.10.10') updateStatsTime
      , TSTYPE
      , TSTY
      , PGSIZE
      , SEGSIZE
      , PARTS
      , MAXPARTS
      , DSSIZE
      , DSGB
      , LIMGB
      , LIMPART
      , OBID
      , CLONE
      , TSINST
      , TBCR
      , TB
      , TBTY
      , TBOBID
      , NACTIVE
      , NPAGES
      , EXTENTS
      , LOADRLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGUPDATES
      , REORGUNCLUSTINS
      , REORGDISORGLOB
      , REORGMASSDELETE
      , REORGNEARINDREF
      , REORGFARINDREF
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSUPDATES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , IBMREQD
      , DBID
      , PSID
      , SPACE
      , TOTALROWS
      , DATASIZE
      , UNCOMPRESSEDDATASIZE
      , REORGCLUSTERSENS
      , REORGSCANACCESS
      , REORGHASHACCESS
      , HASHLASTUSED
      , DRIVETYPE
      , LPFACILITY
      , STATS01
      , UPDATESIZE
      , LASTDATACHANGE
    from oa1p.tqz006gbgrTsStats
    where rz ='RZ2' and  dbSys = 'DBOF' and dbName = 'NI03A1P'
           and name = 'A200A03'   and partition = 38
  union all select 'new' on
      , rz, dbSys, dbName, name, partition, instance
      , loadTs
      , origStatsTime
      , updateStatsTime
      , TSTYPE
      , TSTY
      , PGSIZE
      , SEGSIZE
      , PARTS
      , MAXPARTS
      , DSSIZE
      , DSGB
      , LIMGB
      , LIMPART
      , OBID
      , CLONE
      , TSINST
      , TBCR
      , TB
      , TBTY
      , TBOBID
      , NACTIVE
      , NPAGES
      , EXTENTS
      , LOADRLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGUPDATES
      , REORGUNCLUSTINS
      , REORGDISORGLOB
      , REORGMASSDELETE
      , REORGNEARINDREF
      , REORGFARINDREF
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSUPDATES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , IBMREQD
      , DBID
      , PSID
      , SPACE
      , TOTALROWS
      , DATASIZE
      , UNCOMPRESSEDDATASIZE
      , REORGCLUSTERSENS
      , REORGSCANACCESS
      , REORGHASHACCESS
      , HASHLASTUSED
      , DRIVETYPE
      , LPFACILITY
      , STATS01
      , UPDATESIZE
      , LASTDATACHANGE
    from oa1p.tqz666gbgrTsStats
    where rz ='RZ2' and  dbSys = 'DBOF' and dbName = 'NI03A1P'
           and name = 'A200A03'   and partition = 38
)
select * from u
   order by rz, dbSys, dbName, name, partition, instance
       , loadTs desc, on
}¢--- A540769.WK.SQL(GBGRMID2) cre=2014-07-24 mod=2014-07-24-17.17.06 A540769 ---
select p, dsSize, count(*)
    from oa1p.tqz006tmp
    where p=2
    group by p, dsSize
;c;
with u as
(
  select *
    from oa1p.tqz006tmp2 s
    where db like 'DB2PDB%'
        and hiUse <> (select hiUse
            from oa1p.tqz006tmp2 a
            where s.db = a.db and s.ts = a.ts
                 and s.partition = a.partition and s.datum > a.datum
            order by a.datum desc
            fetch first 1 rows only
            )
)
, d as
(
  select * from u d
    where not exists (select 1 from oa1p.tqz006GbGrTsStats s
         where s.rz = 'RZ4' and s.dbSys = 'DP4G'
             and s.dbName = d.db and s.name = d.ts
             and s.partition = d.partition
         )
     and not exists (select 1 from oa1p.tqz006tmp2 o
           where d.db = o.db and d.ts = o.ts
                and d.partition = o.partition and d.datum < o.datum
           )
)
, w as
(
  select * from u w
    where not exists (select 1 from u n
         where w.db = n.db and w.ts = n.ts
             and w.partition = n.partition
             and w.datum < n.datum
             and n.datum <= date(trunc_timestamp(
                 timestamp(w.datum)+9 days, 'iw')-3 days) -- next friday
         )
)
select * from w
    order by db, ts, partition, datum desc
;x;
     order by db, ts, partition, datum desc
select count(*)
    from oa1p.tqz006tmp2 s
    where db = 'DB2ADMIN'
;
with s (d, l) as
( select current date, 0 from sysibm.sysDummy1
  union all select d - 1 day, l+1 from s where l < 20
)
select d
      , date(trunc_timestamp(timestamp(d), 'iw')) "iw"
      , date(trunc_timestamp(timestamp(d)+6 days, 'iw')) "nxMon"
      , date(trunc_timestamp(timestamp(d)+9 days, 'iw')-3 days) "nxFri"
    from s
;x;
}¢--- A540769.WK.SQL(GBGRMID3) cre=2014-07-25 mod=2014-07-25-10.15.53 A540769 ---
select current date - 2 years
     , date(trunc_timestamp(timestamp(current date - 2 years + 3 days)
         , 'iw') - 3 days)
     , date(trunc_timestamp(
            trunc_timestamp(timestamp(current date - 5 years + 3 days)
         , 'iw') - 3 days, 'mon'))
    from sysibm.sysdummy1;x;
select *
    from oa1p.tqz006gbgrtsstats where state = 'D' ;d;
    where dssize <  0
    order by d.db, d.ts, d.partition, d.datum desc
;x;
select d.db, d.ts, d.partition, d.datum, w.datum
    from oa1p.tqz006tmp d
      left join oa1p.tqz006tmp w
        on w.p = 3 and w.db = d.db and w.ts = d.ts
            and w.partition = d.partition and w.datum = d.datum
    where d.p = 2 and d.db = 'QZ01A1P'
}¢--- A540769.WK.SQL(GBGRMIGI) cre=2016-01-05 mod=2016-01-06-11.41.58 A540769 ---
//A540769I JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,CLASS=M1,                               00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL                       00030003
//S1       EXEC PGM=DSNUTILB,PARM='DP4G,A540769I.LOAD'                  00020001
//SYSMAP   DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSERR   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL  DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN    DD *
EXEC SQL
DECLARE CURK CURSOR FOR
with g2 as
(
  select rz, dbSys, loadTs, max(updateStatsTime) stats
    , days(max(updateStatsTime)) - days(loadTs) d1
    from oa1p.tqz007gbgrIXHist
    -- where rz = 'RR2' -- and dbSys = 'DP2G'
    --   and loadTs > current timestamp - 1 month
    group by rz, dbSys, loadTs
)
select rz, dbSys, loadTs, stats updateStatsTime
    , value(case
           when stats <= loadTs then 0
           when stats - (d1-1) days <= loadTs       then d1-1
           when stats - (d1  ) days <= loadTs       then d1
           else d1+1 end, 0) di
    from g2
ENDEXEC
LOAD DATA INCURSOR CURK  LOG NO RESUME NO REPLACE
 SORTDEVT DISK
 WORKDDN(TSYUTS,TSOUTS)
 INTO TABLE  OA1P.TQZ667GBGRIXKEY

EXEC SQL
DECLARE CURT CURSOR FOR
with j2 as
(
  select t.rz, t.dbsys, t.dbName, t.ts, t.indexSpace
    , t.partition, t.instance, t.state
    , t.loadTs, t.updateStatsTime
    , ( select di from oa1p.tqz667gbgrIXKey k
          where t.rz  = k.rz and t.dbSys = k.dbSys
               and t.loadTs = k.loadTs ) di
    from oa1p.tqz007gbgrIXHist t
    where (t.rz, t.dbSys) in (select k.rz, k.dbSys
             from oa1p.tqz667gbgrIXKey k
             group by k.rz, k.dbSys)
)
, j as
(
  select j2.*
    , case when     updateStatsTime - di days <= loadTs
               then updateStatsTime - di days
           else loadTs end statsNew
    from j2
)
, k as
(
  select j.*
    , min(statsNew) over
      ( partition by rz, dbsys, dbName, ts, indexSpace
           , partition, instance
        order by loadTs, statsNew
        rows between 1 preceding and 1 preceding
      ) statsPrec
    from j
)
select  t.STATE
      , t.RZ
      , t.DBSYS
      , t.INDEXTYPE
      , t.COMPRESS
      , t.IXPARTS
      , t.IXPGSZ
      , t.PIECESIZE
      , t.PIECEGB
      , t.LIMGB
      , t.TBCREATOR
      , t.TBNAME
      , t.TS
      , t.TSTY
      , t.TSPARTS
      , t.TSCLONE
      , t.TSINST
      , t.TSDSSIZE
      , t.TSDSGB
      , t.TSLIMGB
      , t.TSLIMPART
      , t.TSPGSZ
      , t.LOADTS
      , t.UPDATESTATSTIME ORIGSTATSTIME
      , case when k.statsPrec is null or k.statsPrec < k.statsNew
                 then k.statsNew else k.loadTs end UPDATESTATSTIME
      , t.NLEVELS
      , t.NPAGES
      , t.NLEAF
      , t.NACTIVE
      , t.SPACE
      , t.EXTENTS
      , t.LOADRLASTTIME
      , t.REBUILDLASTTIME
      , t.REORGLASTTIME
      , t.REORGINSERTS
      , t.REORGDELETES
      , t.REORGAPPENDINSERT
      , t.REORGPSEUDODELETES
      , t.REORGMASSDELETE
      , t.REORGLEAFNEAR
      , t.REORGLEAFFAR
      , t.REORGNUMLEVELS
      , t.STATSLASTTIME
      , t.STATSINSERTS
      , t.STATSDELETES
      , t.STATSMASSDELETE
      , t.COPYLASTTIME
      , t.COPYUPDATEDPAGES
      , t.COPYCHANGES
      , t.COPYUPDATELRSN
      , t.COPYUPDATETIME
      , t.LASTUSED
      , t.IBMREQD
      , t.DBID
      , t.ISOBID
      , t.PSID
      , t.PARTITION
      , t.INSTANCE
      , t.TOTALENTRIES
      , t.DBNAME
      , t.NAME
      , t.CREATOR
      , t.INDEXSPACE
      , t.REORGINDEXACCESS
      , t.DRIVETYPE
      , t.STATS101
    from oa1p.tqz007gbgrIXHist t join k
      on t.rz = k.rz and t.dbSys = k.dbSys and t.loadTs = k.loadTs
          and t.dbName = k.dbName and t.ts = k.ts
          and t.indexSpace = k.indexSpace
          and t.partition = k.partition and t.instance = k.instance
          and t.updateStatsTime = k.updateStatsTime
ENDEXEC
LOAD DATA INCURSOR CURT  LOG NO RESUME NO REPLACE
     COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
 SORTDEVT DISK
 WORKDDN(TSYUTS,TSOUTS)
 INTO TABLE  OA1P.TQZ007GBGRIXSTATS
  LISTDEF TPLIST
    INCLUDE TABLESPACE QZ01A1P.A007A PARTLEVEL
---- COPY ----------------------------------------
  COPY LIST TPLIST COPYDDN(TCOPYD)
    FULL YES SCOPE PENDING
    PARALLEL
    SHRLEVEL CHANGE
}¢--- A540769.WK.SQL(GBGRMIGS) cre=2016-01-05 mod=2016-01-05-03.13.48 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with g as
(
  select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
      min(loadTs
    from oa1p.tqz006gbgrTsStats t
    group by t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
)
 --   on t.rz || '' = g.rz and t.dbSys = g.dbSys and t.loadTs = g.loadTs
    where t.rz = 'RR2' and t.dbSys = 'DP2G'
)
, j as
(
  select j2.*
    , case when updateStatsTime - di days <= loadTs
           then updateStatsTime - di days
           else loadTs end statsNew
    from j2
)
, k as
(
  select j.*
    , min(statsNew) over
      ( partition by rz, dbsys, dbName, name, partition, instance
        order by loadTs, statsNew
        rows between 1 preceding and 1 preceding
      ) statsPrec
    from j
)
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
    from k
;
select * from plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
select substr(db, 1, 8) "db"
     , substr(ts, 1, 8) "ts"
     , substr(ix, max(1, length(ix) - 7), 8) "...index"
     , substr(case when part = 0 then ''
           else value(right('   '||strip(char(part)), 4), '----')
            ||'/'|| value(right('   '||strip(char(tsParts)), 4),'----')
           end, 1, 9) "part/ tot"
     , substr(right('      ' || int(round(actGb)), 6), 1, 6) "usedGB"
     , substr(right('      ' || int(round(limGb/100*schwelle))
                   , 6), 1, 6) "schwGB"
     , substr(right('     ' || schwelle, 5), 1, 5) "schw%"
     , substr(right('      ' || int(round(limGb)), 6), 1, 6) "limGB"
     , tsTy "y"
     , substr(schwinfo, 7, 35) "schwellwert key"
    from oa1p.vQz006gbGrenze
    where actGb > real(limGb / 100 * schwelle)
        and rz = 'RZ2' and dbSys = 'DVBP'
    order by db, ts, part, ix
;
explain plan set queryno = 7   for
with s2 as
(
   select s.*
     , case when posStr(translate(rz, '%', '*'), '%') > 0
            then posStr(translate(rz, '%', '*'), '%') -1
            else 3 end rzLen
     , case when posStr(translate(dbSys, '%', '*'), '%') > 0
            then posStr(translate(dbSys, '%', '*'), '%') -1
            else 4 end dbSysLen
     , case when posStr(translate(db, '%', '*'), '%') > 0
            then posStr(translate(db, '%', '*'), '%') -1
            else 8 end dbLen
     , case when posStr(translate(ts, '%', '*'), '%') > 0
            then posStr(translate(ts, '%', '*'), '%') -1
            else 8 end tsLen
     from oa1p.tqz008GbGrSchwelle s
     where validBegin <= current date and validEnd > current date
)
, s3 as
(
   select s2.*
     , substr(right('  ' || prio, 3) || rzLen || dbSysLen || dbLen
             || tsLen || min(part, 1)
             || translate(tsTy, '  ', '%*')
             || right('      ' || dsMin, 6), 1, 15) ord
     from s2
)
, t2 as
(
  select rz, dbSys, dbName, name
             , partition, instance, max(loadTs) loadTs
    from OA1P.TQZ006GBGRTSSTATS a
    group by rz, dbSys, dbName, name, partition, instance

)
, t  as
(
  select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
      , smallInt(t.partition * t.limPart) partition
      , t.instance
      , min(t.limGb) limGb
      , min(t.parts) parts
      , min(t.clone) clone
      , min(t.tsInst) tsInst
      , real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
    from OA1P.TQZ006GBGRTSSTATS t join t2 a
        on t.rz = a.rz
          and t.dbSys = a.dbSys
          and t.dbName    = a.dbName
          and t.Name      = a.Name
          and t.partition = a.partition
          and t.instance  = a.instance
          and t.loadTS    = a.loadTs
    group by t.rz, t.dbSys, t.dbName, t.Name
      , smallInt(t.partition * t.limPart)
      , t.instance
)
, i2 as
(
  select rz, dbSys, dbName, ts, indexSpace
             , partition, instance, max(loadTs) loadTs
    from OA1P.TQZ007GbGrIxSTATS a
    group by rz, dbSys, dbName, ts, indexSpace, partition, instance

)
, i  as
(
  select i.*
      , real(real(nActive) * ixPgSz / 1048576) actGB
    from OA1P.TQZ007GBGRIxSTATS i join i2 a
        on i.rz = a.rz
          and i.dbSys = a.dbSys
          and i.dbName    = a.dbName
          and i.ts        = a.ts
          and i.indexSpace= a.indexSpace
          and i.partition = a.partition
          and i.instance  = a.instance
          and i.loadTS    = a.loadTs
)
, u (limGb, actGb, db, ts, ix, part, inst, rz, dbSys
     , tsTy, tsLimGb, tsParts, tsClone, tsInst) as
(
  select           limGb, actGb, dbName, name, ' --ts--'
          , partition, instance, rz, dbSys
          , tsTy, limGb,   parts,   clone  , tsInst
    from t
  union all select limGb, actGb, dbName, ts  , name
          , partition, instance, rz, dbSys
          , tsTy, tslimGb, tsParts, tsClone, tsInst
    from i
)
, s4 as
(
   select u.*
   ,(select max(s.ord
           ||  right('    ' || schwelle, 6)
           ||  strip(rz) || '/' || strip(dbSys) || ':' || strip(db)
           || '.' || strip(ts) || '#' || part || tsTy || dsMin)
        from s3 s
        where left(u.rz, s.rzLen) = left(s.rz, s.rzLen)
            and left(u.dbSys, s.dbSysLen) = left(s.dbSys, s.dbSysLen)
            and left(u.db, s.dbLen) = left(s.db, s.dbLen)
            and left(u.ts, s.tsLen) = left(s.ts, s.tsLen)
            and s.part in (0, u.part)
            and s.tsTy in (' ', '*', '%', u.tsTy)
            and s.dsMin <= u.tsLimGB
        ) schwInfo
    from u
)
, s as
(
  select int(case when schwInfo is not null
                  then int(substr(schwInfo, 16, 6))
                  else raise_error(70001, 'schwelle null ts='
                       || db || '.' || ts || '#' || part)
                  end) schwelle
         , s4.*
    from s4
 -- order by db, ts, part, ix
)
select substr(db, 1, 8) "db"
     , substr(ts, 1, 8) "ts"
     , substr(ix, max(1, length(ix) - 7), 8) "...index"
     , substr(case when part = 0 then ''
              else value(right('   '||strip(char(part)), 4), '----')
             ||'/'|| value(right('   '||strip(char(tsParts)), 4),'----')
        end, 1, 9) "part/ tot"
     , dec(actGb, 6, 0) "usedGB"
     , dec(limGb/100*schwelle, 6, 0) "schwGB"
     , dec(schwelle, 3, 0) "schw%"
     , dec(limGB, 6, 0) "limGB"
     , tsTy "y"
     , substr(schwinfo, 7, 25) "schwellwert key"
    from s
    where 1=1  -- and actGb > limGb / 100 * schwelle
      and rz = 'RZ2' and dbSys = 'DBOF' and db = 'MF01A1P'
      and actGb > limGb * schwelle / 100
    order by s.db, s.ts, s.part, s.ix
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(GBGRMIGT) cre=2016-01-04 mod=2016-01-06-11.19.11 A540769 ---
//A540769T JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,CLASS=M1,                               00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL                       00030003
//S1       EXEC PGM=DSNUTILB,PARM='DP4G,A540769T.LOAD'                  00020001
//SYSMAP   DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSERR   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL  DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN    DD *
EXEC SQL
DECLARE CURK CURSOR FOR
with g2 as
(
  select rz, dbSys, loadTs, max(updateStatsTime) stats
    , days(max(updateStatsTime)) - days(loadTs) d1
    from oa1p.tqz006gbgrTsHist
    -- where rz = 'RR2' and dbSys = 'DBOF'
    --   and loadTs > current timestamp - 1 month
    group by rz, dbSys, loadTs
)
select rz, dbSys, loadTs, stats updateStatsTime
    , value(case
           when stats <= loadTs                     then 0
           when stats - (d1-1) days <= loadTs       then d1-1
           when stats - (d1  ) days <= loadTs       then d1
           else d1+1 end, 0) di
    from g2
ENDEXEC
LOAD DATA INCURSOR CURK  LOG NO RESUME NO REPLACE
 SORTDEVT DISK
 WORKDDN(TSYUTS,TSOUTS)
 INTO TABLE  OA1P.TQZ666GBGRTSKEY
EXEC SQL
DECLARE CURT CURSOR FOR
with j2 as
(
  select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
    , t.loadTs, t.updateStatsTime, t.state
    , ( select di from oa1p.tqz666gbgrTsKey k
          where t.rz  = k.rz and t.dbSys = k.dbSys
               and t.loadTs = k.loadTs ) di
    from oa1p.tqz006gbgrTsHist t
    where (t.rz, t.dbSys) in (select k.rz, k.dbSys
             from oa1p.tqz666gbgrTsKey k
             group by k.rz, k.dbSys)
)
, j as
(
  select j2.*
    , case when updateStatsTime - di days <= loadTs
           then updateStatsTime - di days
           else loadTs end statsNew
    from j2
)
, k as
(
  select j.*
    , min(statsNew) over
      ( partition by rz, dbsys, dbName, name, partition, instance
        order by loadTs, statsNew
        rows between 1 preceding and 1 preceding
      ) statsPrec
    from j
)
select  t.STATE
      , t.RZ
      , t.DBSYS
      , t.TSTYPE
      , t.TSTY
      , t.PGSIZE
      , t.SEGSIZE
      , t.PARTS
      , t.MAXPARTS
      , t.DSSIZE
      , t.DSGB
      , t.LIMGB
      , t.LIMPART
      , t.OBID
      , t.CLONE
      , t.TSINST
      , t.TBCR
      , t.TB
      , t.TBTY
      , t.TBOBID
      , t.LOADTS
      , t.UPDATESTATSTIME ORIGSTATSTIME
      , case when k.statsPrec is null or k.statsPrec < k.statsNew
                 then k.statsNew else k.loadTs end UPDATESTATSTIME
      , t.NACTIVE
      , t.NPAGES
      , t.EXTENTS
      , t.LOADRLASTTIME
      , t.REORGLASTTIME
      , t.REORGINSERTS
      , t.REORGDELETES
      , t.REORGUPDATES
      , t.REORGUNCLUSTINS
      , t.REORGDISORGLOB
      , t.REORGMASSDELETE
      , t.REORGNEARINDREF
      , t.REORGFARINDREF
      , t.STATSLASTTIME
      , t.STATSINSERTS
      , t.STATSDELETES
      , t.STATSUPDATES
      , t.STATSMASSDELETE
      , t.COPYLASTTIME
      , t.COPYUPDATEDPAGES
      , t.COPYCHANGES
      , t.COPYUPDATELRSN
      , t.COPYUPDATETIME
      , t.IBMREQD
      , t.DBID
      , t.PSID
      , t.PARTITION
      , t.INSTANCE
      , t.SPACE
      , t.TOTALROWS
      , t.DATASIZE
      , t.UNCOMPRESSEDDATASIZE
      , t.DBNAME
      , t.NAME
      , t.REORGCLUSTERSENS
      , t.REORGSCANACCESS
      , t.REORGHASHACCESS
      , t.HASHLASTUSED
      , t.DRIVETYPE
      , t.LPFACILITY
      , t.STATS01
      , t.UPDATESIZE
      , t.LASTDATACHANGE
    from oa1p.tqz006gbgrTsHist t join k
      on t.rz = k.rz and t.dbSys = k.dbSys and t.loadTs = k.loadTs
          and t.dbName = k.dbName and t.name = k.name
          and t.partition = k.partition and t.instance = k.instance
          and t.updateStatsTime = k.updateStatsTime
ENDEXEC
LOAD DATA INCURSOR CURT  LOG NO RESUME NO REPLACE
     COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
 SORTDEVT DISK
 WORKDDN(TSYUTS,TSOUTS)
 INTO TABLE  OA1P.TQZ006GBGRTSSTATS

LISTDEF TPLIST
    INCLUDE TABLESPACE QZ01A1P.A006A PARTLEVEL
---- COPY ----------------------------------------
COPY LIST TPLIST COPYDDN(TCOPYD)
    FULL YES SCOPE PENDING
    PARALLEL
    SHRLEVEL CHANGE
}¢--- A540769.WK.SQL(GBGRMIGU) cre=2016-01-04 mod=2016-01-06-13.34.03 A540769 ---
//A540769I JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,CLASS=M1,                               00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL                       00030003
//S1       EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99                       00020001
//SYSTSIN  DD *
    DSN SYSTEM(DP4G)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=* DSN=A540769.TMP.TEXV(GRENZE)
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSINX   DD DISP=SHR,DSN=A540769.WK.SQL(FICDNEW)
//SYSIN    DD *
lock table oa1p.tqz007gbgrIxStats in exclusive mode;
update oa1p.tqz007gbgrIxStats t
    set updateStatsTime = loadTs
    where -- rz = 'RR2' and -- dbSys = 'DP2G' and
      ( select a.loadTS from oa1p.tqz007gbgrIxStats a
          where t.rz  = a.rz and t.dbSys = a.dbSys
            and t.dbName = a.dbName and t.ts   = a.ts
            and t.indexSpace = a.indexSpace
            and t.partition = a.partition and t.instance = a.instance
            and t.updateStatsTime < a.updateStatsTime
          order by a.updateStatsTime asc
          fetch first 1 rows only
      ) <= t.loadTS
;
commit
;
//A540769T JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,CLASS=M1,                               00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL                       00030003
//S1       EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99                       00020001
//SYSTSIN  DD *
    DSN SYSTEM(DP4G)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=* DSN=A540769.TMP.TEXV(GRENZE)
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSINX   DD DISP=SHR,DSN=A540769.WK.SQL(FICDNEW)
//SYSIN    DD *
lock table oa1p.tqz006gbgrTsStats in exclusive mode;
update oa1p.tqz006gbgrTsStats t
    set updateStatsTime = loadTs
    where -- rz = 'RR2' and -- dbSys = 'DP2G' and
      ( select a.loadTs from oa1p.tqz006gbgrTsStats a
          where t.rz  = a.rz and t.dbSys = a.dbSys
            and t.dbName = a.dbName and t.name = a.name
            and t.partition = a.partition and t.instance = a.instance
            and t.updateStatsTime < a.updateStatsTime
          order by a.updateStatsTime asc
          fetch first 1 rows only
      ) <= t.loadTs
;
commit
}¢--- A540769.WK.SQL(GBGRMIGV) cre=2016-01-04 mod=2016-01-06-10.57.20 A540769 ---
-- alte Version von migrate T für Spufi
delete from oa1p.tqz666gbgrTsKey;
insert into oa1p.tqz666gbgrTsKey
with g2 as
(
  select rz, dbSys, loadTs, max(updateStatsTime) stats
    , days(max(updateStatsTime)) - days(loadTs) d1
    from oa1p.tqz006gbgrTsStats
    where rz = 'RR2' and dbSys = 'DBOF'
    --   and loadTs > current timestamp - 1 month
    group by rz, dbSys, loadTs
)
select rz, dbSys, loadTs, stats
    , case when stats <= loadTs then 0
           when stats - (d1-1) days <= loadTs       then d1-1
           when stats - (d1  ) days <= loadTs       then d1
           else d1+1 end di
    from g2
;
with j2 as
(
  select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
    , t.loadTs, t.updateStatsTime, t.state
    , ( select di from oa1p.tqz666gbgrTsKey k
          where t.rz  = k.rz and t.dbSys = k.dbSys
               and t.loadTs = k.loadTs ) di
    from oa1p.tqz006gbgrTsStats t
    where (t.rz, t.dbSys) in (select k.rz, k.dbSys
             from oa1p.tqz666gbgrTsKey k
             group by k.rz, k.dbSys)
)
, j as
(
  select j2.*
    , case when state <> 'a' then loadTs
           when     updateStatsTime - di days <= loadTs
               then updateStatsTime - di days
           else loadTs end statsNew
    from j2
)
, k as
(
  select j.*
    , min(statsNew) over
      ( partition by rz, dbsys, dbName, name, partition, instance
        order by loadTs, statsNew
        rows between 1 preceding and 1 preceding
      ) statsPrec
    from j
)
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
    from k
;x; where stMod is null or loadTs is null or stats is null
select  t.STATE
      , t.RZ
      , t.DBSYS
      , t.TSTYPE
      , t.TSTY
      , t.PGSIZE
      , t.SEGSIZE
      , t.PARTS
      , t.MAXPARTS
      , t.DSSIZE
      , t.DSGB
      , t.LIMGB
      , t.LIMPART
      , t.OBID
      , t.CLONE
      , t.TSINST
      , t.TBCR
      , t.TB
      , t.TBTY
      , t.TBOBID
      , t.LOADTS
      , t.UPDATESTATSTIME ORIGSTATSTIME
      , case when k.statsPrec is null or k.statsPrec < k.statsNew
                 then k.statsNew else k.loadTs end UPDATESTATSTIME
      , t.NACTIVE
      , t.NPAGES
      , t.EXTENTS
      , t.LOADRLASTTIME
      , t.REORGLASTTIME
      , t.REORGINSERTS
      , t.REORGDELETES
      , t.REORGUPDATES
      , t.REORGUNCLUSTINS
      , t.REORGDISORGLOB
      , t.REORGMASSDELETE
      , t.REORGNEARINDREF
      , t.REORGFARINDREF
      , t.STATSLASTTIME
      , t.STATSINSERTS
      , t.STATSDELETES
      , t.STATSUPDATES
      , t.STATSMASSDELETE
      , t.COPYLASTTIME
      , t.COPYUPDATEDPAGES
      , t.COPYCHANGES
      , t.COPYUPDATELRSN
      , t.COPYUPDATETIME
      , t.IBMREQD
      , t.DBID
      , t.PSID
      , t.PARTITION
      , t.INSTANCE
      , t.SPACE
      , t.TOTALROWS
      , t.DATASIZE
      , t.UNCOMPRESSEDDATASIZE
      , t.DBNAME
      , t.NAME
      , t.REORGCLUSTERSENS
      , t.REORGSCANACCESS
      , t.REORGHASHACCESS
      , t.HASHLASTUSED
      , t.DRIVETYPE
      , t.LPFACILITY
      , t.STATS01
      , t.UPDATESIZE
      , t.LASTDATACHANGE
    from oa1p.tqz006gbgrTsStats t join k
      on t.rz = k.rz and t.dbSys = k.dbSys and t.loadTs = k.loadTs
          and t.dbName = k.dbName and t.name = k.name
          and t.partition = k.partition and t.instance = k.instance
          and t.updateStatsTime = k.updateStatsTime
;x;??????????
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
    from k
;x; where stMod is null or loadTs is null or stats is null
select statsNew, statsPrec, loadTs
    from k
    where statsPrec >= statsNew
;x;
select count(*), count(distinct loadTs)
    from k
;x; where stMod is null or loadTs is null or stats is null
        or stMod > loadTs or stMod <= loadTs - 1 day
        or d1 <> di
    order by 1 desc
;x;
with t (t) as
(
  select current timestamp from sysibm.sysDummy1
  union all select timestamp('1956-04-01-06.00.00')from sysibm.sysDummy1
  union all select timestamp('2015-01-01-01.00.00')from sysibm.sysDummy1
)
, j2 (f, t) as
(
  select f.t, t.t
    from t f, t t
    where f.t <= t.t
)
, j3 as
(
select j2.*
        , days(t) - days(f) di
        , days(t) - days(f)
           + (midnight_seconds(t) - midnight_seconds(f)
             + float(microsecond(t) - microsecond(f)) * 1e-6
             ) / 86400 dd
    from j2
)
, j as
(
  select j3.*
    , case when t - di days     between f - 1 day and f then di
           when t - (di-1) days between f - 1 day and f then di - 1
           when t - (di+1) days between f - 1 day and f then di + 1
      end dc
    from j3
)
select days(f), midnight_seconds(f), f
        , di, dc, t - dc days
        , t
        , decimal(dd, 20, 12)
        , decimal(mod(dd, 1), 20, 12)
        , dec(mod(dd, 1) * 86400, 12, 6)
    from j
;x;
(days(t)-days(b)) * 86400 "days*86400",
(days(t)-days(b)) * 86400
  + midnight_seconds(t) -  midnight_seconds(b) "days* midnight",
from sysibm.sysDummy1
select timestamp('2012-02-29-12:13:14   ')
    from sysibm.sysDummy1
;
declare global temporary table tst (tst timestamp);
insert into session.tst values (current timestamp);
insert into session.tst values ('2012-02-29 12:13:14   ');
insert into session.tst values ('2012-02-29-12:13:14   ');
select * from session.tst;
                 -- timestamp format: : statt . funktioniert nur <= v9|
}¢--- A540769.WK.SQL(GBGRMIG2) cre=2016-01-04 mod=2016-01-04-17.42.00 A540769 ---
with s as
(
  select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
    , t.loadTs, t.updateStatsTime, t.origStatstime
    , ( select k.loadTs
          from oa1p.tqz666gbgrTsStats k
        where t.rz = k.rz and t.dbSys = k.dbSys
          and t.dbName = k.dbName and t.name = k.name
          and t.partition = k.partition and t.instance = k.instance
          and t.updateStatsTime > k.updateStatsTime
        order by k.updateStatsTime desc
        fetch first 1 rows only
       ) loadPrec
    from oa1p.tqz666gbgrTsStats t
)
select *
    from s
    where loadPrec >= loadTs
;X;
with g2 as
(
  select rz, dbSys, loadTs, max(updateStatsTime) stats
    , days(max(updateStatsTime)) - days(loadTs) d1
    from oa1p.tqz006gbgrTsStats
    where rz = 'RZ2' and dbSys = 'DP2G'
         and loadTs > current timestamp - 1 month
    group by rz, dbSys, loadTs
)
, g  as
(
  select g2.*
    , case when stats <= loadTs then 0
           when stats - (d1-1) days <= loadTs       then d1-1
           when stats - (d1  ) days <= loadTs       then d1
           else d1+1 end di
    from g2
)
, j as
(
  select t.rz, t.dbsys, t.dbName, t.name, t.partition, t.instance
    , t.loadTs, t.updateStatsTime
    , case when t.updateStatsTime - g.di days <= t.loadTs
           then t.updateStatsTime - g.di days
           else t.loadTs end statsNew
    from oa1p.tqz006gbgrTsStats t join g
      on t.rz = g.rz and t.dbSys = g.dbSys and t.loadTs = g.loadTs
)
, k as
(
  select j.*
    , min(statsNew) over
      ( partition by rz, dbsys, dbName, name, partition, instance
        order by loadTs, statsNew
        rows between 1 preceding and 1 preceding
      ) statsPrec
    from j
)
select  t.STATE
      , t.RZ
      , t.DBSYS
      , t.TSTYPE
      , t.TSTY
      , t.PGSIZE
      , t.SEGSIZE
      , t.PARTS
      , t.MAXPARTS
      , t.DSSIZE
      , t.DSGB
      , t.LIMGB
      , t.LIMPART
      , t.OBID
      , t.CLONE
      , t.TSINST
      , t.TBCR
      , t.TB
      , t.TBTY
      , t.TBOBID
      , t.LOADTS
      , t.UPDATESTATSTIME ORIGSTATSTIME
      , case when k.statsPrec is null or k.statsPrec < k.statsNew
                 then k.statsNew else k.loadTs end UPDATESTATSTIME
      , t.NACTIVE
      , t.NPAGES
      , t.EXTENTS
      , t.LOADRLASTTIME
      , t.REORGLASTTIME
      , t.REORGINSERTS
      , t.REORGDELETES
      , t.REORGUPDATES
      , t.REORGUNCLUSTINS
      , t.REORGDISORGLOB
      , t.REORGMASSDELETE
      , t.REORGNEARINDREF
      , t.REORGFARINDREF
      , t.STATSLASTTIME
      , t.STATSINSERTS
      , t.STATSDELETES
      , t.STATSUPDATES
      , t.STATSMASSDELETE
      , t.COPYLASTTIME
      , t.COPYUPDATEDPAGES
      , t.COPYCHANGES
      , t.COPYUPDATELRSN
      , t.COPYUPDATETIME
      , t.IBMREQD
      , t.DBID
      , t.PSID
      , t.PARTITION
      , t.INSTANCE
      , t.SPACE
      , t.TOTALROWS
      , t.DATASIZE
      , t.UNCOMPRESSEDDATASIZE
      , t.DBNAME
      , t.NAME
      , t.REORGCLUSTERSENS
      , t.REORGSCANACCESS
      , t.REORGHASHACCESS
      , t.HASHLASTUSED
      , t.DRIVETYPE
      , t.LPFACILITY
      , t.STATS01
    from oa1p.tqz006gbgrTsStats t join k
      on t.rz = k.rz and t.dbSys = k.dbSys and t.loadTs = k.loadTs
          and t.dbName = k.dbName and t.name = k.name
          and t.partition = k.partition and t.instance = k.instance
          and t.updateStatsTime = k.updateStatsTime
;x;??????????
select count(*)
, sum(case when statsNew <= statsPrec then 1 else 0 end) bef
, count(distinct loadTs)
    from k
;x; where stMod is null or loadTs is null or stats is null
select statsNew, statsPrec, loadTs
    from k
    where statsPrec >= statsNew
;x;
select count(*), count(distinct loadTs)
    from k
;x; where stMod is null or loadTs is null or stats is null
        or stMod > loadTs or stMod <= loadTs - 1 day
        or d1 <> di
    order by 1 desc
;x;
with t (t) as
(
  select current timestamp from sysibm.sysDummy1
  union all select timestamp('1956-04-01-06.00.00')from sysibm.sysDummy1
  union all select timestamp('2015-01-01-01.00.00')from sysibm.sysDummy1
)
, j2 (f, t) as
(
  select f.t, t.t
    from t f, t t
    where f.t <= t.t
)
, j3 as
(
select j2.*
        , days(t) - days(f) di
        , days(t) - days(f)
           + (midnight_seconds(t) - midnight_seconds(f)
             + float(microsecond(t) - microsecond(f)) * 1e-6
             ) / 86400 dd
    from j2
)
, j as
(
  select j3.*
    , case when t - di days     between f - 1 day and f then di
           when t - (di-1) days between f - 1 day and f then di - 1
           when t - (di+1) days between f - 1 day and f then di + 1
      end dc
    from j3
)
select days(f), midnight_seconds(f), f
        , di, dc, t - dc days
        , t
        , decimal(dd, 20, 12)
        , decimal(mod(dd, 1), 20, 12)
        , dec(mod(dd, 1) * 86400, 12, 6)
    from j
;x;
(days(t)-days(b)) * 86400 "days*86400",
(days(t)-days(b)) * 86400
  + midnight_seconds(t) -  midnight_seconds(b) "days* midnight",
from sysibm.sysDummy1
select timestamp('2012-02-29-12:13:14   ')
    from sysibm.sysDummy1
;
declare global temporary table tst (tst timestamp);
insert into session.tst values (current timestamp);
insert into session.tst values ('2012-02-29 12:13:14   ');
insert into session.tst values ('2012-02-29-12:13:14   ');
select * from session.tst;
                 -- timestamp format: : statt . funktioniert nur <= v9|
}¢--- A540769.WK.SQL(GBGRMIKI) cre=2016-01-07 mod=2016-01-07-16.32.46 A540769 ---
//A540769I JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,CLASS=M1,                               00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL                       00030003
//S1       EXEC PGM=DSNUTILB,PARM='DP4G,A540769I.LOAD'                  00020001
//SYSMAP   DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSERR   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL  DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN    DD *
EXEC SQL
DECLARE CURT CURSOR FOR
select
        RZ
      , DBSYS
      , updateStatsTime validBegin
      , value ( ( select e.updateStatsTime
            from oa1p.tqz007GbGrIxHjjj e
            where o.rz = e.rz and o.dbSys = e.dbSys
                and o.dbName = e.dbName and o.ts = e.ts
                and o.indexSpace = e.indexSpace
                and o.partition = e.partition
                and o.instance  = e.instance
                and o.updateStatsTime < e.updateStatsTime
            order by e.updateStatsTime asc
            fetch first 1 row only
        ), '9999-12-30-00.00.00') validEnd
      , LOADTS
      , INDEXTYPE
      , COMPRESS
      , IXPARTS
      , IXPGSZ
      , PIECESIZE
      , PIECEGB
      , LIMGB
      , TBCREATOR
      , TBNAME
      , TS
      , TSTY
      , TSPARTS
      , TSCLONE
      , TSINST
      , TSDSSIZE
      , TSDSGB
      , TSLIMGB
      , TSLIMPART
      , TSPGSZ
      , ORIGSTATSTIME updateStatsTime
      , NLEVELS
      , NPAGES
      , NLEAF
      , NACTIVE
      , SPACE
      , EXTENTS
      , LOADRLASTTIME
      , REBUILDLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGAPPENDINSERT
      , REORGPSEUDODELETES
      , REORGMASSDELETE
      , REORGLEAFNEAR
      , REORGLEAFFAR
      , REORGNUMLEVELS
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , LASTUSED
      , IBMREQD
      , DBID
      , ISOBID
      , PSID
      , PARTITION
      , INSTANCE
      , TOTALENTRIES
      , DBNAME
      , NAME
      , CREATOR
      , INDEXSPACE
      , REORGINDEXACCESS
      , DRIVETYPE
      , STATS101
    from oa1p.tqz007gbgrIXHjjj o
    where state = 'a'
    --  and rz = 'RR2'
ENDEXEC
LOAD DATA INCURSOR CURT  LOG NO RESUME NO REPLACE
     COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
 SORTDEVT DISK
 WORKDDN(TSYUTS,TSOUTS)
 INTO TABLE  OA1P.TQZ007GBGRIXSTATS
  LISTDEF TPLIST
    INCLUDE TABLESPACE QZ01A1P.A007A PARTLEVEL
---- COPY ----------------------------------------
  COPY LIST TPLIST COPYDDN(TCOPYD)
    FULL YES SCOPE PENDING
    PARALLEL
    SHRLEVEL CHANGE
}¢--- A540769.WK.SQL(GBGRMIKT) cre=2016-01-07 mod=2016-01-07-16.33.35 A540769 ---
//A540769T JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,CLASS=M1,                               00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2ALL                       00030003
//S1       EXEC PGM=DSNUTILB,PARM='DP4G,A540769T.LOAD'                  00020001
//SYSMAP   DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSERR   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL  DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN    DD *
EXEC SQL
DECLARE CURT CURSOR FOR
select
        RZ
      , DBSYS
      , updateStatsTime validBegin
      , value ( ( select e.updateStatsTime
            from oa1p.tqz006GbGrTsHjjj e
            where o.rz = e.rz and o.dbSys = e.dbSys
                and o.dbName = e.dbName and o.name = e.name
                and o.partition = e.partition
                and o.instance  = e.instance
                and o.updateStatsTime < e.updateStatsTime
            order by e.updateStatsTime asc
            fetch first 1 row only
        ), '9999-12-30-00.00.00') validEnd
      , LOADTS
      , TSTYPE
      , TSTY
      , PGSIZE
      , SEGSIZE
      , PARTS
      , MAXPARTS
      , DSSIZE
      , DSGB
      , LIMGB
      , LIMPART
      , OBID
      , CLONE
      , TSINST
      , TBCR
      , TB
      , TBTY
      , TBOBID
      , origSTATSTIME updateStatsTime
      , NACTIVE
      , NPAGES
      , EXTENTS
      , LOADRLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGUPDATES
      , REORGUNCLUSTINS
      , REORGDISORGLOB
      , REORGMASSDELETE
      , REORGNEARINDREF
      , REORGFARINDREF
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSUPDATES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , IBMREQD
      , DBID
      , PSID
      , PARTITION
      , INSTANCE
      , SPACE
      , TOTALROWS
      , DATASIZE
      , UNCOMPRESSEDDATASIZE
      , DBNAME
      , NAME
      , REORGCLUSTERSENS
      , REORGSCANACCESS
      , REORGHASHACCESS
      , HASHLASTUSED
      , DRIVETYPE
      , LPFACILITY
      , STATS01
      , UPDATESIZE
      , LASTDATACHANGE
    from oa1p.tqz006GbGrTsHjjj o
    where state = 'a'
    --  and rz = 'RR2'
ENDEXEC
LOAD DATA INCURSOR CURT  LOG NO RESUME NO
        REPLACE COPYDDN(TCOPYD) STATISTICS INDEX(ALL)
 SORTDEVT DISK
 WORKDDN(TSYUTS,TSOUTS)
 INTO TABLE  OA1P.TQZ006GBGRTSSTATS

LISTDEF TPLIST
    INCLUDE TABLESPACE QZ01A1P.A006A PARTLEVEL
---- COPY ----------------------------------------
COPY LIST TPLIST COPYDDN(TCOPYD)
    FULL YES SCOPE PENDING
    PARALLEL
    SHRLEVEL CHANGE
//
insert into oa1p.tqz006GbGrTsNew
select
        RZ
      , DBSYS
      , updateStatsTime
      , value ( ( select e.updateStatsTime
            from oa1p.tqz006GbGrTsStats e
            where o.rz = e.rz and o.dbSys = e.dbSys
                and o.dbName = e.dbName and o.name = e.name
                and o.partition = e.partition
                and o.instance  = e.instance
                and o.updateStatsTime < e.updateStatsTime
            order by e.updateStatsTime asc
            fetch first 1 row only
        ), '9999-12-30-00.00.00') validEnd
      , LOADTS
      , TSTYPE
      , TSTY
      , PGSIZE
      , SEGSIZE
      , PARTS
      , MAXPARTS
      , DSSIZE
      , DSGB
      , LIMGB
      , LIMPART
      , OBID
      , CLONE
      , TSINST
      , TBCR
      , TB
      , TBTY
      , TBOBID
      , origSTATSTIME
      , NACTIVE
      , NPAGES
      , EXTENTS
      , LOADRLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGUPDATES
      , REORGUNCLUSTINS
      , REORGDISORGLOB
      , REORGMASSDELETE
      , REORGNEARINDREF
      , REORGFARINDREF
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSUPDATES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , IBMREQD
      , DBID
      , PSID
      , PARTITION
      , INSTANCE
      , SPACE
      , TOTALROWS
      , DATASIZE
      , UNCOMPRESSEDDATASIZE
      , DBNAME
      , NAME
      , REORGCLUSTERSENS
      , REORGSCANACCESS
      , REORGHASHACCESS
      , HASHLASTUSED
      , DRIVETYPE
      , LPFACILITY
      , STATS01
      , UPDATESIZE
      , LASTDATACHANGE
    from oa1p.tqz006GbGrTsStats o
    where state = 'a'
        and rz = 'RZZ' -- and dbSys = 'DE0G' and dbName like 'M%'
;
commit
;x;
--t current sqlid = 'S100447';
--ter table oa1p.tqz006GbGrTsNew
--   alter validEnd set default '9999-12-30-00.00.00';
insert into oa1p.tqz006GbGrTsNew
  ( rz, dbSys -- , validBegin
      , LOADTS
      , TSTYPE
      , TSTY
      , PGSIZE
      , SEGSIZE
      , PARTS
      , MAXPARTS
      , DSSIZE
      , DSGB
      , LIMGB
      , LIMPART
      , OBID
      , CLONE
      , TSINST
      , TBCR
      , TB
      , TBTY
      , TBOBID
      , updateSTATSTIME
      , NACTIVE
      , NPAGES
      , EXTENTS
      , LOADRLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGUPDATES
      , REORGUNCLUSTINS
      , REORGDISORGLOB
      , REORGMASSDELETE
      , REORGNEARINDREF
      , REORGFARINDREF
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSUPDATES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , IBMREQD
      , DBID
      , PSID
      , PARTITION
      , INSTANCE
      , SPACE
      , TOTALROWS
      , DATASIZE
      , UNCOMPRESSEDDATASIZE
      , DBNAME
      , NAME
      , REORGCLUSTERSENS
      , REORGSCANACCESS
      , REORGHASHACCESS
      , HASHLASTUSED
      , DRIVETYPE
      , LPFACILITY
      , STATS01
      , UPDATESIZE
      , LASTDATACHANGE
)
select
        '??'
      , '??'
  --  , current timestamp - 1 year
      , LOADTS
      , TSTYPE
      , TSTY
      , PGSIZE
      , SEGSIZE
      , PARTS
      , MAXPARTS
      , DSSIZE
      , DSGB
      , LIMGB
      , LIMPART
      , OBID
      , CLONE
      , TSINST
      , TBCR
      , TB
      , TBTY
      , TBOBID
      , updateSTATSTIME
      , NACTIVE
      , NPAGES
      , EXTENTS
      , LOADRLASTTIME
      , REORGLASTTIME
      , REORGINSERTS
      , REORGDELETES
      , REORGUPDATES
      , REORGUNCLUSTINS
      , REORGDISORGLOB
      , REORGMASSDELETE
      , REORGNEARINDREF
      , REORGFARINDREF
      , STATSLASTTIME
      , STATSINSERTS
      , STATSDELETES
      , STATSUPDATES
      , STATSMASSDELETE
      , COPYLASTTIME
      , COPYUPDATEDPAGES
      , COPYCHANGES
      , COPYUPDATELRSN
      , COPYUPDATETIME
      , IBMREQD
      , DBID
      , PSID
      , PARTITION
      , INSTANCE
      , SPACE
      , TOTALROWS
      , DATASIZE
      , UNCOMPRESSEDDATASIZE
      , DBNAME
      , NAME
      , REORGCLUSTERSENS
      , REORGSCANACCESS
      , REORGHASHACCESS
      , HASHLASTUSED
      , DRIVETYPE
      , LPFACILITY
      , STATS01
      , UPDATESIZE
      , LASTDATACHANGE
    from oa1p.tqz006GbGrTsNew
    where
            rz = 'RZZ' and dbSys = 'DE0G' and dbName = 'MF01A1P'
    fetch first 1 row only
;
commit; xx;
}¢--- A540769.WK.SQL(GBGRMISE) cre=2016-01-05 mod=2016-01-06-10.12.46 A540769 ---
select rz, dbSys, state, count(*) count
, sum(case when updateSTatsTime < loadTs      then 1 else 0 end) "u<l"
, sum(case when updateSTatsTime = loadTs      then 1 else 0 end) "u=l"
, sum(case when updateSTatsTime > loadTs      then 1 else 0 end) "u>l"
, sum(case when updateSTatsTime<origStatsTime then 1 else 0 end) "u<o"
, sum(case when updateSTatsTime=origStatsTime then 1 else 0 end) "u=o"
, sum(case when updateSTatsTime>origStatsTime then 1 else 0 end) "u>o"
, sum(case when origStatsTime < loadTs        then 1 else 0 end) "o<l"
, sum(case when origStatsTime = loadTs        then 1 else 0 end) "o=l"
, sum(case when origStatsTime > loadTs        then 1 else 0 end) "o>l"
, sum(case when year(updateSTatsTime) <1911 then 1 else 0 end) "u<1911"
, sum(case when year(updateSTatsTime) <2000 then 1 else 0 end) "u<2000"
, sum(case when year(updateSTatsTime) <2015 then 1 else 0 end) "u<2015"
, sum(case when year(updateSTatsTime) =2015 then 1 else 0 end) "u=2015"
, sum(case when year(updateSTatsTime) =2016 then 1 else 0 end) "u=2016"
, sum(case when year(updateSTatsTime) >2016 then 1 else 0 end) "u>2016"
  from oa1p.tqz667gbgrIxStats a
 --  where a.rz='RZZ' -- and a.dbSys = 'DBOF'
   --  and loadTS > '2016-01-05-08.53.52.138027'
  group by rz, dbSys, state
;x;
select rz, dbSys, state, count(*) count
, sum(case when updateSTatsTime < loadTs      then 1 else 0 end) "u<l"
, sum(case when updateSTatsTime = loadTs      then 1 else 0 end) "u=l"
, sum(case when updateSTatsTime > loadTs      then 1 else 0 end) "u>l"
, sum(case when updateSTatsTime<origStatsTime then 1 else 0 end) "u<o"
, sum(case when updateSTatsTime=origStatsTime then 1 else 0 end) "u=o"
, sum(case when updateSTatsTime>origStatsTime then 1 else 0 end) "u>o"
, sum(case when origStatsTime < loadTs        then 1 else 0 end) "o<l"
, sum(case when origStatsTime = loadTs        then 1 else 0 end) "o=l"
, sum(case when origStatsTime > loadTs        then 1 else 0 end) "o>l"
, sum(case when year(updateSTatsTime) <1911 then 1 else 0 end) "u<1911"
, sum(case when year(updateSTatsTime) <2000 then 1 else 0 end) "u<2000"
, sum(case when year(updateSTatsTime) <2015 then 1 else 0 end) "u<2015"
, sum(case when year(updateSTatsTime) =2015 then 1 else 0 end) "u=2015"
, sum(case when year(updateSTatsTime) =2016 then 1 else 0 end) "u=2016"
, sum(case when year(updateSTatsTime) >2016 then 1 else 0 end) "u>2016"
  from oa1p.tqz666gbgrTsStats a
 --  where a.rz='RZZ' -- and a.dbSys = 'DBOF'
   --  and loadTS > '2016-01-05-08.53.52.138027'
  group by rz, dbSys, state
;x;
with u as
( select rz, dbSys, dbName, ts, indexSpace, partition, instance
  from oa1p.tqz667gbgrIxStats a
  where -- a.rz='RRZ' -- and a.dbSys = 'DBOF'
       loadTS > '2016-01-05-14.53.52.138027'
       and state = 'd'
)
select *
  from oa1p.tqz667gbgrIxStats a
  where updateStatsTime > current timestamp - 555 days
    and (rz, dbSys, dbName, ts,indexSpace,partition, instance)
    in (select * from u)
  order by rz, dbSys, dbName, ts, indexSpace, partition, instance
      , updateSTatsTime desc
;X;
with u as
( select rz, dbSys, dbName, name,partition, instance
  from oa1p.tqz666gbgrTsStats a
  where a.rz='RZZ' -- and a.dbSys = 'DBOF'
       and loadTS > '2016-01-05-08.53.52.138027'
       and state = 'd'
)
select *
  from oa1p.tqz666gbgrTsStats a
  where loadTs > current timestamp - 5 days
    and (rz, dbSys, dbName, name,partition, instance)
    in (select * from u)
  order by rz, dbSys, dbName, name,partition, instance
      , updateSTatsTime desc
;X;
select rz, dbSys, state, count(*) count
  , sum(case when updateSTatsTime = origStatsTime then 1 else 0 end) or
  , sum(case when updateSTatsTime = loadTs        then 1 else 0 end) lo
  , sum(case when updateSTatsTime > loadTs        then 1 else 0 end) gt
  , sum(case when date(updateSTatsTime) = current date
               then 1 else 0 end) today
  , sum(case when date(updateSTatsTime) = current date - 1 day
               then 1 else 0 end) yestr
  , sum(case when updateSTatsTime < '1911-11-11-11.11.11'
               then 1 else 0 end) l11
  from oa1p.tqz666gbgrTsStats a
  where a.rz='RZZ' -- and a.dbSys = 'DBOF'
       and loadTS > '2016-01-05-08.53.52.138027'
  group by rz, dbSys, state
;x;
select *
  from oa1p.tqz666gbgrTsStats a
  where a.rz='RR2' -- and a.dbSys = 'DBOF'
       and loadTS > '2016-01-05-09.00.00.138027'
 fetch first 100 rows only
;x;
}¢--- A540769.WK.SQL(GBGRMITM) cre=2014-07-24 mod=2014-07-26-13.36.51 A540769 ---
-- temporary table for data migration by gbgrmiDa
--
set current sqlid = 'S100447';

    drop   TABLESPACE qz01A1p.A006T;
    commit;
    CREATE TABLESPACE A006T
           IN QZ01A1P
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP2
           CLOSE YES
           LOCKMAX SYSTEM
           SEGSIZE 64
           numParts   9
           dsSize 64 G
           GBPCACHE CHANGED
           DEFINE YES
           LOGGED
           TRACKMOD YES
           COMPRESS YES
           LOCKSIZE ANY
           MAXROWS 255
           CCSID UNICODE;

    CREATE TABLE OA1P.TQZ006Tmp
        (p smallint not null default 1
        ,DB CHARACTER(8) not null
        ,TS CHARACTER(8) not null
        ,PARTS smallint not null
        ,PARTITION smallint not null
        ,DSSIZE int not null
        ,LARGE CHARACTER(1) not null
        ,HIUse bigInt not NUll
        ,DATUM date not null
        )
        partition by (p)
        (partition 1 ending at (1)
        ,partition 2 ending at (2)
        ,partition 3 ending at (3)
        ,partition 4 ending at (4)
        ,partition 5 ending at (5)
        ,partition 6 ending at (6)
        ,partition 7 ending at (7)
        ,partition 8 ending at (8)
        ,partition 9 ending at (9)
        )
        IN QZ01A1P.A006T
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID UNICODE;

    CREATE INDEX OA1P.Iqz006I1
           ON OA1P.TQZ006TMP
          (p, db, ts, partition, datum)
           partitioned
           CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE YES
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           GBPCACHE CHANGED;
commit;
}¢--- A540769.WK.SQL(GBGRNEW) cre=2015-12-14 mod=2015-12-14-15.43.57 A540769 ---
set current application compatibility 'V11R1';
with u (l1, l2, rz, dbSys, db, ts, pa, inst
       , state, load, orig, upd
       , preState, preLoad, preOrig, preUpd, lus
       ) as
(
  select 0, 'a', rz, dbSys, dbName, name, partition, instance, ' '
      , timestamp('1111-11-11-11.11.11')
      , timestamp('1111-11-11-11.11.11')
      , timestamp('1111-11-11-11.11.11')
      , ' '
      , cast(null as timestamp)
      , cast(null as timestamp)
      , cast(null as timestamp)
      , cast('' as char(53))
    from OA1P.TQZ006GBGRTSSTATS
    where rz = 'RR2'  --and dbSys = 'DBOF'
       --  and dbName like 'MF01A%'
    group by rz, dbSys, dbName, name, partition, instance
  union all select l1+1, 'b', rz, dbSys, db, ts, pa, inst
      , state, load, orig, upd, preState, preLoad, preOrig, preUpd
      , ( select char(n.loadTs) || char(n.updateStatsTime) || n.state
            from OA1P.TQZ006GBGRTSSTATS n
            where u.rz = n.rz and u.dbSys = n.dbSys
                and u.db = n.dbName and u.ts = n.name
                and u.pa = n.partition and u.inst = n.instance
                and u.load <= n.loadTs
                and (u.load < n.loadTs or u.orig < n.updateStatsTime)
            order by n.loadTs asc, n.updateStatsTime asc
            fetch first 1 rows only
        ) lus
    from u where l1 < 99999 and l2 in ( 'a', 'd')
  union all select l1+1, 'c', rz, dbSys, db, ts, pa, inst
      , substr(lus, 53)
      , timestamp(substr(lus,  1, 26))
      , timestamp(substr(lus, 27, 26))
      , cast(null as timestamp)
      , state, load, orig, upd, lus
    from u
    where l1 < 99999 and l2 = 'b' and lus is not null
  union all select l1+1, 'd', rz, dbSys, db, ts, pa, inst
      , state, load, orig
      , case when orig > preUpd and orig <= load then orig
             when   orig -(  days(orig)-days(load)) days > preUpd
               and  orig -(  days(orig)-days(load)) days <= load
               then orig -(  days(orig)-days(load)) days
             when   orig -(1+days(orig)-days(load)) days > preUpd
               and  orig -(1+days(orig)-days(load)) days <= load
               then orig -(1+days(orig)-days(load)) days
             when load > preUpd then load
             else  preUpd + 1e-6 seconds end
      , preState, preLoad, preOrig, preUpd, lus
    from u
    where l1 < 99999 and l2 = 'c' and lus is not null
)
select load, state, count(*)
   , sum(case when upd = orig then 0 else 1 end) neq
   , sum(case when state = 'd' and preState = 'd' then 1
              when state = preState and orig = preOrig then 1
              else 0 end) del
   , sum(case when orig < preOrig then 1 else 0 end) origLsPre
    from u
    where l2 = 'd'
    group by cube(load, state)
    order by load, state
-- er by rz, dbSys, db, ts, pa, inst, l1
;
;x
?elect current timestamp
     , timestamp(date('01.04.1956'), time(current timestamp))
     , timestamp(date(current timestamp), time('13:12:11'))
    from sysibm.sysDummy1 ;
with d (orig, load, preUpd) as
(
    select current timestamp + (9*86400-1234.333) seconds
          , current timestamp
          , current timestamp - 86123.45479 seconds
        from sysibm.sysDummy1
)
select
        case when orig <= load and orig > preUpd then orig
             when   orig -(days(orig)-days(load)) days <= load
               and  orig -(days(orig)-days(load)) days > preUpd
               then orig -(days(orig)-days(load)) days
             when   orig -(1+days(orig)-days(load)) days <= load
               and  orig -(1+days(orig)-days(load)) days > preUpd
               then orig -(1+days(orig)-days(load)) days
             when load >= preUpd then preUpd + 1e-6 seconds
             else load
        end
       , d.*
from d;
?elect rz, dbSys, del, sum(cBad) cBad
         , sum(case when left(del, 1) <> '-' then 1 else 0 end) delAft
         , count(*), sum(cnt) cnt
from
( -- d give reason to delete or not to
select case when cnt <= 0 then '-bad0'
            when aftLoad is null then '-aftNull ' || befState
            when aftLoad > '2015-10-22-00.00.00'
                                 then '-aftLoad> ' || befState||aftState
            when befState = 'd' and aftState = 'd' then 'dd'
            when befState <> aftState then '-state '||befState||aftState
            when befUpd = aftUpd then '=='||befState
            when befUpd > aftUpd then '=>'||befState
            else '-else ' ||befState || aftState end del
      , t.*
from
( -- t decode s
  select s.*
      , case when befLUS <> '' then timestamp(substr(befLUS, 1, 26))
             else null end befLoad
      , case when befLUS <> '' then timestamp(substr(befLUS, 27, 26))
             else null end befUpd
      , case when befLUS <> '' then substr(befLUS, 53)
             else null end befState
      , case when aftLUS <> '99' then timestamp(substr(aftLUS, 1, 26))
             else null end aftLoad
      , case when aftLUS <> '99' then timestamp(substr(aftLUS, 27, 26))
             else null end aftUpd
      , case when aftLUS <> '99' then substr(aftLUS, 53)
             else null end aftState
from
( -- s keys with duplicates
  select rz, dbSys, dbName, name, partition, instance
      , count(*) cnt
      , sum(case when loadTs <  '2015-10-14-00.00.00'
                   or loadTs >= '2015-10-16-00.00.00'
                 then 0 else 1 end) cBad
      , max(case when loadTs <  '2015-10-14-00.00.00'
                     then char(loadTs) || char(updateStatsTime) || state
                     else '' end) befLUS
      , min(case when loadTs >= '2015-10-16-00.00.00'
                     then char(loadTs) || char(updateStatsTime) || state
                     else '99' end) aftLUS
      , max(loadTs) loadFr, max(loadTs) loadTo
    from OA1P.TQZ006GBGRTSSTATS
     -- where rz = 'RZ2'  and dbSys = 'DBOF'
      -- and dbName like 'MF01A%'
    group by rz, dbSys, dbName, name, partition, instance
) s
) t
) d
group by rollup(rz, dbSys, del)
order by rz, dbSys, del
--der by rz, dbSys, dbName, name, partition, instance
;
}¢--- A540769.WK.SQL(GBGRREO) cre=2016-01-11 mod=2016-01-11-15.43.41 A540769 ---
select dbName, name, partition, min(validBegin), reorgLastTime
    from OA1P.tQZ006gbgrTsStats s
    where rz = 'RZ2' and dbSys = 'DBOF'
        and dbName = 'XR01A1P' and name = 'A101A'
        and validBegin > current timestamp - 3 month
    group by dbName, name ,partition, reorgLastTime
    having  min(validBegin) > current timestamp - 1 month
    order by dbName, name ,partition, reorgLastTime desc
;x;
    order
      , substr(ts, 1, 8) "ts"
      , substr(tsTy
          || case when tsClone = 'N' and inst=1 and tsInst=1 then ''
                  else case when inst=tsInst then 'b' else 'c' end
                      || inst end, 1, 3) "yci"
      , substr(ix, max(1, length(ix) - 7), 8) "...index"
      , substr(case when part = 0 and tsParts = 0 then ''
            else case when part is null                 then ' ---'
                      when part = 0 and ix <> ' --ts--' then ' npi'
                      when part = 0 and tsTy = 'G'      then ' pbg'
                      when part = 0                     then ' ???'
                      else right('   ' || part, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
      , substr(right(case when actGB < 1000
                         then '    ' || dec(round(actGb, 2), 6, 2)
                         else '    ' || int(round(actGb, 0))
                     end, 7), 1, 7) "usedGB"
      , substr(right(case when limGb/100*schwelle < 1000
              then '    ' || dec(round(limGb/100*schwelle, 2), 6, 2)
              else '    ' || int(round(limGb/100*schwelle, 0))
                     end, 7), 1, 7) "schwGB"
      , substr(right('     ' || schwelle, 5), 1, 5) "schw%"
      , substr(right('      ' || int(round(limGb)), 6), 1, 6) "limGB"
      , date(updStats) "lastUpdate"
      , substr(schwinfo, 23, 18) "schwellwert key"
      , g.*
    from OA1P.vQZ006GbGrenze g
    where db <> 'DSNDB01'  -- directory ist anders
        and rz = 'RR2' and dbSys = 'DBOF'
    --  and actGb > real(limGb / 100 * schwelle)
        and db = 'WU99A1P'
   --   and TS = 'SDPM0012'
   --   and updStats > '2014-11-15-00.00.00'
   --   and db like 'XC%'  --  and ts like 'A515%'
   --       db = 'QZ01A1P' --and ts = 'A112A'
   --       db = 'RP03A1P'  and ts = 'A307A'
    order by db, ts, inst,           actGb desc, part, ix
 -- fetch first 100 rows only
    ;x;
    order by actGb desc
;
--
-- db         = Datenbank
-- ts         = Tablespace
-- yci        = ts type oder s=Segmented,i=Simple p=PartitionedClassic,
--              clone und Instance (falls geKlont)
-- part/ tot  = betroffene PartitionsNummer / Total Partitonen des ts
-- ...index   = index oder --ts--
-- usedGB     = aktuelle benutzter Platz in GB
-- schwGB     = Schwellwert in GB
-- schw%      = Schwellwert in Prozent der Limite
-- limGB      = physische Limite in GB
-- lastUpdate = letzter update aus RealTimeStats
-- Schwellwert key = key des Schwellwerts in oa1p.tqz008GbGrSchwelle
}¢--- A540769.WK.SQL(GBGRREO1) cre=2014-09-02 mod=2014-09-02-07.45.53 A540769 ---
     -- index space und Details für 1 StichDatum
set current path oa1p;
with i2 as
(
   select rz, dbSys, dbName, ts, indexSpace, instance, partition
       , max(loadTs) loadTs
     from oa1p.tqz007GbGrIxSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
        and dbName = 'NI03A1P' and ts = 'A250A04'
       --      and partition = 507
    group by rz, dbSys, dbName, ts, indexSpace, instance, partition
        , reorgLastTime, rebuildLastTime
)
, i as
(
   select r.*
     from i2
      join oa1p.tqz007GbGrIxSTats r
        on i2.loadTS is not null and r.state <> 'd'
                and i2.rz        = r.rz
                and i2.dbSys     = r.dbSys
                and i2.dbName    = r.dbName
                and i2.ts        = r.ts
                and i2.indexSpace= r.indexSpace
                and i2.instance  = r.instance
                and i2.partition = r.partition
                and i2.loadTs    = r.loadTS
)
select rz, dbSys, dbName, ts, indexSpace
      , substr(tsTy
          || case when tsClone = 'N' and instance=1 and tsInst=1 then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and tsParts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0  then ' npi'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
      , substr(fosFmte7(totalEntries), 1, 7) rows
      , substr(name, 1, 30) "index"
      , updateStatsTime, i.*
    from i
    order by rz, dbSys, dbName, ts, indexSpace, instance, partition
           , loadTs desc
;
}¢--- A540769.WK.SQL(GBGRREO2) cre=2014-09-02 mod=2014-09-02-07.42.51 A540769 ---
     -- index space und Details für 1 StichDatum
set current path oa1p;
with i2 as
(
   select rz, dbSys, dbName, ts, indexSpace, instance, partition
       , max(loadTs) loadTs
     from oa1p.tqz007GbGrIxSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
        and dbName = 'MF01A1P' and ts = 'A150A'
       --      and partition = 507
    group by rz, dbSys, dbName, ts, indexSpace, instance, partition
        , reorgLastTime, rebuildLastTime
)
, i as
(
   select r.*
     from i2
      join oa1p.tqz007GbGrIxSTats r
        on i2.loadTS is not null and r.state <> 'd'
                and i2.rz        = r.rz
                and i2.dbSys     = r.dbSys
                and i2.dbName    = r.dbName
                and i2.ts        = r.ts
                and i2.indexSpace= r.indexSpace
                and i2.instance  = r.instance
                and i2.partition = r.partition
                and i2.loadTs    = r.loadTS
)
select rz, dbSys, dbName, ts, indexSpace
      , substr(tsTy
          || case when tsClone = 'N' and instance=1 and tsInst=1 then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and tsParts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0  then ' npi'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
      , substr(fosFmte7(totalEntries), 1, 7) rows
      , substr(name, 1, 30) "index"
      , updateStatsTime, i.*
    from i
    order by rz, dbSys, dbName, ts, indexSpace, instance, partition
           , loadTs desc
;
}¢--- A540769.WK.SQL(GBGRSCHH) cre=2013-08-28 mod=2014-07-30-10.04.10 A540769 ---
    -- history der gbGrenzen Schwellwerte
with u as
(
  select * from oa1p.TQZ008GBGRSCHWELLE
  union all select * from oa1p.TQZ008GBGRSCHWHist
)
, v as
(
select max(date(rowBegin), validBegin) begin
    ,  min(date(rowEnd), validEnd) end
    , u.*
    from u
)
, w as
(
  select * from v where begin < end
)
select * from w
    where dbSys = 'DBOF'
    order by dbSys, db, ts, part, tsTy, dsMin, rz, begin desc
;x;
select *
    from oa1p.TQZ008GBGRSCHWELLE
      for system_time as of '2014-01-01-00.00.00'
;x;
}¢--- A540769.WK.SQL(GBGRSCHW) cre=2014-07-23 mod=2016-08-23-15.24.11 A540769 ---
select *
    from oa1p.TQZ008GBGRSCHWHIST
    where dbSys = 'DBOF' and db = '%' and dsMin = 16
    order by validbegin desc
;x;
-- überprüfte
--    welche s
--
--
set current path oa1p;
select tsTy || case when ix = ' --ts--' then ' ts' else ' ix' end tsTy
      , substr(fosFmte7(limGb), 1, 7) "limGb"
      , substr(fosFmte7(real(limGb / 100 * schwelle)), 1, 7) "schwGb"
      , schwelle
      , count(*) count
      , min(schwInfo) schwInfoMin
      , max(schwInfo) schwInfoMax
    from OA1P.vQZ006GbGrenze
    where -- actGb > real(limGb / 100 * schwelle)
        db like '%'
        and db <> 'DSNDB01'  -- directory ist anders
        and rz = 'RZ2' and dbSys = 'DBOF'
    group by tsTy || case when ix = ' --ts--' then ' ts' else ' ix' end
                 , limGb, schwelle
    order by 1, schwelle desc, limGb desc
}¢--- A540769.WK.SQL(GBGRSCRR) cre=2014-10-10 mod=2014-10-10-09.36.25 A540769 ---
--   GBGrenze Schwellen von RZ2 nach RR2 kopieren
--       nach jedem PTA Aufbau|
--
--   1) alte RR2 Schwellen bekommen validEnd = current date
--   2) aktive RZ2 Schwellen werden für RR2 kopiert
--            mit validEnd = max(validEnd, current date + 100 days)
--
--   also: wenn im RR2 Bereinigungsaktionen durchgeführt,
--         müssen dort die Schwellen angepasst werden |
--
--   Achtung: Rollback am Ende auf Commit ändern, wenn getestet
--
select substr(db, 1, 8) "db"
      , substr(ts, 1, 8) "ts"
      , substr(tsTy
          || case when tsClone = 'N' and inst=1 and tsInst=1 then ''
                  else case when inst=tsInst then 'b' else 'c' end
                      || inst end, 1, 3) "yci"
      , substr(ix, max(1, length(ix) - 7), 8) "...index"
      , substr(case when part = 0 and tsParts = 0 then ''
            else case when part is null                 then ' ---'
                      when part = 0 and ix <> ' --ts--' then ' npi'
                      when part = 0 and tsTy = 'G'      then ' pbg'
                      when part = 0                     then ' ???'
                      else right('   ' || part, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
      , substr(right(case when actGB < 1000
                         then '    ' || dec(round(actGb, 2), 6, 2)
                         else '    ' || int(round(actGb, 0))
                     end, 7), 1, 7) "usedGB"
      , substr(right(case when limGb/100*schwelle < 1000
              then '    ' || dec(round(limGb/100*schwelle, 2), 6, 2)
              else '    ' || int(round(limGb/100*schwelle, 0))
                     end, 7), 1, 7) "schwGB"
      , substr(right('     ' || schwelle, 5), 1, 5) "schw%"
      , substr(right('      ' || int(round(limGb)), 6), 1, 6) "limGB"
      , date(updStats) "lastUpdate"
      , substr(schwinfo, 23, 18) "schwellwert key"
      , g.*
    from OA1P.vQZ006GbGrenze g
    where actGb > real(limGb / 100 * schwelle)
   --   and updStats > current timestamp - 21 days
   --       db like 'MF%' -- and ts = 'A115A'
   --       db = 'SN01A1P' and ts =  'A202A'
        and db <> 'DSNDB01'  -- directory ist anders
        and rz = 'RR2' and dbSys = 'DBOF'
    order by db, ts, inst, ix, part
;
--
-- db         = Datenbank
-- ts         = Tablespace
-- yci        = ts type oder s=Segmented,i=Simple p=PartitionedClassic,
--              clone und Instance (falls geKlont)
-- part/ tot  = betroffene PartitionsNummer / Total Partitonen des ts
-- ...index   = index oder --ts--
-- usedGB     = aktuelle benutzter Platz in GB
-- schwGB     = Schwellwert in GB
-- schw%      = Schwellwert in Prozent der Limite
-- limGB      = physische Limite in GB
-- lastUpdate = letzter update aus RealTimeStats
-- Schwellwert key = key des Schwellwerts in oa1p.tqz008GbGrSchwelle

update   OA1P.TQZ008GBGRSCHWELLE
    set validEnd = current date
    where rz = 'RR2'
        and prio >= 0
        and validEnd > current date
;
insert into  OA1P.TQZ008GBGRSCHWELLE
     (  PRIO
     ,  RZ
     ,  DBSYS
     ,  DB
     ,  TS
     ,  PART
     ,  TSTY
     ,  DSMIN
     ,  SCHWELLE
     ,  VALIDBEGIN
     ,  VALIDEND
     ,  ERFASSER
     ,  GRUSE
     ,  GRUND
     )
select  PRIO
     ,  'RR2' RZ
     ,  DBSYS
     ,  DB
     ,  TS
     ,  PART
     ,  TSTY
     ,  DSMIN
     ,  SCHWELLE
     ,  VALIDBEGIN
     ,  max(VALIDEND, current date + 100 days)
     ,  ERFASSER
     ,  GRUSE
     ,  GRUND
    from OA1P.TQZ008GBGRSCHWELLE
    where rz = 'RZ2'
        and prio >= 0
        and validEnd > current date
;
select substr(db, 1, 8) "db"
      , substr(ts, 1, 8) "ts"
      , substr(tsTy
          || case when tsClone = 'N' and inst=1 and tsInst=1 then ''
                  else case when inst=tsInst then 'b' else 'c' end
                      || inst end, 1, 3) "yci"
      , substr(ix, max(1, length(ix) - 7), 8) "...index"
      , substr(case when part = 0 and tsParts = 0 then ''
            else case when part is null                 then ' ---'
                      when part = 0 and ix <> ' --ts--' then ' npi'
                      when part = 0 and tsTy = 'G'      then ' pbg'
                      when part = 0                     then ' ???'
                      else right('   ' || part, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
      , substr(right(case when actGB < 1000
                         then '    ' || dec(round(actGb, 2), 6, 2)
                         else '    ' || int(round(actGb, 0))
                     end, 7), 1, 7) "usedGB"
      , substr(right(case when limGb/100*schwelle < 1000
              then '    ' || dec(round(limGb/100*schwelle, 2), 6, 2)
              else '    ' || int(round(limGb/100*schwelle, 0))
                     end, 7), 1, 7) "schwGB"
      , substr(right('     ' || schwelle, 5), 1, 5) "schw%"
      , substr(right('      ' || int(round(limGb)), 6), 1, 6) "limGB"
      , date(updStats) "lastUpdate"
      , substr(schwinfo, 23, 18) "schwellwert key"
      , g.*
    from OA1P.vQZ006GbGrenze g
    where actGb > real(limGb / 100 * schwelle)
   --   and updStats > current timestamp - 21 days
   --       db like 'MF%' -- and ts = 'A115A'
   --       db = 'SN01A1P' and ts =  'A202A'
        and db <> 'DSNDB01'  -- directory ist anders
        and rz = 'RR2' and dbSys = 'DBOF'
    order by db, ts, inst, ix, part
;
commit
;
rollback
;
select *
    from OA1P.TQZ008GBGRSCHWELLE
    where rz = 'RR2'
        and prio >= 0
        and validEnd > current date
}¢--- A540769.WK.SQL(GBGRSEL) cre=2013-08-26 mod=2016-10-26-08.39.40 A540769 ---
set current path oa1p;
select   substr(fqzfmtBin7(1024.0 * pgSize * nPages), 1, 7) used
       , substr(fqzfmtBin7(1024.0 * pgSize * nActive), 1, 7) spc
       , dbName, name, partition
       , a.*
    from OA1P.TQZ006GBGRTsSTATS a
    where rz = 'RZ2' and dbSys = 'DVBP'
 --     and name   = 'SFJ30011'
 --     and dbname = 'XBFJ3001'
 --     and partition = 24
        and validBegin  <= current timestamp
        and validEnd    >  current timestamp
    order by real(pgSize) * max(value(abs(nActive), 0)
                               , value(abs(nPages), 0)) desc
--  order by validBegin desc
--  fetch first 100 rows only
    with ur
;x;
    where dbname = 'ND01A1P' and tsName = 'IND003A1'
         and dsNum in (0,4)
;x;
select rz, dbSys, dbName, indexSpace, creator, name, partition
   ,   min(validBegin) validBegin, min(updatestatsTime) updateStats
        , LOADRLASTTIME, REBUILDLASTTIME, REORGLASTTIME
    from OA1P.TQZ007GBGRIxSTATS a
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name = 'VTXINSTRFLATDATA1'
        and dbname = 'VV21A1P'
   --   and    real(pgSize) * nActive > 20000000
   --   and partition =      41
   --   and validBegin >= current timestamp - 1000 days
    --  and validEnd   >  current timestamp
    group by rz, dbSys, dbName, indexSpace, creator, name, partition
                      , LOADRLASTTIME, REBUILDLASTTIME, REORGLASTTIME
    order by 7, 8 desc
--  fetch first 5 rows only
; xx
set current path oa1p;
select --  rz, dbSys, dbName, count(*) parts--, sum(real(nActive)) pages
    partition, updateStatsTime
             , substr(fqzfmtBin7(1024.0 * pgSize * nPages), 1, 7) used
             , substr(fqzfmtBin7(1024.0 * pgSize * nActive), 1, 7) spc
             , substr(fqzfmtE7(reorgDeletes), 1, 7) deletes
             , reorgLastTime
             , substr(fqzfmtE7(totalRows), 1, 7) rows
             , 1024.0 * pgSize * nPages / max(1, totalRows) rowBy
             , a.*
    from OA1P.TQZ006GBGRTsSTATS a
    where rz = 'RZ2' and dbSys = 'DBOF'
   --   and name = 'VTXINSTRFLATDATA1'
        and dbname = 'VV21A1P'
   --   and    real(pgSize) * nActive > 20000000
   --   and partition =      41
   --   and validBegin >= current timestamp - 1000 days
    --  and validEnd   >  current timestamp
 -- group by rz, dbSys, rollup(dbName)
    order by rz,dbSYs, dbName, name, partition, validBegin desc
    fetch first 5 rows only
; xx
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
    order by dbName, name, partition, validBegin desc ;x;
    and current timestamp between validBegin and validEnd
    group by rz, dbSys
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
set current application compatibility 'V11R1';
select *
    from OA1P.TQZ007GBGRIXSTATS a
    where rz = 'RZ2' and dbSys = 'DBOF'
        and dbName = 'FI04A1P' and ts = 'A060A'
    order by dbName, ts, name, partition, validBegin desc ;x;
select *
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RZ2' and dbSys = 'DBOF'
        and dbName = 'FI04A1P' and name = 'A060A'
    order by dbName, name, partition, validBegin desc ;x;
    and current timestamp between validBegin and validEnd
    group by rz, dbSys
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 3   for
with s as
(
  select sum(real(nActive) * pgSize * 1024) actB
       , count(*) parts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName             ) db
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RZ2' and dbSys = 'DBOF'
        and dbName like 'MF%'
    and current timestamp between validBegin and validEnd
    group by rz, dbSys
)
select * from s
;
explain plan set queryno = 7   for
with d (d, l) as
(
  select current timestamp, 0 from sysibm.sysDummy1
  union all select d- 7 days, l+1 from d where l < 1
)
, s as
(
  select sum(real(nActive) * pgSize * 1024) actB
       , count(*) parts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName             ) db
    from OA1P.TQZ006GBGRTSSTATS, d
    where rz = 'RZ2' and dbSys = 'DBOF'
    and dbName like 'MF%'
    and d >= validBegin
    and d < validEnd
    group by d, rz, dbSys
)
select * from s
;
explain plan set queryno = 9   for
with d (d, l) as
(
  select current timestamp, 0 from sysibm.sysDummy1
  union all select d- 7 days, l+1 from d where l < 1
)
, s as
(
  select sum(real(nActive) * pgSize * 1024) actB
       , count(*) parts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName             ) db
    from OA1P.TQZ006GBGRTSSTATS a, d
    where rz = 'RZ2' and dbSys = 'DBOF'
    and dbName like 'MF%'
    and d + 0 seconds between validBegin and validEnd
    group by d, rz, dbSys
)
select * from s
;
explain plan set queryno = 13  for
with d (d, l) as
(
  select current timestamp, 0 from sysibm.sysDummy1
  union all select d- 7 days, l+1 from d where l < 1
)
, s as
(
  select 0 l
       , sum(real(nActive) * pgSize * 1024) actB
       , count(*) parts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName             ) db
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RZ2' and dbSys = 'DBOF'
    and dbName like 'MF%'
    and validBegin <= (select d from d where l = 0)
    and validEnd > (select d from d where l = 0)
    group by rz, dbSys
)
select * from s
;
explain plan set queryno = 22  for
with s ( l,d, actB, parts, tss, dbs) as
(
  select 0, current timestamp
       , sum(real(nActive) * pgSize * 1024)
       , count(*)
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name)
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName             )
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RZ2' and dbSys = 'DBOF'
 -- and dbName like 'MF%'
    and validBegin <= current timestamp
    and validEnd > current timestamp
    group by rz, dbSys
  union all select 1, current timestamp - 7 days
       , sum(real(nActive) * pgSize * 1024)
       , count(*)
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name)
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName             )
    from OA1P.TQZ006GBGRTSSTATS
    where rz = 'RZ2' and dbSys = 'DBOF'
 -- and dbName like 'MF%'
    and validBegin <= current timestamp - 7 days
    and validEnd > current timestamp - 7 days
    group by rz, dbSys
)
select * from s
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
select *  from dsn_predicat_table
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo -- , orderNo, mixOpSeqNo
    with ur
    ;
rollback
;;;;
with s as
(
  select sum(real(nActive) * pgSize * 1024) actB
       , count(*) parts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName ||'.'|| name) ts
       , count(distinct rz ||'/'|| dbSys ||':'|| dbName             ) db
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RZ2' and dbSys = 'DBOF'
        and dbName like 'MF%'
    and current timestamp between validBegin and validEnd
    group by rz, dbSys
)
select * from s
;
select lastDataChange
      , oa1p.fQzFmtBin2(actB) act
      , dbName, name, partition
      , s.*
    from s
    where actB > 12e9
    order by value(lastDataChange, '2015-04-15-00.00.00') desc
    , dbName, name, partition
    fetch first 1000 rows only
    with ur
;x;
with s as
(
  select rz, dbSys, date(validBegin) val, date(updateSTatsTime) updStats
    from OA1P.TQZ007GBGRIXSTATS a
    where rz = 'RR2' and validBegin > current timestamp - 35 days
)
select rz, dbSys, val, updStats, count(*)
    from s
    group by rz, dbSys, val, updStats
    order by 1,2,3 desc, 4 desc
;x;
select rz, dbSys, loadTs, count(*)
         , min(updateStatsTime) updateStats, max(updateStatsTime)
         , min(validBegin) validBegin, max(validBegin)
         , min(validEnd)   validEnd, max(validEnd)
         , min(dbName || '.' || name || '#' || partition)
    from OA1P.TQZ007GBGRIXSTATS a
    where rz = 'RZ2' and validBegin > current timestamp - 15 days
    group by rz, dbSys, loadTs
    order by 1,2,3 desc
;x;
select count(*), state
    from OA1P.TQZ006GBGRTSHJJJ
    group by state
;x
select rz, dbSys, loadTs, count(*)
         , min(dbName || '.' || name || '#' || partition)
    from OA1P.TQZ007GBGRIXNew a
    group by rz, dbSys, loadTs
    order by 1,2,3,4 desc
;x;
select rz, dbSys, dbName, name, partition,instance
    , validBegin, validEnd, updateStatsTime, loadTs, o.*
    from OA1P.TQZ006GBGRTSNew o
    where rz = 'RR2' and dbSys = 'DP2G' -- and dbName = 'MF01A1P'
    and validBegin > '2016-01-07-00.00.00'
       --   and name = 'A311A'
    order by 7 desc
 -- order by 1, 2, 3, 4, 5, 6, 7 desc
;x;
select rz, dbSys, dbName, name, partition,instance
    , validBegin, validEnd, updateStatsTime, loadTs, n.*
    from OA1P.TQZ006GBGRTSNew n
    where rz = 'RZZ' and dbSys = 'DE0G' and dbName = 'MF01A1P'
            and name = 'A311A'
    order by 1, 2, 3, 4, 5, 6, 7 desc
;x;
select rz, dbSys, dbName, name, partition,instance
    , max(validBegin)
    from OA1P.TQZ006GBGRTSNew n
    group by rz, dbSys, dbName, name, partition,instance
    order by 1, 2, 3, 4, 5, 6, 7 desc
;x;
set current path oa1p;
select rz, dbSys, state, loadTs, count(*)
         , min(dbName || '.' || name || '#' || partition)
    from OA1P.TQZ007GBGRIXSTATS a
    where rz = 'RZ2' and updatestatsTime > current timestamp - 3 days
    group by rz, dbSys, state, loadTs
    order by 1,2,3,4 desc
;x;
update
         sysibm.sysTableSpaceStats
    set npages = 600000
     , totalRows = 6000000
    where dbName = 'QZ01A1P' and name = 'A007A' and partition = 2
;
select *
    from sysibm.sysTableSpaceStats
    where dbName = 'QZ01A1P' and name = 'A006A' and partition = 2
;
commit
;x;
select count(*)
    from OA1P.TQZ007GBGRIXSTATS a
    where rz = '?'
;x;
select rz, dbSys, state, loadTs, count(*)
         , min(dbName || '.' || name || '#' || partition)
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RZZ' and updatestatsTime > current timestamp - 2 days
    group by rz, dbSys, state, loadTs
    order by 1,2,3,4 desc
;x;
select dbName, name, partition
      , fosFmte7(real(real(nActive) * pgSize / 1048576)) actGB
      , updatestatstime, totalRows, nActive
      , a.*
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RZ2' and dbSys = 'DVBP'
        and dbName = 'XBDG6002'
        and name = 'SDG60063'
    --    and partition = 7
    order by partition, updatestatstime desc
;x;
select count(*), rz, dbSys, max(updateStatsTime) upd, max(loadTs)
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RR2' and loadTs > current timestamp - 20 days
                     and updateStatsTIme > current timestamp - 20 days
    group by rz, dbSys, loadTs
    order by 2, 3, 4 desc
;x;
select *
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RZ2' and dbSys = 'DVBP' and dbName = 'XBFJ3002'
        and name = 'SFJ30022' and partition in (11, 14, 19)
;x;
with t2 as
(
  select rz, dbSys, dbName, name
             , partition, instance
             , max(loadTs) loadTs
             , max(case when loadTs > '2015-05-18-00.00.00'
                        then null else loadTs end) loadBef
    from OA1P.TQZ006GBGRTSSTATS a
    where rz = 'RZ2'
         and dbName = 'XC01A1P' and name = 'A501A'
         and loadTs < '2015-05-20-00.00.00'
    group by rz, dbSys, dbName, name, partition, instance

)
select a.*
    from t2 join OA1P.TQZ006GBGRTSSTATS a
        on a.rz = t2.rz and a.dbSys = t2.dbSys
          and a.dbName = t2.dbName and a.name = t2.name
          and a.instance = t2.instance and a.partition = t2.partition
          and a.loadTs in ( t2.loadTs, t2.loadBef)
    order by t2.rz, t2.dbSys, t2.dbName, t2.name
           , t2.instance, t2.partition, a.loadTs desc
;x;
, t  as
(
  select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
      , smallInt(t.partition * t.limPart) partition
      , t.instance
      , min(t.limGb) limGb
      , min(t.parts) parts
      , min(t.clone) clone
      , min(t.tsInst) tsInst
      , real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
    from OA1P.TQZ006GBGRTSSTATS t join t2 a
select *
    from oa1p.tqz006gbgrTsStats
    where rz = 'RZ2'
         and dbName = 'XC01A1P' and name = 'A501A'
        and loadTs >= '2015-05-01-00.00.00'
    order by loadTs desc
;x;
select count(*) c, rz, dbSys, loadTs
    from oa1p.tqz006gbgrTsStats
    where rz = 'RZ2'
        and loadTs >= '2015-02-22-00.00.00'
    group by rz, dbSys, loadTs
    order by rz, dbSys, loadTs
;x;
select date(loadTs), max(updateStatsTime)
    from oa1p.tqz006gbgrtsStats
    where rz = 'RR2' and dbSys = 'DBOF'
 --     and dbName = 'WB11A1P'
 --     and name = 'A704A'
 --     and partition = 343
 --     and loadTs >= '2014-12-01-00.00.00'
    group by date(loadTs)
    order by 1 desc
;x;
    order by rz, dbSys, dbName, name, partition, updatestatstime desc
;x;
with d as
(
select count(*) c, rz, dbSys, dbName
    from oa1p.tqz007gbgrixStats
    where rz =  'RZZ' and loadTs >= '2014-07-16-00.00.00'
    group by rz, dbSys, dbName
)
select sum(c) over(partition by rz, dbSys
                   order by dbName
                  )
      , d.*
    from d
    order by rz, dbSys, dbName
;x;
select count(*), rz, dbSys, loadTs
    from oa1p.tqz006gbgrtsStats
    where rz <> '?'
    group by rz, dbSys, loadTs
    order by rz, dbSys, loadTs desc
;x;
with t2 as
(
  select rz, dbSys, dbName, name
             , partition, instance, max(loadTs) loadTs
    from OA1P.TQZ006GBGRTSSTATS a
    group by rz, dbSys, dbName, name, partition, instance

)
, t  as
(
  select t.rz, t.dbSys, t.dbName, t.Name, min(t.tsTy) tsTy
      , smallInt(t.partition * t.limPart) partition
      , t.instance
      , min(t.limGb) limGb
      , min(t.parts) parts
      , min(t.clone) clone
      , min(t.tsInst) tsInst
      , real(sum(real(t.nActive) * t.pgSize / 1048576)) actGB
    from OA1P.TQZ006GBGRTSSTATS t join t2 a
        on t.rz = a.rz
          and t.dbSys = a.dbSys
          and t.dbName    = a.dbName
          and t.Name      = a.Name
          and t.partition = a.partition
          and t.instance  = a.instance
          and t.loadTS    = a.loadTs
    group by t.rz, t.dbSys, t.dbName, t.Name
      , smallInt(t.partition * t.limPart)
      , t.instance
)
, i2 as
(
  select rz, dbSys, dbName, ts, indexSpace
             , partition, instance, max(loadTs) loadTs
    from OA1P.TQZ007GbGrIxSTATS a
    group by rz, dbSys, dbName, ts, indexSpace, partition, instance

)
, i  as
(
  select i.*
      , real(real(nActive) * ixPgSz / 1048576) actGB
    from OA1P.TQZ007GBGRIxSTATS i join i2 a
        on i.rz = a.rz
          and i.dbSys = a.dbSys
          and i.dbName    = a.dbName
          and i.ts        = a.ts
          and i.indexSpace= a.indexSpace
          and i.partition = a.partition
          and i.instance  = a.instance
          and i.loadTS    = a.loadTs
)
, u (limGb, actGb, db, ts, ix, part, inst, rz, dbSys
     , tsTy, tsLimGb, tsParts, tsClone, tsInst) as
(
  select           limGb, actGb, dbName, name, ' --ts--'
          , partition, instance, rz, dbSys
          , tsTy, limGb,   parts,   clone  , tsInst
    from t
  union all select limGb, actGb, dbName, ts  , name
          , partition, instance, rz, dbSys
          , tsTy, tslimGb, tsParts, tsClone, tsInst
    from i
)
, s as
(
  select u.*
    ,  (select max(info) from oa1p.tqz008GbGrSchweExp e
            where e.rz = u.rz and e.dbSys = u.dbSys
              and left(e.db   , e.dbLen) = left(u.db   , e.dbLen)
              and left(e.ts   , e.tsLen) = left(u.ts   , e.tsLen)
              and e.part in(u.part, 0)
              and e.tsTy in (u.tsTy, ' ')
              and e.dsMin <= u.tslimGB
              and validBegin <= current date
              and validEnd   >  current date
       ) schwInfo
    from u
)
, v as
(
  select int(case when schwInfo is not null
                  then int(substr(schwInfo, 16, 6))
                  else raise_error(70001, 'schwelle null ts='
                       || db || '.' || ts || '#' || part)
                  end) schwelle
         , s.*
    from s
 -- order by db, ts, part, ix
)
select substr(db, 1, 8) "db"
     , substr(ts, 1, 8) "ts"
     , substr(ix, max(1, length(ix) - 7), 8) "...index"
     , substr(case when part = 0 and tsParts = 0 then ''
           else case when part = 0 then  ' npi'
               else value(right('   ' || part, 4), '----') end
            ||'/'|| value(right('   '||strip(char(tsParts)), 4),'----')
           end, 1, 9) "part/ tot"
     , substr(right(case when actGB < 1000
                        then '    ' || dec(round(actGb, 2), 6, 2)
                        else '    ' || int(round(actGb, 0))
                    end, 7), 1, 7) "usedGB"
     , substr(right(case when limGb/100*schwelle < 1000
             then '    ' || dec(round(limGb/100*schwelle, 2), 6, 2)
             else '    ' || int(round(limGb/100*schwelle, 0))
                    end, 7), 1, 7) "schwGB"
     , substr(right('     ' || schwelle, 5), 1, 5) "schw%"
     , substr(right('      ' || int(round(limGb)), 6), 1, 6) "limGB"
     , tsTy "y"
     , substr(schwinfo, 23) "schwellwert key"
    from v
    where --  actGb > real(limGb / 100 * schwelle)
        db like 'MF01%'
        and db <> 'DSNDB01'  -- directory ist anders
        and rz = 'RZ2' and dbSys = 'DBOF'
    order by db, ts, ix, part, ix
;x;
select *
    from OA1P.TQZ007GBGRixSTATS a
    where rz = 'RZ2' and dbSys = 'DBOF' and dbName = 'MF01A1P'
      and name like 'IMF150A%'
;x;
select count(*), date(loadTs)
    from oa1p.tqz006gbgrtsStats
--  where rz = 'RZ2'
    group by date(loadTs)
    order by date(loadTs) desc
;x;
insert into oa1p.tqz006GbGrTsStats
      (state, rz, dbSys, dbName, name, partition, instance
      , pgSize, tsType, nTables, parts, maxParts, dsSize
      , segSize, tsTy, dsGB, clone, tsInst, tbCr, tb, tbTy, tbId
      , dbid, obid, psid, ibmReqD
      , updateStatsTime)
with s as
(
  select row_number()
             over (partition by dbName, name, partition, instance
                   order by loadDt desc, updateStatsTime desc) rn
       , s.*
    from oa1p.tqz006GbGrTsStats s
    where rz = 'RZ4' and dbSys = 'DP4G' and state <> 'd'
    fetch first 100 rows only
)
select 'd', rz, dbSys, dbName, name, partition, instance
      , pgSize, tsType, nTables, parts, maxParts, dsSize
      , segSize, tsTy, dsGB, clone, tsInst, tbCr, tb, tbTy, tbId
      , dbid, obid, psid, ibmReqD
      , (select max(updateStatsTime)
           from oa1p.tqz006GbGrTsStats n
           where n.rz = '?' and n.dbSys = '?'
       )
    from s
    where rn = 1
    and not exists (select 1
        from oa1p.tqz006GbGrTsStats n
        where n.rz = '?' and n.dbSys = '?'
            and n.dbName    = s.dbName
            and n.Name      = s.Name
            and n.partition = s.partition
            and n.instance  = s.instance
        )
;
commit
;x;
with s as (
select
    s.pgSize, s.type tsType, s.nTables
  , s.partitions parts, s.maxPartitions maxParts, s.dsSize
  , s.segsize
  , char(value(case
        when s.type <> ' ' then s.type
        when partitions > 0 and segsize = 0 then 'p' --  classic part
        when partitions = 0 and segsize = 0 then 'i' --  simple
        when partitions = 0 and segsize > 0 then 's' --  segmented
        else raise_error(70101, 'unknown ts type='||s.type
            || ' partitions=' || strip(char(partitions))
            || ' segsize=' || strip(char(segsize))
            || ' db.ts=' || strip(s.dbName) ||'.'||s.name)
    end, '?'), 1) tsTy
  , smallInt(value(case
        when dssize <> 0 then int(dssize / 1048576)
        when s.type in ('G', 'O', 'P', 'R', 'L') then 4
        when partitions = 0     then  64
        when partitions > 254 then    pgSize
        when partitions > 64    then   4
        when partitions > 32    then   1
        when partitions > 16    then   2
                                else   4
    end, -99)) dsGB
  , s.obid, s.clone, s.instance tsInst
  , value(t.creator, '') tbCr
  , value(t.name, case when nTables = 0 then 'none'
                       when nTables > 1 then 'multi'
                                        else 'missing' end) tb
  , value(t.type, '') tbTy
  , smallint(value(t.obId, 0)) tbId
  , r.*
  from sysibm.sysTableSpaceStats r
    join sysibm.sysTablespace s
      on r.dbName = s.dbName and r.name = s.name
        and r.dbId = s.dbId and r.psid = s.psid
    left join sysibm.sysTables t
      on s.nTables = 1
        and t.dbName = s.dbName and t.tsName = s.name
        and (    (t.type not in ('A', 'V', 'C', 'G')
                    and s.instance = r.instance)
              or (t.type = 'C' and s.instance <> r.instance))

)
select       dbName, name, partition, instance, count(*)
    from s
    group by dbName, name, partition, instance
    order by 5 desc
;x;
select rz, dbSys, count(*)
    from oa1p.tQz006GbGrTsMeta
    group by rz, dbSys
;x;
select *
    from S100447.tGbGrSchwelle
;
select *
    from S100447.tGbGrSchwHist
}¢--- A540769.WK.SQL(GBGRSEXB) cre=2016-03-14 mod=2016-03-14-17.25.59 A540769 ---
set current path oa1p;
  select substr(t.dbName, 1, 8) db
      , substr(t.Name, 1, 8) ts
      , smallint(partition) part
      , lastDataChange lastCha
      , fQzFmtbin7(real(t.nActive) * t.pgSize * 1024)  actUsed
    from OA1P.TQZ006GBGRTSSTATS t
    where current timestamp >= validBegin
      and current timestamp <  validEnd
      and rz = 'RZ2' and dbSys = 'DVBP'
      and dbName like 'XB%'
      and lastDataChange >= '2016-01-01-00.00.00'
      order by real(t.nActive) * t.pgSize desc
      fetch first 100 rows only
}¢--- A540769.WK.SQL(GBGRSPC) cre=2014-10-09 mod=2016-07-07-16.19.10 A540769 ---
set current path oa1p;
select  row_number() over ( order by max(value(real(nPages), 0)
                          , value(nActive, 0.)) * pgSize desc ) rn
     ,  substr(fqzFmtbin7(real(t.nPages ) * t.pgSize * 1024)
              , 1, 7) used
     ,  substr(fqzFmtbin7(real(t.nActive) * t.pgSize * 1024)
              , 1, 7) alloc
     ,  substr(fosFmte7(totalRows), 1, 7) rows
     ,  partition
     ,  substr(tb, 1, 20) tb
     ,  tsType, dbName, name, lastDataChange
     , t.*
    from oa1p.tqz006GbGrTsSTats t
    where rz = 'RZ2' and dbSys = 'DVBP'
        and current timestamp >= validBegin
        and current timestamp <  validEnd
    --  and dbName = 'SN01A1P' and name = 'A202A'
   --  and loadTs > current timestamp - 1 month
    order by 1
    fetch first 1000 rows only
;x;
     -- table Space und Details History / Zeitreihe
set current path oa1p;
with d (d,l) as
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 3 days, l+1
    from d
    where l < 999999 and d >= current date - 1 months
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like 'NI%'
          and name like 'A250%'
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, t as
(
   select d, r.*
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
)
select rz, dbSys, dbName, name
      , substr(case when tsTy <> '' then tsTy else tsType end
          || case when clone in ('N', '?') and instance=1 and tsInst=1
                  then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and parts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| parts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , d
      , substr(fosFmte7(real(nActive) * pgSize * 1024), 1, 7) used
      , substr(fosFmte7(totalRows), 1, 7) rows
      , substr(tb, 1, 30) "table"
      , updateStatsTime, t.*
    from t
    order by rz, dbSys, dbName, name, instance, partition
           , d desc
;
}¢--- A540769.WK.SQL(GBGRSPCI) cre=2014-07-30 mod=2014-12-10-10.44.49 A540769 ---
     -- index space und Details für 1 StichDatum
set current path oa1p;
with i2 as
(
   select rz, dbSys, dbName, ts, indexSpace, instance, partition
       , max(loadTs) loadTs
     from oa1p.tqz007GbGrIxSTats
    where rz = 'RZZ' and dbSys = 'DE0G'
        and dbName = 'FI04A1P' and ts like 'A026%'
        and loadTs <= timestamp(current date + 1 day)
    group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i as
(
   select r.*
     from i2
      join oa1p.tqz007GbGrIxSTats r
        on i2.loadTS is not null and r.state <> 'd'
                and i2.rz        = r.rz
                and i2.dbSys     = r.dbSys
                and i2.dbName    = r.dbName
                and i2.ts        = r.ts
                and i2.indexSpace= r.indexSpace
                and i2.instance  = r.instance
                and i2.partition = r.partition
                and i2.loadTs    = r.loadTS
)
select rz, dbSys, dbName, ts, indexSpace
      , substr(tsTy
          || case when tsClone = 'N' and instance=1 and tsInst=1 then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and tsParts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0  then ' npi'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
      , substr(fosFmte7(totalEntries), 1, 7) rows
      , substr(name, 1, 30) "index"
      , updateStatsTime, i.*
    from i
    order by rz, dbSys, dbName, ts, indexSpace, instance, partition
;
}¢--- A540769.WK.SQL(GBGRSPCS) cre=2014-07-30 mod=2015-09-07-11.04.06 A540769 ---
    -- summe space/rows, ts/ix 1 StichDatum
set current path oa1p;
set current application compatibility 'V11R1';
with t1 as --- Stichdatum und Paritionen TS ---------------------------
(
   select current date d
       , rz, dbSys, dbName db, name ts
       , instance inst, partition pa
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like 'M%'
   --     and name in ('SDPM0122'
   --                 )
   --     and name like 'A150H%'
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as --- neuesten loadTs am oder vor d suchen
(
  select t1.*, (select loadTs from oa1p.tqz006GbGrTsSTats r
    where t1.RZ = r.rz and t1.dbSys = r.dbSys
          and  t1.db   = r.dbName
          and  t1.tS   = r.name
          and  t1.inst = r.instance
          and  t1.pa   = r.partition
          and r.loadTs < timestamp(t1.d + 1 day)
          order by loadTs desc
          fetch first 1 row only
    ) tLoa
    from t1
)
, t as --- join tsStats if not dropped --------------------------------
(
   select t2.rz, t2.dbSys, t2.db --, t2.ts
       , sum(max(0, value(real(nActive) * pgSize * 1024, 0))) tUsed
       , sum(max(real(value(space, 0))
            , value(real(space) * pgSize, 0)
            , 0)) * 1024 tSpace
       , sum(max(value(totalRows, 0), 0)) tRows
       , sum(case when r.dbName is null then 0 else 1 end) tParts
       , count(*) tCnt
       , max(value(tLoa, '1111-11-11-11.11.11')) tLoa
       , max(value(updateStatsTime, '1111-11-11-11.11.11')) tUpdStats
     from t2
       left join oa1p.tqz006GbGrTsSTats r
         on t2.tLoa is not null
                and r.state is not null and r.state = 'a'
                and t2.rz    = r.rz
                and t2.dbSys = r.dbSys
                and t2.db    = r.dbName
                and t2.ts    = r.name
                and t2.inst  = r.instance
                and t2.pa    = r.partition
                and t2.tLoa  = r.loadTS
     group by t2.rz, t2.dbSys, t2.db --, t2.ts
)
, i2 as  --- find all index parts and newest loadTs before dt ---------
(
  select q.d, q.rz, q.dbSys, q.db, q.ts
      , r.indexSpace is, r.instance inst, r.partition pa
      , max(loadTS) iLoa
    from ( select d, rz, dbSys, db, ts
             from t1
             group by d, rz, dbSys, db, ts
         ) q
      join oa1p.tqz007GbGrIxSTats r
        on q.rz = r.rz and q.dbSys = r.dbSys
          and q.db = r.dbName and q.ts = r.ts
          and r.loadTs < timestamp(q.d + 1 day)
    group by q.d, q.rz, q.dbSys, q.db, q.ts
          , r.indexSpace, r.instance, r.partition
)
, i as   --- join ixStats if not dropped ------------------------------
(
  select i2.rz, i2.dbSys, i2.db--, i2.ts
      , sum(max(0, value(real(nActive) * ixPgSz * 1024, 0))) iUsed
      , sum(max(real(value(space, 0))
            , value(real(space) * ixPgSz, 0)
            , 0)) * 1024 iSpace
      , sum(max(value(totalEntries, 0), 0)) iRows
      , sum(case when r.dbName is null then 0 else 1 end) iParts
      , count(*) iCnt
      , max(value(iLoa, '1111-11-11-11.11.11')) iLoa
      , max(value(updateStatsTime, '1111-11-11-11.11.11')) iUpdStats
    from i2
      left join oa1p.tqz007GbGrIxSTats r
        on i2.iLoa is not null
                and r.state is not null and r.state = 'a'
                and i2.rz    = r.rz
                and i2.dbSys = r.dbSys
                and i2.db    = r.dbName
                and i2.ts    = r.ts
                and i2.is    = r.indexSpace
                and i2.inst  = r.instance
                and i2.pa    = r.partition
                and i2.iLoa  = r.loadTS
    group by i2.rz, i2.dbSys, i2.db--, i2.ts
)
, u as
(
   select rz, dbSys, db--, ts
       , tUsed, tSpace, tRows
       , tParts, tCnt, tLoa, tUpdStats
       , 0 iUsed, 0 iSpace, 0 iRows
       , 0 iParts, 0 iCnt
       , cast('1111-11-11-11.11.11' as timestamp) iLoa
       , cast('1111-11-11-11.11.11' as timestamp) iUpdStats
     from t
   union all select rz, dbSys, db--, ts
       , 0 tUsed, 0 tSpace, 0 tRows
       , 0 tParts, 0 tCnt
       , cast('1111-11-11-11.11.11' as timestamp) tLoa
       , cast('1111-11-11-11.11.11' as timestamp) tUpdStats
       , iUsed, iSpace, iRows
       , iParts, iCnt, iLoa, iUpdStats
     from i
)
, g as
(
   select rz, dbSys, db--, ts
       , sum(tUsed) tUsed, sum(tSpace) tSpace, sum(tRows) tRows
       , sum(tParts) tParts, sum(tCnt) tCnt
       , max(tLoa) tLoa, max(tUpdStats) tUpdStats
       , sum(iUsed) iUsed, sum(iSpace) iSpace, sum(iRows) iRows
       , sum(iParts) iParts, sum(iCnt) iCnt
       , max(iLoa) iLoa, max(iUpdStats) iUpdStats
     from u
     group by grouping sets ( rollup (rz, dbSys, db--, ts
                            ) )
)
select rz, dbSys, db--, ts
      , substr(fosFmtE7(tUsed+iUsed), 1, 7) "used"
      , substr(fosFmtE7(tUsed), 1, 7) "tUsed"
      , substr(fosFmtE7(tSpace), 1, 7) "tSpace"
      , substr(fosFmtE7(tRows), 1, 7) "tRows"
      , tParts
      , substr(fosFmtE7(iUsed), 1, 7) "iUsed"
      , substr(fosFmtE7(iSpace), 1, 7) "iSpace"
      , substr(fosFmtE7(iRows), 1, 7) "iRows"
      , iParts
      , tCnt, tLoa, tUpdStats
      , iCnt, iLoa, iUpdStats
  from g
  where tParts + iParts <> 0
}¢--- A540769.WK.SQL(GBGRSPCT) cre=2014-07-30 mod=2015-09-07-19.39.39 A540769 ---
     -- table Space und Details für 1 StichDatum
set current path oa1p;
with t2 as --- Partition und neuesten loadTS --------------------------
(
   select rz, dbSys, dbName, name, instance, partition
       , max(loadTs) loadTs
     from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DVBP'
  --    and dbName = 'MF01A1P' and name like 'A150%'
        and loadTs <= timestamp(current date + 1 day)
    group by rz, dbSys, dbName, name, instance, partition
)
, t as --- join tsStats, falls nicht dropped --------------------------
(
   select r.*
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
)
select rz, dbSys, dbName, name
      , substr(case when tsTy <> '' then tsTy else tsType end
          || case when clone in ('N', '?') and instance=1 and tsInst=1
                  then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and parts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| parts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , substr(fosFmte7(real(nActive) * pgSize * 1024), 1, 7) used
      , substr(fosFmte7(totalRows), 1, 7) rows
      , substr(tb, 1, 30) "table"
 --   , updateStatsTime, t.*
    from t
--  order by rz, dbSys, dbName, name, instance, partition
    order by rz, dbSys, real(nActive) * pgSize * 1024 desc
    fetch first 500 rows only
;
}¢--- A540769.WK.SQL(GBGRSPDS) cre=2014-08-19 mod=2015-09-02-12.08.32 A540769 ---
set current path oa1p;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
set current path oa1p;
explain plan set queryno = 22  for
    -- difference space/rows, ts/ix zwischen 2 Daten
with d (d,l) as
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 31 days, l+1
    from d
    where l < 999999 and d >= current date - 1 day
)
, t2 as
(
   select d, rz, dbSys, dbName, name, instance, partition
       , max(loadTs) loadTs
    from oa1p.tqz006GbGrTsSTats join d
      on loadTs < timestamp(d.d + 1 day)
    where rz = 'RZ2' and dbSys = 'DBOF'
      --  and  dbName like 'M%'
      --    and name in ( 'A150A', 'A007A')
    group by d, rz, dbSys, dbName, name, instance, partition
)
, t2x as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, g (rz, dbSys, db, d, tsUsed, rows, cParts, cTs) as
(
   select t2.rz, t2.dbSys, t2.dbName , d
        , sum(value(real(nActive) * pgSize * 1024, 0))
        , sum(value(totalRows, 0))
        , count(*) , count(distinct t2.name)
     from t2 join oa1p.tqz006GbGrTsSTats r
        on             --            r.state <> 'd'
                    t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
     group by t2.rz, t2.dbSys, t2.dbName, d
)
, j as
(
  select value(h.rz, v.rz) rz
       , value(h.dbSys, v.dbSys) dbSys
       , value(h.db, v.db) db
     ,  value(h.tsUsed, 0) - value(v.tsUsed, 0) diff
     ,  h.tsUsed hUsed
     ,  v.tsUsed vUsed
     ,  h.rows hRows
     ,  v.rows vRows
     from (select * from g where d = current date) h
       full outer join
           (select * from g where d = current date - 31 days) v
         on h.rz = v.rz and h.dbSys = v.dbSys and h.db = v.db
)
select rz, dbSys, db
    , fosFmte7(diff) diff
    , fosFmte7(hUsed) hUsed
    , fosFmte7(vUsed) vUsed
    , fosFmte7(hRows) vRows
    , fosFmte7(vRows) vRows
  from j
  order by rz, dbSys, diff desc
;
explain plan set queryno = 44  for
    -- difference space/rows, ts/ix zwischen 2 Daten
with d (d,l) as
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 20 days, l+1
    from d
    where l < 999999 and d >= current date - 1 day
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like 'MF%'
--          and name in ( 'A150A', 'A007A')
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, g (rz, dbSys, db, d, tsUsed, rows, cParts, cTs) as
(
   select t2.rz, t2.dbSys, t2.dbName , d
        , sum(real(nActive) * pgSize * 1024)
        , sum(totalRows)
        , count(*) cParts, count(distinct t2.name)
     from t2 join oa1p.tqz006GbGrTsSTats r
        on r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
     group by t2.rz, t2.dbSys, t2.dbName, d
)
select * from g
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
;x;
, i1 as
(
   select rz, dbSys, dbName, ts, indexSpace, instance, partition
    from oa1p.tqz007GbGrIxSTats
    where (rz, dbSys, dbName, ts, instance) in
          (select rz, dbSys, dbName, name, instance
               from t1)
    group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i2 as
(
  select d.d, i1.*, (select max(loadTs) from oa1p.tqz007GbGrIxSTats r
    where i1.rz = r.rz and i1.dbSys = r.dbSys
          and  i1.dbName = r.dbName
          and  i1.ts   = r.ts
          and  i1.instance = r.instance
          and  i1.indexSpace = r.indexSpace
          and  i1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from i1, d
)
, i as
(
   select d, r.*
     from i2
      join oa1p.tqz007GbGrIxSTats r
        on i2.loadTS is not null and r.state <> 'd'
                and i2.rz        = r.rz
                and i2.dbSys     = r.dbSys
                and i2.dbName    = r.dbName
                and i2.ts        = r.ts
                and i2.indexSpace= r.indexSpace
                and i2.instance  = r.instance
                and i2.partition = r.partition
                and i2.loadTs    = r.loadTS
)
, u as
(
   select rz, dbSys, dbName db, name ts, ' -- ts' is
       , instance, partition, d
       , real(nActive) * pgSize * 1024 tsUsed
       , totalRows tsRows
       , 1         tsParts
       , cast(null as real) ixUsed
       , cast(null as bigInt ) ixEntries
       , loadTs, updateStatsTime
       , 0         ixParts
     from t
   union all
   select rz, dbSys, dbName db, ts, indexSpace is
       , instance, partition, d
       , cast(null as real) tsUsed
       , cast(null as bigInt ) tsRows
       , 0         tsParts
       , real(nActive) * ixPgSz * 1024 ixUsed
       , totalEntries ixEntries
       , loadTs, updateStatsTime
       , 1         ixParts
     from i
)
, g as
(
select rz, dbSys, db, ts, instance, partition
      , d
      , (sum(tsUsed)) tsUsed
      , (sum(tsRows)) tsRows
      , sum(tsParts) tsParts
      , (sum(ixUsed)) ixUsed
      , (sum(ixEntries)) ixEntries
      , sum(ixParts) ixParts
      , max(loadTs) loadTsMax
      , max(updateStatsTime) updateStatsMax
      , min(loadTs) loadTsMin
      , min(updateStatsTime) updateStatsMin
  from u
  group by rz, dbSys, db, ts, instance, partition
         , d
)
, j as
(
select a.rz, a.dbSys, a.db, a.ts, a.instance, a.partition
      , a.d  ad, o.d od
      , a.tsUsed - o.tsUsed tsUsed
      , a.tsRows - o.tsRows tsRows
      , a.tsParts
      , a.ixUsed - o.ixUsed ixUsed
      , a.ixEntries - o.ixEntries ixEntries
      , a.ixParts
      , a.loadTsMax aLoadTsMax, o.loadTsMax oLoadTsMax
      , a.updateStatsMax aUpdateStatsMax
      , o.updateStatsMax oUpdateStatsMax
  from g a join g o
    on a.rz = o.rz and a.dbSys = o.dbSys and a.db = o.db and a.ts = o.ts
       and a.instance = o.instance and a.partition = o.partition
       and o.d < current date
  where a.d = current date
)
select rz, dbSys, db, ts, instance, partition
      , ad, od
      , fosFmtE7((tsUsed)) tsUsed
      , fosFmtE7((tsRows)) tsRows
      , (tsParts) atsParts
      , fosFmtE7((ixUsed)) ixUsed
      , fosFmtE7((ixEntries)) ixEntries
      , (ixParts) aixParts
      , aLoadTsMax, oLoadTsMax
      , aUpdateStatsMax
      , oUpdateStatsMax
  from j
  order by (tsUsed + ixUsed) desc
}¢--- A540769.WK.SQL(GBGRSPDT) cre=2015-09-07 mod=2015-09-24-08.19.27 A540769 ---
    -- table Space Vergleich von 2 Daten
    --      summiert (und rollup) über rz, dbSys, db
    --
set current path oa1p;
set current application compatibility 'V11R1';
with p as  --- select partitions, new and old date ---------------------
(
   select -- date('13.07.2015') new
          current date new
        -- , date('19.06.2015') old
        , current date - 3 month old
        , rz, dbSys, dbName db, name ts, instance inst, partition pa
    from oa1p.tqz006GbGrTsSTats t
    where rz = 'RZ2' and dbSys = 'DBOF'
     --   and  dbName like 'MF0%'
    group by rz, dbSys, dbName, name, instance, partition
)
, k as  --- loadTs Keys for new and old -------------------------------
(
  select rz, dbSys, db, ts, inst, pa
      , ( select r.loadTs  from oa1p.tqz006GbGrTsSTats r
            where p.rz = r.rz and p.dbSys = r.dbSys
                and  p.db = r.dbName
                and  p.ts = r.name
                and  p.inst = r.instance
                and  p.pa = r.partition
                and loadTs < timestamp(p.new + 1 day)
            order by loadTs desc
            fetch first 1 row only
           ) nLoa -- new loadTs
      , ( select r.loadTs  from oa1p.tqz006GbGrTsSTats r
            where p.rz = r.rz and p.dbSys = r.dbSys
                and  p.db = r.dbName
                and  p.ts = r.name
                and  p.inst = r.instance
                and  p.pa = r.partition
                and loadTs < timestamp(p.old + 1 day)
            order by loadTs desc
            fetch first 1 row only
           ) oLoa -- old loadTs
    from p
)
,
t as    --- left join old and new statsRow, if active (not dropped) ---
(
  select k.rz, k.dbSys, k.db, k.ts, k.inst, k.pa, k.nLoa, k.oLoa
       , case when n.dbName is null then 0 else 1 end nCnt
       , real(value(n.totalRows, 0)) nRows
       , value(real(n.nActive) * n.pgSize * 1024, 0 ) nUsed
       , case when o.dbName is null then 0 else 1 end oCnt
       , real(value(o.totalRows, 0)) oRows
       , value(real(o.nActive) * o.pgSize * 1024, 0 ) oUsed
    from k
      left join oa1p.tqz006GbGrTsSTats n
        on k.rz = n.rz and k.dbSys = n.dbSys
          and k.db = n.dbName   and k.ts = n.name
          and k.inst = n.instance and k.pa = n.partition
          and k.nLoa = n.loadTs
          and n.state = 'a' and nLoa is not null
      left join oa1p.tqz006GbGrTsSTats o
        on k.rz = o.rz and k.dbSys = o.dbSys
          and k.db = o.dbName   and k.ts = o.name
          and k.inst = o.instance and k.pa = o.partition
          and k.oLoa = o.loadTs
          and o.state = 'a' and oLoa is not null
--  where n.dbName is not null or o.dbName is not null
)
, g as --- group rollup by db -----------------------------------------
(
  select rz, dbSys, db
     , count(*) cnt
     , sum(nCnt) nCnt
     , sum(oCnt) oCnt
     , sum(nRows) nRows
     , sum(oRows) oRows
     , sum(nUsed) nUsed
     , sum(oUsed) oUsed
  from t
  group by rollup (rz, dbSys, db)
)  --- übersichtlich darstellen
select rz, dbSys, db
   , substr(fosFmte7(nUsed-oUsed), 1, 7) "usedDiff"
   , substr(fosFmte7(nUsed), 1, 7) "nUsed"
   , substr(fosFmte7(oUsed), 1, 7) "oUsed"
   , substr(fosFmte7(nRows), 1, 7) "nRows"
   , substr(fosFmte7(oRows), 1, 7) "oRows"
   , substr(fosFmte7(cnt), 1, 7) "cnt"
   , substr(fosFmte7(nCnt), 1, 7) "nCnt"
   , substr(fosFmte7(oCnt), 1, 7) "oCnt"
from g
--where nCnt + oCnt > 0
order by case when db is null then 0 else 1 end, nUsed desc
fetch first 300 rows only
;
}¢--- A540769.WK.SQL(GBGRSPHC) cre=2014-08-20 mod=2014-08-20-15.13.53 A540769 ---
     -- table Space und Details History / Zeitreihe
set current path oa1p;
with d (d,l) as
(
  select date('31.12.2014'), 0
    from sysibm.sysDummy1
  union all select d - 1 year, l+1
    from d
    where l < 999999 and d >= current date - 4 years
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
 -- where rz = 'RZ2'    and dbSys = 'DBOF'
 --       and  dbName like 'XR%'
     --   and name like 'A250%'
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, t as
(
   select d, r.*
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
)
, g as
(
  select rz, dbSys, d
      , count(distinct dbName) cDb
      , count(distinct strip(dbName) || '.' || strip(name)) cTs
      , count(*) cPart
      , sum(real(nActive) * pgSize * 1024) used
      , sum(totalRows) rows
      , max(loadTs) loadMax
      , min(loadTs) loadMin
      , max(updateStatsTime) updMax
      , min(updateStatsTime) updMin
    from t
    group by rz, dbSys, d
)
, g1 as
(
  select rz, '*' dbSys, d
      , sum(cDb) cDb, sum(cTs) cTs, sum(cPart) cPart
      , sum(used) used, sum(rows) rows
      , max(loadMax) loadMax, min(loadMin) loadMin
      , max(updMax) updMax, min(updMin) updMin
    from g
    group by rz, d
)
, u as
(
   select * from g
   union all select * from g1
)
select rz, dbSys, date(loadMax) loadMax, cDb, cTs, cPart
      , int(round(used, 0) / 1024 / 1024 / 1024) "usedGB"
      , int(round(rows, 0) / 1000000) "rowsM"
  --  , d
  --  , date(loadMax) loadMax, date(loadMin) loadMin
  --  , date(updMax) updMax, date(updMin) updMin
    from u
    order by case when dbSys = '*' then 0 else 1 end, rz, dbSys, d desc
;
}¢--- A540769.WK.SQL(GBGRSPHI) cre=2014-07-30 mod=2016-06-23-10.54.45 A540769 ---
     -- index space und Details History / Zeitreihe
set current path oa1p;
select rz, dbSys, dbName, ts, indexSpace
      , substr(tsTy
          || case when tsClone = 'N' and instance=1 and tsInst=1 then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and tsParts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0  then ' npi'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
      , smallInt(partition) part
      , substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
      , substr(fosFmte7(totalEntries), 1, 7) rows
      , substr(name, 1, 30) "index"
      , updateStatsTime, i.*
    from oa1p.tqz007GbGrIxSTats i
    where rz = 'RR2' and dbSys = 'DBOF'
        and dbName = 'DI05A1P' and ts like 'A044%'
    order by rz, dbSys, dbName, ts, indexSpace, instance, partition
        , validEnd desc
; x;
with dR (d,l) as --- Zeitreihe ----------------------------------------
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 3 days, l+1
    from dR
    where l < 999999 and d >= current date - 1 months
)
, d as --- optimizer muss wissen dass kleine Zeitreihe ... ------------
(
   select * from dR fetch first 100 rows only
)
, i1 as --- index Partitionen auswählen -------------------------------
(
  select rz, dbSys, dbName, ts, indexSpace, instance, partition
    from oa1p.tqz007GbGrIxSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
        and dbName = 'MF01A1P' and ts like 'A150%'
    group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i2 as --- neueste loadTS für jedes Datut d ---------------------------
(
  select d.d, i1.*, (select max(loadTs) from oa1p.tqz007GbGrIxSTats r
    where i1.rz = r.rz and i1.dbSys = r.dbSys
          and  i1.dbName = r.dbName
          and  i1.ts   = r.ts
          and  i1.instance = r.instance
          and  i1.indexSpace = r.indexSpace
          and  i1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from i1, d
)
, i as --- join ixStats falls nicht geDropT ---------------------------
(
   select d, r.*
     from i2
      join oa1p.tqz007GbGrIxSTats r
        on i2.loadTS is not null and r.state <> 'd'
                and i2.rz        = r.rz
                and i2.dbSys     = r.dbSys
                and i2.dbName    = r.dbName
                and i2.ts        = r.ts
                and i2.indexSpace= r.indexSpace
                and i2.instance  = r.instance
                and i2.partition = r.partition
                and i2.loadTs    = r.loadTS
)
select rz, dbSys, dbName, ts, indexSpace
      , substr(tsTy
          || case when tsClone = 'N' and instance=1 and tsInst=1 then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and tsParts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0  then ' npi'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| tsParts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , d
      , substr(fosFmte7(real(nActive) * ixPgSz * 1024), 1, 7) used
      , substr(fosFmte7(totalEntries), 1, 7) rows
      , substr(name, 1, 30) "index"
      , updateStatsTime, i.*
    from i
    order by rz, dbSys, dbName, ts, indexSpace, instance, partition
        , d desc
;
}¢--- A540769.WK.SQL(GBGRSPHO) cre=2014-08-20 mod=2015-09-07-16.21.10 A540769 ---
     -- History Anzahl Objekte
     -- Anzahl DBs, TSs, Parts etc. Zeitreihe
set current path oa1p;
set current application compatibility 'V11R1';
with dR (d,l) as --- Zeitreihe ----------------------------------------
(
  select date(trunc_timestamp(current timestamp + 1 year, 'yy')
          - 1 day), 0
    from sysibm.sysDummy1
  union all select d - 1 year, l+1
    from dR
    where l < 9 -- and d >= current date - 4 years
)
, d as --- optimizier soll wissen, dass kleine Zeitreihe --------------
(
  select * from dR fetch first 20 rows only
)
, t1 as --- table Partitionen selektieren -----------------------------
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2'-- and dbSys = 'DBOF'
     --   and  dbName like 'XR%'
     --   and name like 'A250%'
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as --- neuesten loadTS pro Datum d selektieren -------------------
(
  select d.d, t1.*, (select loadTs from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
          order by loadTs desc
          fetch first 1 rows only
    ) loadTs
    from t1, d
)
, t as --- tsStats joinen falls nicht geDropT -------------------------
(
   select d, r.*
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state = 'a'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
)
, g as --- objekte und Platz summieren --------------------------------
(
  select rz, dbSys, d
      , count(distinct dbName) cDb
      , count(distinct strip(dbName) || '.' || strip(name)) cTs
      , count(*) cPart
      , sum(real(nActive) * pgSize * 1024) used
      , sum(totalRows) rows
      , max(loadTs) loadMax
      , min(loadTs) loadMin
      , max(updateStatsTime) updMax
      , min(updateStatsTime) updMin
    from t
    group by d, rollup (rz, dbSys)
)
select d, rz, dbSys, cDb, cTs, cPart
      , int(round(used, 0) / 1024 / 1024 / 1024) "usedGB"
      , int(round(rows, 0) / 1000000) "rowsM"
      , date(loadMax) loadMax, date(loadMin) loadMin
      , date(updMax) updMax, date(updMin) updMin
    from g
    order by value(rz, ''), value(dbSys, ''), d desc
;
}¢--- A540769.WK.SQL(GBGRSPHS) cre=2014-07-30 mod=2016-06-09-10.21.08 A540769 ---
set current path oa1p;
with d (d,l) as
(
  select timestamp(date(trunc_timestamp(
            current timestamp + 1 month, 'mon') - 1 day)), 0
    from sysibm.sysDummy1
  union all select ((d + 1 day) - 3 month) - 1 day, l+1
    from d
    where l < 999999 and d >= current timestamp - 10 years
)
, t as
(
   select d.d, r.*
    from oa1p.tqz006GbGrTsSTats r join d
    on d.d >= r.validBegin and d.d < r.validEnd
    where rz = 'RZ2' and dbSys = 'DBOF'
          and dbName = 'NI03A1P'
          and name   = 'A250A04'
      --  and partition = 91
)
select rz, dbSys, dbName db, name ts -- , instance, partition
      , d -- , max(date(loadTs)) maxLoad
      , fosFmtE7(sum(real(nActive) * pgSize * 1024))
      , fosFmtE7(sum(totalRows)) tsRows
      , count(*) tsParts
  from t
  group by rz, dbSys, dbName, name -- , instance, partition
         , d
  order by rz, dbSys, dbName, name --, instance, partition
         , d desc
;x;
?
with d (d,l) as
(
  select date(trunc_timestamp(
            current timestamp + 1 month, 'mon') - 1 day), 0
    from sysibm.sysDummy1
  union all select ((d + 1 day) - 1 month) - 1 day, l+1
    from d
    where l < 999999 and d >= current date - 400 day
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and dbName = 'NI03A1P'
          and name   = 'A250A04'
      --  and partition = 91
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, t as
(
   select d, r.*
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
)
, i1 as
(
   select rz, dbSys, dbName, ts, indexSpace, instance, partition
    from oa1p.tqz007GbGrIxSTats
    where (rz, dbSys, dbName, ts, instance) in
          (select rz, dbSys, dbName, name, instance
               from t1)
    group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i2 as
(
  select d.d, i1.*, (select max(loadTs) from oa1p.tqz007GbGrIxSTats r
    where i1.rz = r.rz and i1.dbSys = r.dbSys
          and  i1.dbName = r.dbName
          and  i1.ts   = r.ts
          and  i1.instance = r.instance
          and  i1.indexSpace = r.indexSpace
          and  i1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from i1, d
)
, i as
(
   select d, r.*
     from i2
      join oa1p.tqz007GbGrIxSTats r
        on i2.loadTS is not null and r.state <> 'd'
                and i2.rz        = r.rz
                and i2.dbSys     = r.dbSys
                and i2.dbName    = r.dbName
                and i2.ts        = r.ts
                and i2.indexSpace= r.indexSpace
                and i2.instance  = r.instance
                and i2.partition = r.partition
                and i2.loadTs    = r.loadTS
)
, u as
(
   select rz, dbSys, dbName db, name ts, ' -- ts' is
       , instance, partition, d
       , real(nActive) * pgSize * 1024 tsUsed
       , totalRows tsRows
       , 1         tsParts
       , cast(null as real) ixUsed
       , cast(null as bigInt ) ixEntries
       , loadTs, updateStatsTime
       , 0         ixParts
     from t
   union all
   select rz, dbSys, dbName db, ts, indexSpace is
       , instance, partition, d
       , cast(null as real) tsUsed
       , cast(null as bigInt ) tsRows
       , 0         tsParts
       , real(nActive) * ixPgSz * 1024 ixUsed
       , totalEntries ixEntries
       , loadTs, updateStatsTime
       , 1         ixParts
     from i
)
select rz, dbSys, db, ts, instance, partition
      , d, max(date(loadTs)) maxLoad
      , fosFmtE7(sum(tsUsed)) tsUsed
      , fosFmtE7(sum(tsRows)) tsRows
      , sum(tsParts) tsParts
      , fosFmtE7(sum(ixUsed)) ixUsed
      , fosFmtE7(sum(ixEntries)) ixEntries
      , sum(ixParts) ixParts
      , max(loadTs) loadTsMax
      , max(updateStatsTime) updateStatsMax
      , min(loadTs) loadTsMin
      , min(updateStatsTime) updateStatsMin
  from u
  group by rz, dbSys, db, ts, instance, partition
         , d
  order by rz, dbSys, db, ts, instance, partition
         , d desc
}¢--- A540769.WK.SQL(GBGRSPHT) cre=2014-07-30 mod=2016-06-23-08.01.40 A540769 ---
set current path oa1p;
set current path oa1p;
select rz, dbSys, dbName, name
      , substr(case when tsTy <> '' then tsTy else tsType end
          || case when clone in ('N', '?') and instance=1 and tsInst=1
                  then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and parts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| parts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , fqzFmtBin7(real(nActive) * pgSize * 1024) used
      , substr(fosFmte7(totalRows), 1, 7) rows
      , substr(tb, 1, 30) "table"
      , updateStatsTime
      , validBegin, validEnd
      , t.*
    from oa1p.tqz006GbGrTsSTats t
    where rz = 'RR2' and dbSys = 'DBOF'
        and  dbName = 'DI05A1P'
          and name = 'A044A'
   --     and partition = 139
    order by rz, dbSys, dbName, name, instance, partition
           , validBegin desc
;x;
with d (d,l) as --- Zeitreihe ----------------------------------------
(
  select timestamp(current date, '12:00:00'), 0
    from sysibm.sysDummy1
  union all select d - 1 month, l+1
    from d
    where l < 1 and d >= current timestamp - 33 months
)
, t as --- ts partitionen selektieren --------------------------------
(
   select dbName db, count(*) parts,
        sum(real(nActive) * nActive * pgSize * 1024)
    from oa1p.tqz006GbGrTsSTats t join d d
      on d >= validBegin and d < validEnd
    where rz = 'RZ2' and dbSys = 'DBOF'
        and  dbName like 'DI05A1P%'  A044A
          and name = 'A044A'
--        and partition = 16
)
select rz, dbSys, dbName, name
      , substr(case when tsTy <> '' then tsTy else tsType end
          || case when clone in ('N', '?') and instance=1 and tsInst=1
                  then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and parts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| parts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , date(d)
      , fqzFmtBin7(real(nActive) * pgSize * 1024) used
      , substr(fosFmte7(totalRows), 1, 7) rows
      , substr(tb, 1, 30) "table"
      , updateStatsTime
      , validBegin, validEnd
      , t.*
    from t
    order by rz, dbSys, dbName, name, instance, partition
           , d desc
;x
select rz, dbSys, dbName, name
      , substr(case when tsTy <> '' then tsTy else tsType end
          || case when clone in ('N', '?') and instance=1 and tsInst=1
                  then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and parts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| parts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , fqzFmtBin7(real(nActive) * pgSize * 1024) used
      , substr(fosFmte7(totalRows), 1, 7) rows
      , substr(tb, 1, 30) "table"
      , updateStatsTime
      , validBegin, validEnd
      , t.*
    from oa1p.tqz006GbGrTsSTats t
    where rz = 'RZ2' and dbSys = 'DBOF'
        and  dbName = 'KS09A1P'
          and name = 'A841A'
   --     and partition = 139
    order by rz, dbSys, dbName, name, instance, partition
           , validBegin desc
;x;
}¢--- A540769.WK.SQL(GBGRSPHX) cre=2014-09-18 mod=2014-09-18-15.49.28 A540769 ---
     -- table Space und Details History / Zeitreihe
set current path oa1p;
with d (d,l) as
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 3 days, l+1
    from d
    where l < 999999 and d >= current date - 1 months
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like 'XC%'
          and name like 'A102A%'
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, t as
(
   select d, r.*
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
)
select rz, dbSys, dbName, name
   -- , smallInt(partition) part
      , d
      , substr(fosFmte7(sum(real(nActive) * pgSize * 1024)), 1, 7) used
      , substr(fosFmte7(sum(totalRows)), 1, 7) rows
    from t
    group by rz, dbSys, dbName, name, d
    order by rz, dbSys, dbName, name
           , d desc
;
}¢--- A540769.WK.SQL(GBGRSPHY) cre=2016-05-04 mod=2016-05-04-11.40.47 A540769 ---
set current path oa1p;
set current application compatibility 'V11R1';
with d (d,l) as --- Zeitreihe ----------------------------------------
(
  select timestamp(current date, '12:00:00'), 0
    from sysibm.sysDummy1
  union all select d - 1 month, l+1
    from d
    where l < 1 and d >= current timestamp - 3 months
)
, t as --- ts partitionen selektieren --------------------------------
(
   select d, dbSys, dbName db, count(*) parts,
        sum(real(nActive) * pgSize * 1024) used
    from oa1p.tqz006GbGrTsSTats t join d d
      on d >= validBegin and d < validEnd
    where rz = 'RZ2' -- and dbSys = 'DBOF'
  --      and  dbName like 'MF%'
    group by dbSys, dbName, d
)
, j as
(
  select value(h.dbSys, o.dbSys) dbSys, value(h.db, o.db) db
        , value(h.parts, 0) hParts, value(h.used, 0) hUsed
        , value(o.parts, 0) oParts, value(o.used, 0) oUsed
      from (select * from t
                where d = timestamp(current date, '12:00:00')) h
        full outer join
           (select * from t
                where d < timestamp(current date, '12:00:00')) o
           on h.dbSys = o.dbSys and h.db = o.db
)
, g as
(
  select dbSys, db
         , real(sum(hParts)) hParts
         , real(sum(hUsed)) hUsed
         , real(sum(oUsed)) oUsed
         , sum(oParts) oParts
    from j
    group by rollup(dbSys, db)
)
select dbSys, db, fqzFmtbin8(hUsed-oUsed) dUsed
         , hParts hParts
         , fqzFmtbin7(hUsed) "hUsed"
         , fqzFmtbin7(oUsed) "oUsed"
         , oParts
    from g
    order by case when db is null then 0 else 1 end
              , hUsed - oUsed desc
    fetch first 20 rows only
;x;
select dbSys, db, hParts, hUsed, oParts, oUsed from g
    order by case when db is null then 0 else 1 end
              , hUsed - oUsed desc
;
commit
;
select * from QZ91CRS.tqz91GbGr
    order by case when db is null then 0 else 1 end
              , hUsed - oUsed desc
    fetch first 20 rows only
;
select dbSys, db, fqzFmtbin8(hUsed-oUsed) dUsed
         , hParts hParts
         , fqzFmtbin7(hUsed) "hUsed"
         , fqzFmtbin7(oUsed) "oUsed"
         , oParts
    from QZ91CRS.tqz91GbGr
    order by case when db is null then 0 else 1 end
              , hUsed - oUsed desc
    fetch first 20 rows only
;x;
select * from QZ91CRS.tqz91GbGr
    order by case when db is null then 0 else 1 end
              , hUsed - oUsed desc
    fetch first 20 rows only
;
insert into QZ91CRS.tqz91GbGr
select hUsed - oUsed dUsed, g.*
from g order by hUsed-oUsed desc fetch first 20 rows only;x;
select rz, dbSys, dbName, name
      , substr(case when tsTy <> '' then tsTy else tsType end
          || case when clone in ('N', '?') and instance=1 and tsInst=1
                  then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and parts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| parts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , date(d)
      , fqzFmtBin7(real(nActive) * pgSize * 1024) used
      , substr(fosFmte7(totalRows), 1, 7) rows
      , substr(tb, 1, 30) "table"
      , updateStatsTime
      , validBegin, validEnd
      , t.*
    from t
    order by rz, dbSys, dbName, name, instance, partition
           , d desc
;x
select rz, dbSys, dbName, name
      , substr(case when tsTy <> '' then tsTy else tsType end
          || case when clone in ('N', '?') and instance=1 and tsInst=1
                  then ''
                  else case when instance=tsInst then 'b' else 'c' end
                      || instance end, 1, 3) "yci"
      , substr(case when partition = 0 and parts = 0 then ''
            else case when partition is null            then ' ---'
                      when partition = 0 and tsTy = 'G' then ' pbg'
                      when partition = 0                then ' ???'
                      else right('   ' || partition, 4)
                 end
             ||'/'|| value(right('   '|| parts, 4),'----')
            end, 1, 9) "part/ tot"
   -- , smallInt(partition) part
      , fqzFmtBin7(real(nActive) * pgSize * 1024) used
      , substr(fosFmte7(totalRows), 1, 7) rows
      , substr(tb, 1, 30) "table"
      , updateStatsTime
      , validBegin, validEnd
      , t.*
    from oa1p.tqz006GbGrTsSTats t
    where rz = 'RZ2' and dbSys = 'DBOF'
        and  dbName = 'KS09A1P'
          and name = 'A841A'
   --     and partition = 139
    order by rz, dbSys, dbName, name, instance, partition
           , validBegin desc
;x;
with i (a,b,c) as
(
   select           3960775053310.,   250118951731000.,246158176678000.
   from sysibm.sysDummy1
/*                  3960775053310     250118951731000  246158176678000
                    2933560815620     200616159277000  197682598461000
                    1381719760900      24496883134500   23115163373600
                    1024443293700      49329890750500   48305447456800
                     632297033728      30661107347500   30028810313700
                     396287913984       7883666837500    7487378923520
                     239952084992       7154983014400    6915030929410
                     218987646976       1047364743170     828377096192
                     155673133056       5515789815810    5360116682750
                     105193377792       3796042153980    3690848776190
                      99904651264       3413942181890    3314037530620
                      97708589056       1035387568130     937678979072
                      75952566272       1258731061250    1182778494980
                      64318676992       2348400435200    2284081758210
                      50143559680        292865777664     242722217984
                      38754836480       2829956603900    2791201767420
                      38041886720       1151018463230    1112976576510
                      33779249152        965668048896     931888799744
                      32878104576        217535291392     184657186816
                      32710770688       1238296453120    1205585682430
*/
)
select fqzFmtbin8(a), fqzFmtBin7(b), fqzFmtBin7(c)
   from i
;x;
}¢--- A540769.WK.SQL(GBGRSTAT) cre=2016-06-21 mod=2016-07-28-09.47.11 A540769 ---
set current path oa1p;
  select rz, dbsys, loadTs, count(*)
    from OA1P.TQZ006GBGRTSSTATS t
    where rz = 'RQ2' and validEnd > current timestamp - 27 days
                     and validBegin > current timestamp - 27 days
    group by rz, dbsys, loadTs
    order by rz, dbsys, loadTs desc
;x;
select *
    from OA1P.TQZ006GBGRTSSTATS t
    where rz = 'RZ2' and dbSys = 'DE0G'
         where validBegin
         and dbName = 'NP01A1P' and name = 'A011A'
order by validEnd desc, partition
;x;
}¢--- A540769.WK.SQL(GBGRTO) cre=2016-01-07 mod=2016-01-07-11.29.28 A540769 ----
update oa1p.tqz006GbGrTsNew o
    set validEnd = ( select n.validBegin
                       from oa1p.tqz006GbGrTsNew n
            where o.rz = n.rz and o.dbSys = n.dbSys
                and o.dbName = n.dbName and o.name = n.name
                and o.partition = n.partition
                and o.instance  = n.instance
                and o.validBegin < n.validBegin
                and o.validEnd   >  n.validBegin
            order by n.validBegin asc
            fetch first 1 row only
            )
    where rz = 'RZZ' -- and validEnd > '9000-01-01-00.00.00'
        and exists
        ( select 1
                       from oa1p.tqz006GbGrTsNew n
            where o.rz = n.rz and o.dbSys = n.dbSys
                and o.dbName = n.dbName and o.name = n.name
                and o.partition = n.partition
                and o.instance  = n.instance
                and o.validBegin <  n.validBegin
                and o.validEnd   >  n.validBegin
        )
;
rollback
;x;
select
        ( select n.validBegin
                       from oa1p.tqz006GbGrTsNew n
            where o.rz = n.rz and o.dbSys = n.dbSys
                and o.dbName = n.dbName and o.name = n.name
                and o.partition = n.partition
                and o.instance  = n.instance
                and o.validBegin <  n.validBegin
                and o.validEnd   >  n.validBegin
            order by n.validBegin asc
            fetch first 1 row only
        )
     , o.*
    from oa1p.tqz006GbGrTsNew o
    where rz = 'RZZ' -- and validEnd > '9000-01-01-00.00.00'
        and exists
        ( select 1
                       from oa1p.tqz006GbGrTsNew n
            where o.rz = n.rz and o.dbSys = n.dbSys
                and o.dbName = n.dbName and o.name = n.name
                and o.partition = n.partition
                and o.instance  = n.instance
                and o.validBegin <  n.validBegin
                and o.validEnd   >  n.validBegin
        )
    fetch first 1000 rows only
;
rollback
;x;
}¢--- A540769.WK.SQL(GBGRTST) cre=2015-09-03 mod=2015-09-04-15.10.34 A540769 ---
set current path oa1p;
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
set current path oa1p;
set current application compatibility 'V11R1';
explain plan set queryno = 2   for
with k as
(
  select rz, dbSys, dbName db, name ts, instance inst, partition pa
      , max(loadTs) l0
      , ( select r.loadTs  from oa1p.tqz006GbGrTsSTats r
            where t.rz = r.rz and t.dbSys = r.dbSys
                and  t.dbName = r.dbName
                and  t.name = r.name
                and  t.instance = r.instance
                and  t.partition = r.partition
                and loadTs < timestamp(current date - 30 days)
            order by loadTs desc
            fetch first 1 row only
           ) l1
    from oa1p.tqz006GbGrTsSTats t
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like '%'
    group by rz, dbSys, dbName, name, instance, partition
)
,
t as
( select k.rz, k.dbSys, k.db, k.ts, k.inst, k.pa, k.l0, k.l1
       , case when r0.dbName is null then 0 else 1 end cnt0
       , real(value(r0.totalRows, 0)) rows0
       , value(real(r0.nActive) * r0.pgSize * 1024, 0 ) used0
       , case when r1.dbName is null then 0 else 1 end cnt1
       , real(value(r1.totalRows, 0)) rows1
       , value(real(r1.nActive) * r1.pgSize * 1024, 0 ) used1
    from k
      left join oa1p.tqz006GbGrTsSTats r0
        on k.rz = r0.rz and k.dbSys = r0.dbSys
          and k.db = r0.dbName  and k.ts = r0.name
          and k.inst = r0.instance and k.pa = r0.partition
          and k.l0 = r0.loadTs
          and r0.state = 'a' and l0 is not null
      left join oa1p.tqz006GbGrTsSTats r1
        on k.rz = r1.rz and k.dbSys = r1.dbSys
          and k.db = r1.dbName  and k.ts = r1.name
          and k.inst = r1.instance and k.pa = r1.partition
          and k.l1 = r1.loadTs
          and r1.state = 'a' and l1 is not null
--  where r0.dbName is not null or r1.dbName is not null
)
, d as
(
  select rz, dbSys, db
     , count(*) cnt
     , sum(cnt0) cnt0
     , sum(cnt1) cnt1
     , sum(rows0) rows0
     , sum(rows1) rows1
     , sum(used0) used0
     , sum(used1) used1
  from t
  group by grouping sets( rollup (rz, dbSys, db))
)
select rz, dbSys, db
   , substr(fosFmte7(used0-used1), 1, 7) "usedDiff"
   , substr(fosFmte7(used0), 1, 7) "used0"
   , substr(fosFmte7(used1), 1, 7) "used1"
   , substr(fosFmte7(rows0), 1, 7) "rows0"
   , substr(fosFmte7(rows1), 1, 7) "rows1"
   , substr(fosFmte7(cnt), 1, 7) "cnt"
   , substr(fosFmte7(cnt0), 1, 7) "cnt0"
   , substr(fosFmte7(cnt1), 1, 7) "cnt1"
from d
where cnt0 + cnt1 > 0
order by case when db is null then 0 else 1 end, used0-used1 desc
;
explain plan set queryno = 111 for
with k0 as
(
  select rz, dbSys, dbName db, name ts, instance inst, partition pa
      , max(loadTs) l0
    from oa1p.tqz006GbGrTsSTats t
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like '%'
    group by rz, dbSys, dbName, name, instance, partition
)
, k1 as
(
  select k0.*
      , case when l0 < timestamp(current date - 30 days) then l0 else
        ( select r.loadTs  from oa1p.tqz006GbGrTsSTats r
            where k0.rz = r.rz and k0.dbSys = r.dbSys
                and  k0.db = r.dbName
                and  k0.ts = r.name
                and  k0.inst = r.instance
                and  k0.pa = r.partition
                and loadTs < timestamp(current date - 30 days)
            order by loadTs desc
            fetch first 1 row only
           ) end l1
    from k0
)
,
t as
( select k.rz, k.dbSys, k.db, k.ts, k.inst, k.pa, k.l0, k.l1
       , case when r0.dbName is null then 0 else 1 end cnt0
       , real(value(r0.totalRows, 0)) rows0
       , value(real(r0.nActive) * r0.pgSize * 1024, 0 ) used0
       , case when r1.dbName is null then 0 else 1 end cnt1
       , real(value(r1.totalRows, 0)) rows1
       , value(real(r1.nActive) * r1.pgSize * 1024, 0 ) used1
    from k1 k
      left join oa1p.tqz006GbGrTsSTats r0
        on k.rz = r0.rz and k.dbSys = r0.dbSys
          and k.db = r0.dbName  and k.ts = r0.name
          and k.inst = r0.instance and k.pa = r0.partition
          and k.l0 = r0.loadTs
          and r0.state = 'a' and l0 is not null
      left join oa1p.tqz006GbGrTsSTats r1
        on l1 is not null and l0 <> l1
          and r1.state = 'a'
          and k.rz = r1.rz and k.dbSys = r1.dbSys
          and k.db = r1.dbName  and k.ts = r1.name
          and k.inst = r1.instance and k.pa = r1.partition
          and k.l1 = r1.loadTs
--  where r0.dbName is not null or r1.dbName is not null
)
select count(*) cnt
     , sum(cnt0) cnt0
     , sum(cnt1) cnt1
     , sum(rows0) rows0
     , sum(rows1) rows1
     , sum(used0) used0
     , sum(used1) used1
  from t
  /*
 group by value(h.rz, r1.rz), value(h.DbSys, v.dbSys)
       , value(h.dbName, v.dbName)
)
select count(*) parts, sum(diff)
    from j   */
;
explain plan set queryno = 7  for
with g as
(
   select current date xEE
        , current date - 31 day xB
        , rz , dbSys, dbName db, name ts, instance inst, partition pa
     from oa1p.tqz006GbGrTsSTats
     where rz = 'RZ2' and dbSys = 'DBOF'
     group by rz, dbSys, dbName, name, instance, partition
)
, t ( l, tAct, tBeg, rz, dbSys, db, ts, inst, pa,
          loadTs, state, pgSize, nActive, totalRows ) as
(
   select 0, timestamp(current date + 31 day)
        , timestamp(current date - 31 day)
        , rz , dbSys, dbName db, name ts, instance inst, partition pa
        , cast(null as timestamp), '', 0, 0, 0
     from oa1p.tqz006GbGrTsSTats
     where rz = 'RZ2' and dbSys = 'DBOF'
     group by rz, dbSys, dbName, name, instance, partition
   union all select l+1, t.tAct - 31 days, t.tBeg,
          t.rz, t.dbSys, t.db, t.ts, t.inst, t.pa,
          r.loadTs, r.state, r.pgSize, r.nActive, r.totalRows
     from t, oa1p.tqz006GbGrTsSTats r
         where l < 99 and t.rz = r.rz and t.dbSys = r.dbSys
               and  t.db = r.dbName
               and  t.ts = r.name
               and  t.inst = r.instance
               and  t.pa = r.partition
               and  r.loadTs = (select max(loadTs)
                   from oa1p.tqz006GbGrTsSTats q
         where t.rz = q.rz and t.dbSys = q.dbSys
               and  t.db = q.dbName
               and  t.ts = q.name
               and  t.inst = q.instance
               and  t.pa = q.partition
               and  q.loadTs < timestamp(t.tAct - 30 days)
               )
 )
 select count(*) from t
 ;
explain plan set queryno = 11  for
with d (d,l) as         --- history old
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 31 days, l+1
    from d
    where l < 1      and d >= current date - 2 months
)
, tz as
(
   select                 rz, dbSys, dbName, name, instance, partition
      ,   max(loadTs) lHeu
      , (select r.loadTs  from oa1p.tqz006GbGrTsSTats r
    where t0.rz = r.rz and t0.dbSys = r.dbSys
          and  t0.dbName = r.dbName
          and  t0.name = r.name
          and  t0.instance = r.instance
          and  t0.partition = r.partition
          and loadTs < timestamp(current date - 30 days)
    order by loadTs desc
    fetch first 1 row only
    ) load1M
    from oa1p.tqz006GbGrTsSTats t0
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like '%'
    group by rz, dbSys, dbName, name, instance, partition
)
,
j as
( select value(h.rz, v.rz) rz, value(h.DbSys, v.dbSys) dbSys
       , value(h.dbName, v.dbName) db
       , sum(real(value(h.totalRows, 0) - value(v.totalRows, 0))) diff
    from tz
      left join oa1p.tqz006GbGrTsSTats h
        on tz.rz = h.rz and tz.dbSys = h.dbSys
          and tz.dbName = h.dbName  and tz.name = h.name
          and tz.instance = h.instance and tz.partition = h.partition
          and tz.lHeu = h.loadTs
      left join oa1p.tqz006GbGrTsSTats v
        on tz.rz = v.rz and tz.dbSys = v.dbSys
          and tz.dbName = v.dbName  and tz.name = v.name
          and tz.instance = v.instance and tz.partition = v.partition
          and tz.load1M = v.loadTs
 group by value(h.rz, v.rz), value(h.DbSys, v.dbSys)
       , value(h.dbName, v.dbName)
)
select count(*) parts, sum(diff)
    from j
;
explain plan set queryno = 11  for
with d (d,l) as         --- history old
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 31 days, l+1
    from d
    where l < 1      and d >= current date - 2 months
)
, tz as
(
   select                 rz, dbSys, dbName, name, instance, partition
      ,   max(loadTs) lHeu
      , (select r.loadTs  from oa1p.tqz006GbGrTsSTats r
    where t0.rz = r.rz and t0.dbSys = r.dbSys
          and  t0.dbName = r.dbName
          and  t0.name = r.name
          and  t0.instance = r.instance
          and  t0.partition = r.partition
          and loadTs < timestamp(current date - 30 days)
    order by loadTs desc
    fetch first 1 row only
    ) load1M
    from oa1p.tqz006GbGrTsSTats t0
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like '%'
    group by rz, dbSys, dbName, name, instance, partition
)
,
j as
( select value(h.rz, v.rz) rz, value(h.DbSys, v.dbSys) dbSys
       , value(h.dbName, v.dbName) db
       , sum(real(value(h.totalRows, 0) - value(v.totalRows, 0))) diff
    from tz
      left join oa1p.tqz006GbGrTsSTats h
        on tz.rz = h.rz and tz.dbSys = h.dbSys
          and tz.dbName = h.dbName  and tz.name = h.name
          and tz.instance = h.instance and tz.partition = h.partition
          and tz.lHeu = h.loadTs
      left join oa1p.tqz006GbGrTsSTats v
        on tz.rz = v.rz and tz.dbSys = v.dbSys
          and tz.dbName = v.dbName  and tz.name = v.name
          and tz.instance = v.instance and tz.partition = v.partition
          and tz.load1M = v.loadTs
 group by value(h.rz, v.rz), value(h.DbSys, v.dbSys)
       , value(h.dbName, v.dbName)
)
select count(*) parts, sum(diff)
    from j
;
explain plan set queryno = 24  for
with d (d,l) as         --- history old
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 1 days, l+1
    from d
    where l < 3      and d >= current date - 2 months
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName = 'MF01A1P'
          and name like 'A150%'
      --  and partition = 13
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, t as
(
   select d, t2.dbName db, count(*) cnt
       , sum(real(nActive) * pgSize * 1024) used
       , sum(real(totalRows)) rows
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
   group by t2.dbName, t2.d
)
select count(*) dbDa, sum(cnt) cnt
       , sum(used) used, sum(rows) rows
    from t
;
explain plan set queryno = 23  for
with d (d,l) as         --- history old
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 1 days, l+1
    from d
    where l < 3      and d >= current date - 2 months
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like 'MF%'
      --  and name like 'A150%'
      --  and partition = 13
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, t as
(
   select d, t2.dbName db, count(*) cnt
       , sum(real(nActive) * pgSize * 1024) used
       , sum(real(totalRows)) rows
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
   group by t2.dbName, t2.d
)
select count(*) dbDa, sum(cnt) cnt
       , sum(used) used, sum(rows) rows
    from t
;
explain plan set queryno = 22  for
with dRec (d,l) as         --- history old
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 1 days, l+1
    from dRec
    where l < 3      and d >= current date - 2 months
)
, d (d, l) as
(
   select * from dRec fetch first 200  rows only
--          select current date               from sysibm.sysDummy1
--union all select current date - 1 month     from sysibm.sysDummy1
--union all select current date - 2 month     from sysibm.sysDummy1
--union all select current date - 3 month     from sysibm.sysDummy1
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like '%'
      --  and name like 'A150%'
      --  and partition = 13
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, tj as
(
   select l.d lD, l.rz lRz, l.dbSys lSys
          , l.dbName lDb, l.name lTs, l.instance lInst
          , l.partition lPa
          , l.loadTs lLo , r7.*
     from t2 l
      left join oa1p.tqz006GbGrTsSTats r7
        on l.loadTS is not null and r7.state <> 'd'
                and l.rz         = r7.rz
                and l.dbSys      = r7.dbSys
                and l.dbName     = r7.dbName
                and l.name       = r7.name
                and l.instance   = r7.instance
                and l.partition = r7.partition
                and l.loadTs     = r7.loadTS
)
, t  as
(
   select     lRz, lSys ldb, count(*) cnt
       , sum(real(nActive) * pgSize * 1024) used
       , sum(real(totalRows)) rows
     from tj
     group by     lRz, lSys, lDb
)
select count(*) dbDa, sum(cnt) cnt
       , sum(used) used, sum(rows) rows
    from t
;
explain plan set queryno = 51  for
with d (d,l) as         --- history old
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 31 days, l+1
    from d
    where l < 1      and d >= current date - 2 months
)
, t1 as
(
   select current date d, rz, dbSys, dbName, name, instance, partition
       , max(loadTs)  loadTs
   --  , max(case when loadTs < timestamp(current date - 30 days)
   --         then loadTs else '1111-11-11-11.11.11' end) loadAlt
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like '%'
      --  and name like 'A150%'
      --  and partition = 13
      --  and loadTs < timestamp(d + 1 day)
    group by  rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select t1.*, (select max(r.loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
     ) loadTsXX
     from t1
 )
 , t as
 (
    select    t1.dbName db, count(*) cnt
        , sum(real(nActive) * pgSize * 1024) used
        , sum(real(totalRows)) rows
      from t1
       join oa1p.tqz006GbGrTsSTats r
         on t1.loadTS is not null and r.state <> 'd'
                 and t1.rz        = r.rz
                 and t1.dbSys     = r.dbSys
                 and t1.dbName    = r.dbName
                 and t1.name      = r.name
                 and t1.instance  = r.instance
                 and t1.partition = r.partition
                 and t1.loadTs    = r.loadTS
    group by t1.dbName
 )
 select count(*) parts
        , sum(real(second(loadTs)))
     from t1
;
explain plan set queryno = 52  for
with d (d,l) as         --- history old
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 31 days, l+1
    from d
    where l < 1      and d >= current date - 2 months
)
, t1 as
(
   select              d, rz, dbSys, dbName, name, instance, partition
       , max(loadTs)  loadTs
    -- , max(case when loadTs < timestamp(current date - 30 days)
    --        then loadTs else '1111-11-11-11.11.11' end) loadAlt
    from oa1p.tqz006GbGrTsSTats, d
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like '%'
      --  and name like 'A150%'
      --  and partition = 13
          and loadTs < timestamp(d + 1 day)
    group by d, rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select t1.*, (select max(r.loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
    --    and loadTs < timestamp(d.d + 1 day)
    ) loadTsXX
    from t1
)
, t as
(
   select    t1.dbName db, count(*) cnt
       , sum(real(nActive) * pgSize * 1024) used
       , sum(real(totalRows)) rows
     from t1
      join oa1p.tqz006GbGrTsSTats r
        on t1.loadTS is not null and r.state <> 'd'
                and t1.rz        = r.rz
                and t1.dbSys     = r.dbSys
                and t1.dbName    = r.dbName
                and t1.name      = r.name
                and t1.instance  = r.instance
                and t1.partition = r.partition
                and t1.loadTs    = r.loadTS
   group by t1.dbName
)
select count(*) parts
       , sum(real(second(loadTs)))
    from t1
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
    -- difference space/rows, ts/ix zwischen 2 Daten
with d (d,l) as
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 31 days, l+1
    from d
    where l < 999999 and d >= current date - 1 day
)
, t2 as
(
   select d, rz, dbSys, dbName, name, instance, partition
       , max(loadTs) loadTs
    from oa1p.tqz006GbGrTsSTats join d
      on loadTs < timestamp(d.d + 1 day)
    where rz = 'RZ2' and dbSys = 'DBOF'
      --  and  dbName like 'M%'
      --    and name in ( 'A150A', 'A007A')
    group by d, rz, dbSys, dbName, name, instance, partition
)
, t2x as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, g (rz, dbSys, db, d, tsUsed, rows, cParts, cTs) as
(
   select t2.rz, t2.dbSys, t2.dbName , d
        , sum(value(real(nActive) * pgSize * 1024, 0))
        , sum(value(totalRows, 0))
        , count(*) , count(distinct t2.name)
     from t2 join oa1p.tqz006GbGrTsSTats r
        on             --            r.state <> 'd'
                    t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
     group by t2.rz, t2.dbSys, t2.dbName, d
)
, j as
(
  select value(h.rz, v.rz) rz
       , value(h.dbSys, v.dbSys) dbSys
       , value(h.db, v.db) db
     ,  value(h.tsUsed, 0) - value(v.tsUsed, 0) diff
     ,  h.tsUsed hUsed
     ,  v.tsUsed vUsed
     ,  h.rows hRows
     ,  v.rows vRows
     from (select * from g where d = current date) h
       full outer join
           (select * from g where d = current date - 31 days) v
         on h.rz = v.rz and h.dbSys = v.dbSys and h.db = v.db
)
select rz, dbSys, db
    , fosFmte7(diff) diff
    , fosFmte7(hUsed) hUsed
    , fosFmte7(vUsed) vUsed
    , fosFmte7(hRows) vRows
    , fosFmte7(vRows) vRows
  from j
  order by rz, dbSys, diff desc
;
explain plan set queryno = 44  for
    -- difference space/rows, ts/ix zwischen 2 Daten
with d (d,l) as
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 20 days, l+1
    from d
    where l < 999999 and d >= current date - 1 day
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like 'MF%'
--          and name in ( 'A150A', 'A007A')
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, g (rz, dbSys, db, d, tsUsed, rows, cParts, cTs) as
(
   select t2.rz, t2.dbSys, t2.dbName , d
        , sum(real(nActive) * pgSize * 1024)
        , sum(totalRows)
        , count(*) cParts, count(distinct t2.name)
     from t2 join oa1p.tqz006GbGrTsSTats r
        on r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
     group by t2.rz, t2.dbSys, t2.dbName, d
)
select * from g
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
;x;
, i1 as
(
   select rz, dbSys, dbName, ts, indexSpace, instance, partition
    from oa1p.tqz007GbGrIxSTats
    where (rz, dbSys, dbName, ts, instance) in
          (select rz, dbSys, dbName, name, instance
               from t1)
    group by rz, dbSys, dbName, ts, indexSpace, instance, partition
)
, i2 as
(
  select d.d, i1.*, (select max(loadTs) from oa1p.tqz007GbGrIxSTats r
    where i1.rz = r.rz and i1.dbSys = r.dbSys
          and  i1.dbName = r.dbName
          and  i1.ts   = r.ts
          and  i1.instance = r.instance
          and  i1.indexSpace = r.indexSpace
          and  i1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from i1, d
)
, i as
(
   select d, r.*
     from i2
      join oa1p.tqz007GbGrIxSTats r
        on i2.loadTS is not null and r.state <> 'd'
                and i2.rz        = r.rz
                and i2.dbSys     = r.dbSys
                and i2.dbName    = r.dbName
                and i2.ts        = r.ts
                and i2.indexSpace= r.indexSpace
                and i2.instance  = r.instance
                and i2.partition = r.partition
                and i2.loadTs    = r.loadTS
)
, u as
(
   select rz, dbSys, dbName db, name ts, ' -- ts' is
       , instance, partition, d
       , real(nActive) * pgSize * 1024 tsUsed
       , totalRows tsRows
       , 1         tsParts
       , cast(null as real) ixUsed
       , cast(null as bigInt ) ixEntries
       , loadTs, updateStatsTime
       , 0         ixParts
     from t
   union all
   select rz, dbSys, dbName db, ts, indexSpace is
       , instance, partition, d
       , cast(null as real) tsUsed
       , cast(null as bigInt ) tsRows
       , 0         tsParts
       , real(nActive) * ixPgSz * 1024 ixUsed
       , totalEntries ixEntries
       , loadTs, updateStatsTime
       , 1         ixParts
     from i
)
, g as
(
select rz, dbSys, db, ts, instance, partition
      , d
      , (sum(tsUsed)) tsUsed
      , (sum(tsRows)) tsRows
      , sum(tsParts) tsParts
      , (sum(ixUsed)) ixUsed
      , (sum(ixEntries)) ixEntries
      , sum(ixParts) ixParts
      , max(loadTs) loadTsMax
      , max(updateStatsTime) updateStatsMax
      , min(loadTs) loadTsMin
      , min(updateStatsTime) updateStatsMin
  from u
  group by rz, dbSys, db, ts, instance, partition
         , d
)
, j as
(
select a.rz, a.dbSys, a.db, a.ts, a.instance, a.partition
      , a.d  ad, o.d od
      , a.tsUsed - o.tsUsed tsUsed
      , a.tsRows - o.tsRows tsRows
      , a.tsParts
      , a.ixUsed - o.ixUsed ixUsed
      , a.ixEntries - o.ixEntries ixEntries
      , a.ixParts
      , a.loadTsMax aLoadTsMax, o.loadTsMax oLoadTsMax
      , a.updateStatsMax aUpdateStatsMax
      , o.updateStatsMax oUpdateStatsMax
  from g a join g o
    on a.rz = o.rz and a.dbSys = o.dbSys and a.db = o.db and a.ts = o.ts
       and a.instance = o.instance and a.partition = o.partition
       and o.d < current date
  where a.d = current date
)
select rz, dbSys, db, ts, instance, partition
      , ad, od
      , fosFmtE7((tsUsed)) tsUsed
      , fosFmtE7((tsRows)) tsRows
      , (tsParts) atsParts
      , fosFmtE7((ixUsed)) ixUsed
      , fosFmtE7((ixEntries)) ixEntries
      , (ixParts) aixParts
      , aLoadTsMax, oLoadTsMax
      , aUpdateStatsMax
      , oUpdateStatsMax
  from j
  order by (tsUsed + ixUsed) desc
}¢--- A540769.WK.SQL(GBGRX0) cre=2015-09-07 mod=2015-09-07-07.41.18 A540769 ----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
set current path oa1p;
explain plan set queryno = 3   for
     -- table Space und Details History / Zeitreihe
with d (d,l) as
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 1 month, l+1
    from d
    where l < 999999 and d >= current date - 6 months
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like 'XR01%'
     --   and name like 'A002%'
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, t as
(
   select d, r.*
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
)
 , g as
 (
   select d, rz, dbSys, dbName
       , sum(value(real(nActive) * pgSize * 1024, 0)) used
       , sum(value(totalRows, 0)) rows
       , count(*) cnt
     from t
     group by d,rz, dbSys, dbName
 )
select * from g
;
explain plan set queryno = 22  for
     -- table Space und Details History / Zeitreihe
with d (d,l) as
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 1 month, l+1
    from d
    where l < 999999 and d >= current date - 6 months
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
          and  dbName like 'XR01%'
     --   and name like 'A002%'
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, t as
(
   select d, r.*
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
)
 , g as
 (
   select d, rz, dbSys, dbName
       , sum(value(real(nActive) * pgSize * 1024, 0)) used
       , sum(value(totalRows, 0)) rows
       , count(*) cnt
     from t
     group by d,rz, dbSys, dbName
 )
select * from t
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(GBGRX1) cre=2015-09-07 mod=2015-09-07-07.16.30 A540769 ----
     -- table Space und Details History / Zeitreihe
set current path oa1p;
set current application compatibility 'V11R1';
with dr (d,l) as
(
  select current date, 0
    from sysibm.sysDummy1
  union all select d - 1 month, l+1
    from dr
    where l < 99 and d >= current date - 0 months
)
, d as
(
  select * from dr fetch first 100 rows only
)
, t1 as
(
   select rz, dbSys, dbName, name, instance, partition
    from oa1p.tqz006GbGrTsSTats
    where rz = 'RZ2' and dbSys = 'DBOF'
     --   and  dbName like 'MF%'
     --   and name like 'A002%'
    group by rz, dbSys, dbName, name, instance, partition
)
, t2 as
(
  select d.d, t1.*, (select max(loadTs) from oa1p.tqz006GbGrTsSTats r
    where t1.rz = r.rz and t1.dbSys = r.dbSys
          and  t1.dbName = r.dbName
          and  t1.name = r.name
          and  t1.instance = r.instance
          and  t1.partition = r.partition
          and loadTs < timestamp(d.d + 1 day)
    ) loadTs
    from t1, d
)
, t as
(
   select d, r.*
     from t2
      join oa1p.tqz006GbGrTsSTats r
        on t2.loadTS is not null and r.state <> 'd'
                and t2.rz        = r.rz
                and t2.dbSys     = r.dbSys
                and t2.dbName    = r.dbName
                and t2.name      = r.name
                and t2.instance  = r.instance
                and t2.partition = r.partition
                and t2.loadTs    = r.loadTS
)
, g as
(
  select d, rz, dbSys, dbName
      , sum(value(real(nActive) * pgSize * 1024, 0)) used
      , sum(value(totalRows, 0)) rows
      , count(*) cnt
    from t
    group by d,rz, dbSys, dbName
)
, j as
(
  select value(h.rz, v.rz) rz, value(h.dbSys, v.dbSys) dbSys
      , value(h.dbName, v.dbName) dbName
      , h.used hUsed
      , v.used vUsed
      , h.rows hRows
      , v.rows vRows
      , h.cnt hCnt
      , v.cnt vCnt
  from (select * from g where d = current date) h
    full outer join (select * from g where d < current date) v
      on h.rz = v.rz and h.dbSys = v.dbSys and h.dbName = v.dbName
)
, jg as
(
  select rz, dbSys, dbName
      , sum(hUsed - vUsed) diffUsed
      , sum(hUsed) hUsed
      , sum(vUsed) vUsed
      , sum(hRows - vRows) diffRows
      , sum(hRows) hRows
      , sum(vRows) vRows
      , sum(hCnt) hCnt
      , sum(vCnt) vCnt
    from j
    group by grouping sets (rollup(rz, dbSys, dbName))
)
select * from jg
    where hCnt + vCnt > 0
    order by case when dbName is null then 0 else 1 end
           , diffUsed desc
}¢--- A540769.WK.SQL(GBGRZ2R) cre=2016-03-31 mod=2016-03-31-10.09.35 A540769 ---
delete from OA1P.TQZ008GBGRSCHWELLE
    where rz = 'RQ2' and prio >= 0;
insert into OA1P.TQZ008GBGRSCHWELLE  (PRIO, RZ, DBSYS, DB, TS, PART
      ,TSTY, DSMIN, SCHWELLE, VALIDBEGIN, VALIDEND
      , ERFASSER, grUse, grund)
select prio, 'RQ2', DBSYS, DB, TS, PART
      ,TSTY, DSMIN, SCHWELLE, VALIDBEGIN, VALIDEND
      , ERFASSER, grUse, grund
from OA1P.TQZ008GBGRSCHWELLE
    where rz = 'RZ2' and prio >= 0;
commit
;
}¢--- A540769.WK.SQL(GENAGG) cre=2011-05-11 mod=2011-05-11-15.24.51 A540769 ----
$#@
call sqlConnect DBOC
$@=¢
    select * from sysibm.sysColumns
        where tbCreator = 'A540769' and tbName = 'TACCT_GENERAL'
        order by name
$!
$| $@<.sqlRdr()
$| $@forWith i $@¢
    $=nk=- translate($NAME, m.mAlfLC, m.mAlfUC)
    if abbrev($nk, 'class') then
        $=nk=- 'c'substr($nk, 6)
    $=nk=- strip(left($nk, 12))
    if pos('DEC', $COLTYPE) <= 0 & pos('INT', $COLTYPE) <= 0 then do
         $$ $''   min($NAME) "$nk<" ,
         end
    else if abbrev($NAME, 'CLASS') then do
         $$ $''   fosFmtE7(sum($NAME)) "$nk" ,
         end
    else do
         $$ $''   sum($NAME) "$nk" ,
         end
$!
$#out                                              20110511 15:24:50
   sum(ARCH_LOG_SUSP) "arch_log_sus" ,
   sum(ARCH_READS_SUSP) "arch_reads_s" ,
   sum(ASYNCH_IXL_REQU) "asynch_ixl_r" ,
   min(BYTES_PER_LOG_REC) "bytes_per_lo<" ,
   sum(CACHE_LIMIT_EXCEED) "cache_limit_" ,
   sum(CHANGE_REQ) "change_req" ,
   sum(CLAIM_FAILED) "claim_failed" ,
   sum(CLAIM_REL_SUSP) "claim_rel_su" ,
   sum(CLAIM_REQ) "claim_req" ,
   fosFmtE7(sum(CLASS1_CPU_TOTAL)) "c1_cpu_total" ,
   fosFmtE7(sum(CLASS1_ELAPSED)) "c1_elapsed" ,
   fosFmtE7(sum(CLASS1_IIP_CPU)) "c1_iip_cpu" ,
   fosFmtE7(sum(CLASS1_SU_CPU)) "c1_su_cpu" ,
   fosFmtE7(sum(CLASS1_SU_IIP_CPU)) "c1_su_iip_cp" ,
   min(CLASS2) "c2<" ,
   fosFmtE7(sum(CLASS2_CPU_TOTAL)) "c2_cpu_total" ,
   fosFmtE7(sum(CLASS2_ELAPSED)) "c2_elapsed" ,
   fosFmtE7(sum(CLASS2_IIP_CPU)) "c2_iip_cpu" ,
   fosFmtE7(sum(CLASS2_SU_CPU)) "c2_su_cpu" ,
   fosFmtE7(sum(CLASS2_SU_IIP_CPU)) "c2_su_iip_cp" ,
   min(CLASS3) "c3<" ,
   fosFmtE7(sum(CLASS3_ARCH_LOG)) "c3_arch_log" ,
   fosFmtE7(sum(CLASS3_ARCH_READS)) "c3_arch_read" ,
   fosFmtE7(sum(CLASS3_ASYNCH_IXL)) "c3_asynch_ix" ,
   fosFmtE7(sum(CLASS3_CLAIM_REL)) "c3_claim_rel" ,
   fosFmtE7(sum(CLASS3_DB_IO)) "c3_db_io" ,
   fosFmtE7(sum(CLASS3_DRAIN_LOCK)) "c3_drain_loc" ,
   fosFmtE7(sum(CLASS3_EXT_DEL_DEF)) "c3_ext_del_d" ,
   fosFmtE7(sum(CLASS3_FORCE_AT_C)) "c3_force_at_" ,
   fosFmtE7(sum(CLASS3_GLOBAL_CONT)) "c3_global_co" ,
   fosFmtE7(sum(CLASS3_LLOCK_CHILD)) "c3_llock_chi" ,
   fosFmtE7(sum(CLASS3_LLOCK_OTHER)) "c3_llock_oth" ,
   fosFmtE7(sum(CLASS3_LLOCK_PARNT)) "c3_llock_par" ,
   fosFmtE7(sum(CLASS3_LOCK_LATCH)) "c3_lock_latc" ,
   fosFmtE7(sum(CLASS3_LOG_WRT_IO)) "c3_log_wrt_i" ,
   fosFmtE7(sum(CLASS3_NOTIFY_MSG)) "c3_notify_ms" ,
   fosFmtE7(sum(CLASS3_OPEN_CLOSE)) "c3_open_clos" ,
   fosFmtE7(sum(CLASS3_OTHER_READ)) "c3_other_rea" ,
   fosFmtE7(sum(CLASS3_OTHER_SERV)) "c3_other_ser" ,
   fosFmtE7(sum(CLASS3_OTHER_WRITE)) "c3_other_wri" ,
   fosFmtE7(sum(CLASS3_PAGE_LATCH)) "c3_page_latc" ,
   fosFmtE7(sum(CLASS3_PLOCK_OTHER)) "c3_plock_oth" ,
   fosFmtE7(sum(CLASS3_PLOCK_PAGE)) "c3_plock_pag" ,
   fosFmtE7(sum(CLASS3_PLOCK_PSET)) "c3_plock_pse" ,
   fosFmtE7(sum(CLASS3_SCHEDUL_UDF)) "c3_schedul_u" ,
   fosFmtE7(sum(CLASS3_SCHED_STPRC)) "c3_sched_stp" ,
   fosFmtE7(sum(CLASS3_SERV_TASK)) "c3_serv_task" ,
   fosFmtE7(sum(CLASS3_SYNC_IO)) "c3_sync_io" ,
   fosFmtE7(sum(CLASS3_SYSLOGR_REC)) "c3_syslogr_r" ,
   fosFmtE7(sum(CLASS3_UPD_COMMIT)) "c3_upd_commi" ,
   fosFmtE7(sum(CLASS5_DESCRIBE)) "c5_describe" ,
   fosFmtE7(sum(CLASS5_ELAPSED)) "c5_elapsed" ,
   fosFmtE7(sum(CLASS5_LOG_EXTRACT)) "c5_log_extra" ,
   fosFmtE7(sum(CLASS5_TCB)) "c5_tcb" ,
   sum(CLOSE) "close" ,
   sum(COMMIT) "commit" ,
   min(CONNECT_ID) "connect_id<" ,
   min(CONNECT_TYPE) "connect_type<" ,
   min(CORRNAME) "corrname<" ,
   min(CORRNUMBER) "corrnumber<" ,
   sum(DATA_ROWS_RETURNED) "data_rows_re" ,
   sum(DB_IO_SUSP) "db_io_susp" ,
   sum(DEADLOCK) "deadlock" ,
   sum(DELETE) "delete" ,
   sum(DESCRIBE) "describe" ,
   sum(DESCRIBES_PERFORM) "describes_pe" ,
   sum(DESCRIBE_TABLE) "describe_tab" ,
   sum(DESCRIPT_RETURNED) "descript_ret" ,
   sum(DIRECT_ACCESS) "direct_acces" ,
   sum(DRAIN_FAILED) "drain_failed" ,
   sum(DRAIN_LOCK_SUSP) "drain_lock_s" ,
   sum(DRAIN_REQ) "drain_req" ,
   sum(EXT_DEL_DEF_SUSP) "ext_del_def_" ,
   sum(FETCH) "fetch" ,
   sum(FORCE_AT_COMMIT) "force_at_com" ,
   sum(GLOBAL_CONT_SUSP) "global_cont_" ,
   min(GROUP_NAME) "group_name<" ,
   sum(HIGHEST_USED_CPU) "highest_used" ,
   min(ID) "id<" ,
   sum(IFI_CALLS) "ifi_calls" ,
   sum(IIPCP_ELIGIBLE) "iipcp_eligib" ,
   sum(IMPLICIT_PREPARES) "implicit_pre" ,
   sum(INCOMPAT_RET_LOCK) "incompat_ret" ,
   sum(INCREMENTAL_BIND) "incremental_" ,
   sum(INDEX_USED) "index_used" ,
   min(INSDATE) "insdate<" ,
   sum(INSERT) "insert" ,
   sum(LIMIT_IN_CPU) "limit_in_cpu" ,
   sum(LIMIT_IN_SU) "limit_in_su" ,
   sum(LLOCK_CHILD_SUSP) "llock_child_" ,
   sum(LLOCK_OTHER_SUSP) "llock_other_" ,
   sum(LLOCK_PARENT_SUSP) "llock_parent" ,
   sum(LOCK_ESC_EXCLUSIVE) "lock_esc_exc" ,
   sum(LOCK_ESC_SHARED) "lock_esc_sha" ,
   sum(LOCK_LATCH_SUSP) "lock_latch_s" ,
   sum(LOCK_REQ) "lock_req" ,
   sum(LOCK_TABLE) "lock_table" ,
   sum(LOG_READS_PERFORM) "log_reads_pe" ,
   sum(LOG_RECS_CAPTURED) "log_recs_cap" ,
   sum(LOG_RECS_RETURNED) "log_recs_ret" ,
   sum(LOG_RECS_WRITTEN) "log_recs_wri" ,
   sum(LOG_WRT_IO_SUSP) "log_wrt_io_s" ,
   sum(LUW_SEQNO) "luw_seqno" ,
   sum(MAX_LOCKS_HELD) "max_locks_he" ,
   sum(MAX_SQL_CASCAD_LVL) "max_sql_casc" ,
   sum(MAX_STOR_LOB_VALUE) "max_stor_lob" ,
   sum(NOTIFY_MSG_SENT) "notify_msg_s" ,
   sum(NOTIFY_MSG_SUSP) "notify_msg_s" ,
   sum(OCCURRENCES) "occurrences" ,
   sum(OPEN) "open" ,
   sum(OPEN_CLOSE_SUSP) "open_close_s" ,
   sum(OTHER_READ_SUSP) "other_read_s" ,
   sum(OTHER_REQ) "other_req" ,
   sum(OTHER_SERV_SUSP) "other_serv_s" ,
   sum(OTHER_WRITE_SUSP) "other_write_" ,
   sum(PAGE_LATCH_SUSP) "page_latch_s" ,
   sum(PARTSPLIT) "partsplit" ,
   min(PLAN_NAME) "plan_name<" ,
   sum(PLOCK_OTHER_SUSP) "plock_other_" ,
   sum(PLOCK_PAGE_SUSP) "plock_page_s" ,
   sum(PLOCK_PSET_SUSP) "plock_pset_s" ,
   sum(PREPARE) "prepare" ,
   sum(PREP_FROM_CACHE) "prep_from_ca" ,
   sum(PREP_STMT_MATCH) "prep_stmt_ma" ,
   sum(PREP_STMT_NO_MATCH) "prep_stmt_no" ,
   sum(PREP_STMT_PURGED) "prep_stmt_pu" ,
   sum(PROGRAMS) "programs" ,
   sum(P_LOCK_CHANGE) "p_lock_chang" ,
   sum(P_LOCK_LOCK) "p_lock_lock" ,
   sum(P_LOCK_UNLOCK) "p_lock_unloc" ,
   sum(QUERY_REQ) "query_req" ,
   sum(REOPTIMIZATION) "reoptimizati" ,
   sum(RID_POOL_FAIL_MXLT) "rid_pool_fai" ,
   sum(RID_POOL_FAIL_NOSG) "rid_pool_fai" ,
   sum(RID_POOL_USED) "rid_pool_use" ,
   min(RLF_TABLE) "rlf_table<" ,
   sum(RLF_TYPE) "rlf_type" ,
   sum(ROLLBACK) "rollback" ,
   sum(ROW_TRIGGER) "row_trigger" ,
   min(RZ) "rz<" ,
   sum(SCHEDUL_UDF_SUSP) "schedul_udf_" ,
   sum(SCHED_STPRC_SUSP) "sched_stprc_" ,
   sum(SELECT) "select" ,
   sum(SERV_TASK_SUSP) "serv_task_su" ,
   sum(SET_CURRENT_PREC) "set_current_" ,
   sum(STATEMENT_TRIGGER) "statement_tr" ,
   sum(STPROC_ABEND) "stproc_abend" ,
   sum(STPROC_CALL) "stproc_call" ,
   sum(STPROC_REJECTED) "stproc_rejec" ,
   sum(STPROC_TIMEOUT) "stproc_timeo" ,
   min(SUBSYSTEM_ID) "subsystem_id<" ,
   sum(SUSPEND_FALSE_CONT) "suspend_fals" ,
   sum(SUSPEND_IRLM_CONT) "suspend_irlm" ,
   sum(SUSPEND_IRLM_LATCH) "suspend_irlm" ,
   sum(SUSPEND_LOCK) "suspend_lock" ,
   sum(SUSPEND_OTHER) "suspend_othe" ,
   sum(SUSPEND_XES_CONT) "suspend_xes_" ,
   sum(SU_IIPCP_ELIGIBLE) "su_iipcp_eli" ,
   sum(SVPT_RELEASE) "svpt_release" ,
   sum(SVPT_REQUESTS) "svpt_request" ,
   sum(SVPT_ROLLBACK) "svpt_rollbac" ,
   sum(SYNC_IO_SUSP) "sync_io_susp" ,
   sum(SYNC_XES_CHANGE) "sync_xes_cha" ,
   sum(SYNC_XES_LOCK) "sync_xes_loc" ,
   sum(SYNC_XES_UNLOCK) "sync_xes_unl" ,
   sum(SYSLOGR_REC_SUSP) "syslogr_rec_" ,
   sum(TABLES_RETURNED) "tables_retur" ,
   sum(TIMEOUT) "timeout" ,
   min(TIMESTAMP) "timestamp<" ,
   sum(TRIGGER_SQL_ERROR) "trigger_sql_" ,
   sum(TS_SCAN_USED) "ts_scan_used" ,
   sum(UDF_ABENDS) "udf_abends" ,
   sum(UDF_EXECUTED) "udf_executed" ,
   sum(UDF_REJECTED) "udf_rejected" ,
   sum(UDF_TIMEOUTS) "udf_timeouts" ,
   sum(UNLOCK_REQ) "unlock_req" ,
   sum(UPDATE) "update" ,
   sum(UPD_COMMIT_SUSP) "upd_commit_s" ,
$#out                                              20110511 15:22:37
}¢--- A540769.WK.SQL(GRIMM) cre=2006-08-09 mod=2006-08-03-09.41.34 F540769 -----
SET CURRENT SQLID = 'S100447';
DROP   INDEX LDAP001A.DIR_SEARCHX2;
COMMIT;
CREATE INDEX LDAP001A.DIR_SEARCHX2
       ON LDAP001A.DIR_SEARCH
     ( EID                  ASC  ,
       ATTR_ID              ASC  ,
       VALUE                ASC  )
       USING STOGROUP GSMS
             PRIQTY  288000
             SECQTY   14400
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       CLUSTER
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 2       G
       COPY NO
       DEFER YES
                                                                      ;
CREATE INDEX LDAP001A.DIR_SEARCHX3
       ON LDAP001A.DIR_SEARCH
     ( VALUE                ASC  ,
       ATTR_ID              ASC  ,
       EID                  ASC  )
       USING STOGROUP GSMS
             PRIQTY  288000
             SECQTY   14400
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 2       G
       COPY NO
       DEFER YES
                                                                      ;
}¢--- A540769.WK.SQL(GRUPP0) cre=2006-05-03 mod=2006-05-03-09.16.18 F540769 ----
UPDATE OA1P.TTN170A1 A
SET A.TICKER_ID = (SELECT SUBSTR(VALUE,10,4)
FROM OA1P.TTN990A1
WHERE PGM = 'OTXSQL5P'
AND SETTING_NAME = 'INDEXTICKER'
AND SUBSTR(VALUE,20,2) = '01')
WHERE A.DELETE_FLAG = '0'
AND A.INSTR_KEY IN
(SELECT B.INSTR_KEY FROM OA1P.TTN100A1 B
WHERE B.VALORENSTAMMNUMMER = (SELECT SUBSTR(VALUE,1,9)
FROM OA1P.TTN990A1
WHERE PGM = 'OTXSQL5P'
AND SETTING_NAME = 'INDEXTICKER'
AND SUBSTR(VALUE,20,2) = '01')
AND B.DELETE_FLAG = '0')
}¢--- A540769.WK.SQL(GRUPP1) cre=2006-05-03 mod=2006-05-03-09.59.12 F540769 ----
UPDATE OA1A.TTN170A1 A
    SET   TICKER_ID =
        (SELECT SUBSTR(VALUE,10,4)
              FROM OA1A.TTN990A1
                  WHERE PGM = 'OTXSQL5P'
                      AND SETTING_NAME = 'INDEXTICKER'
                      AND SUBSTR(VALUE,20,2) = '01')
    WHERE A.DELETE_FLAG = 'X'
        AND A.INSTR_KEY IN
        (SELECT B.INSTR_KEY FROM OA1A.TTN100A1 B
             WHERE B.VALORENSTAMMNUMMER = (SELECT SUBSTR(VALUE,1,9)
             FROM OA1A.TTN990A1
             WHERE PGM = 'OTXSQL5P'
                 AND SETTING_NAME = 'INDEXTICKER'
                 AND SUBSTR(VALUE,20,2) = '01')
        AND B.DELETE_FLAG = '0')
;
FEHLER
;
SELECT COUNT(*), DELETE_FLAG
    FROM OA1A.TTN100A1 B
    GROUP BY DELETE_FLAG
;
SELECT COUNT(*), DELETE_FLAG
    FROM OA1A.TTN170A1 A
    GROUP BY DELETE_FLAG
;
}¢--- A540769.WK.SQL(GUBLDBAF) cre= mod= ---------------------------------------
  SET CURRENT SQLID='VDPS2';
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","F281992" ;
  CREATE VIEW VDPS2.XPS_VISID001 AS
    SELECT T1.IDSYMBOL, T1.SCHEMESYMBOL, T3.IDSYMBOL IDSYMBOL_ID,
           T3.SCHEMESYMBOL SCHEMESYMBOL_ID, T1.INSTITUTIONID,
           T1.CREATETIMESTAMP, T1.UPDATETIMESTAMP, T1.VALIDFROMDATE,
           T1.VALIDUNTILDATE, T3.CREATETIMESTAMP CREATETIMESTAMP_ID,
           T3.UPDATETIMESTAMP UPDATETIMESTAMP_ID,
           T3.VALIDFROMDATE VALIDFROMDATE_ID,
           T3.VALIDUNTILDATE VALIDUNTILDATE_ID
      FROM VDPS2.VTINSTIIDENT T1
           INNER JOIN
           VDPS2.VTINSTITUTION T2
           ON T2.INSTITUTIONID = T1.INSTITUTIONID AND (T2.ROWSTATUS
           IS NULL  OR T2.ROWSTATUS <> 2)
           INNER JOIN
           VDPS2.VTINSTIIDENT T3
           ON T3.INSTITUTIONID = T1.INSTITUTIONID AND T3.ROWSTATUS = 1
      WHERE T1.ROWSTATUS = 1 ;
  COMMIT;
}¢--- A540769.WK.SQL(GUBLER) cre=2006-09-19 mod=2006-09-19-13.47.26 F540769 ----
SELECT CHAR(P.NAME,22), CHAR(P.CREATOR, 8),                             00010010
     CHAR(P.TSNAME, 8), CHAR(A.TSNAME,8),                               00020010
     CHAR(P.DBNAME, 8), CHAR(A.DBNAME, 8)                               00030010
     FROM SYSIBM.SYSTABLES P                                            00040010
     LEFT JOIN SYSIBM.SYSTABLES A                                       00050010
     ON   P.NAME = A.NAME AND A.CREATOR = 'VDPS2'                       00060010
     WHERE P.CREATOR LIKE 'GDB04%'                                      00070010
       AND P.NAME IN ('VTRESTRICTIONSUSP  ',                            00080012
                    'VTCSMFSMANDDETAIL  ',                              00090005
                    'VTCONDITIONTRACK   ',                              00100005
                    'VTCONDCOMPONENTPRO ',                              00110005
                    'VTCFCONDITION      ',                              00120006
                    'VTTRUST            ',                              00130014
                    'VTTRUSTDETAIL      ',                              00140014
                    'CTINSTRSP42DETAILS ',                              00170006
                    'VTUNDERFIXREFCOMP  ',                              00180006
                    'VTTRADINGPLACE     ',                              00190006
                    'VTTIMEZONEINFO     ',                              00200006
                    'VTSPECTRADINGDAY   ',                              00210006
                    'VTUNDERFIXINGREF   ',                              00220006
                    'VTMANDATORYEXDATE  ',                              00230006
                    'VTOFFERCONDEXDATE  ',                              00240006
                    'VTCFEVENTEXDATE    ',                              00250006
                    'VTCASHFLOWREINLIST ',                              00260006
                    'VTTRDPHYSSECCHANGE ',                              00270006
                    'VTTRDPHYSSECOFUNC  ',                              00280006
                    'VTTRDPHYSSECTRANS  ',                              00290006
                    'VTTRDPHYSSECVALID  ',                              00300006
                    'VTCONTRACTSPECIFIC ',                              00310006
                    'VTTRDSTATISTICS    ',                              00320006
                    'VTEOMLISTGROUPKEY  ',                              00330006
                    'VTEXDATE           ',                              00340006
                    'VTUNDERFXCOMPONENT ',                              00350006
                    'VTFUTUNDERFXSTRUCT ',                              00360006
                    'VTOPTUNDERFXSTRUCT ',                              00370006
                    'VTLINUNDERFXSTRUCT ',                              00380006
                    'DTUNDERFIXCOMP     ',                              00390006
                    'VTCFREINVESTLIST   ',                              00400006
                    'VTLISTING          ',                              00410006
                    'VTLISTGROUPSCHEME  ',                              00420006
                    'VTLISTINGGROUP     ',                              00430006
                    'VTLISTINGIDENT     ',                              00440015
                    'VTLISTINGIDENT_OLD ',                              00440115
                    'VTINSTRRESTRICTION ',                              00442015
                    'VTINSTRRESTRICTION_OLD')                           00450008
    ORDER BY P.CREATOR, P.NAME                                          00460013
                                                                        00470000
;                                                                       00480000
X                                                                       00490000
CREATE             TABLE GDB0414.VTRESTRICTIONSUSP                      00500000
CREATE             TABLE GDB0414.VTCSMFSMANDDETAIL                      00510000
CREATE             TABLE GDB0414.VTCONDITIONTRACK                       00520000
CREATE             TABLE GDB0413.VTCONDCOMPONENTPRO                     00530000
CREATE             TABLE GDB0408.VTCFCONDITION                          00540000
ALTER              TABLE GDB0413.VTTRUST ADD                            00550000
ALTER              TABLE GDB0413.VTTRUSTDETAIL ADD                      00560000
ALTER              TABLE GDB0414.CTINSTRSP42DETAILS                     00570000
ALTER              TABLE GDB0414.CTINSTRSP42DETAILS                     00580000
ALTER              TABLE GDB0414.CTINSTRSP42DETAILS                     00590000
ALTER              TABLE GDB0415.VTUNDERFIXREFCOMP                      00600000
ALTERFORGETDATA    TABLE GDB0413.VTTRADINGPLACE                         00610000
ALTERFORGETDATA    TABLE GDB0413.VTTIMEZONEINFO                         00620000
ALTERFORGETDATA    TABLE GDB0413.VTSPECTRADINGDAY                       00630000
ALTERNODATA        TABLE GDB0415.VTUNDERFIXINGREF                       00640000
ALTERNODATA        TABLE GDB0411.VTMANDATORYEXDATE                      00650000
ALTERNODATA        TABLE GDB0412.VTOFFERCONDEXDATE                      00660000
ALTERNODATA        TABLE GDB0415.VTCFEVENTEXDATE                        00670000
ALTERNODATA        TABLE GDB0414.VTCASHFLOWREINLIST                     00680000
ALTERNODATA        TABLE GDB0413.VTTRDPHYSSECCHANGE                     00690000
ALTERNODATA        TABLE GDB0413.VTTRDPHYSSECOFUNC                      00700000
ALTERNODATA        TABLE GDB0413.VTTRDPHYSSECTRANS                      00710000
ALTERNODATA        TABLE GDB0413.VTTRDPHYSSECVALID                      00720000
ALTERNODATA        TABLE GDB0409.VTCONTRACTSPECIFIC                     00730000
ALTERNODATA        TABLE GDB0413.VTTRDSTATISTICS                        00740000
ALTERNODATA        TABLE GDB0409.VTEOMLISTGROUPKEY                      00750000
ALTERDATARENAMECOL TABLE GDB0409.VTEXDATE                               00760000
ALTERDATARENAMECOL TABLE GDB0415.VTUNDERFXCOMPONENT                     00770000
ALTERDATARENAMECOL TABLE GDB0409.VTFUTUNDERFXSTRUCT                     00780000
ALTERDATARENAMECOL TABLE GDB0412.VTOPTUNDERFXSTRUCT                     00790000
ALTERDATARENAMECOL TABLE GDB0411.VTLINUNDERFXSTRUCT                     00800000
ALTERDATARENAMECOL TABLE GDB0414.DTUNDERFIXCOMP                         00810000
ALTERDATARENAMECOL TABLE GDB0408.VTCFREINVESTLIST                       00820000
ALTERDATARENAMECOL TABLE GDB0411.VTLISTING                              00830000
ALTERDATARENAMECOL TABLE GDB0411.VTLISTGROUPSCHEME                      00840000
ALTERDATARENAMECOL TABLE GDB0411.VTLISTINGGROUP                         00850000
ALTERDATAMANUAL    TABLE GDB0411.VTINSTRRESTRICTION                     00860000
}¢--- A540769.WK.SQL(GUBLERAL) cre=2006-06-19 mod=2006-06-19-18.18.26 F540769 ---
SET CURRENT SQLID = 'S100447';                                          00001001
CREATE ALIAS VDPS.XPS_VLIID002_V04 FOR VDPS2.XPS_VLIID002_V04;          00001208
COMMIT;                                                                 00001309
CREATE ALIAS VDPS.XPS_VLIID002_V02 FOR VDPS2.XPS_VLIID002_V02;          00001408
COMMIT;                                                                 00001608
X                                                                       00001708
CREATE ALIAS S107189.VTCAFLCOMPENSATION FOR VDPS2.VTCAFLCOMPENSATION;   00001808
CREATE ALIAS S107189.VTCASHFLOWCURROPT FOR VDPS2.VTCASHFLOWCURROPT ;    00001908
CREATE ALIAS S107189.VTCFDETAIL      FOR VDPS2.VTCFDETAIL        ;      00002008
CREATE ALIAS S107189.VTCFEXPRICEPART FOR VDPS2.VTCFEXPRICEPART   ;      00002108
CREATE ALIAS S107189.VTCFFIXEDEXCHRATE FOR VDPS2.VTCFFIXEDEXCHRATE ;    00002208
CREATE ALIAS S107189.VTCFNUMBERFINAL FOR VDPS2.VTCFNUMBERFINAL   ;      00002308
CREATE ALIAS S107189.VTCFNUMBERRANGE FOR VDPS2.VTCFNUMBERRANGE   ;      00002408
CREATE ALIAS S107189.VTCASHFLOWREINLIST FOR VDPS2.VTCASHFLOWREINLIST;   00002508
CREATE ALIAS S107189.VTCASHFLOWREINVEST FOR VDPS2.VTCASHFLOWREINVEST;   00002608
CREATE ALIAS S107189.VTCFREPAYMENT   FOR VDPS2.VTCFREPAYMENT     ;      00002708
CREATE ALIAS S107189.VTCFCOMPONENTPROP FOR VDPS2.VTCFCOMPONENTPROP ;    00002808
CREATE ALIAS S107189.VTCASHFLOWTAXAMT FOR VDPS2.VTCASHFLOWTAXAMT ;      00002908
CREATE ALIAS S107189.VTCASHFLSUBPERIOD FOR VDPS2.VTCASHFLSUBPERIOD ;    00003008
CREATE ALIAS S107189.VTCFEVENTEXDATE FOR VDPS2.VTCFEVENTEXDATE   ;      00003108
CREATE ALIAS S107189.VTCFEVNTEXDTLIQAMT FOR VDPS2.VTCFEVNTEXDTLIQAMT;   00003208
CREATE ALIAS S107189.VTCSEVENTDETAIL FOR VDPS2.VTCSEVENTDETAIL   ;      00003308
CREATE ALIAS S107189.VTELIGIBLINSTRPROP FOR VDPS2.VTELIGIBLINSTRPROP;   00003408
CREATE ALIAS S107189.VTEVENTRESTRICTION FOR VDPS2.VTEVENTRESTRICTION;   00003508
CREATE ALIAS S107189.VTINSTRUMENTEVENT FOR VDPS2.VTINSTRUMENTEVENT ;    00003608
CREATE ALIAS S107189.VTTAXRATETAXAMOUNT FOR VDPS2.VTTAXRATETAXAMOUNT;   00003708
CREATE ALIAS S107189.VTTOFF          FOR VDPS2.VTTOFF            ;      00003808
CREATE ALIAS S107189.VTUNDERFIXING   FOR VDPS2.VTUNDERFIXING     ;      00003908
CREATE ALIAS S107189.VTUNDERFXCOMPONENT FOR VDPS2.VTUNDERFXCOMPONENT;   00004008
CREATE ALIAS S107189.VTCFVARINTRTFIXING FOR VDPS2.VTCFVARINTRTFIXING;   00004108
CREATE ALIAS S107189.VTHYBRIINSTRDETAIL FOR VDPS2.VTHYBRIINSTRDETAIL;   00004208
CREATE ALIAS S107189.VTPAIRINSTRUMENT FOR VDPS2.VTPAIRINSTRUMENT ;      00004308
CREATE ALIAS S107189.VTUNDERFIXINGREF FOR VDPS2.VTUNDERFIXINGREF ;      00004408
CREATE ALIAS S107189.VTUNDERFIXREFCOMP FOR VDPS2.VTUNDERFIXREFCOMP ;    00004508
CREATE ALIAS S107189.VTCFEXERCISE    FOR VDPS2.VTCFEXERCISE      ;      00004608
CREATE ALIAS S107189.VTCFEVENT       FOR VDPS2.VTCFEVENT         ;      00004708
CREATE ALIAS S107189.VTCASHFLOWAMOUNT FOR VDPS2.VTCASHFLOWAMOUNT ;      00004808
COMMIT;                                                                 00005007
CREATE ALIAS VDPS.VTCAFLCOMPENSATION FOR VDPS2.VTCAFLCOMPENSATION;      00010003
CREATE ALIAS VDPS.VTCASHFLOWCURROPT  FOR VDPS2.VTCASHFLOWCURROPT ;      00020003
CREATE ALIAS VDPS.VTCFDETAIL         FOR VDPS2.VTCFDETAIL        ;      00030003
CREATE ALIAS VDPS.VTCFEXPRICEPART    FOR VDPS2.VTCFEXPRICEPART   ;      00040003
CREATE ALIAS VDPS.VTCFFIXEDEXCHRATE  FOR VDPS2.VTCFFIXEDEXCHRATE ;      00050003
CREATE ALIAS VDPS.VTCFNUMBERFINAL    FOR VDPS2.VTCFNUMBERFINAL   ;      00060003
CREATE ALIAS VDPS.VTCFNUMBERRANGE    FOR VDPS2.VTCFNUMBERRANGE   ;      00070003
CREATE ALIAS VDPS.VTCASHFLOWREINLIST FOR VDPS2.VTCASHFLOWREINLIST;      00080003
CREATE ALIAS VDPS.VTCASHFLOWREINVEST FOR VDPS2.VTCASHFLOWREINVEST;      00090003
CREATE ALIAS VDPS.VTCFREPAYMENT      FOR VDPS2.VTCFREPAYMENT     ;      00100003
CREATE ALIAS VDPS.VTCFCOMPONENTPROP  FOR VDPS2.VTCFCOMPONENTPROP ;      00110003
CREATE ALIAS VDPS.VTCASHFLOWTAXAMT   FOR VDPS2.VTCASHFLOWTAXAMT  ;      00120003
CREATE ALIAS VDPS.VTCASHFLSUBPERIOD  FOR VDPS2.VTCASHFLSUBPERIOD ;      00130003
CREATE ALIAS VDPS.VTCFEVENTEXDATE    FOR VDPS2.VTCFEVENTEXDATE   ;      00140003
CREATE ALIAS VDPS.VTCFEVNTEXDTLIQAMT FOR VDPS2.VTCFEVNTEXDTLIQAMT;      00150003
CREATE ALIAS VDPS.VTCSEVENTDETAIL    FOR VDPS2.VTCSEVENTDETAIL   ;      00160003
CREATE ALIAS VDPS.VTELIGIBLINSTRPROP FOR VDPS2.VTELIGIBLINSTRPROP;      00170003
CREATE ALIAS VDPS.VTEVENTRESTRICTION FOR VDPS2.VTEVENTRESTRICTION;      00180003
CREATE ALIAS VDPS.VTINSTRUMENTEVENT  FOR VDPS2.VTINSTRUMENTEVENT ;      00190003
CREATE ALIAS VDPS.VTTAXRATETAXAMOUNT FOR VDPS2.VTTAXRATETAXAMOUNT;      00200003
CREATE ALIAS VDPS.VTTOFF             FOR VDPS2.VTTOFF            ;      00210003
CREATE ALIAS VDPS.VTUNDERFIXING      FOR VDPS2.VTUNDERFIXING     ;      00220003
CREATE ALIAS VDPS.VTUNDERFXCOMPONENT FOR VDPS2.VTUNDERFXCOMPONENT;      00230003
CREATE ALIAS VDPS.VTCFVARINTRTFIXING FOR VDPS2.VTCFVARINTRTFIXING;      00240003
CREATE ALIAS VDPS.VTHYBRIINSTRDETAIL FOR VDPS2.VTHYBRIINSTRDETAIL;      00250003
CREATE ALIAS VDPS.VTPAIRINSTRUMENT   FOR VDPS2.VTPAIRINSTRUMENT  ;      00260003
CREATE ALIAS VDPS.VTUNDERFIXINGREF   FOR VDPS2.VTUNDERFIXINGREF  ;      00270003
CREATE ALIAS VDPS.VTUNDERFIXREFCOMP  FOR VDPS2.VTUNDERFIXREFCOMP ;      00280003
CREATE ALIAS VDPS.VTCFEXERCISE       FOR VDPS2.VTCFEXERCISE      ;      00290003
CREATE ALIAS VDPS.VTCFEVENT          FOR VDPS2.VTCFEVENT         ;      00300003
CREATE ALIAS VDPS.VTCASHFLOWAMOUNT   FOR VDPS2.VTCASHFLOWAMOUNT  ;      00310003
-- ATE ALIAS VDPS.VTDENOMPROPERTIES  FOR VDPS2.VTDENOMPROPERTIES ;      00320003
-- ATE ALIAS VDPS.VTINSTRADMINCFDATE FOR VDPS2.VTINSTRADMINCFDATE;      00330003
-- ATE ALIAS VDPS.VTINSTRADMINCFFEE  FOR VDPS2.VTINSTRADMINCFFEE ;      00340004
-- ATE ALIAS VDPS.VTINSTRADMINCFPUBL FOR VDPS2.VTINSTRADMINCFPUBL;      00350005
-- ATE ALIAS VDPS.VTINSTRADMINICF    FOR VDPS2.VTINSTRADMINICF   ;      00360006
}¢--- A540769.WK.SQL(GUBLERDR) cre=2006-06-19 mod=2006-06-19-16.02.25 F540769 ---
SET CURRENT SQLID = 'S100447';                                          00001000
XROP    TABLESPACE   VV27A1A.VDPS342;                                   00002001
DROP    TABLESPACE   VV27A1A.VDPS343;                                   00003000
DROP    TABLESPACE   VV27A1A.VDPS344;                                   00004000
DROP    TABLESPACE   VV27A1A.VDPS345;                                   00005000
DROP    TABLESPACE   VV27A1A.VDPS346;                                   00006000
DROP    TABLESPACE   VV27A1A.VDPS347;                                   00007000
COMMIT;                                                                 00007100
DROP    TABLESPACE   VV27A1A.VDPS348;                                   00008000
DROP    TABLESPACE   VV27A1A.VDPS349;                                   00009000
DROP    TABLESPACE   VV27A1A.VDPS350;                                   00010000
DROP    TABLESPACE   VV28A1A.VDPS351;                                   00020000
DROP    TABLESPACE   VV28A1A.VDPS352;                                   00030000
DROP    TABLESPACE   VV28A1A.VDPS353;                                   00040000
DROP    TABLESPACE   VV28A1A.VDPS354;                                   00050000
COMMIT;                                                                 00051000
DROP    TABLESPACE   VV28A1A.VDPS355;                                   00060000
DROP    TABLESPACE   VV28A1A.VDPS356;                                   00070000
DROP    TABLESPACE   VV28A1A.VDPS357;                                   00080000
DROP    TABLESPACE   VV28A1A.VDPS358;                                   00090000
DROP    TABLESPACE   VV28A1A.VDPS359;                                   00100000
DROP    TABLESPACE   VV28A1A.VDPS360;                                   00110000
DROP    TABLESPACE   VV28A1A.VDPS361;                                   00120000
DROP    TABLESPACE   VV28A1A.VDPS362;                                   00130000
DROP    TABLESPACE   VV28A1A.VDPS363;                                   00140000
COMMIT;                                                                 00141000
DROP    TABLESPACE   VV28A1A.VDPS364;                                   00150000
DROP    TABLESPACE   VV28A1A.VDPS365;                                   00160000
DROP    TABLESPACE   VV28A1A.VDPS366;                                   00170000
DROP    TABLESPACE   VV28A1A.VDPS367;                                   00180000
DROP    TABLESPACE   VV28A1A.VDPS368;                                   00190000
DROP    TABLESPACE   VV28A1A.VDPS369;                                   00200000
DROP    TABLESPACE   VV28A1A.VDPS370;                                   00210000
DROP    TABLESPACE   VV28A1A.VDPS371;                                   00220000
COMMIT;                                                                 00221000
DROP    TABLESPACE   VV28A1A.VDPS390;                                   00230000
DROP    TABLESPACE   VV22A1A.VDPS069;                                   00240000
DROP    TABLESPACE   VV23A1A.VDPS123;                                   00250000
DROP    TABLESPACE   VV23A1A.VDPS124;                                   00260000
DROP    TABLESPACE   VV23A1A.VDPS125;                                   00270000
DROP    TABLESPACE   VV23A1A.VDPS126;                                   00280000
}¢--- A540769.WK.SQL(GUBLERVT) cre=2006-09-19 mod=2006-09-19-17.53.17 F540769 ---
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-09-19 17:50 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=VDPS185 In Database DA540769  --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769   Stogroup=GSMS
-- Tablespace=DA540769.VDPS185
------------------------------------------------------------------------
--
  CREATE TABLESPACE VDPS185
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY 72000 SECQTY 14400
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP32K
    LOCKSIZE ROW
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=A540769.VTLISTING In DA540769.VDPS185
------------------------------------------------------------------------
--
  CREATE TABLE A540769.VTLISTING
     (INSTRUMENTID         INTEGER NOT NULL,
      LISTINGNO            INTEGER NOT NULL,
      PROVIDER1ID          CHAR(30) FOR SBCS DATA WITH DEFAULT NULL,
      PROVIDER2ID          CHAR(30) FOR SBCS DATA WITH DEFAULT NULL,
      PROVIDER3ID          CHAR(30) FOR SBCS DATA WITH DEFAULT NULL,
      CREATETIMESTAMP      VARCHAR(30) FOR SBCS DATA
        WITH DEFAULT NULL,
      UPDATETIMESTAMP      VARCHAR(30) FOR SBCS DATA
        WITH DEFAULT NULL,
      ISMAINTRADINGPLACE   SMALLINT WITH DEFAULT NULL,
      ISHOMETRADINGPLACE   SMALLINT WITH DEFAULT NULL,
      ISONLIMITEDHALT      SMALLINT WITH DEFAULT NULL,
      HASNOMCURRSETTLE     SMALLINT WITH DEFAULT NULL,
      TRADINGPLACE         INTEGER WITH DEFAULT NULL,
      CURRENCY             INTEGER WITH DEFAULT NULL,
      MARKTPRACTIDSYMBOL   CHAR(30) FOR SBCS DATA WITH DEFAULT NULL,
      FIRSTTRADINGDATE     VARCHAR(30) FOR SBCS DATA
        WITH DEFAULT NULL,
      LASTTRADINGDATE      VARCHAR(30) FOR SBCS DATA
        WITH DEFAULT NULL,
      HALTFROMDATE         VARCHAR(30) FOR SBCS DATA
        WITH DEFAULT NULL,
      HALTUNTILDATE        VARCHAR(30) FOR SBCS DATA
        WITH DEFAULT NULL,
      FIRSTTRDDTAFHALT     VARCHAR(30) FOR SBCS DATA
        WITH DEFAULT NULL,
      TRADINGSTATUSTYPE    SMALLINT WITH DEFAULT NULL,
      LISTINGSTATUSTYPE    SMALLINT WITH DEFAULT NULL,
      EXCHANGERATETYPE     SMALLINT WITH DEFAULT NULL,
      LISTPURPOSETYPE      SMALLINT WITH DEFAULT NULL,
      TRADINGSTATUSTYPEV   VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      LISTINGSTATUSTYPEV   VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      EXCHANGERATETYPEV    VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      LISTPURPOSETYPEV     VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      SHORTNAME_G          VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      SHORTNAME_E          VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      SHORTNAME_F          VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      SHORTNAME_I          VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      SHORTNAME_N          VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      DESCRIPTION_G        VARCHAR(1000) FOR SBCS DATA
        WITH DEFAULT NULL,
      DESCRIPTION_E        VARCHAR(1000) FOR SBCS DATA
        WITH DEFAULT NULL,
      DESCRIPTION_F        VARCHAR(1000) FOR SBCS DATA
        WITH DEFAULT NULL,
      DESCRIPTION_I        VARCHAR(1000) FOR SBCS DATA
        WITH DEFAULT NULL,
      DESCRIPTION_N        VARCHAR(1000) FOR SBCS DATA
        WITH DEFAULT NULL,
      CSLISTINGCODETYPE    SMALLINT WITH DEFAULT NULL,
      CSLISTINGCODETYPEV   VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      HASINDMARPRACTICE    SMALLINT WITH DEFAULT NULL,
      PRICINGUNITNO        FLOAT WITH DEFAULT NULL,
      PRICINGCORRFACTOR    FLOAT WITH DEFAULT NULL,
      NONVERSEAMOUNT       FLOAT WITH DEFAULT NULL,
      VOLUMEAMOUNT         FLOAT WITH DEFAULT NULL,
      TRADINGUNITNO        FLOAT WITH DEFAULT NULL,
      PRICINGUNITTYPE      SMALLINT WITH DEFAULT NULL,
      QUOTATIONTYPE        SMALLINT WITH DEFAULT NULL,
      VOLUMEUNITTYPE       SMALLINT WITH DEFAULT NULL,
      ACCRUEDINTCALCTP     SMALLINT WITH DEFAULT NULL,
      FLATREASONTYPE       SMALLINT WITH DEFAULT NULL,
      TRADINGUNITTYPE      SMALLINT WITH DEFAULT NULL,
      TRADINGRULETYPE      SMALLINT WITH DEFAULT NULL,
      PRICINGUNITTYPEV     VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      QUOTATIONTYPEV       VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      VOLUMEUNITTYPEV      VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      ACCRUEDINTCALCTPV    VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      FLATREASONTYPEV      VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      TRADINGUNITTYPEV     VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      TRADINGRULETYPEV     VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      VALUEPRICETYPE       SMALLINT WITH DEFAULT NULL,
      VALUEPRICETYPEV      VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      HASLISTINGDETAIL     SMALLINT WITH DEFAULT NULL,
      EXCHANGETYPE         SMALLINT WITH DEFAULT NULL,
      EXCHANGETYPEV        VARCHAR(254) FOR SBCS DATA
        WITH DEFAULT NULL,
      CONSTRAINT INSTRUMENTID
      PRIMARY KEY (INSTRUMENTID,
                   LISTINGNO))
    IN DA540769.VDPS185
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=DA540769
--    Index=A540769.VTXLISTING1 On A540769.VTLISTING
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX A540769.VTXLISTING1
    ON A540769.VTLISTING
     (INSTRUMENTID          ASC,
      LISTINGNO             ASC)
    USING STOGROUP GSMS
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(GUIDO) cre=2016-09-07 mod=2016-09-08-13.58.49 A540769 -----
set current query acceleration all;
set current application compatibility 'V11R1';
with u as
(  -- cpu pro occurrence
 SELECT occurrences occ
     , EDB2TCB / occurrences c2c
   FROM Pbdd.TACCT_GENERAL
   where date(DATETIME) = '2016-08-29'
   and occurrences > 0
)
,  v as
(  -- gruppiere by cpu
 SELECT count(*) cnt
     , sum(occ) occ
     , c2c
   FROM u
   GROUP BY c2c
)
, w as
( -- gruppiere by cpu range: 3 range pro 10er Potenz
  select
      sum(occ) occ
    , sum(c2c*occ) / sum(occ) c2c
    , min(c2c) c2cMin
    , max(c2c) c2cMax
    from v
    group by        floor(log10(max(c2c, 1e-9)) * 3)
)
, x as
( -- füge die laufenden Totale dazu
 select occ occ1
    , sum(occ) over( order by c2cMin
                    range between unbounded preceding and current row
                   )  occCum
    , c2c c2c1
    , sum(c2c) over( order by c2cMin
                    range between unbounded preceding and current row
                   )  c2cCum
     , w.*
   from w
)
select *
    from x
    order by c2cMin
}¢--- A540769.WK.SQL(HAERDI) cre=2006-12-15 mod=2007-03-19-11.10.21 F540769 ----
select count(*), ndep
    from oa1t.twm005a1
    group by ndep
    order by 1 desc
    with ur
;
x
select count(*), nDep
    from oa1t.twm005a1
 -- where cTyp = 'VEVA'
    group by nTyp, twmd1
    order by 1 desc
    ;
}¢--- A540769.WK.SQL(HAERDIQ) cre=2006-12-15 mod=2006-12-15-13.51.19 F540769 ---
   DELETE FROM PLAN_TABLE
    WHERE QUERYNO = 123
   ;
   SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1;
   EXPLAIN PLAN
   SET QUERYNO = 123  FOR
        SELECT *
          FROM OA1A.TWM005A1
         WHERE D$GUEA     <=   '2006-12-15-12.38.27.000001'
           AND D$GUEB     >=   '2006-12-15-12.38.27.000001'
           AND CSTAT    BETWEEN 'A' AND 'A'
           AND CDEFAULT BETWEEN X'00' AND X'FF'
           AND CTYP        =    'VEVA'
           AND NDEP        =    '0835000000185000' || ''
           AND TWMD1       =    '412'
   ;
   SELECT * FROM  PLAN_VIEW5 WHERE QUERYNO = 123
-- SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1
   ;
X- EXPLAIN PLAN
-- SET QUERYNO = 123 FOR
        SELECT *
          FROM OA1A.TWM005A1
         WHERE D$GUEA     <=   '2006-12-15-12.38.27.000001'
           AND D$GUEB     >=   '2006-12-15-12.38.27.000001'
           AND CSTAT    BETWEEN 'A' AND 'A'
           AND CDEFAULT BETWEEN X'00' AND X'FF'
           AND CTYP        =    'VEVA'
           AND NDEP        =    ''
           AND TWMD1       =    '412'
   ;
-- SELECT * FROM  PLAN_VIEW5 WHERE QUERYNO = 123
   SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1
   ;
-- EXPLAIN PLAN
-- SET QUERYNO = 123 FOR
        SELECT *
          FROM OA1A.TWM005A1
         WHERE D$GUEA     <=   '2006-12-15-12.38.27.000001'
           AND D$GUEB     >=   '2006-12-15-12.38.27.000001'
           AND CSTAT    BETWEEN 'A' AND 'A'
           AND CDEFAULT BETWEEN X'00' AND X'FF'
           AND CTYP        =    'VEVA'
           AND NBU         =    '0005'
           AND NDEP        =    ''
           AND TWMD1       =    ''
   ;
   SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1
-- SELECT * FROM  PLAN_VIEW5 WHERE QUERYNO = 123
   ;
}¢--- A540769.WK.SQL(HAERDI2) cre=2007-03-19 mod=2007-03-19-11.12.20 F540769 ---
select current timestamp from sysibm.sysdummy1;
SELECT DISTINCT count(UWM005) FROM oa1t.TWM005A1
           where NDEP = '        '
     --    where NDEP = '0183029662185000'
           with ur
;
select current timestamp from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(HAEUPT) cre=2006-07-07 mod=2006-07-07-15.58.31 F540769 ----
select a3.wk001name, a3.wk001num, a1.wk001name, a1.wk001num
    from A540769.TWK001A a1,
         A540769.TWK001A a2,
         A540769.TWK001A a3
    where a2.wk001num =
        ( select max(q.wk001num)
            from A540769.TWK001A q
            where q.wk001num < a1.wk001num
        )
      and a3.wk001num =
        ( select max(q.wk001num)
            from A540769.TWK001A q
            where q.wk001num < a2.wk001num
        )
;
delete
  from A540769.TWK001A a3
  where exists
      ( select *
          from A540769.TWK001A a1,
               A540769.TWK001A a2
          where a2.wk001num =
              ( select max(q.wk001num)
                  from A540769.TWK001A q
                  where q.wk001num < a1.wk001num
              )
            and a3.wk001num =
              ( select max(q.wk001num)
                  from A540769.TWK001A q
                  where q.wk001num < a2.wk001num
              )
      )
;
rollback
;
select a1.wk001name, a1.wk001num
    from A540769.TWK001A a1
    where 3 <=
        ( select count(distinct q.wk001num)
            from A540769.TWK001A q
            where q.wk001num > a1.wk001num
        )
;
xx
;
insert into gdb0351.vfi020h1
select distinct
 k.tkkey ,k.boerse ,k.whrg ,k.kursdatum ,k.tk_kurstyp
,k.tk_zusatz ,k.generation ,k.mut_timestamp ,k.cs_ka_num
,k.sett_code ,k.kurs_lieferung ,k.kurs_umrechnung ,k.whr_umr
,k.menge ,k.boerse_tk ,k.erstellung ,k.flag_p ,k.status
,k.gueltig_von ,k.quelle ,k.log_eintrag ,k.instrad ,k.mut_stat
,k.ks_bpl_st ,k.ks_bpl_ht ,k.ks_bpl_ks ,k.ks_alt_ks ,k.ks_bpl_ha
,k.ks_ais_sp ,k.ks_bpl_in ,k.ks_bpl_sp
from gdb0351.vfi020a1 k,
(select k1.tkkey ,k1.boerse ,k1.whrg ,k5.kursdatum
 from gdb0351.vfi020a1 k1,gdb0351.vfi020a1 k2,gdb0351.vfi020a1 k3,
  gdb0351.vfi020a1 k4,gdb0351.vfi020a1 k5
  where k1.tkkey=k2.tkkey
  and k1.tkkey=k3.tkkey
  and k1.tkkey=k4.tkkey
  and k1.tkkey=k5.tkkey
  and k1.boerse=k2.boerse
  and k1.boerse=k3.boerse
  and k1.boerse=k4.boerse
  and k1.boerse=k5.boerse
  and k1.whrg=k2.whrg
  and k1.whrg=k3.whrg
  and k1.whrg=k4.whrg
  and k1.whrg=k5.whrg
  and k1.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
   where tkkey=k1.tkkey
   and boerse=k1.boerse
   and whrg=k1.whrg )
  and k2.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
   where tkkey=k1.tkkey
   and boerse=k1.boerse
   and whrg=k1.whrg
   and kursdatum<k1.kursdatum )
  and k3.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
   where tkkey=k1.tkkey
   and boerse=k1.boerse
   and whrg=k1.whrg
   and kursdatum<k2.kursdatum )
  and k4.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
   where tkkey=k1.tkkey
   and boerse=k1.boerse
   and whrg=k1.whrg
   and kursdatum<k3.kursdatum )
  and k5.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
   where tkkey=k1.tkkey
   and boerse=k1.boerse
   and whrg=k1.whrg
   and kursdatum<k4.kursdatum )              gdb0351.vfi020a1
--and k1.tkkey=1213853
--and k1.boerse='000000000380'
--and k1.whrg='0010'
  ) k0
 where k.tkkey=k0.tkkey
 and k.boerse=k0.boerse
 and k.whrg=k0.whrg
 and k.kursdatum<k0.kursdatum
--fetch first 1000 rows only
--with ur
----------------------
xelete from gdb0351.vfi020a1 k where exists
(select k1.tkkey ,k1.boerse ,k1.whrg ,k5.kursdatum
 from gdb0351.vfi020a1 k1,gdb0351.vfi020a1 k2,gdb0351.vfi020a1 k3,
  gdb0351.vfi020a1 k4,gdb0351.vfi020a1 k5
  where k1.tkkey=k2.tkkey
  and k1.tkkey=k3.tkkey
  and k1.tkkey=k4.tkkey
  and k1.tkkey=k5.tkkey
  and k1.boerse=k2.boerse
  and k1.boerse=k3.boerse
  and k1.boerse=k4.boerse
  and k1.boerse=k5.boerse
  and k1.whrg=k2.whrg
  and k1.whrg=k3.whrg
  and k1.whrg=k4.whrg
  and k1.whrg=k5.whrg
  and k1.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
   where tkkey=k1.tkkey
   and boerse=k1.boerse
   and whrg=k1.whrg )
  and k2.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
   where tkkey=k1.tkkey
   and boerse=k1.boerse
   and whrg=k1.whrg
   and kursdatum<k1.kursdatum )
  and k3.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
   where tkkey=k1.tkkey
   and boerse=k1.boerse
   and whrg=k1.whrg
   and kursdatum<k3.kursdatum )
  and k5.kursdatum=(select max(kursdatum) from gdb0351.vfi020a1
   where tkkey=k1.tkkey
   and boerse=k1.boerse
   and whrg=k1.whrg
   and kursdatum<k4.kursdatum )
  and k1.tkkey=1213853
  and k1.boerse='000000000380'
  and k1.whrg='0010'
  ) -- k0
 -- and  k.tkkey=k0.tkkey
 ---and k.boerse=k0.boerse
 --  an d k.whrg=k0.whrg
 -- and k.kursdatum<k0.kursdatum
 ;
 rollback
 ;
}¢--- A540769.WK.SQL(HANS) cre=2010-03-18 mod=2010-03-19-09.45.17 A540769 ------
  SET CURRENT SQLID='S100447';
  drop table oA1T.tadm35A1;
  CREATE TABLE OA1T.TADM35A1
     (DB_NAME              CHAR(8) NOT NULL,
      DD_NAME              CHAR(8) NOT NULL,
      high_used_rba        DECIMAL(10) not null with DEFAULT,
      free_block_pct       DECIMAL(6, 2) not null with DEFAULT,
      cisplit             DECIMAL(5) not null with DEFAULT,
      casplit             DECIMAL(5) not null with DEFAULT,
      extents              DECIMAL(4) not null with DEFAULT,
      BLock_beyond         DECIMAL(6) not null with DEFAULT,
      over_flow_pct        DECIMAL(6,2) not null with DEFAULT,
      syn_chain            DECIMAL(2, 0) not null with DEFAULT
     )
    IN DB2ADMIN.A035A;
insert into oa1t.tadm35a1 (db_name, dd_name) values('db', 'dd');
commit  ;
}¢--- A540769.WK.SQL(HEX) cre=2013-05-10 mod=2013-05-10-13.19.17 A540769 -------
select hex(x'00000101'), hex(int(257))
    from sysibm.sysDummy1
}¢--- A540769.WK.SQL(HOSTVARS) cre=2011-10-20 mod=2011-10-21-10.15.55 A540769 ---
$#@
call sqlConnect dbaf
call sqlPrepare 1, 'select count(*) from sysibm.sysTables' ,
                   '    where name like ? and createdTS > ?'
c = sqlOpAllCl(1, st, ':cc', 'TWK60%', '1956-04-01-06.07.08.901234')
say 'sqlOpAllCl='c ' twk60%' cc
c = sqlOpAllCl(1, st, ':cc', 'TWK2%', '1967-05-31-06.07.08.901234')
say 'sqlOpAllCl='c ' twk2%' cc
c = sqlOpAllCl(1, st, ':cc', 'SYST%', '1978-06-30-12.34.56.789012')
say 'sqlOpAllCl='c 'sysT%' cc
call sqlPrepare 2, 'select count(*) from A540769.twk600a001' ,
                   '    where i1 = ? and v2 > ? and upd > ?'
c = sqlOpAllCl(2, st, ':cc', 411, 'abc', '1956-04-01-06.07.08.901234')
say 'sqlOpAllCl='c '411 abc 1956-04-01' cc
$#out                                              20111021 10:06:36
$#out                                              20111021 10:06:32
$#out                                              20111021 10:05:59
$#out                                              20111021 10:00:19
$#out                                              20111021 09:58:17
$#out                                              20111021 09:58:04
$#out                                              20111021 09:37:18
$#out                                              20111021 09:37:14
$#out                                              20111021 09:36:53
$#out                                              20111020 16:40:12
$#out                                              20111020 16:40:03
$#out                                              20111020 16:34:00
$#out                                              20111020 16:33:55
$#out                                              20111020 16:31:28
$#out                                              20111020 16:31:24
$#out                                              20111020 16:31:03
$#out                                              20111020 16:30:56
$#out                                              20111020 16:30:49
$#out                                              20111020 16:30:42
$#out                                              20111020 16:30:36
$#out                                              20111020 16:30:14
$#out                                              20111020 16:29:06
$#out                                              20111020 16:27:12
}¢--- A540769.WK.SQL(HUBERT) cre=2006-12-05 mod=2006-12-05-16.01.13 F540769 ----
set current sqlid = 'A540769';
explain plan for
-- SELECT COALESCE(MAX( eobjid#), 0) + 1
SELECT          MAX( eobjid#)
       FROM oa1t.VWB173A1A
;
}¢--- A540769.WK.SQL(HUER) cre=2006-06-12 mod=2006-06-12-16.33.03 F540769 ------
-- DROP INDEX OA1A.ITN500A3  ;
-- DROP INDEX OA1A.ITN170A6  ;
DROP INDEX OA1A.ITN100A2  ;
DROP INDEX OA1A.ITN170A5  ;
}¢--- A540769.WK.SQL(HUNGER) cre=2012-06-18 mod=2012-06-18-11.00.34 A540769 ----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 2   for
     SELECT  distinct
              v858.ident_id                  AS UserId
             ,cast(';' as char(1))
             ,u831.partner_id                AS USER_CIF
             ,cast(';' as char(1))
             ,SUBSTR(U100.CD100452,9,5)      AS U_CUST_OFFICE
             ,cast(';' as char(1))
             ,u831.DOMIZIL                   AS USER_DOM
             ,cast(';' as char(1))
             ,U831.CUSTOMER_SEGMENT          AS USER_SEGM
             ,cast(';' as char(1))
             ,o831.partner_id                AS OWNER_CIF
             ,cast(';' as char(1))
             ,SUBSTR(U100.CD100452,9,5)      AS O_CUST_OFFICE
             ,cast(';' as char(1))
             ,O831.DOMIZIL                   AS OWNER_DOM
             ,cast(';' as char(1))
             ,O831.CUSTOMER_SEGMENT          AS OWNER_SEGM
             ,cast(';' as char(1))
             ,v832.ext_contract_id           AS CNTRACT_ID
             ,cast(';' as char(1))
             ,v843.tab_text1                 AS PROCUCT
             ,cast(';' as char(1))
             ,v835.service_key               AS SERVICE
             ,cast(';' as char(1))
             ,S843.tab_text1                 AS SERVICE_TEXT
             ,cast(';' as char(1))
             ,V859.SECID1_LAST_LOGON         AS LAST_LOGON_SEC1
             ,cast(';' as char(1))
             ,V859.SECID2_LAST_LOGON         AS LAST_LOGON_SEC2
             ,cast(';' as char(1))
             ,CAST((CASE
              WHEN((V859.SECID1_LAST_LOGON> V859.SECID2_LAST_LOGON
              AND V859.SECID1_LAST_LOGON^='9999-12-31-23.59.59.999999')
              OR  V859.SECID2_LAST_LOGON='9999-12-31-23.59.59.999999')
                       THEN V859.SECID1_LAST_LOGON
                       ELSE V859.SECID2_LAST_LOGON
              END) AS CHAR(26)) lastLogon
     FROM
            oa1t.VKS831A1V  O831
           ,oa1t.VKS831A1V  U831
           ,oa1t.VKS832A1V  V832
           ,oa1t.VKS833A1V  V833
           ,oa1t.VKS835A1V  V835
           ,oa1t.VKS858A1V  V858
           ,oa1t.VKS859A1V  V859
           ,oa1t.VKS843A1V  V843
           ,oa1t.VKS843A1V  S843
           ,oa1t.TCD100A1   U100
           ,oa1t.TCD100A1   O100
     WHERE
            V835.PRODUCT_ID IN (
                     '0095',
                     '0125',
                     '0141',
                     '0148',
                     '0149',
                     '0150',
                     '0151',
                     '0183',
                     '0191',
                     '0192',
                     '0193' )
           and v835.partner_type = 3
           AND V835.CONTRACT_KEY = V832.CONTRACT_KEY

           AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
           and v833.partner_type = 3

           AND V833.partner_key  = u831.partner_key
           AND U831.partner_ID   = U100.CD100001

           AND V835.arrang_partner_key = O831.partner_key
           AND O831.partner_ID   = O100.CD100001

           and v833.partner_key        = V858.partner_key
           AND V858.ident_id           = V859.ident_id
           AND V859.application_type   = 15

           AND V843.tab_art            = 'PRODUCT_ID'
           AND V843.tab_code           = V835.PRODUCT_ID

           AND S843.tab_art            = 'SERVICE_ID'
           AND S843.tab_code           = V835.SERVICE_KEY
           AND S843.TAB_LANGUAGE_CODE  = '001'

           and current date < o831.valid_to_date
           and current date < u831.valid_to_date
           and current date < v832.valid_to_date
           and current date < v833.valid_to_date
           and current date < v858.valid_to_date
           and current date < v859.valid_to_date
           and current date between v835.valid_from_date and
                                    v835.valid_to_date
      ORDER BY u831.partner_id
      WITH UR;
explain plan set queryno = 3   for
     SELECT
            v858.ident_id
           ,CHAR(DECIMAL(COUNT(distinct V841.ACTIVITY_TSTAMP),10,0))
     FROM
            oa1t.VKS831A1V  O831
           ,oa1t.VKS831A1V  U831
           ,oa1t.VKS832A1V  V832
           ,oa1t.VKS833A1V  V833
           ,oa1t.VKS835A1V  V835
           ,oa1t.VKS858A1V  V858
           ,oa1t.VKS859A1V  V859
           ,oa1t.VKS841H1V  V841
     WHERE
            V835.PRODUCT_ID IN (
                     '0095',
                     '0125',
                     '0141',
                     '0148',
                     '0149',
                     '0150',
                     '0151',
                     '0183',
                     '0191',
                     '0192',
                     '0193' )
           and v835.partner_type = 3
           AND V835.CONTRACT_KEY = V832.CONTRACT_KEY

           AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
           and v833.partner_type = 3

           AND V833.partner_key  = u831.partner_key

           AND V835.arrang_partner_key = O831.partner_key

           and v833.partner_key        = V858.partner_key
           AND V858.ident_id           = V859.ident_id
           AND V859.application_type   = 15

           AND V858.IDENT_ID           = V841.LOG_KEY
           AND V841.APPLICATION_TYPE   = 15
           AND V841.LOG_CODE           = '0000'

           and current date < o831.valid_to_date
           and current date < u831.valid_to_date
           and current date < v832.valid_to_date
           and current date < v833.valid_to_date
           and current date < v858.valid_to_date
           and current date < v859.valid_to_date
           and current date between v835.valid_from_date and
                                    v835.valid_to_date
           GROUP BY V858.ident_id
      WITH UR;
explain plan set queryno = 23  for
with  b as
(
 SELECT
            v858.ident_id
           ,CHAR(DECIMAL(COUNT(distinct V841.ACTIVITY_TSTAMP),10,0))
                 countActTst
     FROM
            oa1t.VKS831A1V  O831
           ,oa1t.VKS831A1V  U831
           ,oa1t.VKS832A1V  V832
           ,oa1t.VKS833A1V  V833
           ,oa1t.VKS835A1V  V835
           ,oa1t.VKS858A1V  V858
           ,oa1t.VKS859A1V  V859
           ,oa1t.VKS841H1V  V841
     WHERE
            V835.PRODUCT_ID IN (
                     '0095',
                     '0125',
                     '0141',
                     '0148',
                     '0149',
                     '0150',
                     '0151',
                     '0183',
                     '0191',
                     '0192',
                     '0193' )
           and v835.partner_type = 3
           AND V835.CONTRACT_KEY = V832.CONTRACT_KEY

           AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
           and v833.partner_type = 3

           AND V833.partner_key  = u831.partner_key

           AND V835.arrang_partner_key = O831.partner_key

           and v833.partner_key        = V858.partner_key
           AND V858.ident_id           = V859.ident_id
           AND V859.application_type   = 15

           AND V858.IDENT_ID           = V841.LOG_KEY
           AND V841.APPLICATION_TYPE   = 15
           AND V841.LOG_CODE           = '0000'

           and current date < o831.valid_to_date
           and current date < u831.valid_to_date
           and current date < v832.valid_to_date
           and current date < v833.valid_to_date
           and current date < v858.valid_to_date
           and current date < v859.valid_to_date
           and current date between v835.valid_from_date and
                                    v835.valid_to_date
           GROUP BY V858.ident_id
)
     SELECT  distinct
              v858.ident_id                  AS UserId
             ,cast(';' as char(1))
             ,u831.partner_id                AS USER_CIF
             ,cast(';' as char(1))
             ,SUBSTR(U100.CD100452,9,5)      AS U_CUST_OFFICE
             ,cast(';' as char(1))
             ,u831.DOMIZIL                   AS USER_DOM
             ,cast(';' as char(1))
             ,U831.CUSTOMER_SEGMENT          AS USER_SEGM
             ,cast(';' as char(1))
             ,o831.partner_id                AS OWNER_CIF
             ,cast(';' as char(1))
             ,SUBSTR(U100.CD100452,9,5)      AS O_CUST_OFFICE
             ,cast(';' as char(1))
             ,O831.DOMIZIL                   AS OWNER_DOM
             ,cast(';' as char(1))
             ,O831.CUSTOMER_SEGMENT          AS OWNER_SEGM
             ,cast(';' as char(1))
             ,v832.ext_contract_id           AS CNTRACT_ID
             ,cast(';' as char(1))
             ,v843.tab_text1                 AS PROCUCT
             ,cast(';' as char(1))
             ,v835.service_key               AS SERVICE
             ,cast(';' as char(1))
             ,S843.tab_text1                 AS SERVICE_TEXT
             ,cast(';' as char(1))
             ,V859.SECID1_LAST_LOGON         AS LAST_LOGON_SEC1
             ,cast(';' as char(1))
             ,V859.SECID2_LAST_LOGON         AS LAST_LOGON_SEC2
             ,cast(';' as char(1))
             ,CAST((CASE
              WHEN((V859.SECID1_LAST_LOGON> V859.SECID2_LAST_LOGON
              AND V859.SECID1_LAST_LOGON^='9999-12-31-23.59.59.999999')
              OR  V859.SECID2_LAST_LOGON='9999-12-31-23.59.59.999999')
                       THEN V859.SECID1_LAST_LOGON
                       ELSE V859.SECID2_LAST_LOGON
              END) AS CHAR(26)) lastLogon
          , b.countActTst
     FROM
            oa1t.VKS831A1V  O831
           ,oa1t.VKS831A1V  U831
           ,oa1t.VKS832A1V  V832
           ,oa1t.VKS833A1V  V833
           ,oa1t.VKS835A1V  V835
           ,oa1t.VKS858A1V  V858
           ,oa1t.VKS859A1V  V859
           ,oa1t.VKS843A1V  V843
           ,oa1t.VKS843A1V  S843
           ,oa1t.TCD100A1   U100
           ,oa1t.TCD100A1   O100
           ,b
     WHERE
           b.ident_id = v858.ident_id
        and V835.PRODUCT_ID IN (
                     '0095',
                     '0125',
                     '0141',
                     '0148',
                     '0149',
                     '0150',
                     '0151',
                     '0183',
                     '0191',
                     '0192',
                     '0193' )
           and v835.partner_type = 3
           AND V835.CONTRACT_KEY = V832.CONTRACT_KEY

           AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
           and v833.partner_type = 3

           AND V833.partner_key  = u831.partner_key
           AND U831.partner_ID   = U100.CD100001

           AND V835.arrang_partner_key = O831.partner_key
           AND O831.partner_ID   = O100.CD100001

           and v833.partner_key        = V858.partner_key
           AND V858.ident_id           = V859.ident_id
           AND V859.application_type   = 15

           AND V843.tab_art            = 'PRODUCT_ID'
           AND V843.tab_code           = V835.PRODUCT_ID

           AND S843.tab_art            = 'SERVICE_ID'
           AND S843.tab_code           = V835.SERVICE_KEY
           AND S843.TAB_LANGUAGE_CODE  = '001'

           and current date < o831.valid_to_date
           and current date < u831.valid_to_date
           and current date < v832.valid_to_date
           and current date < v833.valid_to_date
           and current date < v858.valid_to_date
           and current date < v859.valid_to_date
           and current date between v835.valid_from_date and
                                    v835.valid_to_date
      ORDER BY u831.partner_id
      WITH UR;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(HUNGER1) cre=2012-06-18 mod=2012-06-18-10.27.02 A540769 ---
//STA0152A JOB (SK03,KE50,,SP00000000),
//             MSGCLASS=T,
//             NOTIFY=&SYSUID,
//             TIME=1440
//JOBLIB    DD DSN=PCL.U0000.P0.RZ2AKT.PERM.@008.LLB,DISP=SHR
//*MAIN CLASS=SUBP2
//****
//P00     EXEC PGM=IDCAMS
//SYSPRINT  DD SYSOUT=*
//SYSIN     DD *
 DEL 'KE.U0000.P0.EBVV.#STA0152.UNLOAD' SCR
 IF MAXCC < 9 THEN SET MAXCC = 0
//*
//P02     EXEC PGM=IKJEFT1A,
//             DYNAMNBR=20
//SYSPRINT  DD SYSOUT=*
//SYSTSPRT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//SYSPUNCH  DD SYSOUT=*
//SYSREC00  DD DSNAME=KE.U0000.P0.EBVV.#STA0152.UNLOAD,
//             MGMTCLAS=COM#A091,
//             DISP=(NEW,CATLG,DELETE)
//**********************************************************************
//*  Report for Esther Rein  N4354, PSENG
//*  --------------------------------------------------
//*
//*  Output: (last run, but STAT?? unknown)
//*     - CifNo                 Owner
//*     - Konzern-Produkt       --> 0017
//*     - Customer Office       Owner and User
//*     - Domicile              Owner and User
//*     - Owner Customer Id     Contract id
//*     - Segment               Owner and User
//*     - Client Assets         ??
//*
//*  Request:
//*  Per CCE Owner
//*  new Output requested:
//*      - UserId
//*      - USER_CIF
//*      - U_CUST_OFFICE
//*      - USER_DOM
//*      - USER_SEGM
//*      - OWNER_CIF
//*      - O_CUST_OFFICE
//*      - OWNER_DOM
//*      - OWNER_SEGM
//*      - CNTRACT_ID
//*      - PROCUCT
//*      - SERVICE_KEY
//*      - SERVICE_TEXT: which services are activated
//*                      which are used in CCE -> not available in EBVV
//*      - LAST_CCE_Login_SEC1
//*      - LAST_CCE_LOGON_SEC2
//*      - number of logins within 3 months --> STA0153
//*      - DN user yes / no    --> not necessary,  see comments below
//*      - last dn Login date  --> not necessary,  see comments below
//*--------------------------------------------------------------------
//*  Are there really customers with Direct Net and Multiuser for
//*  same cif? I checked with below query --> that's not standard
//*--------------------------------------------------------------------
//*  QMF: COUNTDOPPELTIDENT  (of A593397)
//*
//*  SELECT V831.PARTNER_ID
//*  FROM OA1P.VKS831A1V V831
//*      ,OA1P.VKS858A1V C858
//*      ,OA1P.VKS858A1V D858
//*
//*  WHERE V831.PARTNER_KEY = D858.PARTNER_KEY
//*  AND   V831.PARTNER_KEY = C858.PARTNER_KEY
//*  AND   D858.IDENT_TYPE  = 1
//*  AND   C858.IDENT_TYPE  = 5
//*
//*  GROUP BY V831.PARTNER_ID
//*  HAVING COUNT(*) > 1
//*
//*  WITH UR;
//*
//*
//*  Result: 2 rows
//*  --------------
//*  000000000001      TEST_IDENTIFIKATION   for Reset
//*  083509400102      284476362015080802-P  Testcontract ???
//*
//**********************************************************************
//SYSTSIN   DD *
 DSN SYSTEM(DBOF)
 RUN PROGRAM(DSNTIAUL) PARM('SQL')
//SYSIN     DD *
     SELECT  distinct
              v858.ident_id                  AS UserId
             ,cast(';' as char(1))
             ,u831.partner_id                AS USER_CIF
             ,cast(';' as char(1))
             ,SUBSTR(U100.CD100452,9,5)      AS U_CUST_OFFICE
             ,cast(';' as char(1))
             ,u831.DOMIZIL                   AS USER_DOM
             ,cast(';' as char(1))
             ,U831.CUSTOMER_SEGMENT          AS USER_SEGM
             ,cast(';' as char(1))
             ,o831.partner_id                AS OWNER_CIF
             ,cast(';' as char(1))
             ,SUBSTR(U100.CD100452,9,5)      AS O_CUST_OFFICE
             ,cast(';' as char(1))
             ,O831.DOMIZIL                   AS OWNER_DOM
             ,cast(';' as char(1))
             ,O831.CUSTOMER_SEGMENT          AS OWNER_SEGM
             ,cast(';' as char(1))
             ,v832.ext_contract_id           AS CNTRACT_ID
             ,cast(';' as char(1))
             ,v843.tab_text1                 AS PROCUCT
             ,cast(';' as char(1))
             ,v835.service_key               AS SERVICE
             ,cast(';' as char(1))
             ,S843.tab_text1                 AS SERVICE_TEXT
             ,cast(';' as char(1))
             ,V859.SECID1_LAST_LOGON         AS LAST_LOGON_SEC1
             ,cast(';' as char(1))
             ,V859.SECID2_LAST_LOGON         AS LAST_LOGON_SEC2
             ,cast(';' as char(1))
             ,CAST((CASE
              WHEN((V859.SECID1_LAST_LOGON> V859.SECID2_LAST_LOGON
              AND V859.SECID1_LAST_LOGON^='9999-12-31-23.59.59.999999')
              OR  V859.SECID2_LAST_LOGON='9999-12-31-23.59.59.999999')
                       THEN V859.SECID1_LAST_LOGON
                       ELSE V859.SECID2_LAST_LOGON
              END) AS CHAR(26))
     FROM
            OA1P.VKS831A1V  O831
           ,OA1P.VKS831A1V  U831
           ,OA1P.VKS832A1V  V832
           ,OA1P.VKS833A1V  V833
           ,OA1P.VKS835A1V  V835
           ,OA1P.VKS858A1V  V858
           ,OA1P.VKS859A1V  V859
           ,OA1P.VKS843A1V  V843
           ,OA1P.VKS843A1V  S843
           ,OA1P.TCD100A1   U100
           ,OA1P.TCD100A1   O100
     WHERE
            V835.PRODUCT_ID IN (
                     '0095',
                     '0125',
                     '0141',
                     '0148',
                     '0149',
                     '0150',
                     '0151',
                     '0183',
                     '0191',
                     '0192',
                     '0193' )
           and v835.partner_type = 3
           AND V835.CONTRACT_KEY = V832.CONTRACT_KEY

           AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
           and v833.partner_type = 3

           AND V833.partner_key  = u831.partner_key
           AND U831.partner_ID   = U100.CD100001

           AND V835.arrang_partner_key = O831.partner_key
           AND O831.partner_ID   = O100.CD100001

           and v833.partner_key        = V858.partner_key
           AND V858.ident_id           = V859.ident_id
           AND V859.application_type   = 15

           AND V843.tab_art            = 'PRODUCT_ID'
           AND V843.tab_code           = V835.PRODUCT_ID

           AND S843.tab_art            = 'SERVICE_ID'
           AND S843.tab_code           = V835.SERVICE_KEY
           AND S843.TAB_LANGUAGE_CODE  = '001'

           and current date < o831.valid_to_date
           and current date < u831.valid_to_date
           and current date < v832.valid_to_date
           and current date < v833.valid_to_date
           and current date < v858.valid_to_date
           and current date < v859.valid_to_date
           and current date between v835.valid_from_date and
                                    v835.valid_to_date
           ORDER BY u831.partner_id
      WITH UR;
//*--------------------------------------------------------------------
//* First run (not all fields available yet)     06.06.2012 CHU A593397
//*--------------------------------------------------------------------
//*  SELECT  distinct
//*           v858.ident_id                  AS UserId
//*          ,cast(';' as char(1))
//*          ,u831.partner_id                AS USER_CIF
//*          ,cast(';' as char(1))
//*          ,SUBSTR(U100.CD100452,9,5)      AS U_CUST_OFFICE
//*          ,cast(';' as char(1))
//*          ,u831.DOMIZIL                   AS USER_DOM
//*          ,cast(';' as char(1))
//*          ,U831.CUSTOMER_SEGMENT          AS USER_SEGM
//*          ,cast(';' as char(1))
//*          ,o831.partner_id                AS OWNER_CIF
//*          ,cast(';' as char(1))
//*          ,SUBSTR(U100.CD100452,9,5)      AS O_CUST_OFFICE
//*          ,cast(';' as char(1))
//*          ,O831.DOMIZIL                   AS OWNER_DOM
//*          ,cast(';' as char(1))
//*          ,O831.CUSTOMER_SEGMENT          AS OWNER_SEGM
//*          ,cast(';' as char(1))
//*          ,v832.ext_contract_id           AS CNTRACT_ID
//*          ,cast(';' as char(1))
//*          ,v843.tab_text1                 AS PROCUCT
//*          ,cast(';' as char(1))
//*          ,v835.service_key               AS SERVICE
//*          ,cast(';' as char(1))
//*          ,S843.tab_text1                 AS SERVICE_TEXT
//*          ,cast(';' as char(1))
//*          ,V859.SECID1_LAST_LOGON         AS LAST_LOGON_SEC1
//*          ,cast(';' as char(1))
//*          ,V859.SECID2_LAST_LOGON         AS LAST_LOGON_SEC2
//*          ,cast(';' as char(1))
//*          ,CAST((CASE
//*           WHEN((V859.SECID1_LAST_LOGON> V859.SECID2_LAST_LOGON
//*           AND V859.SECID1_LAST_LOGON^='9999-12-31-23.59.59.999999')
//*           OR  V859.SECID2_LAST_LOGON='9999-12-31-23.59.59.999999')
//*                    THEN V859.SECID1_LAST_LOGON
//*                    ELSE V859.SECID2_LAST_LOGON
//*           END) AS CHAR(26))
//*  FROM
//*         OA1P.VKS831A1V  O831
//*        ,OA1P.VKS831A1V  U831
//*        ,OA1P.VKS832A1V  V832
//*        ,OA1P.VKS833A1V  V833
//*        ,OA1P.VKS835A1V  V835
//*        ,OA1P.VKS858A1V  V858
//*        ,OA1P.VKS859A1V  V859
//*        ,OA1P.VKS843A1V  V843
//*        ,OA1P.VKS843A1V  S843
//*        ,OA1P.TCD100A1   U100
//*        ,OA1P.TCD100A1   O100
//*  WHERE
//*         V835.PRODUCT_ID IN (
//*                  '0095',
//*                  '0125',
//*                  '0141',
//*                  '0148',
//*                  '0149',
//*                  '0150',
//*                  '0151',
//*                  '0183',
//*                  '0191',
//*                  '0192',
//*                  '0193' )
//*        and v835.partner_type = 3
//*        AND V835.CONTRACT_KEY = V832.CONTRACT_KEY
//*
//*        AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
//*        and v833.partner_type = 3
//*
//*        AND V833.partner_key  = u831.partner_key
//*        AND U831.partner_ID   = U100.CD100001
//*
//*        AND V835.arrang_partner_key = O831.partner_key
//*        AND O831.partner_ID   = O100.CD100001
//*
//*        and v833.partner_key        = V858.partner_key
//*        AND V858.ident_id           = V859.ident_id
//*        AND V859.application_type   = 15
//*
//*        AND V843.tab_art            = 'PRODUCT_ID'
//*        AND V843.tab_code           = V835.PRODUCT_ID
//*
//*        AND S843.tab_art            = 'SERVICE_ID'
//*        AND S843.tab_code           = V835.SERVICE_KEY
//*        AND S843.TAB_LANGUAGE_CODE  = '001'
//*
//*        and current date < o831.valid_to_date
//*        and current date < u831.valid_to_date
//*        and current date < v832.valid_to_date
//*        and current date < v833.valid_to_date
//*        and current date < v858.valid_to_date
//*        and current date < v859.valid_to_date
//*        and current date between v835.valid_from_date and
//*                                 v835.valid_to_date
//*        ORDER BY u831.partner_id
//*   WITH UR;
}¢--- A540769.WK.SQL(HUNGER2) cre=2012-06-18 mod=2012-06-18-10.27.41 A540769 ---
//STA0153A JOB (SK03,KE50,,SP00000000),
//             MSGCLASS=T,
//             NOTIFY=&SYSUID,
//             TIME=1440
//JOBLIB    DD DSN=PCL.U0000.P0.RZ2AKT.PERM.@008.LLB,DISP=SHR
//*MAIN CLASS=SUBP2
//****
//P00     EXEC PGM=IDCAMS
//SYSPRINT  DD SYSOUT=*
//SYSIN     DD *
 DEL 'KE.U0000.P0.EBVV.#STA0153.UNLOAD' SCR
 IF MAXCC < 9 THEN SET MAXCC = 0
//*
//P02     EXEC PGM=IKJEFT1A,
//             DYNAMNBR=20
//SYSPRINT  DD SYSOUT=*
//SYSTSPRT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//SYSPUNCH  DD SYSOUT=*
//SYSREC00  DD DSNAME=KE.U0000.P0.EBVV.#STA0153.UNLOAD,
//             MGMTCLAS=COM#A091,
//             DISP=(NEW,CATLG,DELETE)
//**********************************************************************
//*  Report for Esther Rein  N4354, PSENG   STA0152 and STA0153
//*  --------------------------------------------------
//*
//*  Output: (last run, but STAT?? unknown)
//*     - CifNo                 Owner
//*     - Konzern-Produkt       --> 0017
//*     - Customer Office       Owner and User
//*     - Domicile              Owner and User
//*     - Owner Customer Id     Contract id
//*     - Segment               Owner and User
//*     - Client Assets         ??
//*
//*  Request:
//*  Per CCE Owner
//*  new Output requested:      --> STA0152
//*      - UserId
//*      - USER_CIF
//*      - U_CUST_OFFICE
//*      - USER_DOM
//*      - USER_SEGM
//*      - OWNER_CIF
//*      - O_CUST_OFFICE
//*      - OWNER_DOM
//*      - OWNER_SEGM
//*      - CNTRACT_ID
//*      - PROCUCT
//*      - SERVICE_KEY
//*      - SERVICE_TEXT: which services are activated
//*                      which are used in CCE -> not available in EBVV
//*      - LAST_CCE_Login_SEC1
//*      - LAST_CCE_LOGON_SEC2
//*      - number of logins within 3 months --> STA0153
//*      - DN user yes / no    --> not necessary,  see comments below
//*      - last dn Login date  --> not necessary,  see comments below
//*--------------------------------------------------------------------
//*  Are there really customers with Direct Net and Multiuser for
//*  same cif? I checked with below query --> that's not standard
//*--------------------------------------------------------------------
//*  QMF: COUNTDOPPELTIDENT
//*
//*  SELECT V831.PARTNER_ID
//*  FROM OA1P.VKS831A1V V831
//*      ,OA1P.VKS858A1V C858
//*      ,OA1P.VKS858A1V D858
//*
//*  WHERE V831.PARTNER_KEY = D858.PARTNER_KEY
//*  AND   V831.PARTNER_KEY = C858.PARTNER_KEY
//*  AND   D858.IDENT_TYPE  = 1
//*  AND   C858.IDENT_TYPE  = 5
//*
//*  GROUP BY V831.PARTNER_ID
//*  HAVING COUNT(*) > 1
//*
//*  WITH UR;
//*
//*
//*  Result:
//*  -------
//*  000000000001      TEST_IDENTIFIKATION   for Reset
//*  083509400102      284476362015080802-P  ???
//*
//**********************************************************************
//SYSTSIN   DD *
 DSN SYSTEM(DBOF)
 RUN PROGRAM(DSNTIAUL) PARM('SQL')
//SYSIN     DD *
     SELECT
            v858.ident_id
           ,CHAR(DECIMAL(COUNT(distinct V841.ACTIVITY_TSTAMP),10,0))
     FROM
            OA1P.VKS831A1V  O831
           ,OA1P.VKS831A1V  U831
           ,OA1P.VKS832A1V  V832
           ,OA1P.VKS833A1V  V833
           ,OA1P.VKS835A1V  V835
           ,OA1P.VKS858A1V  V858
           ,OA1P.VKS859A1V  V859
           ,OA1P.VKS841H1V  V841
     WHERE
            V835.PRODUCT_ID IN (
                     '0095',
                     '0125',
                     '0141',
                     '0148',
                     '0149',
                     '0150',
                     '0151',
                     '0183',
                     '0191',
                     '0192',
                     '0193' )
           and v835.partner_type = 3
           AND V835.CONTRACT_KEY = V832.CONTRACT_KEY

           AND V835.CONTRACT_KEY = V833.CONTRACT_KEY
           and v833.partner_type = 3

           AND V833.partner_key  = u831.partner_key

           AND V835.arrang_partner_key = O831.partner_key

           and v833.partner_key        = V858.partner_key
           AND V858.ident_id           = V859.ident_id
           AND V859.application_type   = 15

           AND V858.IDENT_ID           = V841.LOG_KEY
           AND V841.APPLICATION_TYPE   = 15
           AND V841.LOG_CODE           = '0000'

           and current date < o831.valid_to_date
           and current date < u831.valid_to_date
           and current date < v832.valid_to_date
           and current date < v833.valid_to_date
           and current date < v858.valid_to_date
           and current date < v859.valid_to_date
           and current date between v835.valid_from_date and
                                    v835.valid_to_date
           GROUP BY V858.ident_id
      WITH UR;
}¢--- A540769.WK.SQL(HYPO) cre=2006-08-11 mod=2006-08-11-13.56.58 F540769 ------
set current sqlid = 'S100447';
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-08-11 13:55 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=Y DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=S126A In Database DGDB0235    --
--                                                                    --
------------------------------------------------------------------------
--
--
------------------------------------------------------------------------
-- Database=DGDB0366   Stogroup=GSMS
-- Tablespace=DGDB0366.A126A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A126A
    IN DGDB0366
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 8
    BUFFERPOOL BP0
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS NO
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  COMMIT;
--
------------------------------------------------------------------------
--    Table=GDB0366.THY126G1 In DGDB0366.A126A
------------------------------------------------------------------------
--
  CREATE TABLE GDB0366.THY126G1
     (HY126001             CHAR(16) FOR SBCS DATA NOT NULL,
      HY126002             DATE NOT NULL,
      HY126003             DATE NOT NULL,
      HY126004             DATE NOT NULL,
      HY126005             DATE NOT NULL,
      HY126006             SMALLINT NOT NULL,
      HY126007             CHAR(12) FOR SBCS DATA NOT NULL,
      HY126008             CHAR(20) FOR SBCS DATA NOT NULL,
      HY126009             DECIMAL(15, 3) NOT NULL,
      HY126010             DECIMAL(15, 3) NOT NULL,
      HY126011             DECIMAL(15, 3) NOT NULL,
      HY126012             CHAR(3) FOR SBCS DATA NOT NULL,
      HY126013             CHAR(1) FOR SBCS DATA NOT NULL,
      CONSTRAINT HY126001
      PRIMARY KEY (HY126001,
                   HY126002,
                   HY126003,
                   HY126004,
                   HY126005,
                   HY126006))
    IN DGDB0366.A126A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE GDB0366.THY126G1 IS 'ERWEITERTE ABSCHLUESSE ALL';
--
  LABEL ON GDB0366.THY126G1
   (HY126013 IS 'C_BOLLO',
    HY126012 IS 'C_KAS',
    HY126011 IS 'A_FEES_EXPNCS',
    HY126010 IS 'A_CMMSSN',
    HY126009 IS 'A_INTRST',
    HY126008 IS 'I_MRTGE_MSTR_20',
    HY126007 IS 'I_CIF',
    HY126006 IS 'I_CLSRE_T',
    HY126005 IS 'D_BOOKING',
    HY126004 IS 'D_INT_PRCPL_STMT_1',
    HY126003 IS 'D_VALUE_TO',
    HY126002 IS 'D_VALUE_FROM',
    HY126001 IS 'I_ACNT_16');
--
  COMMIT;
--
--
------------------------------------------------------------------------
-- Database=DGDB0366
--    Index=GDB0366.IHY126A0 On GDB0366.THY126G1
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX GDB0366.IHY126A0
    ON GDB0366.THY126G1
     (HY126001              ASC,
      HY126002              ASC,
      HY126003              ASC,
      HY126004              ASC,
      HY126005              ASC,
      HY126006              ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP0
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=DGDB0366
--    Index=GDB0366.IHY126G1 On GDB0366.THY126G1
------------------------------------------------------------------------
--
  CREATE INDEX GDB0366.IHY126G1
    ON GDB0366.THY126G1
     (HY126008              ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP0
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=DGDB0366
--    Index=GDB0366.IHY126A2 On GDB0366.THY126G1
------------------------------------------------------------------------
--
  CREATE INDEX GDB0366.IHY126A2
    ON GDB0366.THY126G1
     (HY126007              ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP0
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
--    View=GDB0366.VHY126G1V
------------------------------------------------------------------------
--
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0235" ;
--
  CREATE VIEW GDB0366.VHY126G1V(I_ACNT_16, D_VALUE_FROM, D_VALUE_TO,
      D_INT_PRCPL_STMT_1, D_BOOKING, I_CLSRE_T, I_CIF,
      I_MRTGE_MSTR_20, A_INTRST, A_CMMSSN, A_FEES_EXPNCS, C_KAS,
      C_BOLLO) AS
    SELECT ALL GDB0366.THY126G1.HY126001, GDB0366.THY126G1.HY126002,
           GDB0366.THY126G1.HY126003, GDB0366.THY126G1.HY126004,
           GDB0366.THY126G1.HY126005, GDB0366.THY126G1.HY126006,
           GDB0366.THY126G1.HY126007, GDB0366.THY126G1.HY126008,
           GDB0366.THY126G1.HY126009, GDB0366.THY126G1.HY126010,
           GDB0366.THY126G1.HY126011, GDB0366.THY126G1.HY126012,
           GDB0366.THY126G1.HY126013
      FROM GDB0366.THY126G1 ;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(HYPX) cre=2006-08-11 mod=2006-08-11-16.05.42 F540769 ------
set current sqlid = 's100447';
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-08-11 16:04 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=Y DB=Y TS=Y TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Table=GDB0366.THY126G1
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
--    Table=GDB0366.THY126G1 In DGDB0366.A126A
------------------------------------------------------------------------
--
  drop   TABLE GDB0366.THY126G1;
  commit;
  CREATE TABLE GDB0366.THY126G1
     (HY126001             CHAR(16) FOR SBCS DATA NOT NULL,
      HY126002             DATE NOT NULL,
      HY126003             DATE NOT NULL,
      HY126004             DATE NOT NULL,
      HY126005             DATE NOT NULL,
      HY126006             SMALLINT NOT NULL,
      HY126007             CHAR(12) FOR SBCS DATA NOT NULL,
      HY126008             CHAR(20) FOR SBCS DATA NOT NULL,
      HY126009             DECIMAL(15, 3) NOT NULL,
      HY126010             DECIMAL(15, 3) NOT NULL,
      HY126011             DECIMAL(15, 3) NOT NULL,
      HY126012             CHAR(3) FOR SBCS DATA NOT NULL,
      HY126013             CHAR(1) FOR SBCS DATA NOT NULL,
      CONSTRAINT HY126001
      PRIMARY KEY (HY126001,
                   HY126002,
                   HY126003,
                   HY126004,
                   HY126005,
                   HY126006))
    IN DGDB0366.A126A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE GDB0366.THY126G1 IS 'ERWEITERTE ABSCHLUESSE ALL';
--
  LABEL ON GDB0366.THY126G1
   (HY126013 IS 'C_BOLLO',
    HY126012 IS 'C_KAS',
    HY126011 IS 'A_FEES_EXPNCS',
    HY126010 IS 'A_CMMSSN',
    HY126009 IS 'A_INTRST',
    HY126008 IS 'I_MRTGE_MSTR_20',
    HY126007 IS 'I_CIF',
    HY126006 IS 'I_CLSRE_T',
    HY126005 IS 'D_BOOKING',
    HY126004 IS 'D_INT_PRCPL_STMT_1',
    HY126003 IS 'D_VALUE_TO',
    HY126002 IS 'D_VALUE_FROM',
    HY126001 IS 'I_ACNT_16');
--
  COMMIT;
--
  GRANT USE OF STOGROUP GSMS TO PUBLIC;
--
------------------------------------------------------------------------
-- Database=DGDB0366
--    Index=GDB0366.IHY126A0 On GDB0366.THY126G1
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX GDB0366.IHY126G0
    ON GDB0366.THY126G1
     (HY126001              ASC,
      HY126002              ASC,
      HY126003              ASC,
      HY126004              ASC,
      HY126005              ASC,
      HY126006              ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP0
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=DGDB0366
--    Index=GDB0366.IHY126A2 On GDB0366.THY126G1
------------------------------------------------------------------------
--
  CREATE INDEX GDB0366.IHY126G2
    ON GDB0366.THY126G1
     (HY126007              ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP0
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=DGDB0366
--    Index=GDB0366.IHY126G1 On GDB0366.THY126G1
------------------------------------------------------------------------
--
  CREATE INDEX GDB0366.IHY126G1
    ON GDB0366.THY126G1
     (HY126008              ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP0
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
--    View=GDB0366.VHY126G1V
------------------------------------------------------------------------
--
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0235" ;
--
  CREATE VIEW GDB0366.VHY126G1V(I_ACNT_16, D_VALUE_FROM, D_VALUE_TO,
      D_INT_PRCPL_STMT_1, D_BOOKING, I_CLSRE_T, I_CIF,
      I_MRTGE_MSTR_20, A_INTRST, A_CMMSSN, A_FEES_EXPNCS, C_KAS,
      C_BOLLO) AS
    SELECT ALL GDB0366.THY126G1.HY126001, GDB0366.THY126G1.HY126002,
           GDB0366.THY126G1.HY126003, GDB0366.THY126G1.HY126004,
           GDB0366.THY126G1.HY126005, GDB0366.THY126G1.HY126006,
           GDB0366.THY126G1.HY126007, GDB0366.THY126G1.HY126008,
           GDB0366.THY126G1.HY126009, GDB0366.THY126G1.HY126010,
           GDB0366.THY126G1.HY126011, GDB0366.THY126G1.HY126012,
           GDB0366.THY126G1.HY126013
      FROM GDB0366.THY126G1 ;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(IAN) cre=2012-10-05 mod=2012-10-05-15.36.21 A540769 -------
select
  UNDERLAYER
 ,titel_n
 ,BOERSE
 ,WHRG
 ,Q_KURS_UMRECHNUNG
 ,KURSDATUM
 ,Q_CS_KA_NUM
 ,cs_ta
 ,sorter
 ,TK_KURSTYP
 ,TK_ZUSATZ
 ,FEHLER
 ,DIFF_PROZ
 ,VERSION
 ,ais_sp
 ,TKKEY
 ,VERFALL
 ,valor_sc
 ,tk_titelart
 ,six_boerse
 ,excode
 ,cs_buart
 ,handlheit
 ,size_uamt
 ,bestand
 ,hboe
 ,isin
 from (
SELECT
  A.UNDERLAYER
 ,VALUE(B.TITEL_N,' ') as titel_n
 ,A.BOERSE
 ,A.WHRG
 ,A.Q_KURS_UMRECHNUNG
 ,A.KURSDATUM
 ,A.Q_CS_KA_NUM
 ,VALUE(B.CS_TA,'0.00') as cs_ta
 ,CASE A.FEHLER
    WHEN 'V303' THEN 'A'
    WHEN 'V304' THEN 'B'
    WHEN 'V362' THEN 'C'
    WHEN 'V302' THEN 'D'
    WHEN 'V311' THEN 'E'
    WHEN 'V313' THEN 'F'
    WHEN 'V314' THEN 'G'
    WHEN 'V347' THEN 'H'
    ELSE 'Z'
  END AS SORTER
 ,A.TK_KURSTYP
 ,A.TK_ZUSATZ
 ,A.FEHLER
 ,DIFF_PROZ
 ,A.VERSION
 ,VALUE(B.AIS_SP,' ') as ais_sp
 ,A.TKKEY
 ,A.VERFALL
 ,VALUE(B.VALOR_SC,0) as valor_sc
 ,VALUE(B.TK_TITELART,' ') as tk_titelart
 ,Value(A.SIX_Boerse,' ') as six_boerse
 ,Value(A.Excode,'00') as excode
 ,VALUE(B.CS_Buart,'0') as cs_buart
 ,VALUE(B.HANDLHEIT,0) as handlheit
 ,VALUE(B.SIZE_UAMT,0) as size_uamt
 ,VALUE(B.BESTAND,'0') as bestand
 ,VALUE(B.HBOE,' ') as hboe
 ,VALUE(C.ISIN,' ') as isin
 FROM               oa1t.VFI060A1 A
 INNER      JOIN    oa1t.VFI010A2 B
 ON   B.TKKEY  = A.TKKEY
 AND  B.BOERSE = A.BOERSE
 AND  B.WHRG   = A.WHRG
 AND  B.BPL_ST = '0'
 AND  B.VERFALL= A.VERFALL
 INNER JOIN         oa1t.VFI011A1 C
 ON   C.TKKEY  = A.TKKEY
 AND  C.VERFALL= A.VERFALL
 WHERE  A.FEHLER IN ('V302','V303','V304','V311'
                    ,'V314','V347','V362','V313')
  AND   A.STATUS   = 'A'
  AND   A.VERFALL  = '31.12.9999'
  AND ((B.VALOR_SC > 4 AND B.Valor_SC < 16) OR VALOR_SC IS NULL)
--AND   A.MUT_TIMESTAMP > (CURRENT TIMESTAMP - 1 MONTH)
  AND   A.MUT_TIMESTAMP > (CURRENT TIMESTAMP - 1 day)
 union all
SELECT DISTINCT
  A.UNDERLAYER
 ,VALUE(B.TITEL_N,' ') as titel_n
 ,A.BOERSE
 ,A.WHRG
 ,A.Q_KURS_UMRECHNUNG
 ,A.KURSDATUM
 ,A.Q_CS_KA_NUM
 ,VALUE(B.CS_TA,'0.00') as cs_ta
 ,CASE A.FEHLER
    WHEN 'V303' THEN 'A'
    WHEN 'V304' THEN 'B'
    WHEN 'V362' THEN 'C'
    WHEN 'V302' THEN 'D'
    WHEN 'V311' THEN 'E'
    WHEN 'V313' THEN 'F'
    WHEN 'V314' THEN 'G'
    WHEN 'V347' THEN 'H'
    ELSE 'Z'
  END AS SORTER
 ,A.TK_KURSTYP
 ,A.TK_ZUSATZ
 ,A.FEHLER
 ,DIFF_PROZ
 ,A.VERSION
 ,VALUE(B.AIS_SP,' ') as ais_sp
 ,A.TKKEY
 ,A.VERFALL
 ,VALUE(B.VALOR_SC,0) as valor_sc
 ,VALUE(B.TK_TITELART,' ') as tk_titelart
 ,Value(A.SIX_Boerse,' ') as six_boerse
 ,Value(A.Excode,'00') as excode
 ,VALUE(B.CS_Buart,'0') as cs_buart
 ,VALUE(B.HANDLHEIT,0) as handlheit
 ,VALUE(B.SIZE_UAMT,0) as size_uamt
 ,VALUE(B.BESTAND,'0') as bestand
 ,VALUE(B.HBOE,' ') as hboe
 ,VALUE(C.ISIN,' ') as isin
 FROM               oa1t.VFI060A1 A
 INNER      JOIN    oa1t.VFI010A2 B
 ON   B.TKKEY  = A.TKKEY
 AND  (B.BOERSE ^= A.BOERSE
       or B.WHRG ^= A.WHRG)
 AND (A.FEHLER = 'V362' OR B.BPL_ST = '0')
 AND  B.VERFALL= A.VERFALL
 --AND  B.BPL_ST = '0'
 INNER JOIN         oa1t.VFI011A1 C
 ON   C.TKKEY  = A.TKKEY
 AND  C.VERFALL= A.VERFALL
 WHERE  A.FEHLER IN ('V302','V303','V304','V311'
                    ,'V314','V347','V362','V313')
  AND   A.STATUS   = 'A'
  AND   A.VERFALL  = '31.12.9999'
  AND ((B.VALOR_SC > 4 AND B.Valor_SC < 16) OR VALOR_SC IS NULL)
--AND   A.MUT_TIMESTAMP > (CURRENT TIMESTAMP - 1 MONTH)
  AND   A.MUT_TIMESTAMP > (CURRENT TIMESTAMP - 1 day)
 ) x
  ORDER BY bestand      DESC
          ,SORTER       ASC
          ,UNDERLAYER   ASC
          ,BOERSE       ASC
          ,WHRG         ASC
          ,KURSDATUM    ASC
;x;
//
//A273818T JOB (SB00,KE20,,TT00000000),'BATCH SQL',
//        NOTIFY=&SYSUID,REGION=5M,
//        MSGCLASS=A,TIME=MAXIMUM
//* -------------------
//SQL     EXEC PGM=IKJEFT01,
//* ----------------------------------------------------------
//             DYNAMNBR=30
//SYSTSPRT DD  SYSOUT=*
//SYSTSIN  DD *
 DSN SYSTEM(DBTF)
 RUN  PROGRAM(DSNTEP2)
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *
}¢--- A540769.WK.SQL(IMSFREE) cre=2008-10-23 mod=2008-10-23-15.59.56 F540769 ---
-----------------------------------------------------------------------
--    SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND            --
--      FREESPACE HABEN                                              --
--    (1.TEIL: DEFAULTWERTE  /  2.TEIL: DB-ABHÄNGIGE WERTE)          --
-----------------------------------------------------------------------
--
  SELECT JN.DB_NAME, JN.DD_NAME,
         DIGITS(JN.ALLOC) AS ALLOC,
         DIGITS(MAX_SPC) AS MAX_SPC, DIGITS(JN.HIGHWATER) AS HIGHWATER,
         DIGITS(JN.THRESHOLD) AS THRESHOLD,
         DIGITS(JN.HI_ALLOC), DIGITS(JN.HI_ALLOC2),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  digits(JN.TRK_SEC), 'DEFAULT',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME, SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 then
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (8589934590 - (SW.FREESPCP * 8589934590 / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (4294967295 - (SW.FREESPCP * 4294967295 / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     SP.HI_ALLOC2  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     8589934590    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     4294967295    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1t.TADM31A1 SP,
                 oa1t.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = 'DEFAULT'
             AND SW.DD_NAME    = 'DEFAULT'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                   FROM oa1t.TADM31A1
                                  WHERE DB_NAME = SP.DB_NAME
                                    AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
    LEFT OUTER JOIN
         oa1t.TADM32A1 SX
      ON SX.DB_NAME    = JN.DB_NAME
     AND (SX.DD_NAME   = JN.DD_NAME
      OR  SX.DD_NAME   = 'ALL')
     AND SX.END_DATUM >= CURRENT TIMESTAMP
     AND (SX.FREESPCP >  0
      OR  SX.EXCLUDE   = 'Y')
   WHERE SX.DB_NAME   IS NULL
     AND ((JN.TRK_SEC  >  0
         AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
   UNION
  SELECT JN.DB_NAME, JN.DD_NAME,
         DIGITS(JN.ALLOC) AS ALLOC,
         DIGITS(MAX_SPC) AS MAX_SPC, DIGITS(JN.HIGHWATER) AS HIGHWATER,
         DIGITS(JN.THRESHOLD) AS THRESHOLD,
         DIGITS(JN.HI_ALLOC), DIGITS(JN.HI_ALLOC2),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  digits(JN.TRK_SEC), 'DB-SPEZ',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME,  SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 THEN
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (8589934590 - (SW.FREESPCP * 8589934590 / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (4294967295 - (SW.FREESPCP * 4294967295 / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     SP.HI_ALLOC2  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     8589934590    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     4294967295    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1t.TADM31A1 SP,
                 oa1t.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = SP.DB_NAME
             AND (SW.DD_NAME   = SP.DD_NAME
              OR  SW.DD_NAME   = 'ALL')
             AND SW.EXCLUDE    = 'N'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                    FROM oa1t.TADM31A1
                                   WHERE DB_NAME = SP.DB_NAME
                                     AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
   WHERE ((JN.TRK_SEC  >  0
         AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
    WITH UR
}¢--- A540769.WK.SQL(IMSFRE0) cre=2008-10-21 mod=2008-10-21-18.25.23 F540769 ---
select
     ( 589934590 - (decimal(7, 10 ,2)*  589934590 / 100))
    from sysibm.sysDummy1
;
select
     (8589934590 - (decimal(7, 10 ,2)* 8589934590 / 100))
    from sysibm.sysDummy1
;
-----------------------------------------------------------------------
--    SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND            --
--      FREESPACE HABEN                                              --
--    (1.TEIL: DEFAULTWERTE  /  2.TEIL: DB-ABHÄNGIGE WERTE)          --
-----------------------------------------------------------------------
--
  SELECT JN.DB_NAME, JN.DD_NAME,
         DIGITS(JN.ALLOC) AS ALLOC,
         DIGITS(MAX_SPC) AS MAX_SPC,       (JN.HIGHWATER) AS HIGHWATER,
         DIGITS(JN.THRESHOLD) AS THRESHOLD,
         DIGITS(JN.HI_ALLOC), DIGITS(JN.HI_ALLOC2),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  digits(JN.TRK_SEC), 'DEFAULT',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME, SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 then
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (8589934590 - (real(SW.FREESPCP)* 8589934590 / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (4294967295 - (real(SW.FREESPCP)* 4294967295 / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     SP.HI_ALLOC2  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     8589934590    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     4294967295    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1a.TADM31A1 SP,
                 oa1a.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = 'DEFAULT'
             AND SW.DD_NAME    = 'DEFAULT'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                   FROM oa1a.TADM31A1
                                  WHERE DB_NAME = SP.DB_NAME
                                    AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
    LEFT OUTER JOIN
         oa1a.TADM32A1 SX
      ON SX.DB_NAME    = JN.DB_NAME
     AND (SX.DD_NAME   = JN.DD_NAME
      OR  SX.DD_NAME   = 'ALL')
     AND SX.END_DATUM >= CURRENT TIMESTAMP
     AND (SX.FREESPCP >  0
      OR  SX.EXCLUDE   = 'Y')
   WHERE SX.DB_NAME   IS NULL
     AND ((JN.TRK_SEC  >  0
         AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
 ;
   UNION
  SELECT JN.DB_NAME, JN.DD_NAME,
         DIGITS(JN.ALLOC) AS ALLOC,
         DIGITS(MAX_SPC) AS MAX_SPC, DIGITS(JN.HIGHWATER) AS HIGHWATER,
         DIGITS(JN.THRESHOLD) AS THRESHOLD,
         DIGITS(JN.HI_ALLOC), DIGITS(JN.HI_ALLOC2),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  digits(JN.TRK_SEC), 'DB-SPEZ',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME,  SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 THEN
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (8589934590 - (SW.FREESPCP * 8589934590 / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (4294967295 - (SW.FREESPCP * 4294967295 / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     SP.HI_ALLOC2  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     8589934590    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     4294967295    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1a.TADM31A1 SP,
                 oa1a.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = SP.DB_NAME
             AND (SW.DD_NAME   = SP.DD_NAME
              OR  SW.DD_NAME   = 'ALL')
             AND SW.EXCLUDE    = 'N'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                    FROM oa1a.TADM31A1
                                   WHERE DB_NAME = SP.DB_NAME
                                     AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
   WHERE ((JN.TRK_SEC  >  0
         AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
    WITH UR
}¢--- A540769.WK.SQL(IMSFRE2) cre=2008-10-23 mod=2008-10-23-14.55.16 F540769 ---
select
     ( real(589934590) - (decimal(7, 10 ,2)*  589934590 / 100))
    from sysibm.sysDummy1
;
select
     (real(8589934590) - (real(decimal(7, 10 ,2))* 8589934590 / 100))
    from sysibm.sysDummy1
;
-----------------------------------------------------------------------
--    SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND            --
--      FREESPACE HABEN                                              --
--    (1.TEIL: DEFAULTWERTE  /  2.TEIL: DB-ABHÄNGIGE WERTE)          --
-----------------------------------------------------------------------
--
  SELECT JN.DB_NAME, JN.DD_NAME,
               (JN.ALLOC) AS ALLOC,
               (MAX_SPC) AS MAX_SPC,       (JN.HIGHWATER) AS HIGHWATER,
               (JN.THRESHOLD) AS THRESHOLD,
               (JN.HI_ALLOC),       (JN.HI_ALLOC2),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,        (JN.TRK_SEC), 'DEFAULT',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME, SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 then
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (8589934590 - (real(SW.FREESPCP)* 8589934590 / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (4294967295 - (real(SW.FREESPCP)* 4294967295 / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     real(SP.HI_ALLOC2)  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295)    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1a.TADM31A1 SP,
                 oa1a.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = 'DEFAULT'
             AND SW.DD_NAME    = 'DEFAULT'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                   FROM oa1a.TADM31A1
                                  WHERE DB_NAME = SP.DB_NAME
                                    AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
    LEFT OUTER JOIN
         oa1a.TADM32A1 SX
      ON SX.DB_NAME    = JN.DB_NAME
     AND (SX.DD_NAME   = JN.DD_NAME
      OR  SX.DD_NAME   = 'ALL')
     AND SX.END_DATUM >= CURRENT TIMESTAMP
     AND (SX.FREESPCP >  0
      OR  SX.EXCLUDE   = 'Y')
   WHERE SX.DB_NAME   IS NULL
     AND ((JN.TRK_SEC  >  0
         AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
 ;
-- UNION
  SELECT JN.DB_NAME, JN.DD_NAME,
         (JN.ALLOC) AS ALLOC,
         (MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
         (JN.THRESHOLD) AS THRESHOLD,
         (JN.HI_ALLOC), (JN.HI_ALLOC2),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  (JN.TRK_SEC), 'DB-SPEZ',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME,  SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 THEN
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (real(8589934590)- (SW.FREESPCP * 8589934590 / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (Real(4294967295)- (SW.FREESPCP * 4294967295 / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     real(SP.HI_ALLOC2)  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295)    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1a.TADM31A1 SP,
                 oa1a.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = SP.DB_NAME
             AND (SW.DD_NAME   = SP.DD_NAME
              OR  SW.DD_NAME   = 'ALL')
             AND SW.EXCLUDE    = 'N'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                    FROM oa1a.TADM31A1
                                   WHERE DB_NAME = SP.DB_NAME
                                     AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
   WHERE ((JN.TRK_SEC  >  0
         AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
    WITH UR
}¢--- A540769.WK.SQL(IMSFRE3) cre=2008-10-23 mod=2008-10-23-15.13.27 F540769 ---
  SELECT JN.DB_NAME, JN.DD_NAME,
         (JN.ALLOC) AS ALLOC,
         (MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
         (JN.THRESHOLD) AS THRESHOLD,
         (JN.HI_ALLOC), (JN.HI_ALLOC2),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  (JN.TRK_SEC), 'DB-SPEZ',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME,  SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 THEN
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (real(8589934590)- (real(SW.FREESPCP)
                   * 8589934590 / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (Real(4294967295)- (real(SW.FREESPCP)
                   * 4294967295 / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     real(SP.HI_ALLOC2)  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295)    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1a.TADM31A1 SP,
                 oa1a.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = SP.DB_NAME
             AND (SW.DD_NAME   = SP.DD_NAME
              OR  SW.DD_NAME   = 'ALL')
             AND SW.EXCLUDE    = 'N'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                    FROM oa1a.TADM31A1
                                   WHERE DB_NAME = SP.DB_NAME
                                     AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
   WHERE ((JN.TRK_SEC  >  0
         AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
    WITH UR
}¢--- A540769.WK.SQL(IMSFRE4) cre=2008-10-23 mod=2008-10-23-15.19.48 F540769 ---
          SELECT SP.DB_NAME,  SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 THEN
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (real(8589934590)- (real(SW.FREESPCP)
                   * 8589934590 / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (Real(4294967295)- (real(SW.FREESPCP)
                   * 4294967295 / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     real(SP.HI_ALLOC2)  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295)    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1t.TADM31A1 SP,
                 oa1t.TADM32A1 SW
    WITH UR
}¢--- A540769.WK.SQL(IMSFRE5) cre=2008-10-23 mod=2008-10-23-15.27.50 F540769 ---
  SELECT JN.DB_NAME, JN.DD_NAME,
         (JN.ALLOC) AS ALLOC,
         (MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
         (JN.THRESHOLD) AS THRESHOLD,
         (JN.HI_ALLOC), (JN.HI_ALLOC2),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  (JN.TRK_SEC), 'DB-SPEZ',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME,  SP.DD_NAME,
                 real(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 THEN
                    real(SP.HI_ALLOC2)
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (real(8589934590)- (real(SW.FREESPCP)
         ))-- ??   * 8589934590 / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (Real(4294967295)- (real(SW.FREESPCP)
         ))-- ??   * 4294967295 / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     real(SP.HI_ALLOC2)  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295)    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 real(SP.HI_ALLOC) hi_alloc,
                 real(SP.HI_ALLOC2) hi_alloc2,
                 real(SP.FREESPCP) AS SP_FREE,
                 real(SP.IFREESPCP) AS SP_IFREE, SP.DB_TYP,
                 real(SP.TRK_SEC) * CAPACITY AS TRK_SEC,
                 real(SP.EXTENTS) extents,
                 real(SP.HI_ALCSPC) hi_alcspc,
                 real(sp.CAPACITY) capacity
            FROM oa1a.TADM31A1 SP,
                 oa1a.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = SP.DB_NAME
             AND (SW.DD_NAME   = SP.DD_NAME
              OR  SW.DD_NAME   = 'ALL')
             AND SW.EXCLUDE    = 'N'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                    FROM oa1a.TADM31A1
                                   WHERE DB_NAME = SP.DB_NAME
                                     AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
   WHERE ((JN.TRK_SEC  >  0
         AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
    WITH UR
}¢--- A540769.WK.SQL(IMSFRE6) cre=2008-10-23 mod=2008-10-23-15.28.38 F540769 ---
  SELECT JN.DB_NAME, JN.DD_NAME,
         (JN.ALLOC) AS ALLOC,
         (MAX_SPC) AS MAX_SPC, (JN.HIGHWATER) AS HIGHWATER,
         (JN.THRESHOLD) AS THRESHOLD,
         (JN.HI_ALLOC), (JN.HI_ALLOC2),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  (JN.TRK_SEC), 'DB-SPEZ',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME,  SP.DD_NAME,
                 real(SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 THEN
                    real(SP.HI_ALLOC2)
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    8589934590
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    4294967295
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (real(8589934590)- (real(SW.FREESPCP)
                   * real(8589934590) / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (Real(4294967295)- (real(SW.FREESPCP)
                   * real(4294967295) / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     real(SP.HI_ALLOC2)  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295)    * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 real(SP.HI_ALLOC) hi_alloc,
                 real(SP.HI_ALLOC2) hi_alloc2,
                 real(SP.FREESPCP) AS SP_FREE,
                 real(SP.IFREESPCP) AS SP_IFREE, SP.DB_TYP,
                 real(SP.TRK_SEC) * CAPACITY AS TRK_SEC,
                 real(SP.EXTENTS) extents,
                 real(SP.HI_ALCSPC) hi_alcspc,
                 real(sp.CAPACITY) capacity
            FROM oa1a.TADM31A1 SP,
                 oa1a.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = SP.DB_NAME
             AND (SW.DD_NAME   = SP.DD_NAME
              OR  SW.DD_NAME   = 'ALL')
             AND SW.EXCLUDE    = 'N'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                    FROM oa1a.TADM31A1
                                   WHERE DB_NAME = SP.DB_NAME
                                     AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
   WHERE ((JN.TRK_SEC  >  0
         AND real(JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
    WITH UR
}¢--- A540769.WK.SQL(IMSFRE7) cre=2008-10-23 mod=2008-10-23-15.47.57 F540769 ---
-----------------------------------------------------------------------
--    SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND            --
--      FREESPACE HABEN                                              --
--    (1.TEIL: DEFAULTWERTE  /  2.TEIL: DB-ABHÄNGIGE WERTE)          --
-----------------------------------------------------------------------
--
  SELECT JN.DB_NAME, JN.DD_NAME,
         digits(int(JN.ALLOC)) AS ALLOC,
         digits(int(MAX_SPC)) AS MAX_SPC,
         digits(int(JN.HIGHWATER)) AS HIGHWATER,
         digits(int(JN.THRESHOLD)) AS THRESHOLD,
         digits(int(JN.HI_ALLOC)),
         digits(int(JN.HI_ALLOC2)),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  (JN.TRK_SEC), 'DEFAULT',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME, SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 then
                    real(sP.HI_ALLOC2)
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    real(8589934590)
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    real(4294967295)
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (real(8589934590)
                   - (real(SW.FREESPCP)* real(8589934590) / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (real(4294967295) - (real(SW.FREESPCP)
                   * real(4294967295) / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     SP.HI_ALLOC2  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295) * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1a.TADM31A1 SP,
                 oa1a.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = 'DEFAULT'
             AND SW.DD_NAME    = 'DEFAULT'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                   FROM oa1a.TADM31A1
                                  WHERE DB_NAME = SP.DB_NAME
                                    AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
    LEFT OUTER JOIN
         oa1a.TADM32A1 SX
      ON SX.DB_NAME    = JN.DB_NAME
     AND (SX.DD_NAME   = JN.DD_NAME
      OR  SX.DD_NAME   = 'ALL')
     AND SX.END_DATUM >= CURRENT TIMESTAMP
     AND (SX.FREESPCP >  0
      OR  SX.EXCLUDE   = 'Y')
   WHERE SX.DB_NAME   IS NULL
     AND ((JN.TRK_SEC  >  0
         AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
   UNION
  SELECT JN.DB_NAME, JN.DD_NAME,
         digits(int(JN.ALLOC)) AS ALLOC,
         digits(int(MAX_SPC)) AS MAX_SPC,
         digits(int(JN.HIGHWATER)) AS HIGHWATER,
         digits(int(JN.THRESHOLD)) AS THRESHOLD,
         digits(int(JN.HI_ALLOC)),
         digits(int(JN.HI_ALLOC2)),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  (JN.TRK_SEC), 'DB-SPEZ',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME,  SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 THEN
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    real(8589934590)
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    real(4294967295)
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (real(8589934590) -
                   (SW.FREESPCP * real(8589934590) / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (real(4294967295) - (SW.FREESPCP
                   * real(4294967295) / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     SP.HI_ALLOC2  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295) * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1a.TADM31A1 SP,
                 oa1a.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = SP.DB_NAME
             AND (SW.DD_NAME   = SP.DD_NAME
              OR  SW.DD_NAME   = 'ALL')
             AND SW.EXCLUDE    = 'N'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                    FROM oa1a.TADM31A1
                                   WHERE DB_NAME = SP.DB_NAME
                                     AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
   WHERE ((JN.TRK_SEC  >  0
         AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
    WITH UR
}¢--- A540769.WK.SQL(IMSFRE9) cre=2008-10-23 mod=2008-10-23-17.40.18 F540769 ---
-----------------------------------------------------------------------
--    SELECT ALLER IMS-DATENBANKEN, WELCHE NICHT GENÜGEND            --
--      FREESPACE HABEN                                              --
--    (1.TEIL: DEFAULTWERTE  /  2.TEIL: DB-ABHÄNGIGE WERTE)          --
-----------------------------------------------------------------------
--
  SELECT JN.DB_NAME, JN.DD_NAME,
         digits(decimal(JN.ALLOC)) AS ALLOC,
         digits(decimal(MAX_SPC)) AS MAX_SPC,
         digits(decimal(JN.HIGHWATER)) AS HIGHWATER,
         digits(decimal(JN.THRESHOLD)) AS THRESHOLD,
         digits(decimal(JN.HI_ALLOC)),
         digits(decimal(JN.HI_ALLOC2)),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  digits(decimal(JN.TRK_SEC)), 'DEFAULT',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME, SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 then
                    real(sP.HI_ALLOC2)
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    real(8589934590)
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    real(4294967295)
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (real(8589934590)
                   - (real(SW.FREESPCP)* real(8589934590) / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (real(4294967295) - (real(SW.FREESPCP)
                   * real(4294967295) / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     SP.HI_ALLOC2  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295) * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1t.TADM31A1 SP,
                 oa1t.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = 'DEFAULT'
             AND SW.DD_NAME    = 'DEFAULT'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                   FROM oa1t.TADM31A1
                                  WHERE DB_NAME = SP.DB_NAME
                                    AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
    LEFT OUTER JOIN
         oa1t.TADM32A1 SX
      ON SX.DB_NAME    = JN.DB_NAME
     AND (SX.DD_NAME   = JN.DD_NAME
      OR  SX.DD_NAME   = 'ALL')
     AND SX.END_DATUM >= CURRENT TIMESTAMP
     AND (SX.FREESPCP >  0
      OR  SX.EXCLUDE   = 'Y')
   WHERE SX.DB_NAME   IS NULL
     AND ((JN.TRK_SEC  >  0
         AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
   UNION
  SELECT JN.DB_NAME, JN.DD_NAME,
         digits(decimal(JN.ALLOC)) AS ALLOC,
         digits(decimal(MAX_SPC)) AS MAX_SPC,
         digits(decimal(JN.HIGHWATER)) AS HIGHWATER,
         digits(decimal(JN.THRESHOLD)) AS THRESHOLD,
         digits(decimal(JN.HI_ALLOC)),
         digits(decimal(JN.HI_ALLOC2)),
         JN.SW_FREE, JN.SP_FREE, JN.SP_IFREE,
         JN.DB_TYP,  digits(decimal(JN.TRK_SEC)), 'DB-SPEZ',
         JN.HI_ALCSPC, JN.CAPACITY
    FROM (SELECT SP.DB_NAME,  SP.DD_NAME,
                 (SP.HI_ALLOC-SP.FREESPC) AS ALLOC,
                 CASE
                   WHEN SP.TRK_SEC = 0 THEN
                    SP.HI_ALLOC2
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SP.TRK_SEC > 0 THEN
                    real(8589934590)
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SP.TRK_SEC > 0 THEN
                    real(4294967295)
                   ELSE 0
                 END AS MAX_SPC,
                 CASE
                   WHEN SP.DB_TYP = 'HDAM' THEN
                    (real(8589934590) -
                   (SW.FREESPCP * real(8589934590) / 100))
                   WHEN SP.DB_TYP = 'PHDAM' THEN
                    (real(4294967295) - (SW.FREESPCP
                   * real(4294967295) / 100))
                   ELSE 0
                 END AS HIGHWATER,
                 CASE
                   WHEN SP.TRK_SEC  = 0
                    AND SP.HI_ALLOC2 > 0
                    AND SW.FREESPCP  > 0 THEN
                     SP.HI_ALLOC2  * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'HDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(8589934590)    * SW.FREESPCP / 100
                   WHEN SP.DB_TYP  = 'PHDAM'
                    AND SW.FREESPCP > 0
                    AND SP.TRK_SEC  > 0 THEN
                     real(4294967295) * SW.FREESPCP / 100
                   ELSE 0
                 END AS THRESHOLD, SW.FREESPCP AS SW_FREE,
                 SP.HI_ALLOC, SP.HI_ALLOC2,
                 SP.FREESPCP AS SP_FREE,
                 SP.IFREESPCP AS SP_IFREE, SP.DB_TYP,
                 SP.TRK_SEC * CAPACITY AS TRK_SEC,
                 SP.EXTENTS, SP.HI_ALCSPC, SP.CAPACITY
            FROM oa1t.TADM31A1 SP,
                 oa1t.TADM32A1 SW
           WHERE SP.DB_ACCESS  = 'OSAM'
             AND SP.DB_TYP    IN ('HDAM','PHDAM')
             AND SP.FREESPCP  <  SW.FREESPCP
             AND SW.DB_NAME    = SP.DB_NAME
             AND (SW.DD_NAME   = SP.DD_NAME
              OR  SW.DD_NAME   = 'ALL')
             AND SW.EXCLUDE    = 'N'
             AND SW.END_DATUM >= CURRENT TIMESTAMP
             AND SP.RUNTIME    = (SELECT MAX(RUNTIME)
                                    FROM oa1t.TADM31A1
                                   WHERE DB_NAME = SP.DB_NAME
                                     AND DD_NAME = SP.DD_NAME)
             AND SP.RUNTIME   >= CURRENT TIMESTAMP - 7 DAYS) AS JN
   WHERE ((JN.TRK_SEC  >  0
         AND (JN.HIGHWATER-JN.ALLOC) / JN.TRK_SEC < 1)
      OR (JN.TRK_SEC  = 0
         AND JN.SP_FREE < JN.SW_FREE))
    WITH UR
}¢--- A540769.WK.SQL(INS) cre=2006-02-23 mod=2007-03-23-09.52.25 F540769 -------
select *                                                                00010030
    from                                                                00020030
       final table                                                      00030030
       ( insert into A540769.TWK001A (wk001name, wk001num, wk001t1)     00040031
           values   ('zweinUnddreissg', 32, 'c')                        00050030
       )                                                                00060030
;                                                                       00070028
final table (                                                           00080025
insert into   A540769.TWK001A (wk001name, wk001num, wk001t1)            00090031
    values                   ('dreinUnddreissg', 31, 'c')               00100025
) i2                                                                    00110026
;                                                                       00120024
rollback                                                                00130022
}¢--- A540769.WK.SQL(INSPART) cre= mod= ----------------------------------------
 insert into DGDB0211.TID155A1
    (
       TID155TST ,
       TID155UUI ,
       TID155CHA ,
       TID155LNR ,
       TID155VRS ,
       TID155CRE ,
       TID155IDT ,
       TID155IDE ,
       TID155ADT ,
       TID155ADR ,
       TID155BU  ,
       TID155BKS ,
       TID155ARE ,
       TID155CBE ,
       TID155INS
     )
   values (
         '1804-09-21-00.00.00.000000' ,
         'uui-eins',
         'a',
         'a',
         'a',
         'a',
         'a',
         'a',
         'a',
         'a',
         'a',
         'a',
         'a',
         'a',
         'a'
          )
 ;
}¢--- A540769.WK.SQL(INSUSR) cre=2006-06-09 mod=2006-06-09-14.09.25 F540769 ----
-- SET CURRENT SQLID  = 'A540769' ;
INSERT INTO  GDB9998.TWKUSER (CH4) VALUES ('EINS');
COMMIT
;
SELECT * FROM GDB9998.TWKUSER ;
SELECT CURRENT SQLID, USER ,S.* FROM SYSIBM.SYSDUMMY1 S;
}¢--- A540769.WK.SQL(IXSTATS) cre=2014-04-30 mod=2014-04-30-22.15.50 A540769 ---
$#:
$*(   index stats
     show keyCombinations for indexKey (1), (1,2), (1,2,3) etc.
$*)
dbSys = DBOF
$;
>.fEdit('::v250')
@%-¢ixStats oa1p, iks833a4$!

proc @/ixStats/
parse upper arg , cr, ix
    $=cr =- cr
    $=ix =- ix
    call sqlConnect $dbSys
    tb = sql2One("select strip(tbCreator) || '.' || strip(tbName)" ,
                     "from sysibm.sysIndexes" ,
                     "where creator = '"cr"' and name = '"ix"'")
    $$- '-- index' $cr'.'$ix 'tb' tb
    call sql2St "select strip(colName) from sysibm.sysKeys",
          "where ixCreator = '"cr"' and ixName = '"ix"'" ,
          "order by colSeq", ky, ":m.dst"
    cols = ''
    colv = ''
    do kx=1 to m.ky.0
        cols = cols',' m.ky.kx
        colv = colv "|| ', ' || value('' || "m.ky.kx", '')"
        end
    $$- '-- keys ' substr(cols, 3)
    $;
    $$- 'with g'm.ky.0 'as'
    $$- '('
    $$- '  select' m.ky.0 'keys, count(*) rows'cols
    if 0 then
        $$- '    from (select * from' tb 'fetch first 100 rows only) t'
    else
        $$- '    from' tb 't'
    $$- '    group by' substr(cols, 3)
    $$- ')'
    $do kx=m.ky.0-1 by-1 to 1 $@¢
        co1 = ''
        do cx=1 to kx
           co1 = co1',' m.ky.cx
           end
        co2 = ''
        do cx=kx+1 to m.ky.0
           co2 = co2', case when 1=0 then max(' || m.ky.cx || ')',
                           'else null end' m.ky.cx
           end
        $$- ', g'kx 'as'
        $$- '('
        $$- '  select' kx 'keys, sum(rows) rows'co1 co2
        $$- '    from g' || (kx+1)
        $$- '    group by' substr(co1, 3)
        $$- ')'
        $!
    $$- ', g as'
    $$- '('
    $$- '  select * from g'm.ky.0
    $do kx=m.ky.0-1 by-1 to 1 $@¢
        $$- '  union all select * from g'kx
        $!
    $$- ')'
    $$- ', t as'
    $$- '('
    $$- '  select keys, min(rows) rowsMin, max(rows) rowsMax'
    $$- '             , avg(real(rows)) rowsAvg, sum(rows) rowsSum'
    $$- '             , count(*)  keyComb'
    if 0 then
        $$- "             , max(right('          '||rows,12)"  $*+
                     " || ': '" substr(colV, 10)") maxFlds"
    $$- "    from g"
    $$- "    group by keys"
    $$- ')'
    $$- 'select t.* from t order by keys'
    m.sqlRetOk = 'w'
    $|
    say time() 'begin query index' $cr'.'$ix 'tb' tb
    call sqlQuery 7
    call sqlfTabReset  ft, 7, 1, ,300
    call sqlfTabOthers ft
    call sqlfTab       ft
    say time() 'end   query index' $cr'.'$ix 'tb' tb
    call sqlClose 7
    call sqlDisConnect

$/ixStats/
$#out                                              20140430 22:11:35
$#out                                              20140430 22:11:24
}¢--- A540769.WK.SQL(KASP) cre=2006-12-11 mod=2006-12-11-17.16.05 F540769 ------
      SELECT  UNDERLAYER   ,                                            00010000
              LAUFNR       ,                                            00020000
              VERFALL      ,                                            00030000
            CASE WHEN BASISPREIS >=  10000000 THEN  9999999.999999      00040000
                 WHEN BASISPREIS <= -10000000 THEN -9999999.999999      00050000
                    ELSE DECIMAL(BASISPREIS,13,6)                       00060000
               END                   ,                                  00070000
            CASE WHEN KONTRAKT  >=  10000000 THEN  9999999.999999       00080000
                 WHEN KONTRAKT  <= -10000000 THEN -9999999.999999       00090000
                    ELSE DECIMAL(KONTRAKT ,13,6)                        00100000
               END                   ,                                  00110000
              VERSION      ,                                            00120000
              MUT_TIMESTAMP,                                            00130000
              TKKEY, YEAR(VERFALL), MONTH(VERFALL)                      00140000
     FROM   OA1A.VFI011A1 A                                             00150000
     WHERE  A.UNDERLAYER        = 30000000                              00160000
      AND  A.LAUFNR            = 2                                      00170000
      AND  A.VERFALL          >= '01.01.1999'                           00180000
      AND  A.MUT_TIMESTAMP     = (SELECT MAX(MUT_TIMESTAMP)             00190000
                                  FROM   OA1A.VFI011A1 B                00200001
                                  WHERE  B.UNDERLAYER = A.UNDERLAYER    00210001
                                    AND  B.LAUFNR     = A.LAUFNR        00220001
                                    AND  B.VERFALL    = A.VERFALL       00230001
                                    AND  B.BASISPREIS = A.BASISPREIS    00240001
                                    AND  B.KONTRAKT   = A.KONTRAKT      00250001
                                    AND  B.VERSION    = A.VERSION)      00260001
    ORDER BY 1, 2, 9, 10, 4, 5, 3, 6                                    00270000
;                                                                       00280000
  XREATE VIEW OA1A.VFI011A1                                             00290001
  (        UNDERLAYER, LAUFNR,   VERFALL,  BASISPREIS, KONTRAKT,        00300001
           VERSION,    MUT_TIMESTAMP,      TKKEY) AS                    00310001
    SELECT FI01101A,   FI01102A, FI01103A, FI01104A,   FI01105A,        00320001
           FI01106A,   FI01107A,           FI01108A                     00330001
      FROM OA1A.TFI011A1 ;                                              00340001
                                                                        00350000
}¢--- A540769.WK.SQL(KASPKEY) cre=2006-12-14 mod=2006-12-14-10.13.09 F540769 ---
select count(*), FI01108A
    from oa1t.tfi011a1
    group by fi01108a
    order by 1 desc
    with ur
}¢--- A540769.WK.SQL(KASPT) cre=2006-12-11 mod=2006-12-12-10.03.15 F540769 -----
EXPLAIN PLAN SET QUERYNO=231 FOR                                        00010009
      SELECT  UNDERLAYER   ,                                            00020009
              LAUFNR       ,                                            00030009
              VERFALL      ,                                            00040009
            CASE WHEN BASISPREIS >=  10000000 THEN  9999999.999999      00050009
                 WHEN BASISPREIS <= -10000000 THEN -9999999.999999      00060009
                    ELSE DECIMAL(BASISPREIS,13,6)                       00070009
               END                   ,                                  00080009
            CASE WHEN KONTRAKT  >=  10000000 THEN  9999999.999999       00090009
                 WHEN KONTRAKT  <= -10000000 THEN -9999999.999999       00100009
                    ELSE DECIMAL(KONTRAKT ,13,6)                        00110009
               END                   ,                                  00120009
              VERSION      ,                                            00130009
              MUT_TIMESTAMP,                                            00140009
              TKKEY, YEAR(VERFALL), MONTH(VERFALL)                      00150009
     FROM   Oa1t.VFI011A1 A                                             00160021
     WHERE  A.UNDERLAYER        =         30000000                      00170023
      AND  A.LAUFNR            = 2                                      00180013
      AND  A.VERFALL          >= '01.01.1999'                           00190009
      AND  A.MUT_TIMESTAMP     = (SELECT MAX(MUT_TIMESTAMP)             00200009
                                  FROM   Oa1t.VFI011A1 B                00210021
                                  WHERE  B.UNDERLAYER = A.UNDERLAYER    00220009
                                    AND  B.LAUFNR     = A.LAUFNR        00230009
                                    AND  B.VERFALL    = A.VERFALL       00240009
                                    AND  B.BASISPREIS = A.BASISPREIS    00250009
                                    AND  B.KONTRAKT   = A.KONTRAKT      00260009
                                    AND  B.VERSION    = A.VERSION)      00270009
    ORDER BY 1, 2, 9, 10, 4, 5, 3, 6                                    00280009
;                                                                       00290009
select *                                                                00300014
    from A540769.plan_view5 v                                           00310024
    where   -- progname = 'DSNREXX'                                     00320014
         queryno =231 -- between 1000000 and 1009999                    00330014
    order by applname, progname, queryNo, qblockno, planno              00340014
;                                                                       00350014
COMMIT                                                                  00360009
;                                                                       00370009
  XREATE VIEW Oa1t.VFI011A1                                             00380021
  (        UNDERLAYER, LAUFNR,   VERFALL,  BASISPREIS, KONTRAKT,        00390009
           VERSION,    MUT_TIMESTAMP,      TKKEY) AS                    00400009
    SELECT FI01101A,   FI01102A, FI01103A, FI01104A,   FI01105A,        00410009
           FI01106A,   FI01107A,           FI01108A                     00420009
      FROM Oa1t.TFI011A1 ;                                              00430021
                                                                        00440009
EXPLAIN PLAN SET QUERYNO=231 FOR                                        00450002
      SELECT  A.UNDERLAYER   ,                                          00460005
              A.LAUFNR       ,                                          00470005
              A.VERFALL      ,                                          00480005
            CASE WHEN A.BASISPREIS >=  10000000 THEN  9999999.999999    00490005
                 WHEN A.BASISPREIS <= -10000000 THEN -9999999.999999    00500005
                    ELSE DECIMAL(A.BASISPREIS,13,6)                     00510005
               END                   ,                                  00520000
            CASE WHEN A.KONTRAKT  >=  10000000 THEN  9999999.999999     00530005
                 WHEN A.KONTRAKT  <= -10000000 THEN -9999999.999999     00540005
                    ELSE DECIMAL(A.KONTRAKT ,13,6)                      00550008
               END                   ,                                  00560000
              A.VERSION      ,                                          00570005
              A.MUT_TIMESTAMP,                                          00580005
              A.TKKEY, YEAR(A.VERFALL), MONTH(A.VERFALL)                00590005
     FROM   Oa1t.VFI011A1 A                                             00600021
         JOIN                                                           00610004
             ( SELECT UNDERLAYER,                                       00620004
                      LAUFNR,                                           00630004
                      VERFALL,                                          00640004
                      MAX(MUT_TIMESTAMP) MUT_TIMESTAMP,                 00650006
                      BASISPREIS,                                       00660004
                      KONTRAKT,                                         00670004
                      VERSION                                           00680007
                   FROM   Oa1t.VFI011A1                                 00690021
                   GROUP BY UNDERLAYER,                                 00700004
                            LAUFNR,                                     00710004
                            VERFALL,                                    00720004
                            BASISPREIS,                                 00730004
                            KONTRAKT,                                   00740004
                            VERSION                                     00750004
             ) B                                                        00760004
               ON                                                       00770004
                         B.UNDERLAYER    = A.UNDERLAYER                 00780004
                    AND  B.LAUFNR        = A.LAUFNR                     00790004
                    AND  B.VERFALL       = A.VERFALL                    00800004
                    AND  B.MUT_TIMESTAMP = A.MUT_TIMESTAMP              00810004
                    AND  B.BASISPREIS    = A.BASISPREIS                 00820004
                    AND  B.KONTRAKT      = A.KONTRAKT                   00830004
                    AND  B.VERSION       = A.VERSION                    00840004
     WHERE  A.UNDERLAYER        = 30000000                              00850000
      AND  A.LAUFNR            = 2                                      00860000
      AND  A.VERFALL          >= '01.01.1999'                           00870000
    ORDER BY 1, 2, 9, 10, 4, 5, 3, 6                                    00880000
;                                                                       00890000
                                                                        00900000
}¢--- A540769.WK.SQL(KASPVW) cre= mod= -----------------------------------------
  SET CURRENT SQLID='OA1A';
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","OA1A" ;
  CREATE VIEW OA1A.VFI011A1
  (        UNDERLAYER, LAUFNR,   VERFALL,  BASISPREIS, KONTRAKT,
           VERSION,    MUT_TIMESTAMP,      TKKEY) AS
    SELECT FI01101A,   FI01102A, FI01103A, FI01104A,   FI01105A,
           FI01106A,   FI01107A,           FI01108A
      FROM OA1A.TFI011A1 ;
  COMMIT;
}¢--- A540769.WK.SQL(KASPW) cre=2006-12-11 mod=2006-12-12-10.10.12 F540769 -----
EXPLAIN PLAN SET QUERYNO=231 FOR                                        00010002
-- WITH  V AS                                                           00020003
   SELECT *                                                             00030003
       FROM   OA1A.TFI011A1                                             00040013
       WHERE  FI01101A          = 30000000                              00050011
        AND  FI01102A          = 2                                      00060004
        AND  FI01103A         >= '01.01.1999'                           00070004
;                                                                       00080003
SELECT *                                                                00090012
    FROM A540769.PLAN_VIEW5 V                                           00100014
    WHERE QUERYNO = 231                                                 00110012
    ORDER BY APPLNAME, PROGNAME, QUERYNO, QBLOCKNO, PLANNO              00120012
;                                                                       00130012
EXPLAIN PLAN SET QUERYNO=231 FOR                                        00140012
-- WITH  V AS                                                           00150011
   SELECT *                                                             00160011
       FROM   OA1A.TFI011A1                                             00170013
       WHERE  FI01101A          = 30000000 + 2 - 2                      00180011
        AND  FI01102A          = 2                                      00190011
        AND  FI01103A         >= '01.01.1999'                           00200011
;                                                                       00210011
SELECT *                                                                00220012
    FROM A540769.PLAN_VIEW5 V                                           00230014
    WHERE QUERYNO = 231                                                 00240012
    ORDER BY APPLNAME, PROGNAME, QUERYNO, QBLOCKNO, PLANNO              00250012
;                                                                       00260012
EXPLAIN PLAN SET QUERYNO=231 FOR                                        00270012
-- WITH  V AS                                                           00280011
   SELECT *                                                             00290011
       FROM   OA1A.TFI011A1                                             00300013
       WHERE  FI01101A          = DECIMAL(30000000)                     00310011
        AND  FI01102A          = 2                                      00320011
        AND  FI01103A         >= '01.01.1999'                           00330011
;                                                                       00340011
SELECT *                                                                00350008
    FROM A540769.PLAN_VIEW5 V                                           00360014
    WHERE QUERYNO = 231                                                 00370012
    ORDER BY APPLNAME, PROGNAME, QUERYNO, QBLOCKNO, PLANNO              00380008
;                                                                       00390008
                                                                        00400008
COMMIT;                                                                 00410003
      SELECT  UNDERLAYER   ,                                            00420001
              LAUFNR       ,                                            00430001
              VERFALL      ,                                            00440001
            CASE WHEN BASISPREIS >=  10000000 THEN  9999999.999999      00450001
                 WHEN BASISPREIS <= -10000000 THEN -9999999.999999      00460001
                    ELSE DECIMAL(BASISPREIS,13,6)                       00470001
               END                   ,                                  00480001
            CASE WHEN KONTRAKT  >=  10000000 THEN  9999999.999999       00490001
                 WHEN KONTRAKT  <= -10000000 THEN -9999999.999999       00500001
                    ELSE DECIMAL(KONTRAKT ,13,6)                        00510001
               END                   ,                                  00520001
              VERSION      ,                                            00530001
              MUT_TIMESTAMP,                                            00540001
              TKKEY, YEAR(VERFALL), MONTH(VERFALL)                      00550001
     FROM   V A                                                         00560001
     WHERE A.MUT_TIMESTAMP     = (SELECT MAX(MUT_TIMESTAMP)             00570001
                                  FROM   V B                            00580001
                                  WHERE  B.VERFALL    = A.VERFALL       00590001
                                    AND  B.BASISPREIS = A.BASISPREIS    00600001
                                    AND  B.KONTRAKT   = A.KONTRAKT      00610001
                                    AND  B.VERSION    = A.VERSION)      00620001
    ORDER BY 1, 2, 9, 10, 4, 5, 3, 6                                    00630001
;                                                                       00640001
}¢--- A540769.WK.SQL(KASP2) cre=2006-12-14 mod=2006-12-14-10.11.55 F540769 -----
                         SELECT UNDERLAYER, LAUFNR, VERFALL, CASE WHEN
 BASISPREIS >= 10000000 THEN 9999999.999999 WHEN BASISPREIS <= -
 10000000 THEN - 9999999.999999 ELSE DECIMAL (BASISPREIS, 13, 6) END,
 CASE WHEN KONTRAKT >= 10000000 THEN 9999999.999999 WHEN KONTRAKT <= -
 10000000 THEN - 9999999.999999 ELSE DECIMAL (KONTRAKT, 13, 6) END,
 VERSION, MUT_TIMESTAMP, TKKEY, YEAR (VERFALL), MONTH (VERFALL) FROM
 VFI011A1 A WHERE A.UNDERLAYER = :H AND A.LAUFNR = :H AND A.VERFALL >=
 '01' ¨¨ SUBSTR (:H, 3, 8) AND A.MUT_TIMESTAMP = (SELECT MAX
 (MUT_TIMESTAMP) FROM VFI011A1 WHERE UNDERLAYER = A.UNDERLAYER AND
 LAUFNR = A.LAUFNR AND VERFALL = A.VERFALL AND BASISPREIS = A.BASISPREIS
 AND KONTRAKT = A.KONTRAKT AND VERSION = A.VERSION) ORDER BY 1, 2, 9,
 10, 4, 5, 3, 6
}¢--- A540769.WK.SQL(KEL1) cre=2006-05-23 mod=2006-05-24-07.54.39 F540769 ------
SELECT                                                                  00000127
       RE506050 , (SELECT COUNT(*) -- C.RT06002                         00000227
                   FROM   OA1A.TRT061 C,                                00000327
                          OA1A.TRE513A1 B                               00000427
                   WHERE  B.RE513010  = C.RT06001                       00000527
                   AND    B.RE513020 <= CURRENT TIMESTAMP               00000627
                   AND    B.RE513030 >= CURRENT TIMESTAMP               00000727
                   AND    B.RE513050  = A.RE506010                      00000827
                   AND    A.RE506020  = 'D'                             00000927
                   AND    A.RE506030 <= CURRENT TIMESTAMP               00001027
                   AND    A.RE506040 >= CURRENT TIMESTAMP)              00001127
FROM   OA1A.TRE506A1 A                                                  00001227
WHERE  RE506020  = 'D'                                                  00001327
AND    RE506030 <= CURRENT TIMESTAMP                                    00001427
AND    RE506040 >= CURRENT TIMESTAMP                                    00001527
;                                                                       00001627
XPDATE OA1A.TRE506A1                                                    00002027
       SET RE506050 =                                                   00003019
       (  SELECT MAX(C.RE513010)                                        00004019
              FROM OA1A.TRE513A1 B,                                     00005019
                   OA1A.TRE513A1 C                                      00006019
              WHERE   RE506010 = B.RE513050                             00007022
                  AND B.RE513010 = C.RE513010                           00008019
                  AND B.RE513020 = C.RE513020                           00009019
                  AND B.RE513010 = 'FRW'                                00009119
       )                                                                00009220
    WHERE EXISTS                                                        00009419
       (  SELECT     C.RE513010                                         00009519
              FROM OA1A.TRE513A1 B,                                     00009619
                   OA1A.TRE513A1 C                                      00009719
              WHERE   RE506010 = B.RE513050                             00009823
                  AND B.RE513010 = C.RE513010                           00009919
                  AND B.RE513020 = C.RE513020                           00010019
                  AND B.RE513010 = 'FRW'                                00010119
       )                                                                00010219
;                                                                       00010319
XELECT RE506010,                                                        00010627
       RE506020,                                                        00011003
       RE506050,                                                        00012004
       (  SELECT MAX(C.RE513010)                                        00013010
              FROM OA1A.TRE513A1 B,                                     00014111
                   OA1A.TRE513A1 C                                      00014210
              WHERE A.RE506010 = B.RE513050                             00015008
                  AND B.RE513010 = C.RE513010                           00015113
                  AND B.RE513020 = C.RE513020                           00015213
                  AND B.RE513010 = 'FRW'                                00015317
       ) KAS                                                            00017007
    FROM OA1A.TRE506A1 A                                                00020016
    WHERE EXISTS                                                        00020118
       (  SELECT     C.RE513010                                         00021018
              FROM OA1A.TRE513A1 B,                                     00022018
                   OA1A.TRE513A1 C                                      00023018
              WHERE A.RE506010 = B.RE513050                             00024018
                  AND B.RE513010 = C.RE513010                           00025018
                  AND B.RE513020 = C.RE513020                           00026018
                  AND B.RE513010 = 'FRW'                                00027018
       )                                                                00028018
;                                                                       00030025
ROLLBACK                                                                00031026
;                                                                       00032026
SELECT RE506010,                                                        00040024
       RE506020,                                                        00050024
       RE506050,                                                        00060024
       (  SELECT MAX(C.RE513010)                                        00070024
              FROM OA1A.TRE513A1 B,                                     00080024
                   OA1A.TRE513A1 C                                      00090024
              WHERE A.RE506010 = B.RE513050                             00100024
                  AND B.RE513010 = C.RE513010                           00110024
                  AND B.RE513020 = C.RE513020                           00120024
                  AND B.RE513010 = 'FRW'                                00130024
       ) KAS                                                            00140024
    FROM OA1A.TRE506A1 A                                                00150024
    WHERE EXISTS                                                        00160024
       (  SELECT     C.RE513010                                         00170024
              FROM OA1A.TRE513A1 B,                                     00180024
                   OA1A.TRE513A1 C                                      00190024
              WHERE A.RE506010 = B.RE513050                             00200024
                  AND B.RE513010 = C.RE513010                           00210024
                  AND B.RE513020 = C.RE513020                           00220024
                  AND B.RE513010 = 'FRW'                                00230024
       )                                                                00240024
                                                                        00250024
}¢--- A540769.WK.SQL(KE49LO) cre=2008-10-17 mod=2008-11-06-08.32.57 F540769 ----
call sqlConnect dbtf
$;
$<<eof
SELECT COUNT(DISTINCT(V833.PARTNER_KEY)) cnt
  FROM OA1t.VKS833A1V V833
     , OA1t.VKS835A1V V835
 WHERE V833.CONTRACT_COLL like '07%'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
eof  $=sql£envCatStr(' ', 'sb')
call sqlPrepare 1, $sql
la = timing()
do x=1 to 10
    call sqlOpAllCl 1, st, ':cnt'
    ti = timing()
    $£ ti (word(ti, 3) - word(la, 3)) 'cnt' cnt
    la  = ti
    if 0 then do
        call sqlCommit
        call sqlPrepare 1, $sql
        end
    end
$*(
eof  call sqlLn 1
$¨ $@{ $@for v $@{ $£ timing() strip($v)
               $}
   $}
$;
$*)
call sqlDisConnect
$***out            20081106 08:32:17
08:32:23 0      0.58 0.21 cnt 510
08:32:23 0      0.68 0.10 cnt 510
08:32:23 0      0.77 0.09 cnt 510
08:32:24 0      0.87 0.10 cnt 510
08:32:24 0      0.97 0.10 cnt 510
08:32:24 0      1.06 0.09 cnt 510
08:32:24 0      1.16 0.10 cnt 510
08:32:24 0      1.25 0.09 cnt 510
08:32:25 0      1.35 0.10 cnt 510
08:32:25 0      1.45 0.10 cnt 510
$***out            20081017 11:10:40
11:10:42 0      4.89 0.98 cnt 503
11:10:46 0      7.67 2.78 cnt 503
11:10:54 0     12.39 4.72 cnt 503
11:11:04 0     19.34 6.95 cnt 503
11:11:20 0     29.54 10.20 cnt 503
11:11:39 0     43.03 13.49 cnt 503
11:12:12 0     65.61 22.58 cnt 503
11:12:53 0     95.83 30.22 cnt 503
11:14:16 0    146.99 51.16 cnt 503
11:15:43 0    207.38 60.39 cnt 503
$***out            20081017 11:07:33
11:07:35 0      3.83 1.00 cnt 503
$***out            20081017 11:07:00
11:07:01 0      1.05 0.03 cnt 55
11:07:01 0      1.08 0.03 cnt 55
11:07:01 0      1.13 0.05 cnt 55
11:07:01 0      1.18 0.05 cnt 55
11:07:01 0      1.26 0.08 cnt 55
11:07:01 0      1.34 0.08 cnt 55
11:07:01 0      1.44 0.10 cnt 55
11:07:02 0      1.55 0.11 cnt 55
11:07:02 0      1.68 0.13 cnt 55
11:07:02 0      1.82 0.14 cnt 55
11:07:02 0      1.98 0.16 cnt 55
11:07:02 0      2.15 0.17 cnt 55
11:07:03 0      2.33 0.18 cnt 55
11:07:03 0      2.53 0.20 cnt 55
11:07:03 0      2.74 0.21 cnt 55
$***out            20081017 11:06:41
11:06:41 0      0.85 0.01 cnt 9
11:06:41 0      0.85 0 cnt 9
11:06:41 0      0.85 0 cnt 9
11:06:41 0      0.86 0.01 cnt 9
11:06:41 0      0.86 0 cnt 9
11:06:41 0      0.87 0.01 cnt 9
11:06:41 0      0.87 0 cnt 9
11:06:41 0      0.88 0.01 cnt 9
11:06:41 0      0.88 0 cnt 9
11:06:41 0      0.89 0.01 cnt 9
11:06:41 0      0.90 0.01 cnt 9
11:06:41 0      0.90 0 cnt 9
11:06:41 0      0.91 0.01 cnt 9
11:06:41 0      0.92 0.01 cnt 9
11:06:41 0      0.93 0.01 cnt 9
$***out            20081017 11:06:28
11:06:28 0      0.69 0 cnt 0
11:06:28 0      0.70 0.01 cnt 0
11:06:28 0      0.70 0 cnt 0
11:06:28 0      0.70 0 cnt 0
11:06:28 0      0.70 0 cnt 0
11:06:28 0      0.70 0 cnt 0
11:06:28 0      0.70 0 cnt 0
11:06:28 0      0.70 0 cnt 0
11:06:28 0      0.70 0 cnt 0
11:06:28 0      0.70 0 cnt 0
11:06:28 0      0.70 0 cnt 0
11:06:28 0      0.71 0.01 cnt 0
11:06:28 0      0.71 0 cnt 0
11:06:28 0      0.71 0 cnt 0
11:06:28 0      0.71 0 cnt 0
$***out            20081017 11:06:17
11:06:18 0      0.57 0 cnt 0
11:06:18 0      0.57 0 cnt 0
11:06:18 0      0.57 0 cnt 0
11:06:18 0      0.58 0.01 cnt 0
11:06:18 0      0.58 0 cnt 0
11:06:18 0      0.58 0 cnt 0
11:06:18 0      0.58 0 cnt 0
11:06:18 0      0.58 0 cnt 0
11:06:18 0      0.58 0 cnt 0
11:06:18 0      0.58 0 cnt 0
11:06:18 0      0.58 0 cnt 0
11:06:18 0      0.58 0 cnt 0
11:06:18 0      0.59 0.01 cnt 0
11:06:18 0      0.59 0 cnt 0
11:06:18 0      0.59 0 cnt 0
$***out            20081017 11:06:05
11:06:05 0      0.47 0.01 cnt 0
11:06:05 0      0.47 0 cnt 0
11:06:05 0      0.47 0 cnt 0
11:06:05 0      0.47 0 cnt 0
11:06:05 0      0.47 0 cnt 0
11:06:05 0      0.47 0 cnt 0
11:06:05 0      0.47 0 cnt 0
11:06:05 0      0.47 0 cnt 0
11:06:05 0      0.47 0 cnt 0
11:06:05 0      0.48 0.01 cnt 0
11:06:05 0      0.48 0 cnt 0
11:06:05 0      0.48 0 cnt 0
11:06:05 0      0.48 0 cnt 0
11:06:05 0      0.48 0 cnt 0
11:06:05 0      0.48 0 cnt 0
$***out            20081017 11:05:51
11:05:51 0      0.36 0 cnt 0
11:05:51 0      0.36 0 cnt 0
11:05:51 0      0.36 0 cnt 0
11:05:51 0      0.36 0 cnt 0
11:05:51 0      0.36 0 cnt 0
11:05:51 0      0.36 0 cnt 0
11:05:51 0      0.36 0 cnt 0
11:05:51 0      0.37 0.01 cnt 0
11:05:51 0      0.37 0 cnt 0
11:05:51 0      0.37 0 cnt 0
11:05:51 0      0.37 0 cnt 0
11:05:51 0      0.37 0 cnt 0
11:05:51 0      0.37 0 cnt 0
11:05:51 0      0.37 0 cnt 0
11:05:51 0      0.37 0 cnt 0
$***out            20081017 10:09:48
10:09:49 0     55.19 0.11 cnt 96
10:09:49 0     55.29 0.10 cnt 96
10:09:49 0     55.40 0.11 cnt 96
10:09:49 0     55.51 0.11 cnt 96
10:09:49 0     55.61 0.10 cnt 96
10:09:49 0     55.72 0.11 cnt 96
10:09:50 0     55.83 0.11 cnt 96
10:09:50 0     55.93 0.10 cnt 96
10:09:50 0     56.04 0.11 cnt 96
10:09:50 0     56.14 0.10 cnt 96
10:09:50 0     56.25 0.11 cnt 96
10:09:50 0     56.35 0.10 cnt 96
10:09:50 0     56.46 0.11 cnt 96
10:09:51 0     56.56 0.10 cnt 96
10:09:51 0     56.67 0.11 cnt 96
10:09:51 0     56.77 0.10 cnt 96
10:09:51 0     56.88 0.11 cnt 96
10:09:51 0     57.00 0.12 cnt 96
10:09:52 0     57.11 0.11 cnt 96
10:09:52 0     57.22 0.11 cnt 96
$***out            20081017 10:09:15
10:09:16 0     54.92 0.11 cnt 96
$***out            20081017 10:07:31
10:07:31 0      9.25 0.11 cnt 96
10:07:32 0      9.51 0.26 cnt 96
10:07:32 0      9.94 0.43 cnt 96
10:07:33 0     10.52 0.58 cnt 96
10:07:34 0     11.27 0.75 cnt 96
10:07:35 0     12.17 0.90 cnt 96
10:07:37 0     13.25 1.08 cnt 96
10:07:39 0     14.57 1.32 cnt 96
10:07:40 0     16.05 1.48 cnt 96
10:07:42 0     17.67 1.62 cnt 96
10:07:45 0     19.52 1.85 cnt 96
10:07:47 0     21.64 2.12 cnt 96
10:07:50 0     24.06 2.42 cnt 96
10:07:54 0     26.79 2.73 cnt 96
10:07:58 0     30.01 3.22 cnt 96
10:08:02 0     33.22 3.21 cnt 96
10:08:06 0     36.77 3.55 cnt 96
10:08:16 0     42.29 5.52 cnt 96
10:08:25 0     48.09 5.80 cnt 96
10:08:34 0     54.65 6.56 cnt 96
$***out            20081017 10:06:53
10:06:53 0      7.04 0.10 cnt 96
10:06:53 0      7.30 0.26 cnt 96
10:06:54 0      7.71 0.41 cnt 96
10:06:54 0      8.28 0.57 cnt 96
10:06:55 0      9.01 0.73 cnt 96
$***out            20081017 10:06:11
$***out            20081017 10:05:43
$***out            20081017 10:05:29
$***out            20081017 10:02:18
10:02:19 0      4.11 96
10:02:19 0      4.37 96
10:02:19 0      4.78 96
10:02:20 0      5.35 96
10:02:21 0      6.09 96
$***out            20081017 10:01:16
10:01:16 0      3.86 96
$***out            20081017 10:00:04
10:00:05 0      3.62 96
$***out            20081017 09:57:29
$***out            20081017 09:50:02
09:50:02 0      3.00
09:50:02 0      3.00 96
$***out            20081017 09:49:00
09:49:01 0      2.76
09:49:01 0      2.76 96
$***out            20081017 09:39:59
M.LINE
$***out            20081017 09:39:44
96
$***out            20081017 09:39:31
$***out            20081017 09:28:08
96
$***out            20081017 09:27:25
M.LINE
$***out            20081017 09:26:29
$***out            20081017 09:26:24
$***out            20081017 09:25:42
$***out            20081017 09:25:04
$***out
}¢--- A540769.WK.SQL(KE49L5) cre=2008-10-31 mod=2008-10-31-12.36.52 F540769 ----
select varbinary('asdf') from sysibm.sysdummy1;
x
 SELECT
        LOCATE('0142',  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                '),
        position( 'xy' || ibmreqd,   '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179              xy' || ibmReqD
                    , octets)
from sysibm.sysDummy1
with ur
;
x
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
 SELECT '>>>', COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1P.VKS833A1V V833
     , OA1P.VKS835A1V V835
 WHERE V833.CONTRACT_COLL = '07475074735929-L'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND LOCATE(V835.PRODUCT_ID,  '0052
                                 0053
                                 0054
                                 0055                ,
                                 0056                ,
                                 0057                ,
                                 0058                ,
                                 0142                ,
                                 0152                ,
                                 0153                ,
                                 0167                ,
                                 0168                ,
                                 0169                ,
                                 0179                ') > 0
with ur
;
}¢--- A540769.WK.SQL(KE49L7) cre=2008-10-31 mod=2008-11-06-08.46.00 F540769 ----
call sqlConnect dbtf
$;
$<<eof
 SELECT COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1T.VKS833A1V V833
     , OA1T.VKS835A1V V835
 WHERE V833.CONTRACT_COLL like '07%'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND locate(' ' || strip(V835.PRODUCT_ID) ,
                       ' 0052 0053 0054 0055 0056 0057 0058'
                    || ' 0142 0152 0153 0167 0168 0169 0179'
                    || space(1870) ||'x'
                                                       ) > 0
with ur
eof  $=sql£envCatStr(' ', 'sb')
$;
$=tbs=select count(distinct name) cnt from sysibm.systables
call sqlPrepare 1, $sql
la = timing()
do x=1 to 5
    call sqlOpAllCl 1, st, ':cnt, :ti'
    ti = timing()
    $£ ti (word(ti, 3) - word(la, 3)) 'cnt' cnt  'ti' ti
    la  = ti
    if 0 then
        call sqlCommit
    if 0 then
        call sqlPrepare 1, $sql
    if 0 then
        if x // 2 = 0 then
            call sqlPrepare 1, $sql
        else
            call sqlPrepare 1, $tbs
    end
$*(
eof  call sqlLn 1
$¨ $@{ $@for v $@{ $£ timing() strip($v)
               $}
   $}
$;
$*)
call sqlDisConnect
$***out            20081106 08:45:55
08:45:55 0      3.11 0.11 cnt 510 ti 08:45:55 0      3.11
08:45:55 0      3.22 0.11 cnt 510 ti 08:45:55 0      3.22
08:45:56 0      3.34 0.12 cnt 510 ti 08:45:56 0      3.34
08:45:56 0      3.45 0.11 cnt 510 ti 08:45:56 0      3.45
08:45:56 0      3.56 0.11 cnt 510 ti 08:45:56 0      3.56
$***out            20081106 08:45:28
08:45:28 0      2.54 0.09 cnt 510 ti 08:45:28 0      2.54
08:45:28 0      2.63 0.09 cnt 510 ti 08:45:28 0      2.63
08:45:28 0      2.72 0.09 cnt 510 ti 08:45:28 0      2.72
08:45:28 0      2.81 0.09 cnt 510 ti 08:45:28 0      2.81
08:45:29 0      2.90 0.09 cnt 510 ti 08:45:29 0      2.90
$***out            20081106 08:45:08
08:45:11 0      2.00 0.15 cnt 510 ti 08:45:11 0      2.00
08:45:12 0      2.09 0.09 cnt 510 ti 08:45:12 0      2.09
08:45:12 0      2.18 0.09 cnt 510 ti 08:45:12 0      2.18
08:45:12 0      2.26 0.08 cnt 510 ti 08:45:12 0      2.26
08:45:12 0      2.35 0.09 cnt 510 ti 08:45:12 0      2.35
$***out            20081106 08:42:51
08:42:51 0      1.63 0 cnt 0 ti 08:42:51 0      1.63
08:42:51 0      1.64 0.01 cnt 0 ti 08:42:51 0      1.64
08:42:51 0      1.64 0 cnt 0 ti 08:42:51 0      1.64
08:42:51 0      1.64 0 cnt 0 ti 08:42:51 0      1.64
08:42:51 0      1.64 0 cnt 0 ti 08:42:51 0      1.64
$***out            20081031 13:47:18
13:47:18 0    317.50 0.02 cnt 93 ti 13:47:18 0    317.50
13:47:18 0    317.53 0.03 cnt 93 ti 13:47:18 0    317.53
13:47:18 0    317.55 0.02 cnt 93 ti 13:47:18 0    317.55
13:47:18 0    317.57 0.02 cnt 93 ti 13:47:18 0    317.57
13:47:18 0    317.59 0.02 cnt 93 ti 13:47:18 0    317.59
$***out            20081031 13:47:02
13:47:02 0    315.37 0.11 cnt 93 ti 13:47:02 0    315.37
13:47:03 0    315.63 0.26 cnt 93 ti 13:47:03 0    315.63
13:47:03 0    316.06 0.43 cnt 93 ti 13:47:03 0    316.06
13:47:04 0    316.64 0.58 cnt 93 ti 13:47:04 0    316.64
13:47:05 0    317.40 0.76 cnt 93 ti 13:47:05 0    317.40
$***out            20081031 13:46:47
13:46:48 0    313.12 0.11 cnt 93 ti 13:46:48 0    313.12
13:46:48 0    313.39 0.27 cnt 93 ti 13:46:48 0    313.39
13:46:48 0    313.81 0.42 cnt 93 ti 13:46:48 0    313.81
13:46:49 0    314.40 0.59 cnt 93 ti 13:46:49 0    314.40
13:46:50 0    315.17 0.77 cnt 93 ti 13:46:50 0    315.17
$***out            20081031 13:46:35
13:46:35 0    310.90 0.11 cnt 93 ti 13:46:35 0    310.90
13:46:35 0    311.16 0.26 cnt 93 ti 13:46:35 0    311.16
13:46:36 0    311.57 0.41 cnt 93 ti 13:46:36 0    311.57
13:46:36 0    312.16 0.59 cnt 93 ti 13:46:36 0    312.16
13:46:37 0    312.91 0.75 cnt 93 ti 13:46:37 0    312.91
$***out            20081031 13:46:17
13:46:17 0    308.65 0.11 cnt 93 ti 13:46:17 0    308.65
13:46:17 0    308.92 0.27 cnt 93 ti 13:46:17 0    308.92
13:46:18 0    309.34 0.42 cnt 93 ti 13:46:18 0    309.34
13:46:19 0    309.94 0.60 cnt 93 ti 13:46:19 0    309.94
13:46:20 0    310.70 0.76 cnt 93 ti 13:46:20 0    310.70
$***out            20081031 13:46:05
13:46:06 0    308.34 0.02 cnt 93 ti 13:46:06 0    308.34
13:46:06 0    308.37 0.03 cnt 93 ti 13:46:06 0    308.37
13:46:06 0    308.39 0.02 cnt 93 ti 13:46:06 0    308.39
13:46:06 0    308.42 0.03 cnt 93 ti 13:46:06 0    308.42
13:46:06 0    308.44 0.02 cnt 93 ti 13:46:06 0    308.44
$***out            20081031 13:45:57
13:45:57 0    308.13 0.02 cnt 93 ti 13:45:57 0    308.13
13:45:57 0    308.16 0.03 cnt 93 ti 13:45:57 0    308.16
13:45:57 0    308.18 0.02 cnt 93 ti 13:45:57 0    308.18
13:45:57 0    308.21 0.03 cnt 93 ti 13:45:57 0    308.21
13:45:57 0    308.23 0.02 cnt 93 ti 13:45:57 0    308.23
$***out            20081031 13:45:31
13:45:32 0    306.00 0.11 cnt 93 ti 13:45:32 0    306.00
13:45:32 0    306.27 0.27 cnt 93 ti 13:45:32 0    306.27
13:45:32 0    306.69 0.42 cnt 93 ti 13:45:32 0    306.69
13:45:33 0    307.27 0.58 cnt 93 ti 13:45:33 0    307.27
13:45:34 0    308.02 0.75 cnt 93 ti 13:45:34 0    308.02
$***out            20081031 13:45:05
13:45:05 0    303.69 0.11 cnt 93 ti 13:45:05 0    303.69
13:45:06 0    303.96 0.27 cnt 93 ti 13:45:06 0    303.96
13:45:07 0    304.39 0.43 cnt 93 ti 13:45:07 0    304.39
13:45:08 0    305.02 0.63 cnt 93 ti 13:45:08 0    305.02
13:45:09 0    305.80 0.78 cnt 93 ti 13:45:09 0    305.80
$***out            20081031 13:44:53
13:44:54 0    303.38 0.02 cnt 93 ti 13:44:54 0    303.38
13:44:54 0    303.41 0.03 cnt 93 ti 13:44:54 0    303.41
13:44:54 0    303.43 0.02 cnt 93 ti 13:44:54 0    303.43
13:44:54 0    303.45 0.02 cnt 93 ti 13:44:54 0    303.45
13:44:54 0    303.48 0.03 cnt 93 ti 13:44:54 0    303.48
$***out            20081031 13:44:16
13:44:16 0    303.18 0.02 cnt 93 ti 13:44:16 0    303.18
13:44:16 0    303.20 0.02 cnt 93 ti 13:44:16 0    303.20
13:44:17 0    303.23 0.03 cnt 93 ti 13:44:17 0    303.23
13:44:17 0    303.25 0.02 cnt 93 ti 13:44:17 0    303.25
13:44:17 0    303.27 0.02 cnt 93 ti 13:44:17 0    303.27
$***out            20081031 13:44:04
13:44:04 0    302.97 0.02 cnt 93 ti 13:44:04 0    302.97
13:44:04 0    303.00 0.03 cnt 93 ti 13:44:04 0    303.00
13:44:04 0    303.02 0.02 cnt 93 ti 13:44:04 0    303.02
13:44:04 0    303.04 0.02 cnt 93 ti 13:44:04 0    303.04
13:44:04 0    303.07 0.03 cnt 93 ti 13:44:04 0    303.07
$***out            20081031 13:43:17
13:43:17 0    302.77 0.02 cnt 93 ti 13:43:17 0    302.77
13:43:17 0    302.79 0.02 cnt 93 ti 13:43:17 0    302.79
13:43:17 0    302.82 0.03 cnt 93 ti 13:43:17 0    302.82
13:43:17 0    302.84 0.02 cnt 93 ti 13:43:17 0    302.84
13:43:17 0    302.86 0.02 cnt 93 ti 13:43:17 0    302.86
$***out            20081031 13:41:07
13:41:08 0    300.62 0.12 cnt 93 ti 13:41:08 0    300.62
13:41:08 0    300.88 0.26 cnt 93 ti 13:41:08 0    300.88
13:41:09 0    301.31 0.43 cnt 93 ti 13:41:09 0    301.31
13:41:09 0    301.89 0.58 cnt 93 ti 13:41:09 0    301.89
13:41:10 0    302.65 0.76 cnt 93 ti 13:41:10 0    302.65
$***out            20081031 13:41:01
13:41:01 0    300.31 0.02 cnt 93 ti 13:41:01 0    300.31
13:41:01 0    300.34 0.03 cnt 93 ti 13:41:01 0    300.34
13:41:01 0    300.36 0.02 cnt 93 ti 13:41:01 0    300.36
13:41:01 0    300.39 0.03 cnt 93 ti 13:41:01 0    300.39
13:41:01 0    300.41 0.02 cnt 93 ti 13:41:01 0    300.41
$***out            20081031 13:40:49
13:40:49 0    300.10 0.02 cnt 93 ti 13:40:49 0    300.10
13:40:49 0    300.12 0.02 cnt 93 ti 13:40:49 0    300.12
13:40:49 0    300.15 0.03 cnt 93 ti 13:40:49 0    300.15
13:40:49 0    300.17 0.02 cnt 93 ti 13:40:49 0    300.17
13:40:49 0    300.20 0.03 cnt 93 ti 13:40:49 0    300.20
$***out            20081031 13:40:33
13:40:34 0    297.94 0.11 cnt 93 ti 13:40:34 0    297.94
13:40:34 0    298.21 0.27 cnt 93 ti 13:40:34 0    298.21
13:40:34 0    298.64 0.43 cnt 93 ti 13:40:34 0    298.64
13:40:35 0    299.22 0.58 cnt 93 ti 13:40:35 0    299.22
13:40:36 0    299.98 0.76 cnt 93 ti 13:40:36 0    299.98
$***out            20081031 13:40:19
13:40:19 0    297.64 0.02 cnt 93 ti 13:40:19 0    297.64
13:40:19 0    297.66 0.02 cnt 93 ti 13:40:19 0    297.66
13:40:19 0    297.69 0.03 cnt 93 ti 13:40:19 0    297.69
13:40:19 0    297.71 0.02 cnt 93 ti 13:40:19 0    297.71
13:40:19 0    297.73 0.02 cnt 93 ti 13:40:19 0    297.73
$***out            20081031 13:38:12
13:38:12 0    295.29 0.04 cnt 93 ti 13:38:12 0    295.29
13:38:12 0    295.31 0.02 cnt 93 ti 13:38:12 0    295.31
13:38:12 0    295.33 0.02 cnt 93 ti 13:38:12 0    295.33
13:38:12 0    295.36 0.03 cnt 93 ti 13:38:12 0    295.36
13:38:12 0    295.38 0.02 cnt 93 ti 13:38:12 0    295.38
$***out            20081031 13:37:13
13:37:13 0    295.08 0.02 cnt 0 ti 13:37:13 0    295.08
13:37:13 0    295.10 0.02 cnt 0 ti 13:37:13 0    295.10
13:37:13 0    295.12 0.02 cnt 0 ti 13:37:13 0    295.12
13:37:13 0    295.14 0.02 cnt 0 ti 13:37:13 0    295.14
13:37:13 0    295.17 0.03 cnt 0 ti 13:37:13 0    295.17
$***out            20081031 13:36:04
13:36:04 0    294.81 0.04 cnt 0 ti 13:36:04 0    294.81
13:36:04 0    294.82 0.01 cnt 0 ti 13:36:04 0    294.82
13:36:04 0    294.84 0.02 cnt 0 ti 13:36:04 0    294.84
13:36:04 0    294.86 0.02 cnt 0 ti 13:36:04 0    294.86
13:36:04 0    294.88 0.02 cnt 0 ti 13:36:04 0    294.88
$***out            20081031 12:44:34
12:44:35 0    246.49 0.12 cnt 93 ti 12:44:35 0    246.49
12:44:35 0    246.74 0.25 cnt 93 ti 12:44:35 0    246.74
12:44:36 0    247.13 0.39 cnt 93 ti 12:44:36 0    247.13
12:44:36 0    247.67 0.54 cnt 93 ti 12:44:36 0    247.67
12:44:37 0    248.36 0.69 cnt 93 ti 12:44:37 0    248.36
$***out            20081031 11:40:23
11:40:23 0    188.89 0.14 cnt 0 ti 11:40:23 0    188.89
11:40:24 0    189.18 0.29 cnt 0 ti 11:40:24 0    189.18
11:40:24 0    189.61 0.43 cnt 0 ti 11:40:24 0    189.61
11:40:25 0    190.19 0.58 cnt 0 ti 11:40:25 0    190.19
11:40:26 0    190.97 0.78 cnt 0 ti 11:40:26 0    190.97
11:40:28 0    191.90 0.93 cnt 0 ti 11:40:28 0    191.90
11:40:29 0    193.04 1.14 cnt 0 ti 11:40:29 0    193.04
11:40:32 0    194.42 1.38 cnt 0 ti 11:40:32 0    194.42
11:40:34 0    196.02 1.60 cnt 0 ti 11:40:34 0    196.02
11:40:37 0    198.00 1.98 cnt 0 ti 11:40:37 0    198.00
$***out            20081031 11:39:43
$***out            20081031 11:39:25
$***out            20081031 11:39:11
$***out            20081031 11:38:02
11:38:02 0    188.08 0.04 cnt 0 ti 11:38:02 0    188.08
11:38:02 0    188.10 0.02 cnt 0 ti 11:38:02 0    188.10
11:38:02 0    188.11 0.01 cnt 0 ti 11:38:02 0    188.11
11:38:02 0    188.13 0.02 cnt 0 ti 11:38:02 0    188.13
11:38:02 0    188.15 0.02 cnt 0 ti 11:38:02 0    188.15
11:38:02 0    188.17 0.02 cnt 0 ti 11:38:02 0    188.17
11:38:02 0    188.19 0.02 cnt 0 ti 11:38:02 0    188.19
11:38:02 0    188.21 0.02 cnt 0 ti 11:38:02 0    188.21
11:38:02 0    188.23 0.02 cnt 0 ti 11:38:02 0    188.23
11:38:02 0    188.25 0.02 cnt 0 ti 11:38:02 0    188.25
$***out            20081031 11:34:46
11:34:46 0    178.86 0.10 cnt 95 ti 11:34:46 0    178.86
11:34:46 0    179.12 0.26 cnt 95 ti 11:34:46 0    179.12
11:34:47 0    179.55 0.43 cnt 95 ti 11:34:47 0    179.55
11:34:49 0    180.18 0.63 cnt 95 ti 11:34:49 0    180.18
11:34:51 0    181.00 0.82 cnt 95 ti 11:34:51 0    181.00
11:34:53 0    181.97 0.97 cnt 95 ti 11:34:53 0    181.97
11:34:55 0    183.12 1.15 cnt 95 ti 11:34:55 0    183.12
11:34:58 0    184.47 1.35 cnt 95 ti 11:34:58 0    184.47
11:35:01 0    186.14 1.67 cnt 95 ti 11:35:01 0    186.14
11:35:04 0    187.92 1.78 cnt 95 ti 11:35:04 0    187.92
$***out            20081031 11:34:02
11:34:03 0    169.56 0.13 cnt 95 ti 11:34:03 0    169.56
11:34:04 0    169.83 0.27 cnt 95 ti 11:34:04 0    169.83
11:34:05 0    170.26 0.43 cnt 95 ti 11:34:05 0    170.26
11:34:06 0    170.85 0.59 cnt 95 ti 11:34:06 0    170.85
11:34:08 0    171.64 0.79 cnt 95 ti 11:34:08 0    171.64
11:34:10 0    172.62 0.98 cnt 95 ti 11:34:10 0    172.62
11:34:13 0    173.89 1.27 cnt 95 ti 11:34:13 0    173.89
11:34:16 0    175.30 1.41 cnt 95 ti 11:34:16 0    175.30
11:34:18 0    176.85 1.55 cnt 95 ti 11:34:18 0    176.85
11:34:21 0    178.58 1.73 cnt 95 ti 11:34:21 0    178.58
$***out            20081017 11:46:32
11:46:34 0    190.21 0.14 cnt 96 ti 11:46:34 0    190.21
11:46:35 0    190.48 0.27 cnt 96 ti 11:46:35 0    190.48
11:46:35 0    190.90 0.42 cnt 96 ti 11:46:35 0    190.90
11:46:36 0    191.52 0.62 cnt 96 ti 11:46:36 0    191.52
11:46:38 0    192.29 0.77 cnt 96 ti 11:46:38 0    192.29
11:46:39 0    193.23 0.94 cnt 96 ti 11:46:39 0    193.23
11:46:42 0    194.48 1.25 cnt 96 ti 11:46:42 0    194.48
11:46:43 0    195.77 1.29 cnt 96 ti 11:46:43 0    195.77
11:46:46 0    197.40 1.63 cnt 96 ti 11:46:46 0    197.40
11:46:49 0    199.12 1.72 cnt 96 ti 11:46:49 0    199.12
$***out            20081017 11:19:01
11:19:02 0    147.86 0.11 cnt 96
11:19:02 0    148.12 0.26 cnt 96
11:19:03 0    148.54 0.42 cnt 96
11:19:03 0    149.12 0.58 cnt 96
11:19:04 0    149.86 0.74 cnt 96
11:19:05 0    150.74 0.88 cnt 96
11:19:06 0    151.78 1.04 cnt 96
11:19:08 0    153.03 1.25 cnt 96
11:19:10 0    154.48 1.45 cnt 96
11:19:12 0    156.07 1.59 cnt 96
$***out            20081017 11:17:40
11:17:40 0    139.35 0.12 cnt 2304 sum 2304
11:17:40 0    139.62 0.27 cnt 2304 sum 2304
11:17:41 0    140.05 0.43 cnt 2304 sum 2304
11:17:42 0    140.62 0.57 cnt 2304 sum 2304
11:17:43 0    141.36 0.74 cnt 2304 sum 2304
11:17:44 0    142.27 0.91 cnt 2304 sum 2304
11:17:45 0    143.36 1.09 cnt 2304 sum 2304
11:17:47 0    144.61 1.25 cnt 2304 sum 2304
11:17:49 0    146.03 1.42 cnt 2304 sum 2304
11:17:51 0    147.64 1.61 cnt 2304 sum 2304
$***out            20081017 11:13:42
11:13:43 0    130.56 0.11 cnt 96 sum 2304
11:13:43 0    130.82 0.26 cnt 96 sum 2304
11:13:43 0    131.23 0.41 cnt 96 sum 2304
11:13:44 0    131.79 0.56 cnt 96 sum 2304
11:13:45 0    132.52 0.73 cnt 96 sum 2304
11:13:46 0    133.40 0.88 cnt 96 sum 2304
11:13:48 0    134.45 1.05 cnt 96 sum 2304
11:13:49 0    135.67 1.22 cnt 96 sum 2304
11:13:52 0    137.21 1.54 cnt 96 sum 2304
11:13:55 0    139.12 1.91 cnt 96 sum 2304
$***out            20081017 11:13:23
$***out            20081017 10:59:39
10:59:39 0    121.01 0.11 cnt 96
10:59:39 0    121.05 0.04 cnt 79399
10:59:40 0    121.32 0.27 cnt 96
10:59:40 0    121.37 0.05 cnt 79399
10:59:40 0    121.78 0.41 cnt 96
10:59:40 0    121.83 0.05 cnt 79399
10:59:41 0    122.41 0.58 cnt 96
10:59:41 0    122.45 0.04 cnt 79399
10:59:42 0    123.20 0.75 cnt 96
10:59:42 0    123.26 0.06 cnt 79399
10:59:43 0    124.15 0.89 cnt 96
10:59:44 0    124.20 0.05 cnt 79399
10:59:45 0    125.28 1.08 cnt 96
10:59:45 0    125.32 0.04 cnt 79399
10:59:47 0    126.59 1.27 cnt 96
10:59:47 0    126.63 0.04 cnt 79399
10:59:49 0    128.07 1.44 cnt 96
10:59:49 0    128.12 0.05 cnt 79399
10:59:52 0    129.93 1.81 cnt 96
10:59:52 0    129.98 0.05 cnt 79399
$***out            20081017 10:59:16
$***out            20081017 10:56:15
10:56:15 0    111.59 0.11 cnt 96
10:56:16 0    111.86 0.27 cnt 96
10:56:16 0    112.28 0.42 cnt 96
10:56:17 0    112.86 0.58 cnt 96
10:56:18 0    113.60 0.74 cnt 96
10:56:19 0    114.50 0.90 cnt 96
10:56:21 0    115.56 1.06 cnt 96
10:56:23 0    116.85 1.29 cnt 96
10:56:25 0    118.30 1.45 cnt 96
10:56:30 0    120.59 2.29 cnt 96
$***out            20081017 10:55:54
$***out            20081017 10:54:37
10:54:38 0    102.48 0.10 cnt 96
10:54:38 0    102.76 0.28 cnt 97
10:54:39 0    103.19 0.43 cnt 98
10:54:40 0    103.79 0.60 cnt 99
10:54:41 0    104.58 0.79 cnt 100
10:54:43 0    105.50 0.92 cnt 101
10:54:44 0    106.63 1.13 cnt 102
10:54:46 0    107.87 1.24 cnt 103
10:54:48 0    109.32 1.45 cnt 104
10:54:51 0    111.14 1.82 cnt 105
$***out            20081017 10:53:57
10:53:57 0     93.92 0.11 cnt 96
10:53:57 0     94.19 0.27 cnt 96
10:53:58 0     94.60 0.41 cnt 96
10:53:59 0     95.17 0.57 cnt 96
10:54:00 0     95.90 0.73 cnt 96
10:54:01 0     96.80 0.90 cnt 96
10:54:02 0     97.84 1.04 cnt 96
10:54:04 0     99.09 1.25 cnt 96
10:54:06 0    100.57 1.48 cnt 96
10:54:08 0    102.22 1.65 cnt 96
$***out            20081017 10:53:19
$***out            20081017 10:50:53
10:50:54 0     84.51 0.13 cnt 86015
10:50:54 0     84.78 0.27 cnt 498626
10:50:55 0     85.20 0.42 cnt 866330
10:50:57 0     85.87 0.67 cnt 503144
10:50:59 0     86.72 0.85 cnt 347676
10:51:01 0     87.72 1.00 cnt 352583
10:51:03 0     88.85 1.13 cnt 508860
10:51:04 0     90.08 1.23 cnt 240231
10:51:06 0     91.47 1.39 cnt 728660
10:51:10 0     93.48 2.01 cnt 406200
$***out            20081017 10:50:01
$***out            20081017 10:46:46
10:46:48 0     81.10 0.14 cnt 96
10:46:48 0     81.36 0.26 cnt 96
10:46:48 0     81.38 0.02 cnt 85957
10:46:48 0     81.79 0.41 cnt 96
10:46:48 0     81.80 0.01 cnt 85957
10:46:49 0     82.39 0.59 cnt 96
10:46:49 0     82.41 0.02 cnt 85957
10:46:50 0     83.13 0.72 cnt 96
10:46:50 0     83.14 0.01 cnt 85957
10:46:51 0     84.05 0.91 cnt 96
$***out            20081017 10:19:47
10:19:48 0     58.03 0.11 cnt 96
10:19:48 0     58.30 0.27 cnt 96
10:19:49 0     58.72 0.42 cnt 96
10:19:49 0     59.27 0.55 cnt 96
10:19:50 0     60.00 0.73 cnt 96
10:19:52 0     60.91 0.91 cnt 96
10:19:53 0     61.99 1.08 cnt 96
10:19:55 0     63.24 1.25 cnt 96
10:19:57 0     64.67 1.43 cnt 96
10:19:59 0     66.40 1.73 cnt 96
10:20:03 0     68.50 2.10 cnt 96
10:20:06 0     70.71 2.21 cnt 96
10:20:12 0     73.59 2.88 cnt 96
10:20:16 0     76.72 3.13 cnt 96
10:20:24 0     80.74 4.02 cnt 96
$***out            20081017 10:19:33
$***out            20081017 10:09:48
10:09:49 0     55.19 0.11 cnt 96
10:09:49 0     55.29 0.10 cnt 96
10:09:49 0     55.40 0.11 cnt 96
10:09:49 0     55.51 0.11 cnt 96
10:09:49 0     55.61 0.10 cnt 96
10:09:49 0     55.72 0.11 cnt 96
10:09:50 0     55.83 0.11 cnt 96
10:09:50 0     55.93 0.10 cnt 96
10:09:50 0     56.04 0.11 cnt 96
10:09:50 0     56.14 0.10 cnt 96
10:09:50 0     56.25 0.11 cnt 96
10:09:50 0     56.35 0.10 cnt 96
10:09:50 0     56.46 0.11 cnt 96
10:09:51 0     56.56 0.10 cnt 96
10:09:51 0     56.67 0.11 cnt 96
10:09:51 0     56.77 0.10 cnt 96
10:09:51 0     56.88 0.11 cnt 96
10:09:51 0     57.00 0.12 cnt 96
10:09:52 0     57.11 0.11 cnt 96
10:09:52 0     57.22 0.11 cnt 96
$***out            20081017 10:09:15
10:09:16 0     54.92 0.11 cnt 96
$***out            20081017 10:07:31
10:07:31 0      9.25 0.11 cnt 96
10:07:32 0      9.51 0.26 cnt 96
10:07:32 0      9.94 0.43 cnt 96
10:07:33 0     10.52 0.58 cnt 96
10:07:34 0     11.27 0.75 cnt 96
10:07:35 0     12.17 0.90 cnt 96
10:07:37 0     13.25 1.08 cnt 96
10:07:39 0     14.57 1.32 cnt 96
10:07:40 0     16.05 1.48 cnt 96
10:07:42 0     17.67 1.62 cnt 96
10:07:45 0     19.52 1.85 cnt 96
10:07:47 0     21.64 2.12 cnt 96
10:07:50 0     24.06 2.42 cnt 96
10:07:54 0     26.79 2.73 cnt 96
10:07:58 0     30.01 3.22 cnt 96
10:08:02 0     33.22 3.21 cnt 96
10:08:06 0     36.77 3.55 cnt 96
10:08:16 0     42.29 5.52 cnt 96
10:08:25 0     48.09 5.80 cnt 96
10:08:34 0     54.65 6.56 cnt 96
$***out            20081017 10:06:53
10:06:53 0      7.04 0.10 cnt 96
10:06:53 0      7.30 0.26 cnt 96
10:06:54 0      7.71 0.41 cnt 96
10:06:54 0      8.28 0.57 cnt 96
10:06:55 0      9.01 0.73 cnt 96
$***out            20081017 10:06:11
$***out            20081017 10:05:43
$***out            20081017 10:05:29
$***out            20081017 10:02:18
10:02:19 0      4.11 96
10:02:19 0      4.37 96
10:02:19 0      4.78 96
10:02:20 0      5.35 96
10:02:21 0      6.09 96
$***out            20081017 10:01:16
10:01:16 0      3.86 96
$***out            20081017 10:00:04
10:00:05 0      3.62 96
$***out            20081017 09:57:29
$***out            20081017 09:50:02
09:50:02 0      3.00
09:50:02 0      3.00 96
$***out            20081017 09:49:00
09:49:01 0      2.76
09:49:01 0      2.76 96
$***out            20081017 09:39:59
M.LINE
$***out            20081017 09:39:44
96
$***out            20081017 09:39:31
$***out            20081017 09:28:08
96
$***out            20081017 09:27:25
M.LINE
$***out            20081017 09:26:29
$***out            20081017 09:26:24
$***out            20081017 09:25:42
$***out            20081017 09:25:04
$***out
}¢--- A540769.WK.SQL(KE49L8) cre=2008-11-06 mod=2008-11-06-09.30.55 F540769 ----
call sqlConnect dbtf
$;
$<<eof
 SELECT COUNT(distinct V833.PARTNER_KEY ), current timestamp
  FROM OA1T.VKS833A1V V833
     , OA1T.VKS835A1V V835
 WHERE V833.CONTRACT_COLL like '07%'
   AND V833.PARTNER_TYPE  = 3
   AND CURRENT DATE BETWEEN V833.VALID_FROM_DATE
   AND                      V833.VALID_TO_DATE
   AND V833.CONTRACT_KEY  = V835.CONTRACT_KEY
   AND V833.PARTNER_KEY   = V835.PARTNER_KEY
   AND CURRENT DATE BETWEEN V835.VALID_FROM_DATE
   AND                      V835.VALID_TO_DATE
   AND posstr(
                       left(V835.PRODUCT_ID || space(33), 35)
                    || ' 0142 0152 0153 0167 0168 0169 0179'
                    || space(187),
              ' ' || '0167'                            ) > 0
with ur
eof  $=sql£envCatStr(' ', 'sb')
$;
$=tbs=select count(distinct name) cnt from sysibm.systables
call sqlPrepare 1, $sql
la = timing()
do x=1 to 5
    call sqlOpAllCl 1, st, ':cnt, :ti'
    ti = timing()
    $£ ti (word(ti, 3) - word(la, 3)) 'cnt' cnt  'ti' ti
    la  = ti
    if 0 then
        call sqlCommit
    if 0 then
        call sqlPrepare 1, $sql
    if 0 then
        if x // 2 = 0 then
            call sqlPrepare 1, $sql
        else
            call sqlPrepare 1, $tbs
    end
$*(
eof  call sqlLn 1
$¨ $@{ $@for v $@{ $£ timing() strip($v)
               $}
   $}
$;
$*)
call sqlDisConnect
$***out            20081106 08:47:18
08:47:18 0      4.68 0.10 cnt 658 ti 08:47:18 0      4.68
08:47:19 0      4.77 0.09 cnt 658 ti 08:47:19 0      4.77
08:47:19 0      4.87 0.10 cnt 658 ti 08:47:19 0      4.87
08:47:19 0      4.96 0.09 cnt 658 ti 08:47:19 0      4.96
08:47:19 0      5.05 0.09 cnt 658 ti 08:47:19 0      5.05
$***out            20081106 08:47:04
08:47:04 0      4.12 0.09 cnt 658 ti 08:47:04 0      4.12
08:47:05 0      4.21 0.09 cnt 658 ti 08:47:05 0      4.21
08:47:05 0      4.30 0.09 cnt 658 ti 08:47:05 0      4.30
08:47:05 0      4.39 0.09 cnt 658 ti 08:47:05 0      4.39
08:47:05 0      4.49 0.10 cnt 658 ti 08:47:05 0      4.49
$***out            20081106 08:46:32
08:46:32 0      3.93 0.01 cnt 0 ti 08:46:32 0      3.93
08:46:32 0      3.93 0 cnt 0 ti 08:46:32 0      3.93
08:46:32 0      3.93 0 cnt 0 ti 08:46:32 0      3.93
08:46:32 0      3.93 0 cnt 0 ti 08:46:32 0      3.93
08:46:32 0      3.93 0 cnt 0 ti 08:46:32 0      3.93
$***out            20081106 08:46:11
$***out            20081106 08:46:08
$***out            20081106 08:41:50
08:41:50 0      6.87 0.02 cnt 93 ti 08:41:50 0      6.87
08:41:50 0      6.90 0.03 cnt 93 ti 08:41:50 0      6.90
08:41:50 0      6.93 0.03 cnt 93 ti 08:41:50 0      6.93
08:41:50 0      6.95 0.02 cnt 93 ti 08:41:50 0      6.95
08:41:50 0      6.98 0.03 cnt 93 ti 08:41:50 0      6.98
$***out            20081106 08:41:24
08:41:26 0      4.31 0.17 cnt 93 ti 08:41:26 0      4.31
08:41:27 0      4.61 0.30 cnt 93 ti 08:41:27 0      4.61
08:41:29 0      5.09 0.48 cnt 93 ti 08:41:29 0      5.09
08:41:38 0      5.96 0.87 cnt 93 ti 08:41:38 0      5.96
08:41:39 0      6.75 0.79 cnt 93 ti 08:41:39 0      6.75
$***out            20081106 08:40:40
$***out            20081106 08:40:15
}¢--- A540769.WK.SQL(KE5480A) cre=2008-11-13 mod=2008-11-13-18.21.54 F540769 ---
set current sqlId = 'A540769';
declare global temporary table
    tab (tab_text3 char(4) not null, tab_code char(20)  not null,
         tab_type2 integer not null, tab_type1 integer not null)
  ;
--create unique index session.tab
--     on session.tab (tab_code asc, tab_type2 asc, tab_type1 asc,
--                     tab_text3 asc)
--;
insert into session.tab
(
select V843.TAB_TEXT3, V843.TAB_CODE, V843.TAB_TYPE2, V843B.TAB_TYPE1
 from oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B
 where                                                 V843.TAB_ART =
'PRODU3T_ID' AND
                    V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3
)
;
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, tab.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , session.tab tab,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3  and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID
             AND tab.TAB_CODE = V835.PRODUCT_ID AND tab.TAB_TYPE2 =
V858.IDENT_TYPE
                                 AND V859.APPLICATION_TYPE =
tab.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
 )
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
tab.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
}¢--- A540769.WK.SQL(KE5480B) cre=2008-11-14 mod=2008-11-18-12.09.24 F540769 ---
delete   from A540769.plan_table
;
declare global temporary table
    tab (tab_text3 char(4) not null, tab_code char(20)  not null,
         tab_type2 integer not null, tab_type1 integer not null)
  ;
--create unique index session.tab
--     on session.tab (tab_code asc, tab_type2 asc, tab_type1 asc,
--                     tab_text3 asc)
--;
explain plan        set queryno =  55 for
insert into session.tab
(
select V843.TAB_TEXT3, V843.TAB_CODE, V843.TAB_TYPE2, V843B.TAB_TYPE1
 from oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B
 where                                                 V843.TAB_ART =
'PRODUCT_ID' AND
                    V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3
)
;
explain plan        set queryno =  99 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, tab.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , session.tab tab,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3  and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID
             AND tab.TAB_CODE = V835.PRODUCT_ID AND tab.TAB_TYPE2 =
V858.IDENT_TYPE
                                 AND V859.APPLICATION_TYPE =
tab.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > ?
    or V835.LAST_UPDATE_TIME > ?
    OR V858.VALID_TO_DATE BETWEEN ? AND ?
    or V859.VALID_TO_DATE BETWEEN ? AND ?
    OR V859.VALID_FROM_DATE >= ?
 )
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
tab.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan        set queryno = 111 for
with u as
(
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3,
    V833.LAST_UPDATE_TIME v833last,
    V835.LAST_UPDATE_TIME v835Last,
V858.VALID_TO_DATE v858validTo,
V859.VALID_From_DATE v859validFrom,
V859.VALID_TO_DATE v859validTo, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3  and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
)
select           * from u where V833LAST > ?
union all select * from u where V835LAST > ?
union all select * from u where V858VALIDTO BETWEEN ? AND ?
union all select * from u where V859VALIDTO BETWEEN ? AND ?
                             or V859VALIDFrom >= ?
ORDER BY PARTNER_KEY, PARTNER_ID, IDENT_ID,
     TAB_TEXT3,      APPLICATION_TYPE, V858VALIDTO,
V859VALIDTO      WITH UR
;
explain plan        set queryno = 222 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3  and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > ?
    or V835.LAST_UPDATE_TIME > ?
    OR V858.VALID_TO_DATE BETWEEN ? AND ?
    or V859.VALID_TO_DATE BETWEEN ? AND ?
    OR V859.VALID_FROM_DATE >= ?
 )
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan        set queryno = 333 for
with a as
(
                                      SELECT DISTINCT V833.PARTNER_KEY
    ,V833.PARTNER_TYPE, V833.CONTRACT_KEY, V833.LAST_UPDATE_TIME
     ,V835.PRODUCT_ID, V835.LAST_UPDATE_TIME V835LAST
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
)
                                      SELECT DISTINCT a.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
   a
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE
      V831.PARTNER_KEY = a.PARTNER_KEY
   AND V858.PARTNER_KEY =
   a.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = a.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  a.LAST_UPDATE_TIME > ?
    or a.V835LAST  > ?
    OR V858.VALID_TO_DATE BETWEEN ? AND ?
    or V859.VALID_TO_DATE BETWEEN ? AND ?
    OR V859.VALID_FROM_DATE >= ?
 )
ORDER BY a.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
select * from plan_view5a
--  where queryno in ( 149, 222)
--  order by applname, progname, queryNo, qblockno, planno
    with ur
;
rollback
;
x
select min(partner_key), max(partner_key)
    from oa1p.VKS833A1V
    with ur
;
x
}¢--- A540769.WK.SQL(KE5480C) cre=2008-11-18 mod=2008-11-18-10.16.56 F540769 ---
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan        set queryno = 300 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
    )
;
select index, v.* from plan_view5a v
    order by             applname, progname, queryNo, timestamp ,
        qblockno, planno
;
rollback
;
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
    )
;
}¢--- A540769.WK.SQL(KE54805) cre=2008-11-11 mod=2008-11-18-10.03.03 F540769 ---
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan        set queryno = 111 for
                                      SELECT DISTINCT V833.PARTNER_KEY
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND (  V833.LAST_UPDATE_TIME > ?
    or V835.LAST_UPDATE_TIME > ?
 )
ORDER BY V833.PARTNER_KEY
                   WITH UR
;
explain plan        set queryno = 200 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY       >= ? AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3  and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > ?
    or V835.LAST_UPDATE_TIME > ?
    OR V858.VALID_TO_DATE BETWEEN ? AND ?
    or V859.VALID_TO_DATE BETWEEN ? AND ?
    OR V859.VALID_FROM_DATE >= ?
 )
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan        set queryno = 290 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY || '' >= ? AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3  and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > ?
    or V835.LAST_UPDATE_TIME > ?
    OR V858.VALID_TO_DATE BETWEEN ? AND ?
    or V859.VALID_TO_DATE BETWEEN ? AND ?
    OR V859.VALID_FROM_DATE >= ?
 )
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan        set queryno = 295 for
with a as
(
                                      SELECT DISTINCT V833.PARTNER_KEY
    ,V833.PARTNER_TYPE, V833.CONTRACT_KEY, V833.LAST_UPDATE_TIME
     ,V835.PRODUCT_ID, V835.LAST_UPDATE_TIME V835LAST
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
)
                                      SELECT DISTINCT a.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
   a
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE
      V831.PARTNER_KEY = a.PARTNER_KEY
   AND V858.PARTNER_KEY =
   a.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = a.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  a.LAST_UPDATE_TIME > ?
    or a.V835LAST  > ?
    OR V858.VALID_TO_DATE BETWEEN ? AND ?
    or V859.VALID_TO_DATE BETWEEN ? AND ?
    OR V859.VALID_FROM_DATE >= ?
 )
ORDER BY a.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan        set queryno = 300 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
    )
;
explain plan        set queryno = 304 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= 'a' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
    )
;
explain plan        set queryno = 308 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= 'A' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
    )
;
explain plan        set queryno = 310 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= '0' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
    )
;
explain plan        set queryno = 315 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= '5' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
    )
;
explain plan        set queryno = 319 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= '9' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
    )
;
select * from plan_view5a
--  where queryno in ( 149, 222)
--  order by applname, progname, queryNo, qblockno, planno
union select * from cmnbatch.plan_view5a
    where progName = 'KE5480'
      -- and version = '2008-08-07-18.52.54.033048'
      -- and collid  = 'HP3'
         and (
         bind_time = '2008-08-07-18.52.54.033048'
                  and queryno = 1613
         or bind_time =    '2008-11-15-00.48.01.023700'
                  and queryno = 531
             )
    order by             applname, progname, queryNo, timestamp ,
        qblockno, planno
;
rollback
;
x
 select left(V858.PARTNER_KEY, 1), count(*)
     from oa1p.VKS858A1V V858
     group by left(V858.PARTNER_KEY, 1)
     order by 1
     with ur
;
x
}¢--- A540769.WK.SQL(KE54806) cre=2008-11-11 mod=2008-11-11-16.48.59 F540769 ---
with a as
(
                                      SELECT DISTINCT V833.PARTNER_KEY
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
 )
 )
select count(*) from a
    with ur
}¢--- A540769.WK.SQL(KE54807) cre=2008-11-11 mod=2008-11-11-16.54.37 F540769 ---
with a as
(
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE aa,
V859.VALID_TO_DATE bb, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > current timestamp - 7 days
    or V835.LAST_UPDATE_TIME > current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN  current date  - 7 days
                  and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN  current date - 7 days
                  and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
 )
)
select count(*)
    from a
    with ur
}¢--- A540769.WK.SQL(KE54808) cre=2008-11-11 mod=2008-11-18-12.57.50 F540769 ---
with a as
(
                                      SELECT DISTINCT V833.PARTNER_KEY
    ,V833.PARTNER_TYPE, V833.CONTRACT_KEY, V833.LAST_UPDATE_TIME
     ,V835.PRODUCT_ID, V835.LAST_UPDATE_TIME V835LAST
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ' ' AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
)
SELECT DISTINCT a.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE v859valid, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
   a
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE

      V831.PARTNER_KEY = a.PARTNER_KEY
   AND V858.PARTNER_KEY =
   a.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = a.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  a.LAST_UPDATE_TIME > current timestamp - 7 days
    or a.V835LAST  >        current timestamp - 7 days
    OR V858.VALID_TO_DATE BETWEEN current date - 7 days
                              and current date + 7 days
    or V859.VALID_TO_DATE BETWEEN current date - 7 days
                              and current date + 7 days
    OR V859.VALID_FROM_DATE >= current date - 7 days
 )
                   WITH UR
}¢--- A540769.WK.SQL(KE54809) cre=2008-11-13 mod=2008-11-13-18.01.35 F540769 ---
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
declare global temporary table
    tab (tab_text3 char(4) not null, tab_code char(20)  not null,
         tab_type2 integer not null, tab_type1 integer not null)
  ;
--create unique index session.tab
--     on session.tab (tab_code asc, tab_type2 asc, tab_type1 asc,
--                     tab_text3 asc)
--;
explain plan        set queryno =  55 for
insert into session.tab
(
select V843.TAB_TEXT3, V843.TAB_CODE, V843.TAB_TYPE2, V843B.TAB_TYPE1
 from oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B
 where                                                 V843.TAB_ART =
'PRODUCT_ID' AND
                    V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3
)
;
explain plan        set queryno =  99 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, tab.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , session.tab tab,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3  and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID
             AND tab.TAB_CODE = V835.PRODUCT_ID AND tab.TAB_TYPE2 =
V858.IDENT_TYPE
                                 AND V859.APPLICATION_TYPE =
tab.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > ?
    or V835.LAST_UPDATE_TIME > ?
    OR V858.VALID_TO_DATE BETWEEN ? AND ?
    or V859.VALID_TO_DATE BETWEEN ? AND ?
    OR V859.VALID_FROM_DATE >= ?
 )
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
tab.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan        set queryno = 111 for
with u as
(
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3,
    V833.LAST_UPDATE_TIME v833last,
    V835.LAST_UPDATE_TIME v835Last,
V858.VALID_TO_DATE v858validTo,
V859.VALID_From_DATE v859validFrom,
V859.VALID_TO_DATE v859validTo, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3  and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
)
select           * from u where V833LAST > ?
union all select * from u where V835LAST > ?
union all select * from u where V858VALIDTO BETWEEN ? AND ?
union all select * from u where V859VALIDTO BETWEEN ? AND ?
                             or V859VALIDFrom >= ?
ORDER BY PARTNER_KEY, PARTNER_ID, IDENT_ID,
     TAB_TEXT3,      APPLICATION_TYPE, V858VALIDTO,
V859VALIDTO      WITH UR
;
explain plan        set queryno = 222 for
                                      SELECT DISTINCT V833.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
  AND V831.PARTNER_KEY = V833.PARTNER_KEY AND
V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3  and
V835.CONTRACT_KEY = V833.CONTRACT_KEY
   AND V858.PARTNER_KEY =
V833.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = V835.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  V833.LAST_UPDATE_TIME > ?
    or V835.LAST_UPDATE_TIME > ?
    OR V858.VALID_TO_DATE BETWEEN ? AND ?
    or V859.VALID_TO_DATE BETWEEN ? AND ?
    OR V859.VALID_FROM_DATE >= ?
 )
ORDER BY V833.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
explain plan        set queryno = 333 for
with a as
(
                                      SELECT DISTINCT V833.PARTNER_KEY
    ,V833.PARTNER_TYPE, V833.CONTRACT_KEY, V833.LAST_UPDATE_TIME
     ,V835.PRODUCT_ID, V835.LAST_UPDATE_TIME V835LAST
FROM
oa1p.VKS833A1V V833, oa1p.VKS835A1V V835
WHERE V833.PARTNER_KEY >= ? AND
V833.PARTNER_TYPE = 3
and V835.PARTNER_KEY = V833.PARTNER_KEY AND V835.PARTNER_TYPE = 3 AND
V835.CONTRACT_KEY = V833.CONTRACT_KEY
)
                                      SELECT DISTINCT a.PARTNER_KEY,
V831.PARTNER_ID, V858.IDENT_ID, V843.TAB_TEXT3, V858.VALID_TO_DATE,
V859.VALID_TO_DATE, V859.APPLICATION_TYPE
FROM oa1p.VKS831A1V V831,
   a
 , oa1p.VKS843A1V V843, oa1p.VKS843A1V V843B,
   oa1p.VKS858A1V V858, oa1p.VKS859A1V V859
WHERE
      V831.PARTNER_KEY = a.PARTNER_KEY
   AND V858.PARTNER_KEY =
   a.PARTNER_KEY AND V859.IDENT_ID = V858.IDENT_ID AND V843.TAB_ART =
'PRODUCT_ID' AND V843.TAB_CODE = a.PRODUCT_ID AND V843.TAB_TYPE2 =
V858.IDENT_TYPE AND V843B.TAB_ART = 'APPLICATION_IDENT' AND
V843B.TAB_TEXT3 = V843.TAB_TEXT3 AND V859.APPLICATION_TYPE =
V843B.TAB_TYPE1
AND (  a.LAST_UPDATE_TIME > ?
    or a.V835LAST  > ?
    OR V858.VALID_TO_DATE BETWEEN ? AND ?
    or V859.VALID_TO_DATE BETWEEN ? AND ?
    OR V859.VALID_FROM_DATE >= ?
 )
ORDER BY a.PARTNER_KEY, V831.PARTNER_ID, V858.IDENT_ID,
V843.TAB_TEXT3, V859.APPLICATION_TYPE, V858.VALID_TO_DATE,
V859.VALID_TO_DATE WITH UR
;
select * from plan_view5a
--  where queryno in ( 149, 222)
--  order by applname, progname, queryNo, qblockno, planno
union select * from cmnbatch.plan_view5a
    where progName = 'KE5480'
      -- and version = '2008-08-07-18.52.54.033048'
      -- and collid  = 'HP3'
         and bind_time = '2008-08-07-18.52.54.033048'
         and queryno = 1613
    order by             applname, progname, queryNo, timestamp ,
        qblockno, planno
    with ur
;
rollback
;
}¢--- A540769.WK.SQL(KS841) cre=2016-03-18 mod=2016-03-18-11.28.26 A540769 -----
alter tablespace ks09a1p.a841a compress no;
}¢--- A540769.WK.SQL(KUDT) cre=2006-06-16 mod=2006-06-16-18.02.50 F540769 ------
UPDATE   OA1T.TXC102A1
        SET XC102_RUNSTART_TS = '2002-01-01-00.00.00.000000'
     --   , XC102_RECIP_BUID  = ''
;
COMMIT
;
SELECT COUNT(*), MIN(XC102_RUNSTART_TS), MAX(XC102_RUNSTART_TS)
               , SUM(LENGTH(XC102_ACT_CONTENT))
    FROM OA1T.TXC102A1
    FOR UPDATE
;
XOMMIT
;
UPDATE   OA1T.TXC102A1
        SET XC102_RUNSTART_TS = '2006-02-01-06.27.28.123'
;
X
XNSERT INTO OA1T.TXC102A1 SELECT * FROM OA1T.TXC102A1;
COMMIT;
SELECT COUNT(*), MIN(XC102_RUNSTART_TS), MAX(XC102_RUNSTART_TS)
               , SUM(LENGTH(XC102_ACT_CONTENT))
    FROM OA1T.TXC102A1
    FOR UPDATE
;
;
XX
SELECT *        FROM OA1T.TXC102A1
   FETCH FIRST 20 ROWS ONLY
;
}¢--- A540769.WK.SQL(KUDU) cre=2006-06-14 mod=2006-11-24-09.29.42 F540769 ------
INSERT INTO A540769.TXC102A1 SELECT * FROM A540769.TXC102A1;
ROLLBACK;
X
UPDATE   A540769.TXC102A1
        SET XC102_RUNSTART_TS = '0001-01-01-00.00.00.000000'
          , XC102_RECIP_BUID  = ''
;
COMMIT
;
SELECT COUNT(*), MIN(XC102_RUNSTART_TS), MAX(XC102_RUNSTART_TS)
               , MIN(XC102_RECIP_BUID), MAX(XC102_RECIP_BUID)
               , SUM(LENGTH(XC102_ACT_CONTENT))
    FROM A540769.TXC102A1
    FOR UPDATE
;
X
COMMIT
UPDATE   A540769.TXC102A1
        SET XC102_RUNSTART_TS = '0001-01-01-00.00.00.000000'
          , XC102_RECIP_BUID  = 'WA5'
;
;
X
SELECT COUNT(*), MIN(XC102_RUNSTART_TS), MAX(XC102_RUNSTART_TS)
               , SUM(LENGTH(XC102_ACT_CONTENT))
    FROM A540769.TXC102A1
    FOR UPDATE
;
;
XX
SELECT *        FROM OA1T.TXC102A1
   FETCH FIRST 20 ROWS ONLY
;
}¢--- A540769.WK.SQL(LABYRIN) cre=2011-11-09 mod=2011-11-14-17.18.34 A540769 ---
with labyrinth (lab) as         -- das leere Labyrinth
( select 'X|XXXXXXXXXXXXXXXXX'  -- 1
      || 'X|    X     X  X  X'  -- 2
      || 'X XXX X XXX   XXX X'  -- 3
      || 'X X   X   XXX   X X'  -- 4
      || 'X XXXXXXX   XXX X X'  -- 5
      || 'X   X   X X  X    X'  -- 6
      || 'XXX X XXX XX X XX X'  -- 7
      || 'X     X   X  X    X'  -- 8
      || 'X XXXXX X XXXXXX XX'  -- 9
      || 'X       X         *'  --10
      || 'XXXXXXXXXXXXXXXXXXX'  --11
       -- 123456789 123456789
    from sysibm.sysDummy1
)
, zeilen (Z) as                 -- Anzahl Zeilen
( select 1 from sysibm.sysDummy1
  union all select z+1 from zeilen where z < 11
)
, schritt (delta, chr) as       -- die 4 möglichen Schritte
(           select   1, '>' from sysibm.sysDummy1 -- nach rechts
  union all select  -1, '<' from sysibm.sysDummy1 -- nach links
  union all select  19, '|' from sysibm.sysDummy1 -- nach unten
  union all select -19, 'i' from sysibm.sysDummy1 -- nach oben
)
, suche (lab, pos, sta, len) as -- Suche einen Weg
( select lab, 21, 'ok', 0       -- Start: das leere Labyrinth
    from labyrinth
  union all select              -- Schritt a: probiere alle Schritte
      lab, pos + delta, 'p' || chr, len+1
    from suche, schritt
    where sta = 'ok' and len < 999
  union all select              -- Schritt b: markiere Schritt falls ok
      left(lab, pos-1) || substr(sta, 2) || substr(lab, pos+1) ,
      pos, 'ok', len+1
    from suche
    where sta like 'p%' and substr(lab, pos, 1) = ' '  and len < 999
  union all select              -- Ende: Ziel gefunden?
          lab, pos, 'zi', len+1
     from suche
     where sta like 'p%' and substr(lab, pos, 1) = '*' and len < 999
)
                                -- Zeilen der Labyrinthe anzeigen
select substr(lab, 19 * z - 18, 19) ,len
    from suche, zeilen
    where sta =  'zi'
    order by len, lab, z
}¢--- A540769.WK.SQL(LABYRIN1) cre=2011-11-09 mod=2011-11-14-17.00.20 A540769 ---
                                -- rekursives with
                                --   fuer die Zahlen 1..11
with Zeilen (Z) as
                                -- Start 1
( select 1 from sysibm.sysDummy1
                                -- Schritt z+1
  union all select z+1 from Zeilen where z < 11
)
select * from Zeilen
}¢--- A540769.WK.SQL(LABYRIN2) cre=2011-11-09 mod=2011-11-14-17.00.34 A540769 ---
with labyrinth (lab) as         -- das leere Labyrinth
( select 'X|XXXXXXXXXXXXXXXXX' -- 1
      || 'X|    X     X  X  X' -- 2
      || 'X XXX X XXX   XXX X' -- 3
      || 'X X   X   XXX   X X' -- 4
      || 'X XXXXXXX   XXX X X' -- 5
      || 'X   X   X X  X    X' -- 6
      || 'XXX X XXX XX X XX X' -- 7
      || 'X     X   X  X    X' -- 8
      || 'X XXXXX X XXXXXX XX' -- 9
      || 'X       X         *' --10
      || 'XXXXXXXXXXXXXXXXXXX' --11
       -- 123456789 123456789
    from sysibm.sysDummy1
)
, zeilen (z) as                 -- die ZeilenNummer 1..11
( select 1 from sysibm.sysDummy1
  union all select z+1 from zeilen where z < 11
)
                                -- Zeilen des Labyrinths anzeigen
select substr(lab, 19 * z - 18, 19)
    from labyrinth, zeilen
    order by lab, z
}¢--- A540769.WK.SQL(LABYRIN3) cre=2011-11-09 mod=2011-11-14-17.10.07 A540769 ---
with labyrinth (lab) as         -- das leere Labyrinth
( select 'X|XXXXXXXXXXXXXXXXX'  -- 1
      || 'X|    X     X  X  X'  -- 2
      || 'X XXX X XXX   XXX X'  -- 3
      || 'X X   X   XXX   X X'  -- 4
      || 'X XXXXXXX   XXX X X'  -- 5
      || 'X   X   X X  X    X'  -- 6
      || 'XXX X XXX XX X XX X'  -- 7
      || 'X     X   X  X    X'  -- 8
      || 'X XXXXX X XXXXXX XX'  -- 9
      || 'X       X         *'  --10
      || 'XXXXXXXXXXXXXXXXXXX'  --11
       -- 123456789 123456789
    from sysibm.sysDummy1
)
, zeilen (Z) as                 -- Anzahl Zeilen
( select 1 from sysibm.sysDummy1
  union all select z+1 from zeilen where z < 11
)
, suche (lab, pos, sta) as      -- Suche einen Weg
( select lab, 21, 'ok'          -- Start: das leere Labyrinth
    from labyrinth
                                -- Schritt: probiere nach rechts
  union all select lab, pos + 1, 'pr'
    from suche
    where sta = 'ok'
)                               -- Zeilen der Labyrinthe anzeigen
select substr(lab, 19 * z - 18, 19), sta
    from suche,zeilen
    order by lab, sta, z
}¢--- A540769.WK.SQL(LABYRIN4) cre=2011-11-09 mod=2011-11-14-17.12.08 A540769 ---
with labyrinth (lab) as         -- das leere Labyrinth byrinth
( select 'X|XXXXXXXXXXXXXXXXX'  -- 1
      || 'X|    X     X  X  X'  -- 2
      || 'X XXX X XXX   XXX X'  -- 3
      || 'X X   X   XXX   X X'  -- 4
      || 'X XXXXXXX   XXX X X'  -- 5
      || 'X   X   X X  X    X'  -- 6
      || 'XXX X XXX XX X XX X'  -- 7
      || 'X     X   X  X    X'  -- 8
      || 'X XXXXX X XXXXXX XX'  -- 9
      || 'X       X         *'  --10
      || 'XXXXXXXXXXXXXXXXXXX'  --11
       -- 123456789 123456789
    from sysibm.sysDummy1
)
, zeilen (Z) as                 -- Anzahl Zeilen
( select 1 from sysibm.sysDummy1
  union all select z+1 from zeilen where z < 11
)
, suche (lab, pos, sta, len) as -- Suche einen Weg
( select lab, 21, 'ok', 0       -- Start: das leere Labyrinth
    from labyrinth
                                -- Schritt a: probiere nach rechts
  union all select lab, pos+ 1, 'pr', len+1
     from suche
     where sta = 'ok' and len < 999
  union all select              -- Schritt b: markiere Schritt falls ok
      left(lab, pos-1) || '>' || substr(lab, pos+1) ,
      pos, 'ok', len+1
    from suche
    where sta like 'p%' and substr(lab, pos, 1) = ' '  and len < 999
)
                                -- Zeilen der Labyrinthe anzeigen
select substr(lab, 19 * z - 18, 19), sta, len
    from suche,zeilen
    order by lab, sta, z
}¢--- A540769.WK.SQL(LABYRIN5) cre=2011-11-09 mod=2011-11-14-17.12.22 A540769 ---
with labyrinth (lab) as         -- das leere Labyrinth
( select 'X|XXXXXXXXXXXXXXXXX'  -- 1
      || 'X|    X     X  X  X'  -- 2
      || 'X XXX X XXX   XXX X'  -- 3
      || 'X X   X   XXX   X X'  -- 4
      || 'X XXXXXXX   XXX X X'  -- 5
      || 'X   X   X X  X    X'  -- 6
      || 'XXX X XXX XX X XX X'  -- 7
      || 'X     X   X  X    X'  -- 8
      || 'X XXXXX X XXXXXX XX'  -- 9
      || 'X       X         *'  --10
      || 'XXXXXXXXXXXXXXXXXXX'  --11
       -- 123456789 123456789
    from sysibm.sysDummy1
)
, zeilen (Z) as                 -- Anzahl Zeilen
( select 1 from sysibm.sysDummy1
  union all select z+1 from zeilen where z < 11
)
, suche (lab, pos, sta, len) as -- Suche einen Weg
( select lab, 21, 'ok', 0       -- Start: das leere Labyrinth
    from labyrinth
                                -- Schritt a1: probiere nach rechts
  union all select lab, pos+ 1, 'p>', len+1  -- probiere nach rechts
     from suche
     where sta = 'ok' and len < 999
                                -- Schritt a2: probiere nach unten
  union all select lab, pos+19, 'p|', len+1
     from suche
     where sta = 'ok' and len < 999
                                -- Schritt b: markiere Schritt falls ok
  union all select
      left(lab, pos-1) || substr(sta, 2) || substr(lab, pos+1) ,
      pos, 'ok', len+1
    from suche
    where sta like 'p%' and substr(lab, pos, 1) = ' '  and len < 999
)
                                -- Zeilen der Labyrinthe anzeigen
select substr(lab, 19 * z - 18, 19), len
    from suche,zeilen
    where sta = 'ok'
    order by lab, z
}¢--- A540769.WK.SQL(LASTUSED) cre=2009-04-21 mod=2009-04-21-08.09.22 F540769 ---
select lastUsed, count(*)
    from sysibm.sysindexspacestats
    group by lastUsed
    order by lastUsed
}¢--- A540769.WK.SQL(LEUZAL) cre=2006-07-07 mod=2006-07-12-09.15.34 F540769 ----
SET CURRENT SQLID = 'S100447';
CREATE ALIAS  OA1P06.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS  OA1P05.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS  OA1P04.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS  OA1P03.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS  OA1P02.VPC104A1A FOR OA1P.VPC104A1A ;
CREATE ALIAS  OA1P01.VPC104A1A FOR OA1P.VPC104A1A ;
COMMIT;
CREATE ALIAS  OA1P06.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS  OA1P05.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS  OA1P04.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS  OA1P03.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS  OA1P02.TPC104A1 FOR OA1P.TPC104A1 ;
CREATE ALIAS  OA1P01.TPC104A1 FOR OA1P.TPC104A1 ;
COMMIT;
DROP ALIAS    OA1P06.VPC104A1  ;
DROP ALIAS    OA1P05.VPC104A1  ;
DROP ALIAS    OA1P04.VPC104A1  ;
DROP ALIAS    OA1P03.VPC104A1  ;
DROP ALIAS    OA1P02.VPC104A1  ;
DROP ALIAS    OA1P01.VPC104A1  ;
COMMIT;
DROP   ALIAS  OA1P06.VPC104A1P ;
DROP ALIAS    OA1P05.VPC104A1P ;
DROP ALIAS    OA1P04.VPC104A1P ;
DROP ALIAS    OA1P03.VPC104A1P ;
DROP ALIAS    OA1P02.VPC104A1P ;
DROP ALIAS    OA1P01.VPC104A1P ;
COMMIT;
}¢--- A540769.WK.SQL(LIKE) cre=2010-12-15 mod=2010-12-15-12.04.37 A540769 ------
select
    case  when 'a' = 'a ' then '=' else '\' end "'a' = 'a '",
    case  when 'a' like 'a ' then 'like' else '\' end
                                      "'a' like 'a '",
    case  when 'a ' like 'a' then 'like' else '\' end
                                      "'a ' like 'a'"
  from sysibm.sysDummy1
}¢--- A540769.WK.SQL(LIKEESC) cre=2008-08-19 mod=2008-08-19-15.29.42 F540769 ---
select name
    from sysibm.sysTables
    where name like '%\_%' escape '\' and type = 'T'
    fetch first 100 rows only
;
with d as
    ( select       'abcdef'    d from sysibm.sysdummy1
      union select 'ab_def'    d from sysibm.sysdummy1
      union select 'ab%def'    d from sysibm.sysdummy1
      union select 'ab\def'    d from sysibm.sysdummy1
    )
select *
    from d
    where d like '%\\%' escape '\'
    fetch first 100 rows only
}¢--- A540769.WK.SQL(LISTC) cre=2008-08-18 mod=2008-08-18-16.05.59 F540769 -----
$= subsys = DBAF
call sqlConnect DBAF
$;
$<<tbs
   TWK202A1
tbs $@{ sel = ''
    $@for v $@{ sel = sel", '"strip($v)"'" $}
    sel = 'in ('substr(sel, 3)')'
    say sel
    $=sel £ sel
    $}
$;
$<<¢s1
    select t.creator cr, t.name tb, t.dbName db, t.tsName ts,
           p.iPrefix ip, p.partition pa, p.dsNum nu
         from sysibm.systables t, sysibm.sysTablePart p
         where t.dbName = p.dbName and t.tsName = p.tsname
               and name $sel
s1 call sql 3
$¨  $@{
    $@for v $@{
        $$ ${v.CR} ${v.TB} ${v.DB} ${v.TS} ${v.PA} ${v.IP} $*+
                                   ${v.NU}
        do x=1 to ${v.NU}
            dsn = $subsys'.DSNDBC.'${v.DB}'.'${v.TS},
                || '.'${v.IP}right(x, 4, 0) ,
                || '.A'right(max(1,${v.PA}), 3, 0)
            $£ dsn
            $£ dsn sysdsn("'"dsn"'")
            end
        $}
    $}
$***out            20080818 16:05:41
A540769 TWK202A1 DA540769 A202A 1 I                                    -1
A540769 TWK202A1 DA540769 A202A 2 I                                    -1
A540769 TWK202A1 DA540769 A202A 3 I                                    -1
A540769 TWK202A1 DA540769 A202A 4 I                                    -1
GDB9998 TWK202A1 DGDB9998 A202A 1 I                                    1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A001
DBAF.DSNDBC.DGDB9998.A202A.I0001.A001 OK
GDB9998 TWK202A1 DGDB9998 A202A 2 I                                    1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A002
DBAF.DSNDBC.DGDB9998.A202A.I0001.A002 OK
GDB9998 TWK202A1 DGDB9998 A202A 3 I                                    1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A003
DBAF.DSNDBC.DGDB9998.A202A.I0001.A003 OK
GDB9998 TWK202A1 DGDB9998 A202A 4 I                                    1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A004
DBAF.DSNDBC.DGDB9998.A202A.I0001.A004 OK
$***out            20080818 16:02:11
A540769 TWK202A1 DA540769 A202A 1 I                                    -1
A540769 TWK202A1 DA540769 A202A 2 I                                    -1
A540769 TWK202A1 DA540769 A202A 3 I                                    -1
A540769 TWK202A1 DA540769 A202A 4 I                                    -1
GDB9998 TWK202A1 DGDB9998 A202A 1 I                                    1
DBAF.DSNDBC.DGDB9998.A202A.I0001.A001
DBAF.DSNDBC.DGDB9998.A202A.I0001.A001 OK
GDB9998 TWK202A1 DGDB9998 A202A 2 I                                    1
DBAF.DSNDBC.DGDB9998.A202A.I0002.A001
DBAF.DSNDBC.DGDB9998.A202A.I0002.A001 DATASET NOT FOUND
GDB9998 TWK202A1 DGDB9998 A202A 3 I                                    1
DBAF.DSNDBC.DGDB9998.A202A.I0003.A001
DBAF.DSNDBC.DGDB9998.A202A.I0003.A001 DATASET NOT FOUND
GDB9998 TWK202A1 DGDB9998 A202A 4 I                                    1
DBAF.DSNDBC.DGDB9998.A202A.I0004.A001
DBAF.DSNDBC.DGDB9998.A202A.I0004.A001 DATASET NOT FOUND
$***out            20080818 15:35:58
BUA XBALD001IT002001 XBALD001 SIT00301 0 I                                    1
DAEG.DSNDBC.XBALD001.SIT00301.I0001.A0001
DAEG.DSNDBC.XBALD001.SIT00301.I0001.A0001 DATASET NOT FOUND
BUA XBALD001PM001002 XBALD001 SPM00201 0 I                                    1
DAEG.DSNDBC.XBALD001.SPM00201.I0001.A0001
DAEG.DSNDBC.XBALD001.SPM00201.I0001.A0001 DATASET NOT FOUND
BUA XBALD001PS001001 XBALD001 SPS00101 0 I                                    1
DAEG.DSNDBC.XBALD001.SPS00101.I0001.A0001
DAEG.DSNDBC.XBALD001.SPS00101.I0001.A0001 DATASET NOT FOUND
BUA XBALD001PS002001 XBALD001 SPS00401 0 I                                    1
DAEG.DSNDBC.XBALD001.SPS00401.I0001.A0001
DAEG.DSNDBC.XBALD001.SPS00401.I0001.A0001 DATASET NOT FOUND
BUA XBALM001IT002001 XBALM001 SIT002 0 I                                    1
DAEG.DSNDBC.XBALM001.SIT002.I0001.A0001
DAEG.DSNDBC.XBALM001.SIT002.I0001.A0001 DATASET NOT FOUND
BUA XBALM001PS002001 XBALM001 SPS003 0 I                                    1
DAEG.DSNDBC.XBALM001.SPS003.I0001.A0001
DAEG.DSNDBC.XBALM001.SPS003.I0001.A0001 DATASET NOT FOUND
BUA XBALZ001IT002001 XBALZ001 SIT002 0 I                                    1
DAEG.DSNDBC.XBALZ001.SIT002.I0001.A0001
DAEG.DSNDBC.XBALZ001.SIT002.I0001.A0001 DATASET NOT FOUND
BUA XBALZ001PS001001 XBALZ001 SPS001 0 I                                    1
DAEG.DSNDBC.XBALZ001.SPS001.I0001.A0001
DAEG.DSNDBC.XBALZ001.SPS001.I0001.A0001 DATASET NOT FOUND
BUA XBALZ001PS002001 XBALZ001 SPS003 0 I                                    1
DAEG.DSNDBC.XBALZ001.SPS003.I0001.A0001
DAEG.DSNDBC.XBALZ001.SPS003.I0001.A0001 DATASET NOT FOUND
$***out            20080818 15:35:11
BUA XBALD001IT002001 XBALD001 SIT00301 0 I                                    1
DAEG.DSNDBC.XBALD001.SIT00301.I   1.A   1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBA
BUA XBALD001PM001002 XBALD001 SPM00201 0 I                                    1
DAEG.DSNDBC.XBALD001.SPM00201.I   1.A   1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBA
BUA XBALD001PS001001 XBALD001 SPS00101 0 I                                    1
DAEG.DSNDBC.XBALD001.SPS00101.I   1.A   1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBA
BUA XBALD001PS002001 XBALD001 SPS00401 0 I                                    1
DAEG.DSNDBC.XBALD001.SPS00401.I   1.A   1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBA
BUA XBALM001IT002001 XBALM001 SIT002 0 I                                    1
DAEG.DSNDBC.XBALM001.SIT002.I   1.A   1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALM
BUA XBALM001PS002001 XBALM001 SPS003 0 I                                    1
DAEG.DSNDBC.XBALM001.SPS003.I   1.A   1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALM
BUA XBALZ001IT002001 XBALZ001 SIT002 0 I                                    1
DAEG.DSNDBC.XBALZ001.SIT002.I   1.A   1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALZ
BUA XBALZ001PS001001 XBALZ001 SPS001 0 I                                    1
DAEG.DSNDBC.XBALZ001.SPS001.I   1.A   1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALZ
BUA XBALZ001PS002001 XBALZ001 SPS003 0 I                                    1
DAEG.DSNDBC.XBALZ001.SPS003.I   1.A   1 INVALID DATASET NAME, 'DAEG.DSNDBC.XBALZ
$***out            20080818 15:34:58
BUA XBALD001IT002001 XBALD001 SIT00301 0 I                                    1
$***out            20080818 15:34:18
$***out            20080818 15:33:37
$***out            20080818 15:31:11
BUA XBALD001IT002001 XBALD001 SIT00301 0 I                                    1
DAEG.DSNDBC.XBALD001.SIT00301.I
BUA XBALD001PM001002 XBALD001 SPM00201 0 I                                    1
DAEG.DSNDBC.XBALD001.SPM00201.I
BUA XBALD001PS001001 XBALD001 SPS00101 0 I                                    1
DAEG.DSNDBC.XBALD001.SPS00101.I
BUA XBALD001PS002001 XBALD001 SPS00401 0 I                                    1
DAEG.DSNDBC.XBALD001.SPS00401.I
BUA XBALM001IT002001 XBALM001 SIT002 0 I                                    1
DAEG.DSNDBC.XBALM001.SIT002.I
BUA XBALM001PS002001 XBALM001 SPS003 0 I                                    1
DAEG.DSNDBC.XBALM001.SPS003.I
BUA XBALZ001IT002001 XBALZ001 SIT002 0 I                                    1
DAEG.DSNDBC.XBALZ001.SIT002.I
BUA XBALZ001PS001001 XBALZ001 SPS001 0 I                                    1
DAEG.DSNDBC.XBALZ001.SPS001.I
BUA XBALZ001PS002001 XBALZ001 SPS003 0 I                                    1
DAEG.DSNDBC.XBALZ001.SPS003.I
$***out            20080818 15:31:02
$***out            20080818 15:30:54
$***out            20080818 15:30:17
$***out            20080818 15:30:04
$***out            20080818 15:29:49
$***out            20080818 15:23:36
BUA XBALD001IT002001 XBALD001 SIT00301 0 I
BUA XBALD001PM001002 XBALD001 SPM00201 0 I
BUA XBALD001PS001001 XBALD001 SPS00101 0 I
BUA XBALD001PS002001 XBALD001 SPS00401 0 I
BUA XBALM001IT002001 XBALM001 SIT002 0 I
BUA XBALM001PS002001 XBALM001 SPS003 0 I
BUA XBALZ001IT002001 XBALZ001 SIT002 0 I
BUA XBALZ001PS001001 XBALZ001 SPS001 0 I
BUA XBALZ001PS002001 XBALZ001 SPS003 0 I
$***out            20080818 15:22:57
$***out            20080818 15:22:44
$***out            20080818 15:17:03
CR  TB               DB       TS       I
BUA XBALD001IT002001 XBALD001 SIT00301 I 0
BUA XBALD001PM001002 XBALD001 SPM00201 I 0
BUA XBALD001PS001001 XBALD001 SPS00101 I 0
BUA XBALD001PS002001 XBALD001 SPS00401 I 0
BUA XBALM001IT002001 XBALM001 SIT002   I 0
BUA XBALM001PS002001 XBALM001 SPS003   I 0
BUA XBALZ001IT002001 XBALZ001 SIT002   I 0
BUA XBALZ001PS001001 XBALZ001 SPS001   I 0
BUA XBALZ001PS002001 XBALZ001 SPS003   I 0
$***out            20080818 15:16:42
$***out            20080818 15:16:19
$***out            20080818 15:15:59
$***out            20080818 15:15:21
}¢--- A540769.WK.SQL(LOCALE) cre=2006-11-06 mod=2006-11-09-08.30.42 F540769 ----
set           current locale lc_ctype =  '' ;
select substr( current locale lc_ctype, 1, 12), current date
    , upper('abcdef aäâà eéèêë iïî oöôò uüûù +ABÄÖÜ') "upper"
    , translate(upper('abcäöü+ABÄÖÜ'), 'ÄÖÜ', 'äöü')  "translate(upper"
    from sysibm.sysdummy1;
set           current locale lc_ctype =  'De_CH' ;
select substr( current locale lc_ctype, 1, 12), current date
    , upper('abcdef aäâà eéèêë iïî oöôò uüûù +ABÄÖÜ') "upper"
    , translate(upper('abcäöü+ABÄÖÜ'), 'ÄÖÜ', 'äöü')  "translate(upper"
    from sysibm.sysdummy1;
}¢--- A540769.WK.SQL(LOCKDROL) cre=2016-05-30 mod=2016-05-30-09.47.24 A540769 ---
//A540769L JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M,                                    00030000
//         SCHENV=DB2,CLASS=M1                                          00040000
//JOBLIB   DD DISP=SHR,DSN=PCL.U0000.P0.RZ4AKT.PERM.@008.LLB
//*
//S1       EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,                      00020001
//             PARM='%WSH'
//SYSPROC   DD DSN=A540769.WK.REXX,DISP=SHR
//SYSPRINT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//SYSTSPRT  DD SYSOUT=*
//SYSTSIN   DD DUMMY
//WSH       DD *
call sqlConnect
$*(
say time() 'locking table qz92crt.TQZ91WK970A1 in exclusive mode'
call sqlExec 'lock table qz92crt.TQZ91WK970A1 in exclusive mode'
say time() 'locked  table qz92crt.TQZ91WK970A1 in exclusive mode'
$*)
call sqlExec "update qz92crt.TQZ91WK970A1 set WK970CHC = 'upd'", "*say"
say time() 'updated'
call sqlExec "drop table qz92crt.TQZ91WK970A1", "*say"
say time() 'dropped'
call sqlCommit
say time() 'committed'
call sleep  00
}¢--- A540769.WK.SQL(LOCKDROP) cre=2016-05-30 mod=2016-05-30-09.49.52 A540769 ---
-sta DB(QZ91A1S) SPACE(AWK970A) acc(ro)
lock table qz91crs.TQZ91WK970A1 in$exclusive mode
set current sqlid = 'S100447';
create table qz91crs.TQZ91WK970A1
  ( a char(19) ) in qz91a1S.awk970a
;
}¢--- A540769.WK.SQL(LOGEXACM) cre=2014-10-02 mod=2014-10-06-09.14.21 A540769 ---
with n as
(
  select 'new' on
      , (select count(*)
           from oa1p.tqz065Abend o
           where t.timestamp       = o.timestamp
             and t.rz              = o.rz
             and t.dbSys           = o.dbSys
             and t.ssid            = o.ssid
             and t.EVENT_TYPE      = o.EVENT_TYPE
             and t.CORRID_ID       = o.CORRID_ID
             and t.JOBNAME         = o.JOBNAME
             and t.CONN_ID         = o.CONN_ID
             and t.AUTHID          = o.AUTHID
             and t.ASID            = o.ASID
             and t.TCB             = o.TCB
        ) othCnt
      , t.* from A540769.tqz065Abend t
  where rz = 'RZ2'
    and timestamp between '2014-10-05-04.00.00'
                      and '2014-10-09-00.00.00'
union all
  select 'old' on
      , (select count(*)
           from a540769.tqz065Abend o
           where t.timestamp       = o.timestamp
             and t.rz              = o.rz
             and t.dbSys           = o.dbSys
             and t.ssid            = o.ssid
             and t.EVENT_TYPE      = o.EVENT_TYPE
             and t.CORRID_ID       = o.CORRID_ID
             and t.JOBNAME         = o.JOBNAME
             and t.CONN_ID         = o.CONN_ID
             and t.AUTHID          = o.AUTHID
             and t.ASID            = o.ASID
             and t.TCB             = o.TCB
        ) othCnt
      , t.* from oa1p.tqz065Abend t
  where rz = 'RZ2'
    and timestamp between '2014-10-05-04.00.00'
                      and '2014-10-09-00.00.00'
)
select min(on), max(on)
      , othCnt
      , timestamp
      , rz
      , dbSys
      , ssid
      , EVENT_TYPE
      , CORRID_ID
      , JOBNAME
      , CONN_ID
      , AUTHID
      , ASID
      , TCB
    from n
--  where othCnt <> 1
    group by   othCnt
             , timestamp
             , rz
             , dbSys
             , ssid
             , EVENT_TYPE
             , CORRID_ID
             , JOBNAME
             , CONN_ID
             , AUTHID
             , ASID
             , TCB
--  having min(on) = max(on)
    order by timestamp, rz, dbSys, event_type, min(on)
}¢--- A540769.WK.SQL(LOGEXDDL) cre=2014-10-02 mod=2015-06-08-22.08.19 A540769 ---
  SET CURRENT SQLID='S100447';
  alter TABLE OA1P.TQZ060Timeout
     alter column "TYPE"  set data type   CHARacter(40) ;-- SBCS DATA;
  commit;
  x;
------------------------------------------------------------------------
-- Database=dA540769   Stogroup=GSMS
-- Table space=dA540769.A060A
------------------------------------------------------------------------
--
  xrop TABLESPACE dA540769.A060A;
  drop TABLESPACE dA540769.A063A;
  drop TABLESPACE dA540769.A064A;
  drop TABLESPACE dA540769.A065A;
  commit;
  CREATE TABLESPACE A060A
    IN dA540769
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    LOGGED
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
--
------------------------------------------------------------------------
--    Table=A540769.TQZ060Timeout In dA540769.A060A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.TQZ060Timeout
     (TIMESTAMP            TIMESTAMP NOT NULL,
      SSID                 CHAR(4) FOR SBCS DATA NOT NULL,
      EVENT_TYPE           CHAR(1) FOR SBCS DATA NOT NULL,
      VICTIM_PLAN          CHAR(10) FOR SBCS DATA NOT NULL,
      VICTIM_CORR_ID       CHAR(18) FOR SBCS DATA NOT NULL,
      VICTIM_CONN_ID       CHAR(18) FOR SBCS DATA NOT NULL,
      HOLDER_PLAN          CHAR(10) FOR SBCS DATA NOT NULL,
      HOLDER_CORR_ID       CHAR(18) FOR SBCS DATA NOT NULL,
      HOLDER_CONN_ID       CHAR(18) FOR SBCS DATA NOT NULL,
      REASON_CODE          CHAR(10) FOR SBCS DATA NOT NULL,
      "TYPE"               CHAR(25) FOR SBCS DATA NOT NULL,
      NAME                 CHAR(80) FOR SBCS DATA NOT NULL,
      rz             char(3)  FOR SBCS DATA NOT NULL with default '?',
      dbSys          char(4)  FOR SBCS DATA NOT NULL with default '?',
      loadDate             date                   not null with default
    )
    IN dA540769.A060A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE
    APPEND NO  ;
--
  COMMENT ON TABLE A540769.TQZ060Timeout
    IS 'DB2 DEADLOCK & TIMEOUT AUSWERTUNG - IN DIESER TABELLE SIND SÄMTL
ICHE DEADLOCKS & TIMEOUTS SÄMTLICHER DB2 SUBSYSTEME AUS DEM RZ1 ZUSAMMEN
GEFASST.';
  CREATE INDEX A540769.IQZ060A1     --- es gibt halt noch duplicates
         ON A540769.TQZ060Timeout   --- weil wir luw-id nicht mitnehmen ...
        (rz, timestamp, dbSys, ssid, event_type, victim_corr_id
        ,holder_corr_id, name
        )
         CLUSTER
         DEFINE YES
         COMPRESS NO
         BUFFERPOOL BP1
         CLOSE YES
         DEFER NO
         COPY NO
         USING STOGROUP GSMS
             PRIQTY -1
             SECQTY -1
             ERASE NO
         FREEPAGE 0
         PCTFREE 5
         GBPCACHE CHANGED
;
--
------------------------------------------------------------------------
-- Database=dA540769   Stogroup=GSMS
-- Table space=dA540769.A063A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A063A
    IN dA540769
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    LOGGED
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
--
------------------------------------------------------------------------
--    Table=A540769.tqz063UOW In dA540769.A063A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.tqz063UOW
     (TIMESTAMP            TIMESTAMP NOT NULL,
      SSID                 CHAR(4) FOR SBCS DATA NOT NULL,
      EVENT_TYPE           CHAR(1) FOR SBCS DATA NOT NULL,
      PLAN_NAME            CHAR(10) FOR SBCS DATA NOT NULL,
      CORRID_ID            CHAR(18) FOR SBCS DATA NOT NULL,
      CONN_ID              CHAR(18) FOR SBCS DATA NOT NULL,
      AUTHID               CHAR(10) FOR SBCS DATA NOT NULL,
      LOGREC               CHAR(10) FOR SBCS DATA NOT NULL,
      rz             char(3)  FOR SBCS DATA NOT NULL with default '?',
      dbSys          char(4)  FOR SBCS DATA NOT NULL with default '?',
      loadDate             date                   not null with default
     )
    IN dA540769.A063A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE
    APPEND NO  ;
--
  COMMENT ON TABLE A540769.tqz063UOW
    IS 'DB2 UNCOMMITTED UOW AUSWERTUNG - IN DIESER TABELLE SIND SÄMTLICH
E UNCOMMITED UOWS SÄMTLICHER DB2 SUBSYSTEME AUS DEM RZ1 ZUSAMMENGEFASST.
';
CREATE        INDEX A540769.IQZ063A1
       ON A540769.TQZ063UOW
      (rz, timestamp, dbSys, ssid, event_type, corrid_id, conn_id
      ,logrec
      )
       CLUSTER
       DEFINE YES
       COMPRESS NO
       BUFFERPOOL BP1
       CLOSE YES
       DEFER NO
       COPY NO
       USING STOGROUP GSMS
           PRIQTY -1
           SECQTY -1
           ERASE NO
       FREEPAGE 0
       PCTFREE 5
       GBPCACHE CHANGED  ;
--
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Table space=A064A In Database dA540769   --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=dA540769   Stogroup=GSMS
-- Table space=dA540769.A064A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A064A
    IN dA540769
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    LOGGED
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
--
------------------------------------------------------------------------
--    Table=A540769.tqz064LockEscal In dA540769.A064A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.tqz064LockEscal
     (TIMESTAMP            TIMESTAMP NOT NULL,
      SSID                 CHAR(4) FOR SBCS DATA NOT NULL,
      EVENT_TYPE           CHAR(1) FOR SBCS DATA NOT NULL,
      PLAN_NAME            CHAR(10) FOR SBCS DATA NOT NULL,
      PACKAGE_NAME         CHAR(18) FOR SBCS DATA NOT NULL,
      COLLECTION_ID        CHAR(18) FOR SBCS DATA NOT NULL,
      CORRID_ID            CHAR(18) FOR SBCS DATA NOT NULL,
      CONN_ID              CHAR(18) FOR SBCS DATA NOT NULL,
      RESOURCE             CHAR(80) FOR SBCS DATA NOT NULL,
      LOCK_STATE           CHAR(1) FOR SBCS DATA NOT NULL,
      STATEMENT            CHAR(10) FOR SBCS DATA NOT NULL,
      rz             char(3)  FOR SBCS DATA NOT NULL with default '?',
      dbSys          char(4)  FOR SBCS DATA NOT NULL with default '?',
      loadDate             date                   not null with default
     )
    IN dA540769.A064A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE
    APPEND NO  ;
--
  COMMENT ON TABLE A540769.tqz064LockEscal
    IS 'DB2 LOCK ESCALATION AUSWERTUNG - IN DIESER TABELLE SIND SÄMTLICH
E LOCK ESCALATION SÄMTLICHER DB2 SUBSYSTEME AUS DEM RZ1 ZUSAMMENGEFASST.
';
CREATE        INDEX A540769.IQZ064A1
       ON A540769.TQZ064LockEscal
      (rz, timestamp, dbSys, ssid, event_type, corrid_id, conn_id
      ,resource
      )
       CLUSTER
       DEFINE YES
       COMPRESS NO
       BUFFERPOOL BP1
       CLOSE YES
       DEFER NO
       COPY NO
       USING STOGROUP GSMS
           PRIQTY -1
           SECQTY -1
           ERASE NO
       FREEPAGE 0
       PCTFREE 5
       GBPCACHE CHANGED  ;
--
--
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Table space=A065A In Database dA540769   --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=dA540769   Stogroup=GSMS
-- Table space=dA540769.A065A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A065A
    IN dA540769
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    LOGGED
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
--
------------------------------------------------------------------------
--    Table=A540769.tqz065Abend In dA540769.A065A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.tqz065Abend
     (TIMESTAMP            TIMESTAMP NOT NULL,
      SSID                 CHAR(4) FOR SBCS DATA NOT NULL,
      EVENT_TYPE           CHAR(1) FOR SBCS DATA NOT NULL,
      CORRID_ID            CHAR(18) FOR SBCS DATA NOT NULL,
      JOBNAME              CHAR(18) FOR SBCS DATA NOT NULL,
      CONN_ID              CHAR(18) FOR SBCS DATA NOT NULL,
      AUTHID               CHAR(10) FOR SBCS DATA NOT NULL,
      ASID                 CHAR(10) FOR SBCS DATA NOT NULL,
      TCB                  CHAR(20) FOR SBCS DATA NOT NULL,
      rz             char(3)  FOR SBCS DATA NOT NULL with default '?',
      dbSys          char(4)  FOR SBCS DATA NOT NULL with default '?',
      loadDate             date                   not null with default
     )
    IN dA540769.A065A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE
    APPEND NO  ;
--
  COMMENT ON TABLE A540769.tqz065Abend
    IS 'DB2 ABORMAL EOT AUSWERTUNG - IN DIESER TABELLE SIND SÄMTLICHE AB
NORMAL EOT SÄMTLICHER DB2 SUBSYSTEME AUS DEM RZ1 ZUSAMMENGEFASST.';
--
CREATE        INDEX A540769.IQZ065A1
       ON A540769.tqz065Abend
      (rz, timestamp, dbSys, ssid, event_type, corrid_id, conn_id
      ,jobname
      )
       CLUSTER
       DEFINE YES
       COMPRESS NO
       BUFFERPOOL BP1
       CLOSE YES
       DEFER NO
       COPY NO
       USING STOGROUP GSMS
           PRIQTY -1
           SECQTY -1
           ERASE NO
       FREEPAGE 0
       PCTFREE 5
       GBPCACHE CHANGED  ;
  COMMIT;
}¢--- A540769.WK.SQL(LOGEXESC) cre=2014-12-10 mod=2015-10-03-11.48.05 A540769 ---
  set current application compatibility 'V11R1';
  select rz, dbSys, loadDate, count(*)
      from oa1p.tqz064LockEscal
      where loadDate > current date - 3 days
      group by rollup(loadDate, rz, dbSys)
      order by rz, dbSys, loadDate desc
  ;X;
with s as
( select
         date(trunc_timestamp(timestamp, 'mon')) tst
       , e.*
    from oa1p.tqz064lockEscal e
    where rz = 'RZ2' and dbSys = 'DBOF'
        and resource like '%DG01%'
        and timestamp >= current timestamp - 2 year
)
select tst
    ,  count(*) count
    ,  sum(case when resource like '%127%' then 1 else 0 end) c127
    , min(resource), max(resource)
    , min(plan_name), max(plan_name)
    , min(package_name), max(package_name)
    , min(event_type), max(event_type)
    , count(*)
    , min(loadDate), tst
    from s
    group by tst
    order by tst desc
;x;
select
      count(*)
    , left(resource, 16)
--  , trunc_timestamp(timestamp, 'mon')
    from oa1p.TQZ064LOCKESCAL
    where rz = 'RZ2' and dbSys = 'DVBP'
        and timestamp > '2014-12-01-00.00.00'
--  group by trunc_timestamp(timestamp, 'mon')
    group by left(resource, 16)
    order by 1 desc
;x;
with s as
( select case when loadDate <  '14.11.2014' then 1 else 0 end t1
       , date(trunc_timestamp(timestamp, 'iw')) tst
       , e.*
    from oa1p.tqz064lockEscal e
    where rz = 'RZ2' and dbSys = 'DBOF'
        and resource like '%VV%'
        and timestamp >= '2014-07-01-00.00.00'
)
select tst
    ,  count(*) count
    , min(resource), max(resource)
    , min(plan_name), max(plan_name)
    , min(package_name), max(package_name)
    , min(event_type), max(event_type)
    , count(*)
    , min(loadDate), tst
    from s
    group by tst
    order by tst desc
;x;
with s as
( select case when loadDate <= '03.10.2014' then 0 else 1 end t1
       , trunc_timestamp(timestamp, 'dd') tst
       , t.*
    from oa1p.tqz064lockEscal t
    where rz = 'RR2' and dbSys = 'DBOF'
        and resource like '%VV%'
)
select

      count(*)
    , min(loadDate), tst
    , min(resource), max(resource)
    , min(plan_name), max(plan_name)
    , min(package_name), max(package_name)
    , min(event_type), max(event_type)
    from s
    group by t1, tst
    order by t1 desc, tst desc
;x;
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
    ,  sum(case when event_type = 'T' then 1 else 0 end) timeout
    , count(*)
    , trunc_timestamp(timestamp, 'mon')
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name like '%WB%'
        and timestamp > current timestamp - 1 year
    group by trunc_timestamp(timestamp, 'mon')
    order by 4 desc
;x;
select *
    from oa1p.tqz064LockEscal
    where rz = 'RZ2' and dbSys = 'DBOF'
        and resource like '%WB%'
        and timestamp > currentDA540769mp - 1 month
    order by timestamp desc
;x;
select *
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name like '%WB%'
        and timestamp > current timestamp - 1 month
    order by timestamp desc
}¢--- A540769.WK.SQL(LOGEXLCM) cre=2014-10-02 mod=2014-10-06-09.13.11 A540769 ---
with n as
(
  select 'new' on
      , (select count(*)
           from oa1p.tqz064LockEscal o
           where t.timestamp       = o.timestamp
             and t.rz              = o.rz
             and t.dbSys           = o.dbSys
             and t.ssid            = o.ssid
             and t.EVENT_TYPE      = o.EVENT_TYPE
             and t.PLAN_NAME       = o.PLAN_NAME
             and t.PACKAGE_NAME    = o.PACKAGE_NAME
             and t.COLLECTION_ID   = o.COLLECTION_ID
             and t.CORRID_ID       = o.CORRID_ID
             and t.CONN_ID         = o.CONN_ID
             and t.RESOURCE        = o.RESOURCE
             and t.LOCK_STATE      = o.LOCK_STATE
             and t.STATEMENT       = o.STATEMENT
        ) othCnt
      , t.* from A540769.tqz064LockEscal t
  where rz = 'RZ2'
    and timestamp between '2014-10-05-04.00.00'
                      and '2014-10-09-00.00.00'
union all
  select 'old' on
      , (select count(*)
           from a540769.tqz064LockEscal o
           where t.timestamp       = o.timestamp
             and t.rz              = o.rz
             and t.dbSys           = o.dbSys
             and t.ssid            = o.ssid
             and t.EVENT_TYPE      = o.EVENT_TYPE
             and t.PLAN_NAME       = o.PLAN_NAME
             and t.PACKAGE_NAME    = o.PACKAGE_NAME
             and t.COLLECTION_ID   = o.COLLECTION_ID
             and t.CORRID_ID       = o.CORRID_ID
             and t.CONN_ID         = o.CONN_ID
             and t.RESOURCE        = o.RESOURCE
             and t.LOCK_STATE      = o.LOCK_STATE
             and t.STATEMENT       = o.STATEMENT
        ) othCnt
      , t.* from oa1p.tqz064LockEscal t
  where rz = 'RZ2'
    and timestamp between '2014-10-05-04.00.00'
                      and '2014-10-09-00.00.00'
)
select othCnt, min(on), max(on)
      , othCnt
      , timestamp
      , rz
      , dbSys
      , ssid
      , EVENT_TYPE
      , PLAN_NAME
      , PACKAGE_NAME
      , COLLECTION_ID
      , CORRID_ID
      , CONN_ID
      , RESOURCE
      , LOCK_STATE
      , STATEMENT
    from n
--  where othCnt <> 1
    group by   othCnt
             , timestamp
             , rz
             , dbSys
             , ssid
             , EVENT_TYPE
             , PLAN_NAME
             , PACKAGE_NAME
             , COLLECTION_ID
             , CORRID_ID
             , CONN_ID
             , RESOURCE
             , LOCK_STATE
             , STATEMENT
--  having min(on) = max(on)
    order by timestamp, rz, dbSys, event_type, min(on)
;
select count(*) from A540769.tqz064LockEscal ;
select *        from A540769.tqz064LockEscal
     where timestamp = '2014-09-29-06.00.51';
select *        from oa1p.tqz064LockEscal
     where timestamp = '2014-09-29-06.00.51';
}¢--- A540769.WK.SQL(LOGEXLOA) cre=2014-10-02 mod=2014-10-03-16.25.14 A540769 ---
$#@
m.dsl.1 = DSN.ABLF.LOGE2.RZ2.TADM60A1.D14276.T160821
m.dsl.2 = DSN.ABLF.LOGE2.RZ2.TADM63A1.D14276.T160821
m.dsl.3 = DSN.ABLF.LOGE2.RZ2.TADM64A1.D14276.T160821
m.dsl.4 = DSN.ABLF.LOGE2.RZ2.TADM65A1.D14276.T160822
m.dsl.0 = 4
$=rz=RZ2
$=ab=logE2
$=now =- f('%t s')
if $rz = RZ4 then
    $=paPr = DSN.ABLF.LOGE2
else if pos($rz, RZ2 RR2 RQ2) > 0 then
    $=paPr = DBOF.DBAA.ABLF.LOGE2
else
    $=paPr = DE0G.DBAA.ABLF.LOGE2
$<>
$>. fEdit()
$@=/job/
//QMW8300P JOB (CP00,KE50),'DB2 MVEXT',
//         MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2
//*MAIN CLASS=P2
//*
//* db2 log Extract ablauf $ab from $rz
//* generated by abub at $now
//*
$do dx=1 to m.dsl.0 $@/table/
    $** .DE0G.TADM60A1.D14107.T080224
    $=iDsn =- strip(m.dsl.dx)
    px = pos('.'$rz'.', $iDsn)
    d1 = substr($iDsn, px + 5)
    tb = left(d1, 8)
    if px < 1 | translate(substr(d1, 9),
            , 000000000, 123456789) \== '.D00000.T000000' then $@¢
         $$ //* bad dsn $iDsn
         iterate
    $! else if tb == 'TADM60A1' then $@¢
        $= tb   = TimeO
        $= crTb = OA1P.TQZ060TIMEOUT
        m.doneTimeO = 1
    $! else if tb == 'TADM63A1' then $@¢
        $= tb   = UOW
        $= crTb = OA1P.TQZ063UOW
        m.doneUOW = 1
    $! else if tb == 'TADM64A1' then $@¢
        $= tb   = LockE
        $= crTb = OA1P.TQZ064LOCKESCAL
        m.doneLockE = 1
    $! else if tb == 'TADM65A1' then $@¢
        $= tb   = Abend
        $= crTb = OA1P.TQZ065ABEND
        m.doneAbend = 1
    $! else $@¢
         $$- '//* bad tb' tb 'in dsn' $iDsn
         iterate
    $!
    $$- '//*  dsn' $iDsn
    $$- '//*   tb' tb '==>' $tb '==>' $crTb
    $=iDsn=- m.dsl.dx
    if $rz = sysvar(sysnode) then
        $= csm = $''
    else
        $= csm = SUBSYS=(CSM,'SYSTEM=$rz'),
$@=¢
//* ------ load $rz $iDsn
//L$dx    EXEC PGM=DSNUTILB,
//             PARM=(DP4G,'LOA#DELIMITER')
//DSSPRINT  DD SYSOUT=*
//SYSPRINT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//UTPRINT   DD SYSOUT=*
//SYSOUT    DD SYSOUT=*
//SYSTEMPL  DD DSN=DP4G.DBAA.LISTDEF(TEMPL),DISP=SHR
//IN        DD DISP=SHR,$csm
//            DSN=$iDsn
//SYSIN     DD *
EXEC SQL
   delete from  $crTb WHERE RZ = '?'
ENDEXEC
LOAD DATA RESUME YES INDDN IN LOG YES
       SHRLEVEL CHANGE
       WORKDDN(TSYUTS,TSOUTS)
     FORMAT DELIMITED COLDEL ','
  INTO TABLE $crTb
     (
     $@%¢colsNoRz $tb $!
     )
EXEC SQL
    delete from $crTb n
    where rz = '?'
        and exists (select 1 from $crTb a
            where rz = '$rz'     -- for pta, beta has only 3 months
                and loadDate > current date - 100 days
                and a.timestamp = n.timestamp
                and a.dbSys      = n.dbSys and a.ssid = n.ssid
                and a.event_type = n.event_type
$!
  if  $tb == 'TimeO'          then $@=¢
                and a.victim_corr_id = n.victim_corr_id )
            --  and a.holder_corr_id = n.holder_corr_id
            --  and a.name = n.name)
  $! else if $tb == 'UOW'       then $@=¢
                and a.plan_name = n.plan_name
                and a.corrid_id = n.corrid_ID   )
            --  and a.logRec = n.logRec)
  $! else if $tb == 'LockE' then $@=¢
                and a.plan_name = n.plan_name
                and a.corrid_id = n.corrid_ID )
            --  and a.conn_id   = n.conn_id
            --  and a.package_name = n.package_name)
  $! else if $tb == 'Abend'     then $@=¢
                and a.jobname    = n.jobname
                and a.corrid_id  = n.corrid_ID )
            --  and a.conn_id    = n.conn_id
            --  and a.authid     = n.authid  )
  $! else                                       $@=¢
        implement table $crTb in DSN.ABUB.A.SKELS(QMW83)
  $!
$@=¢
ENDEXEC
EXEC SQL
  update $crTb set rz = '$rz'
    where rz = '?'
ENDEXEC
//       IF L$dx.RUN AND (L$dx.RC = 0 OR L$dx.RC = 4) THEN
//D$dx     EXEC PGM=IEFBR14              $*(
//DEL        DD DISP=(OLD,DELETE),$csm
//             DSN=$iDsn                 $*)
//       ENDIF
$!
$/table/
$@¢ if m.doneTimeO == 1 & m.doneUOW == 1 & m.doneLockE == 1 ,
                        & m.doneAbend == 1 then $@=¢
//       IF RC <= 4 AND NOT ABEND THEN
//PARMCOPY EXEC PGM=CSMUTIL,PARM='CSM,COPYREPLACE'
//SYSPRINT   DD SYSOUT=*
//SYSUT1     DD DSN=$paPr.PARMNEW,
//             ${csm}DISP=SHR
//SYSUT2     DD DSN=$paPr.PARMOLD,
//             ${csm}DISP=(MOD,CATLG),
//             MGMTCLAS=COM#A092,DCB=(RECFM=FB,DSORG=PS,LRECL=(80)),
//             SPACE=(TRK,(1,1))
//       ENDIF
$! else $@=¢
//*          parm wird nicht kopiert da nicht alle Loads
//*          doneTimeO $-¢m.doneTimeO $!
//*          doneUOW   $-¢m.doneUOW   $!
//*          doneLockE $-¢m.doneLockE $!
//*          doneAbend $-¢m.doneAbend $!
//*          paPr      $paPr
$!
$!
$/job/
$proc $@/colsNoRz/
parse arg , tb
$@=¢
        TIMESTAMP
      , DBSYS
      , SSID
      , EVENT_TYPE
$!      if tb == 'TimeO' then $@=¢
      , VICTIM_PLAN
      , VICTIM_CORR_ID
      , VICTIM_CONN_ID
      , HOLDER_PLAN
      , HOLDER_CORR_ID
      , HOLDER_CONN_ID
      , REASON_CODE
      , TYPE
      , NAME
$! else if tb == 'UOW' then $@=¢
      , PLAN_NAME
      , CORRID_ID
      , CONN_ID
      , AUTHID
      , LOGREC
$! else if tb == 'LockE' then $@=¢
      , PLAN_NAME
      , PACKAGE_NAME
      , COLLECTION_ID
      , CORRID_ID
      , CONN_ID
      , RESOURCE
      , LOCK_STATE
      , STATEMENT
$! else if tb == 'Abend' then $@=¢
      , CORRID_ID
      , JOBNAME
      , CONN_ID
      , AUTHID
      , ASID
      , TCB
$! else
    call err 'bad tb' tb
$/colsNoRz/
}¢--- A540769.WK.SQL(LOGEXNN) cre=2015-10-02 mod=2015-10-02-21.54.03 A540769 ---
select *
     from OA1P.TQZ060TIMEOUT b
     where (rz, timestamp, dbSys, ssid
            , event_Type, victim_corr_id, holder_corr_id
                        , victim_conn_id, holder_conn_id)
     in ( select rz, timestamp, dbSys, ssid
            , event_Type, victim_corr_id, holder_corr_id
                        , victim_conn_id, holder_conn_id
     from OA1P.TQZ060TIMEOUT n
     where rz = '?' and name <> ''
            and victim_corr_id <> ''
         and exists
         (select 1
             from OA1P.TQZ060TIMEOUT a
             where a.rz = 'RZ2'
             and a.timestamp = n.timestamp
             and a.dbSys      = n.dbSys and a.ssid = n.ssid
             and a.event_type = n.event_type
             and a.victim_corr_id = n.victim_corr_id
             and a.victim_conn_id = n.victim_conn_id
             and a.holder_corr_id = n.holder_corr_id
             and a.holder_conn_id = n.holder_conn_id
             and a.name = ''
        ))
     order by rz, timestamp, dbSys, ssid
            , event_Type, victim_corr_id, holder_corr_id
                        , victim_conn_id, holder_conn_id
;
select *
     from OA1P.TQZ060TIMEOUT n
     where rz = '?' and name <> ''
            and victim_corr_id <> ''
         and exists
         (select 1
             from OA1P.TQZ060TIMEOUT a
             where a.rz = 'RZ2'
             and a.timestamp = n.timestamp
             and a.dbSys      = n.dbSys and a.ssid = n.ssid
             and a.event_type = n.event_type
             and a.victim_corr_id = n.victim_corr_id
             and a.victim_conn_id = n.victim_conn_id
             and a.holder_corr_id = n.holder_corr_id
             and a.holder_conn_id = n.holder_conn_id
             and a.name = ''
         )
     order by rz, timestamp, dbSys, ssid
            , event_Type, victim_corr_id, holder_corr_id
                        , victim_conn_id, holder_conn_id
;
select *
     from OA1P.TQZ060TIMEOUT n
     where rz = '?' and timestamp = '2015-10-02-01.36.00'
                  and dbSys = 'DBOF' and ssid = 'DOF5'
     order by rz, timestamp, dbSys, ssid
            , event_Type, victim_corr_id, holder_corr_id
                        , victim_conn_id, holder_conn_id
;
select *
     from OA1P.TQZ060TIMEOUT n
     where rz = 'RZ2' and timestamp = '2015-10-02-01.36.00'
                  and dbSys = 'DBOF' and ssid = 'DOF5'
     order by rz, timestamp, dbSys, ssid
            , event_Type, victim_corr_id, holder_corr_id
                        , victim_conn_id, holder_conn_id
;x;
    and exists (select 1 from $crTb a
        where rz = '$rz'     -- for pta, beta has only 3 months
            and loadDate > current date - 100 days
            and a.timestamp = n.timestamp
            and a.dbSys      = n.dbSys and a.ssid = n.ssid
            and a.event_type = n.event_type

  $tb == 'TimeO'          then $@=¢
            and a.victim_corr_id = n.victim_corr_id )
        --  and a.holder_corr_id = n.holder_corr_id
}¢--- A540769.WK.SQL(LOGEXTCM) cre=2014-10-02 mod=2014-10-06-09.10.15 A540769 ---
with n as
(
  select 'new' on
      , (select count(*)
           from oa1p.tqz060Timeout o
           where t.timestamp       = o.timestamp
             and t.rz              = o.rz
             and t.dbSys           = o.dbSys
             and t.ssid            = o.ssid
             and t.EVENT_TYPE      = o.EVENT_TYPE
             and t.VICTIM_CORR_ID  = o.VICTIM_CORR_ID
             and t.HOLDER_CORR_ID  = o.HOLDER_CORR_ID
             and t.NAME            = o.NAME
           --    or strip(t.name) || ' 00'
           --       = left(o.name, length(strip(t.name))+3) )
        ) othCnt
      , t.* from A540769.tqz060Timeout t
  where rz = 'RZ2'
    and timestamp between '2014-10-06-04.00.00'
                      and '2014-10-09-05.00.00'
union all
  select 'old' on
      , (select count(*)
           from a540769.tqz060Timeout o
           where t.timestamp       = o.timestamp
             and t.rz              = o.rz
             and t.dbSys           = o.dbSys
             and t.ssid            = o.ssid
             and t.EVENT_TYPE      = o.EVENT_TYPE
             and t.VICTIM_CORR_ID  = o.VICTIM_CORR_ID
             and t.HOLDER_CORR_ID  = o.HOLDER_CORR_ID
             and t.NAME            = o.NAME
           --    or strip(o.name) || ' 00'
           --       = left(t.name, length(strip(o.name))+3) )
        ) othCnt
      , t.* from oa1p.tqz060Timeout t
  where rz = 'RZ2'
    and timestamp between '2014-10-05-04.00.00'
                      and '2014-10-09-05.00.00'
)
select min(on), max(on)
      , othCnt
      , timestamp
      , rz
      , dbSys
      , ssid
      , EVENT_TYPE
      , VICTIM_CORR_ID
      , HOLDER_CORR_ID
      , NAME
    from n
    where othCnt <> 1
    group by   othCnt
             , timestamp
             , rz
             , dbSys
             , ssid
             , EVENT_TYPE
             , VICTIM_CORR_ID
             , HOLDER_CORR_ID
             , NAME
    having min(on) = max(on)
    order by timestamp, rz, dbSys, event_type, min(on)
;x;
select * from n
    where othCnt <> 1
    order by timestamp, rz, dbSys, event_type, on
}¢--- A540769.WK.SQL(LOGEXTIM) cre=2014-10-21 mod=2015-07-07-09.49.20 A540769 ---
with s as
(
    select
          case when timestamp between  '2015-07-05-09.23.00'
                                  and  '2015-07-05-09.29.00' then 1
               when timestamp between  '2015-06-28-09.12.00'
                                  and  '2015-06-28-09.19.00' then 2
               when timestamp between  '2015-06-21-09.00.00'
                                  and  '2015-06-21-09.04.00' then 3
               else 0  end g
       , t.*
    from oa1p.tqz060timeout t
    where rz = 'RZ2' and dbSys = 'DBOF'
                and timestamp between  '2015-06-21-09.00.00'
                                  and  '2015-06-21-09.04.00'
)
select count(*), holder_corr_id
    , min(timestamp), max(timestamp)
    , min(name), max(name)
    from s
    group by holder_corr_id
    order by 1 desc
;X;
with s as
(
    select trunc_timestamp(timestamp, 'dd') tst
       ,  case when timestamp between  '2015-07-05-09.23.00'
                                  and  '2015-07-05-09.29.00' then 1
               when timestamp between  '2015-06-28-09.12.00'
                                  and  '2015-06-28-09.19.00' then 2
               when timestamp between  '2015-06-21-09.00.00'
                                  and  '2015-06-21-09.04.00' then 3
               else 0  end g
       , t.*
    from oa1p.tqz060timeout t
    where rz = 'RZ2' and dbSys = 'DBOF'
   --   and name like '%NZ01A1P%'
    --  and name like '%NZ01A1P%A200A%'
    --  and (victim_plan like 'WI5611%'
    --    or holder_plan like 'WI5611%')
        and  timestamp between  '2015-06-21-00.00.00'
                          and  '2015-07-06-00.00.00'
)
select g -- date(min(timestamp)) --- , date(max(timestamp))
    ,  sum(case when event_type = 'D' then 1 else 0 end) deadlock
    ,  sum(case when event_type = 'T' then 1 else 0 end) timeout
    , count(*)
    , min(timestamp), max(timestamp)
    , min(name), max(name)
 -- , min(plan_name), max(plan_name)
 -- , min(package_name), max(package_name)
    , min(event_type), max(event_type)
    , min(loadDate), max(loadDate) tst
    from s
    group by tst, g
    order by tst desc, g
;x;
select int(count(*)) total
    , int(sum(case when event_type = 'D' then 1 else 0 end)) deadlo
    , int(sum(case when event_type = 'T' then 1 else 0 end))timeout
    , substr(type, 1, 10) type
    , left(name, 16)
    from oa1p.tqz060timeout t
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name like '%VV%'
        and timestamp >= '2015-05-01-00.00.00'
    group by type, left(name, 16)
    order by 1  desc
;x;
with s as
( select case when loadDate <  '14.11.2014' then 1 else 0 end t1
       ,      trunc_timestamp(timestamp, 'iw') tst
       , t.*
    from oa1p.tqz060timeout t
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name like '%VV%'
      --and name like '%VDPS230%'
        and timestamp >= '2014-11-01-00.00.00'
)
select date(tst)
    ,  sum(case when event_type = 'D' then 1 else 0 end) deadlock
    ,  sum(case when event_type = 'T' then 1 else 0 end) timeout
    , min(name), max(name)
 -- , min(plan_name), max(plan_name)
 -- , min(package_name), max(package_name)
    , min(event_type), max(event_type)
    , count(*)
    , min(loadDate), tst
    from s
    group by tst
    order by tst desc
;x;
with s as
( select case when loadDate <= '03.10.2014' then 0 else 1 end t1
       , trunc_timestamp(timestamp, 'dd') tst
       , t.*
    from oa1p.tqz064lockEscal t
    where rz = 'RZ2' and dbSys = 'DBOF'
        and resource like '%VV%'
)
select

      count(*)
    , min(loadDate), tst
    , min(resource), max(resource)
    , min(plan_name), max(plan_name)
    , min(package_name), max(package_name)
    , min(event_type), max(event_type)
    from s
    group by t1, tst
    order by t1 desc, tst desc
;x;
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
    ,  sum(case when event_type = 'T' then 1 else 0 end) timeout
    , count(*)
    , trunc_timestamp(timestamp, 'mon')
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name like '%WB%'
        and timestamp > current timestamp - 1 year
    group by trunc_timestamp(timestamp, 'mon')
    order by 4 desc
;x;
select *
    from oa1p.tqz064LockEscal
    where rz = 'RZ2' and dbSys = 'DBOF'
        and resource like '%WB%'
        and timestamp > currentDA540769mp - 1 month
    order by timestamp desc
;x;
select *
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name like '%WB%'
        and timestamp > current timestamp - 1 month
    order by timestamp desc
}¢--- A540769.WK.SQL(LOGEXTO) cre=2014-10-31 mod=2015-10-03-11.10.43 A540769 ---
set current application compatibility 'V11R1';
select rz, dbSys, loadDate, count(*)
    from oa1p.tqz060timeout
    where loadDate > current date - 10 days
    group by rollup(loadDate, rz, dbSys)
    order by rz, dbSys, loadDate desc
;X;
select ' ' || reason_code
      , sum(case when event_type = 'D' then 1 else 0 end) d
      , sum(case when event_type = 'T' then 1 else 0 end) t
      , sum(case when event_type = ''  then 1 else 0 end) sp
      , sum(case when event_type not in ('D', 'T', '')
              then 1 else 0 end) oth
      , count(*) cnt
    from oa1p.tqz060Timeout t
    group by reason_code
;x;
select count(*), event_type, reason_code
    from oa1p.tqz060Timeout t
    group by event_type, reason_code
;x;
    where rz = 'RZ2' and dbSys = 'DBOF'
           and victim_plan like 'DSNUTI%'
    --  and name like '%SYSUTI%'
    order by timestamp desc
    fetch first 100 rows only
;x;
with g as
(
  select count(*) cnt
       , date(min(timestamp))  d
       , sum(case when timestamp > current Timestamp - 1 month
               then 1 else 0 end) cMo
       , substr(name, 1, 15) n17
       , min(name) rMin, max(name) rMax
    from oa1p.tqz060Timeout t
    where rz = 'RZ2' and dbSys = 'DBOF'
        and (
               holder_plan like 'RV5650%'
            or victim_plan like 'RV5650%'
     --     or plan_name like '%serv%' or package_name like '%serv%'
            or name like 'RV01A1P .A200A%'
            )
        and timestamp > current timestamp - 1 year
    group by substr(name, 1, 15), trunc_timestamp(timestamp, 'mon')
    order by 2, 3
)
, t as
(
  select sum(cnt) cnt, sum(cMo) cMo, n17
      from g
      group by n17
)
select g.*
    from g join t on g.n17 = t.n17
    order by cMo desc, cnt desc, n17
;x;L
with g as
(
  select count(*) cnt
       , sum(case when timestamp > current Timestamp - 1 month
               then 1 else 0 end) cMo
       , substr(name, 1, 17) n17
       , type
       , min(name) rMin, max(name) rMax
    from oa1p.tqz060timeout t
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name like '%VV%'
        and timestamp > current timestamp - 1 year
    group by substr(name, 1, 17), type
    order by 2, 3
)
, s as
(
  select sum(cnt) cnt, sum(cMo) cMo, n17
      from g
      group by n17
)
, t as
(
  select cnt, cMo
       , row_number() over(order by cnt desc) rCn
       , row_number() over(order by cMo desc) rMo
       , n17
      from s
)
select g.*, rCn, rMo
    from g join t on g.n17 = t.n17
    order by cMo desc, cnt desc, n17, type
;x;L
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
    ,  sum(case when event_type = 'T' then 1 else 0 end) timeout
    , min(name), max(name)
    , min(plan_name), max(plan_name)
    , min(package_name), max(package_name)
    , min(event_type), max(event_type)
    , count(*)
    , min(loadDate), tst
    from s
    where rz = 'RR2' and dbSys = 'DBOF'
        and name like '%VV%'
        and timestamp > current timestamp - 1 year
    group by t1, tst
    order by t1 desc, tst desc
;x;
with s as
( select case when loadDate <= '03.10.2014' then 0 else 1 end t1
       , trunc_timestamp(timestamp, 'dd') tst
       , t.*
    from oa1p.tqz060timeout t
)
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
    ,  sum(case when event_type = 'T' then 1 else 0 end) timeout
    , min(name), max(name)
    , min(plan_name), max(plan_name)
    , min(package_name), max(package_name)
    , min(event_type), max(event_type)
    , count(*)
    , min(loadDate), tst
    from s
    where rz = 'RR2' and dbSys = 'DBOF'
        and name like '%VV%'
        and timestamp > current timestamp - 1 year
    group by t1, tst
    order by t1 desc, tst desc
;x;
with s as
( select case when loadDate <= '03.10.2014' then 0 else 1 end t1
       , trunc_timestamp(timestamp, 'dd') tst
       , t.*
    from oa1p.tqz064lockEscal t
    where rz = 'RR2' and dbSys = 'DBOF'
        and resource like '%VV%'
)
select

      count(*)
    , min(loadDate), tst
    , min(resource), max(resource)
    , min(plan_name), max(plan_name)
    , min(package_name), max(package_name)
    , min(event_type), max(event_type)
    from s
    group by t1, tst
    order by t1 desc, tst desc
;x;
select sum(case when event_type = 'D' then 1 else 0 end) deadlock
    ,  sum(case when event_type = 'T' then 1 else 0 end) timeout
    , count(*)
    , trunc_timestamp(timestamp, 'mon')
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name like '%WB%'
        and timestamp > current timestamp - 1 year
    group by trunc_timestamp(timestamp, 'mon')
    order by 4 desc
;x;
select *
    from oa1p.tqz064LockEscal
    where rz = 'RZ2' and dbSys = 'DBOF'
        and resource like '%WB%'
        and timestamp > currentDA540769mp - 1 month
    order by timestamp desc
;x;
select *
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and name like '%WB%'
        and timestamp > current timestamp - 1 month
    order by timestamp desc
}¢--- A540769.WK.SQL(LOGEXUCM) cre=2014-10-02 mod=2014-10-06-09.11.56 A540769 ---
with n as
(
  select 'new' on
      , (select count(*)
           from oa1p.tqz063Uow o
           where t.timestamp       = o.timestamp
             and t.rz              = o.rz
             and t.dbSys           = o.dbSys
             and t.ssid            = o.ssid
             and t.EVENT_TYPE      = o.EVENT_TYPE
             and t.PLAN_NAME       = o.PLAN_NAME
             and t.CORRID_ID       = o.CORRID_ID
             and t.CONN_ID         = o.CONN_ID
             and t.AUTHID          = o.AUTHID
             and t.LOGREC          = o.LOGREC
        ) othCnt
      , t.* from A540769.tqz063Uow t
  where rz = 'RZ2'
    and timestamp between '2014-10-05-04.00.00'
                      and '2014-10-09-00.00.00'
union all
  select 'old' on
      , (select count(*)
           from a540769.tqz063Uow o
           where t.timestamp       = o.timestamp
             and t.rz              = o.rz
             and t.dbSys           = o.dbSys
             and t.ssid            = o.ssid
             and t.EVENT_TYPE      = o.EVENT_TYPE
             and t.PLAN_NAME       = o.PLAN_NAME
             and t.CORRID_ID       = o.CORRID_ID
             and t.CONN_ID         = o.CONN_ID
             and t.AUTHID          = o.AUTHID
             and t.LOGREC          = o.LOGREC
        ) othCnt
      , t.* from oa1p.tqz063Uow     t
  where rz = 'RZ2'
    and timestamp between '2014-10-05-04.00.00'
                      and '2014-10-09-00.00.00'
)
select * from n
 -- where othCnt <> 1
    order by timestamp, rz, dbSys, event_type, on
}¢--- A540769.WK.SQL(MAPTAB) cre=2015-02-02 mod=2015-02-02-15.17.40 A540769 ----
$#@
call sqlconnect dx0g
m.sqlRetOk = m.sqlRetOk '-601'
$;
call sqlstmts
$<=¢
 SET CURRENT SQLID = 'S100447';

    CREATE DATABASE DB2MAPP
           BUFFERPOOL BP2
           INDEXBP    BP1
           STOGROUP GSMS
           CCSID EBCDIC;

$do ix=1 to 10 $@=¢

 $=ix=- right(ix, 2, 0)


    CREATE TABLESPACE MAPTAB$ix
           IN DB2MAPP
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           BUFFERPOOL BP2
           CLOSE YES
           LOCKMAX SYSTEM
           SEGSIZE 64
           FREEPAGE 0
           PCTFREE 5
           GBPCACHE CHANGED
           DEFINE NO
           LOGGED
           TRACKMOD YES
           COMPRESS YES
           LOCKSIZE ANY
           MAXROWS 255
           CCSID EBCDIC;


    CREATE TABLE S100447.MAPTAB$ix
        ("TYPE" CHARACTER(1) FOR SBCS DATA
                                                        NOT NULL
        ,SOURCE_RID CHARACTER(5) FOR SBCS DATA
                                                        NOT NULL
        ,TARGET_XRID CHARACTER(9) FOR SBCS DATA
                                                        NOT NULL
  WITH DEFAULT
        ,LRSN CHARACTER(6) FOR SBCS DATA
                                                        NOT NULL
        )
        IN DB2MAPP.MAPTAB$ix
   APPEND NO
   NOT VOLATILE CARDINALITY
   DATA CAPTURE CHANGES
   AUDIT NONE
   CCSID EBCDIC;


    CREATE        UNIQUE INDEX S100447.MAPTAB${ix}_IX
           ON S100447.MAPTAB$ix
          (SOURCE_RID ASC
          ,"TYPE" ASC
          ,TARGET_XRID ASC
          ,LRSN ASC
          )
           NOT CLUSTER
           DEFINE YES
           COMPRESS NO
           BUFFERPOOL BP1
           CLOSE NO
           DEFER NO
           COPY NO
           USING STOGROUP GSMS
               PRIQTY -1
               SECQTY -1
               ERASE NO
           FREEPAGE 0
           PCTFREE 10
           GBPCACHE CHANGED
           PIECESIZE 2097152K;
 commit;
$!
$!
}¢--- A540769.WK.SQL(MAT) cre=2006-08-10 mod=2006-08-10-18.01.53 F540769 -------
lock table oa1a.tit001a1 in exclusive mode
}¢--- A540769.WK.SQL(MATUSE) cre=2007-05-14 mod=2007-05-14-12.16.08 F540769 ----
set current refresh age = any;
select current refresh age from sysibm.sysdummy1;
    SELECT NI920001
       , NI920002
       , NI920003
       , COUNT(*) COUNT
       , SUM(CASE WHEN NI920005 ='U' THEN 1 ELSE 0 END) URVRS
       , SUM(CASE WHEN NI920005 ='S' THEN 1 ELSE 0 END) SRVS
       , SUM(CASE WHEN NI920005 ='E' THEN 1 ELSE 0 END) ERRS
       , SUM(CASE WHEN NI920005 ='W' THEN 1 ELSE 0 END) WARNS
       , SUM(CASE WHEN NI920005 ='I' THEN 1 ELSE 0 END) INFOS
       FROM gdb0237.TNI920A101A
         WHERE NI920001='20070511'
       GROUP BY NI920001
       , NI920002
       , NI920003
;
}¢--- A540769.WK.SQL(MATUSENO) cre=2007-05-14 mod=2007-05-14-12.16.38 F540769 ---
select current refresh age from sysibm.sysdummy1;
    SELECT NI920001
       , NI920002
       , NI920003
       , COUNT(*) COUNT
       , SUM(CASE WHEN NI920005 ='U' THEN 1 ELSE 0 END) URVRS
       , SUM(CASE WHEN NI920005 ='S' THEN 1 ELSE 0 END) SRVS
       , SUM(CASE WHEN NI920005 ='E' THEN 1 ELSE 0 END) ERRS
       , SUM(CASE WHEN NI920005 ='W' THEN 1 ELSE 0 END) WARNS
       , SUM(CASE WHEN NI920005 ='I' THEN 1 ELSE 0 END) INFOS
       FROM gdb0237.TNI920A101A
         WHERE NI920001='20070511'
       GROUP BY NI920001
       , NI920002
       , NI920003
;
}¢--- A540769.WK.SQL(METZ) cre=2006-06-12 mod=2006-06-12-15.12.34 F540769 ------
SET CURRENT SQLID = 'S100447';
CREATE ALIAS VDPS.XPS_VLIID001_V03  FOR VDPS2.XPS_VLIID001_V03;
}¢--- A540769.WK.SQL(MF) cre=2012-05-23 mod=2012-05-23-12.45.49 A540769 --------
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
set current schema = oa1t;
explain plan set queryno = 3   for
 SELECT DISTINCT (A.ID_MITTELFLUSS),A.BUID_KUNDE,A.CIFNUMMER_KUNDE,
     a.KUNDEN_BEZIEHUNGNR,a.AUFTRAGSNUMMER,a.BEWEGUNGSART_Depot,
     A.VALOR,A.VALOREN_SEQUENZNR,A.MF_PRODUKT,A.BUCHUNGSDATUM,A.BUWHR,
     a .ZU_ABFLUSS,a.VOLUMEN_NOM_STCK,a.LIFE_CYCLE_STATUs,
   B.POLICEN_NR
 FROM VMF150A1V A LEFT OUTER JOIN VMF401A1V B
 ON A.ID_MITTELFLUSS = b.UUID
 where a.LIFE_CYCLE_STATUS IN (0, 90)
      AND A.ERSTELLUNGSTIMSTMP BETWEEN '2012-03-23-00.00.00.000000'
      and '2012-05-23-23.59.59.999999' and a.STORNO ^= 'S'
      AND A.BETRAG_BUWHR = 0 WITH UR
 ;
set current schema = A540769;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by --collid, progName, applName, explain_time,
             queryNo, qBlockNo, planno,
             stage, predNo
    with ur
;
rollback
;;;;
}¢--- A540769.WK.SQL(MFDEL) cre=2012-07-12 mod=2012-07-12-14.20.20 A540769 -----
select *
    from oa1t.tmf202a1
    where buid = '0000'
       and ( selcd = 'MF8320 CID-RIGHTS'
          or selcd = 'MF8320 SF-RIGHTS' )
       and letzteMut = (
                    select timestamp(TEV_TIMESTAMP)
                        from oa1t.vmf202a1
                       )
}¢--- A540769.WK.SQL(MFHISV0) cre=2014-10-17 mod=2014-10-17-14.24.53 A540769 ---
declare global temporary table session.key
   ( MF150001 char(16)
   ) ccsid ebcdic on commit delete rows
;
select current timestamp , 'start' from sysibm.sysDummy1
;
insert into session.key
  select mf150001
    from oa1p.tmf150a1
    where mf150013 between '23.09.2013' and '30.09.2013'
    order by mf150013
    fetch first 500 rows only
;
select count(*)
    from session.key
;
select current timestamp , 'key' from sysibm.sysDummy1
;
insert into oa1p.tmf150h1
  select MF150001
       , MF150002
       , MF150003
       , MF150004
       , MF150005
       , MF150006
       , MF150007
       , MF150008
       , MF150009
       , MF150010
       , MF150011
       , MF150012
       , MF150013
       , MF150014
       , MF150015
       , MF150016
       , MF150017
       , MF150018
       , MF150019
       , MF150020
       , MF150021
       , MF150022
       , MF150023
       , MF150024
       , MF150025
       , MF150026
       , MF150027
       , MF150028
       , MF150029
       , MF150030
       , MF150031
       , MF150032
       , MF150033
       , MF150034
       , MF150035
       , MF150036
       , MF150037
       , MF150038
       , MF150039
       , MF150040
       , MF150041
       , MF150042
       , MF150043
       , MF150044
       , MF150045
       , MF150046
       , MF150047
       , MF150051
       , MF150052
       , MF150053
       , MF150054
       , MF150055
       , MF150056
       , MF150059
       , MF150060
       , MF150062
       , MF150063
       , MF150064
       , MF150065
       , MF150066
       , MF150067
       , MF150068
       , MF150069
       , MF150070
       , MF150071
       , MF150072
       , MF150073
       , MF150074
       , MF150075
       , MF150076
       , MF150077
       , MF150078
       , MF150079
       , MF150080
       , MF150081
       , MF150082
       , MF150083
       , MF150084
       , MF150085
       , MF150086
       , MF150087
       , MF150088
       , MF150089
       , MF150090
       , MF150091
       , MF150092
       , MF150019A
  from oa1p.tmf150a1
    where mf150001 in (select mf150001 from session.key)
;
select current timestamp , 'ins h' from sysibm.sysDummy1
;
delete from oa1p.tmf150a1
    where mf150001 in (select mf150001 from session.key)
;
select current timestamp , 'del a' from sysibm.sysDummy1
;
delete from session.key
;
select current timestamp , 'start' from sysibm.sysDummy1
;
insert into session.key
  select mf150001
    from oa1p.tmf150a1
    where mf150013 between '23.09.2013' and '30.09.2013'
    order by mf150013
    fetch first 500 rows only
;
select count(*)
    from session.key
;
select current timestamp , 'key' from sysibm.sysDummy1
;
insert into oa1p.tmf150h1
  select MF150001
       , MF150002
       , MF150003
       , MF150004
       , MF150005
       , MF150006
       , MF150007
       , MF150008
       , MF150009
       , MF150010
       , MF150011
       , MF150012
       , MF150013
       , MF150014
       , MF150015
       , MF150016
       , MF150017
       , MF150018
       , MF150019
       , MF150020
       , MF150021
       , MF150022
       , MF150023
       , MF150024
       , MF150025
       , MF150026
       , MF150027
       , MF150028
       , MF150029
       , MF150030
       , MF150031
       , MF150032
       , MF150033
       , MF150034
       , MF150035
       , MF150036
       , MF150037
       , MF150038
       , MF150039
       , MF150040
       , MF150041
       , MF150042
       , MF150043
       , MF150044
       , MF150045
       , MF150046
       , MF150047
       , MF150051
       , MF150052
       , MF150053
       , MF150054
       , MF150055
       , MF150056
       , MF150059
       , MF150060
       , MF150062
       , MF150063
       , MF150064
       , MF150065
       , MF150066
       , MF150067
       , MF150068
       , MF150069
       , MF150070
       , MF150071
       , MF150072
       , MF150073
       , MF150074
       , MF150075
       , MF150076
       , MF150077
       , MF150078
       , MF150079
       , MF150080
       , MF150081
       , MF150082
       , MF150083
       , MF150084
       , MF150085
       , MF150086
       , MF150087
       , MF150088
       , MF150089
       , MF150090
       , MF150091
       , MF150092
       , MF150019A
  from oa1p.tmf150a1
    where mf150001 in (select mf150001 from session.key)
;
select current timestamp , 'ins h' from sysibm.sysDummy1
;
delete from oa1p.tmf150a1
    where mf150001 in (select mf150001 from session.key)
;
select current timestamp , 'del a' from sysibm.sysDummy1
;
rollback
;
select current timestamp , 'rollBack' from sysibm.sysDummy1
;
}¢--- A540769.WK.SQL(MFHISV0E) cre=2014-10-17 mod=2014-10-17-13.41.25 A540769 ---
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
declare global temporary table session.key
   ( MF150001 char(16)
   ) ccsid ebcdic on commit delete rows
;
explain plan set queryno = 1   for
insert into session.key
  select mf150001
    from oa1p.tmf150a1
    where mf150013 between '23.09.2013' and '24.09.2013'
    order by mf150013
    fetch first 10 rows only
;
explain plan set queryno = 5   for
insert into oa1p.tmf150h1
  select MF150001
       , MF150002
       , MF150003
       , MF150004
       , MF150005
       , MF150006
       , MF150007
       , MF150008
       , MF150009
       , MF150010
       , MF150011
       , MF150012
       , MF150013
       , MF150014
       , MF150015
       , MF150016
       , MF150017
       , MF150018
       , MF150019
       , MF150020
       , MF150021
       , MF150022
       , MF150023
       , MF150024
       , MF150025
       , MF150026
       , MF150027
       , MF150028
       , MF150029
       , MF150030
       , MF150031
       , MF150032
       , MF150033
       , MF150034
       , MF150035
       , MF150036
       , MF150037
       , MF150038
       , MF150039
       , MF150040
       , MF150041
       , MF150042
       , MF150043
       , MF150044
       , MF150045
       , MF150046
       , MF150047
       , MF150051
       , MF150052
       , MF150053
       , MF150054
       , MF150055
       , MF150056
       , MF150059
       , MF150060
       , MF150062
       , MF150063
       , MF150064
       , MF150065
       , MF150066
       , MF150067
       , MF150068
       , MF150069
       , MF150070
       , MF150071
       , MF150072
       , MF150073
       , MF150074
       , MF150075
       , MF150076
       , MF150077
       , MF150078
       , MF150079
       , MF150080
       , MF150081
       , MF150082
       , MF150083
       , MF150084
       , MF150085
       , MF150086
       , MF150087
       , MF150088
       , MF150089
       , MF150090
       , MF150091
       , MF150092
       , MF150019A
  from oa1p.tmf150a1
    where mf150001 in (select mf150001 from session.key)
;
explain plan set queryno = 9   for
delete from oa1p.tmf150a1
    where mf150001 in (select mf150001 from session.key)
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
;
rollback
;
select current timestamp , 'rollBack' from sysibm.sysDummy1
;
}¢--- A540769.WK.SQL(MFJOIN) cre=2010-09-03 mod=2010-09-03-20.56.09 A540769 ----
select current timestamp from sysibm.sysdummy1;
select t.part, t.mf150023, t.mf150013
    from A540769.tmfnvhash t
    where t.part <> ( select t.part
        from A540769.tmfnvpart p
        where t.mf150hash between p.von and p.bis)
;
select current timestamp from sysibm.sysdummy1;
    and (t.part <> p.part or t.part < 0 or t.part > 11047)
    order by t.part                  asc,
             t.MF150023              ASC,
             t.MF150013              DESC
    with ur
;
}¢--- A540769.WK.SQL(MFPART) cre=2010-04-17 mod=2010-04-17-13.15.28 A540769 ----
--lect 'when MF150013 <= ''' || strip(limitKey) || ''' then '
--           || right('     ' || strip(char(partition)), 5) ,
--                      partition, limitkey, limitkey_internal,
--                      hex(limitkey_internal)
--  from sysibm.systablePart
--  where dbName = 'MF01A1P' and tsName = 'A150A'
--  order by partition
with p as
(
select case
        when MF150013 <= '31.12.2000' then     1
        when MF150013 <= '31.12.2001' then     2
        when MF150013 <= '31.12.2002' then     3
        when MF150013 <= '31.12.2003' then     4
        when MF150013 <= '31.12.2004' then     5
        when MF150013 <= '31.12.2005' then     6
        when MF150013 <= '31.12.2006' then     7
        when MF150013 <= '31.12.2007' then     8
        when MF150013 <= '31.12.2008' then     9
        when MF150013 <= '03.01.2009' then    10
        when MF150013 <= '06.01.2009' then    11
        when MF150013 <= '09.01.2009' then    12
        when MF150013 <= '12.01.2009' then    13
        when MF150013 <= '15.01.2009' then    14
        when MF150013 <= '18.01.2009' then    15
        when MF150013 <= '21.01.2009' then    16
        when MF150013 <= '24.01.2009' then    17
        when MF150013 <= '27.01.2009' then    18
        when MF150013 <= '31.01.2009' then    19
        when MF150013 <= '03.02.2009' then    20
        when MF150013 <= '06.02.2009' then    21
        when MF150013 <= '09.02.2009' then    22
        when MF150013 <= '12.02.2009' then    23
        when MF150013 <= '15.02.2009' then    24
        when MF150013 <= '18.02.2009' then    25
        when MF150013 <= '21.02.2009' then    26
        when MF150013 <= '24.02.2009' then    27
        when MF150013 <= '27.02.2009' then    28
        when MF150013 <= '28.02.2009' then    29
        when MF150013 <= '03.03.2009' then    30
        when MF150013 <= '06.03.2009' then    31
        when MF150013 <= '09.03.2009' then    32
        when MF150013 <= '12.03.2009' then    33
        when MF150013 <= '15.03.2009' then    34
        when MF150013 <= '18.03.2009' then    35
        when MF150013 <= '21.03.2009' then    36
        when MF150013 <= '24.03.2009' then    37
        when MF150013 <= '27.03.2009' then    38
        when MF150013 <= '31.03.2009' then    39
        when MF150013 <= '03.04.2009' then    40
        when MF150013 <= '06.04.2009' then    41
        when MF150013 <= '09.04.2009' then    42
        when MF150013 <= '12.04.2009' then    43
        when MF150013 <= '15.04.2009' then    44
        when MF150013 <= '18.04.2009' then    45
        when MF150013 <= '21.04.2009' then    46
        when MF150013 <= '24.04.2009' then    47
        when MF150013 <= '27.04.2009' then    48
        when MF150013 <= '30.04.2009' then    49
        when MF150013 <= '03.05.2009' then    50
        when MF150013 <= '06.05.2009' then    51
        when MF150013 <= '09.05.2009' then    52
        when MF150013 <= '12.05.2009' then    53
        when MF150013 <= '15.05.2009' then    54
        when MF150013 <= '18.05.2009' then    55
        when MF150013 <= '21.05.2009' then    56
        when MF150013 <= '24.05.2009' then    57
        when MF150013 <= '27.05.2009' then    58
        when MF150013 <= '31.05.2009' then    59
        when MF150013 <= '03.06.2009' then    60
        when MF150013 <= '06.06.2009' then    61
        when MF150013 <= '09.06.2009' then    62
        when MF150013 <= '12.06.2009' then    63
        when MF150013 <= '15.06.2009' then    64
        when MF150013 <= '18.06.2009' then    65
        when MF150013 <= '21.06.2009' then    66
        when MF150013 <= '24.06.2009' then    67
        when MF150013 <= '27.06.2009' then    68
        when MF150013 <= '30.06.2009' then    69
        when MF150013 <= '03.07.2009' then    70
        when MF150013 <= '06.07.2009' then    71
        when MF150013 <= '09.07.2009' then    72
        when MF150013 <= '12.07.2009' then    73
        when MF150013 <= '15.07.2009' then    74
        when MF150013 <= '18.07.2009' then    75
        when MF150013 <= '21.07.2009' then    76
        when MF150013 <= '24.07.2009' then    77
        when MF150013 <= '27.07.2009' then    78
        when MF150013 <= '31.07.2009' then    79
        when MF150013 <= '03.08.2009' then    80
        when MF150013 <= '06.08.2009' then    81
        when MF150013 <= '09.08.2009' then    82
        when MF150013 <= '12.08.2009' then    83
        when MF150013 <= '15.08.2009' then    84
        when MF150013 <= '18.08.2009' then    85
        when MF150013 <= '21.08.2009' then    86
        when MF150013 <= '24.08.2009' then    87
        when MF150013 <= '27.08.2009' then    88
        when MF150013 <= '31.08.2009' then    89
        when MF150013 <= '03.09.2009' then    90
        when MF150013 <= '06.09.2009' then    91
        when MF150013 <= '09.09.2009' then    92
        when MF150013 <= '12.09.2009' then    93
        when MF150013 <= '15.09.2009' then    94
        when MF150013 <= '18.09.2009' then    95
        when MF150013 <= '21.09.2009' then    96
        when MF150013 <= '24.09.2009' then    97
        when MF150013 <= '27.09.2009' then    98
        when MF150013 <= '30.09.2009' then    99
        when MF150013 <= '03.10.2009' then   100
        when MF150013 <= '06.10.2009' then   101
        when MF150013 <= '09.10.2009' then   102
        when MF150013 <= '12.10.2009' then   103
        when MF150013 <= '15.10.2009' then   104
        when MF150013 <= '18.10.2009' then   105
        when MF150013 <= '21.10.2009' then   106
        when MF150013 <= '24.10.2009' then   107
        when MF150013 <= '27.10.2009' then   108
        when MF150013 <= '31.10.2009' then   109
        when MF150013 <= '03.11.2009' then   110
        when MF150013 <= '06.11.2009' then   111
        when MF150013 <= '09.11.2009' then   112
        when MF150013 <= '12.11.2009' then   113
        when MF150013 <= '15.11.2009' then   114
        when MF150013 <= '18.11.2009' then   115
        when MF150013 <= '21.11.2009' then   116
        when MF150013 <= '24.11.2009' then   117
        when MF150013 <= '27.11.2009' then   118
        when MF150013 <= '30.11.2009' then   119
        when MF150013 <= '03.12.2009' then   120
        when MF150013 <= '06.12.2009' then   121
        when MF150013 <= '09.12.2009' then   122
        when MF150013 <= '12.12.2009' then   123
        when MF150013 <= '15.12.2009' then   124
        when MF150013 <= '18.12.2009' then   125
        when MF150013 <= '21.12.2009' then   126
        when MF150013 <= '24.12.2009' then   127
        when MF150013 <= '27.12.2009' then   128
        when MF150013 <= '31.12.2009' then   129
        when MF150013 <= '03.01.2010' then   130
        when MF150013 <= '06.01.2010' then   131
        when MF150013 <= '09.01.2010' then   132
        when MF150013 <= '12.01.2010' then   133
        when MF150013 <= '15.01.2010' then   134
        when MF150013 <= '18.01.2010' then   135
        when MF150013 <= '21.01.2010' then   136
        when MF150013 <= '24.01.2010' then   137
        when MF150013 <= '27.01.2010' then   138
        when MF150013 <= '31.01.2010' then   139
        when MF150013 <= '03.02.2010' then   140
        when MF150013 <= '06.02.2010' then   141
        when MF150013 <= '09.02.2010' then   142
        when MF150013 <= '12.02.2010' then   143
        when MF150013 <= '15.02.2010' then   144
        when MF150013 <= '18.02.2010' then   145
        when MF150013 <= '21.02.2010' then   146
        when MF150013 <= '24.02.2010' then   147
        when MF150013 <= '27.02.2010' then   148
        when MF150013 <= '28.02.2010' then   149
        when MF150013 <= '03.03.2010' then   150
        when MF150013 <= '06.03.2010' then   151
        when MF150013 <= '09.03.2010' then   152
        when MF150013 <= '12.03.2010' then   153
        when MF150013 <= '15.03.2010' then   154
        when MF150013 <= '18.03.2010' then   155
        when MF150013 <= '21.03.2010' then   156
        when MF150013 <= '24.03.2010' then   157
        when MF150013 <= '27.03.2010' then   158
        when MF150013 <= '31.03.2010' then   159
        when MF150013 <= '03.04.2010' then   160
        when MF150013 <= '06.04.2010' then   161
        when MF150013 <= '09.04.2010' then   162
        when MF150013 <= '12.04.2010' then   163
        when MF150013 <= '15.04.2010' then   164
        when MF150013 <= '18.04.2010' then   165
        when MF150013 <= '21.04.2010' then   166
        when MF150013 <= '24.04.2010' then   167
        when MF150013 <= '27.04.2010' then   168
        when MF150013 <= '30.04.2010' then   169
        when MF150013 <= '03.05.2010' then   170
        when MF150013 <= '06.05.2010' then   171
        when MF150013 <= '09.05.2010' then   172
        when MF150013 <= '12.05.2010' then   173
        when MF150013 <= '15.05.2010' then   174
        when MF150013 <= '18.05.2010' then   175
        when MF150013 <= '21.05.2010' then   176
        when MF150013 <= '24.05.2010' then   177
        when MF150013 <= '27.05.2010' then   178
        when MF150013 <= '31.05.2010' then   179
        when MF150013 <= '03.06.2010' then   180
        when MF150013 <= '06.06.2010' then   181
        when MF150013 <= '09.06.2010' then   182
        when MF150013 <= '12.06.2010' then   183
        when MF150013 <= '15.06.2010' then   184
        when MF150013 <= '18.06.2010' then   185
        when MF150013 <= '21.06.2010' then   186
        when MF150013 <= '24.06.2010' then   187
        when MF150013 <= '27.06.2010' then   188
        when MF150013 <= '30.06.2010' then   189
        when MF150013 <= '03.07.2010' then   190
        when MF150013 <= '06.07.2010' then   191
        when MF150013 <= '09.07.2010' then   192
        when MF150013 <= '12.07.2010' then   193
        when MF150013 <= '15.07.2010' then   194
        when MF150013 <= '18.07.2010' then   195
        when MF150013 <= '21.07.2010' then   196
        when MF150013 <= '24.07.2010' then   197
        when MF150013 <= '27.07.2010' then   198
        when MF150013 <= '31.07.2010' then   199
        when MF150013 <= '03.08.2010' then   200
        when MF150013 <= '06.08.2010' then   201
        when MF150013 <= '09.08.2010' then   202
        when MF150013 <= '12.08.2010' then   203
        when MF150013 <= '15.08.2010' then   204
        when MF150013 <= '18.08.2010' then   205
        when MF150013 <= '21.08.2010' then   206
        when MF150013 <= '24.08.2010' then   207
        when MF150013 <= '27.08.2010' then   208
        when MF150013 <= '31.08.2010' then   209
        when MF150013 <= '03.09.2010' then   210
        when MF150013 <= '06.09.2010' then   211
        when MF150013 <= '09.09.2010' then   212
        when MF150013 <= '12.09.2010' then   213
        when MF150013 <= '15.09.2010' then   214
        when MF150013 <= '18.09.2010' then   215
        when MF150013 <= '21.09.2010' then   216
        when MF150013 <= '24.09.2010' then   217
        when MF150013 <= '27.09.2010' then   218
        when MF150013 <= '30.09.2010' then   219
        when MF150013 <= '03.10.2010' then   220
        when MF150013 <= '06.10.2010' then   221
        when MF150013 <= '09.10.2010' then   222
        when MF150013 <= '12.10.2010' then   223
        when MF150013 <= '15.10.2010' then   224
        when MF150013 <= '18.10.2010' then   225
        when MF150013 <= '21.10.2010' then   226
        when MF150013 <= '24.10.2010' then   227
        when MF150013 <= '27.10.2010' then   228
        when MF150013 <= '31.10.2010' then   229
        when MF150013 <= '03.11.2010' then   230
        when MF150013 <= '06.11.2010' then   231
        when MF150013 <= '09.11.2010' then   232
        when MF150013 <= '12.11.2010' then   233
        when MF150013 <= '15.11.2010' then   234
        when MF150013 <= '18.11.2010' then   235
        when MF150013 <= '21.11.2010' then   236
        when MF150013 <= '24.11.2010' then   237
        when MF150013 <= '27.11.2010' then   238
        when MF150013 <= '30.11.2010' then   239
        when MF150013 <= '03.12.2010' then   240
        when MF150013 <= '06.12.2010' then   241
        when MF150013 <= '09.12.2010' then   242
        when MF150013 <= '12.12.2010' then   243
        when MF150013 <= '15.12.2010' then   244
        when MF150013 <= '18.12.2010' then   245
        when MF150013 <= '21.12.2010' then   246
        when MF150013 <= '24.12.2010' then   247
        when MF150013 <= '27.12.2010' then   248
        when MF150013 <= '31.12.2010' then   249
        when MF150013 <= '03.01.2011' then   250
        when MF150013 <= '06.01.2011' then   251
        when MF150013 <= '09.01.2011' then   252
        when MF150013 <= '12.01.2011' then   253
        when MF150013 <= '31.12.2099' then   254
        else 9999
        end part
    , count(*) cnt, mf150013
    from oa1p.tmf150a1
--  where mf150013 < '31.12.2004'
    GROUP BY  mf150013
)
    select part, sum(cnt), min(mf150013), max(mf150013)
    from p
    group by part
    with ur
;
}¢--- A540769.WK.SQL(MFTST) cre=2010-09-03 mod=2010-09-03-14.37.42 A540769 -----
select count(*), left(MF150023, 1)
    from oa1a.tmf150a1
    where  MF150013 between '25.06.2010' and '05.07.2010'
    group by left(MF150023, 1)
    with ur
}¢--- A540769.WK.SQL(MF01084) cre=2006-04-05 mod=2006-04-05-13.24.31 F540769 ---
CREATE UNIQUE INDEX OA1A.IMF150A8
       ON OA1A.TMF150A1
     ( MF150023             ASC  ,
       MF150013             ASC  ,
       MF150001             ASC  ,
       MF150019             ASC  )
       USING STOGROUP GSMS
             PRIQTY      48
             SECQTY    7200
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 1       G
       COPY NO
                                                                      ;
}¢--- A540769.WK.SQL(MF01086) cre=2006-04-05 mod=2006-04-05-13.32.54 F540769 ---
CREATE UNIQUE INDEX OA1A.IMF150A8
       ON OA1A.TMF150A1
     ( MF150023             ASC  ,
       MF150013             ASC  ,
       MF150001             ASC  ,
       MF150019             ASC  )
       USING STOGROUP GSMS
             PRIQTY      48
             SECQTY    7200
       ERASE NO
       FREEPAGE   0
       PCTFREE 10
       GBPCACHE CHANGED
       BUFFERPOOL BP1
       CLOSE YES
       PIECESIZE 1       G
       COPY NO
                                                                      ;
}¢--- A540769.WK.SQL(MF15UNL) cre=2011-01-14 mod=2011-01-24-10.08.14 A540769 ---
with r (l, p, v, b) as
(  -- r = rekursiv Partitionen berechnen,
   --     p = Partition, v=von inklusiv, b=bis exklusiv
  select  0, 0, date('01.01.1800'), date('01.01.1900')
    from sysibm.sysdummy1
  union all select l+1, -1,
      (select min(MF150013) from oa1t.tmf150a1 where MF150013 >= r.b),b
    from r where p >= 0 and v < current date - 10 month and l < 999
  union all select l+1, year(v)*24+month(v)*2 +10-48002, v,
      v + (16-day(v)) days
    from r where p = -1 and day(v) <= 15 and l < 999
  union all select l+1, year(v)*24+month(v)*2 +11-48002, v,
      v - (day(v)-1) days + 1 month
    from r where p = -1 and day(v) > 15 and l < 999
)
, p (p, v, b) as
(
  select strip(char(p)), v, b
    from r
    where p > 0 and b < current date - 10 month
)
, t (p, v, b, n, t) as
( -- für jede Partition utility ctl: copy, load, copy
            select p.*, 1, 'COPY TABLESPACE MF01A1T.MF150H DSNUM ' || p
                                                                from p
  union all select p.*, 2, '    COPYDDN(TCOPYD) SHRLEVEL REFERENCE'
                                                                from p
  union all select p.*,10, 'EXEC SQL'                           from p
  union all select p.*,11, '  DECLARE CUR' || p ||' CURSOR FOR' from p
  union all select p.*,12, '    SELECT *'                       from p
  union all select p.*,13, '      FROM OA1T.TMF150A1'           from p
  union all select p.*,14, '      WHERE MF150013 >= '''
                        || char(v) || ''''                      from p
  union all select p.*,15, '        and MF150013 <  '''
                        || char(b) || ''''                      from p
  union all select p.*,16, '      order by MF150013 asc, MF150067 asc'
                                                                from p
  union all select p.*,17, 'ENDEXEC'                            from p
  union all select p.*,21, 'LOAD DATA INCURSOR CUR' || p        from p
  union all select p.*,22, '  LOG NO  RESUME YES '              from p
  union all select p.*,23, '  SORTDEVT DISK SORTNUM 50'         from p
  union all select p.*,24, '  WORKDDN(TSYUTS,TSOUTS)'           from p
  union all select p.*,25, '  INTO TABLE  OA1T.TMF150H1'        from p
  union all select p.*,26, '    IGNOREFIELDS YES PART ' || p    from p
  union all select p.*,31, 'COPY TABLESPACE MF01A1T.MF150H DSNUM ' || p
                                                                from p
  union all select p.*,32, '    COPYDDN(TCOPYD) SHRLEVEL REFERENCE'
                                                                from p
)
select char(t, 80) from t order by v, n
;;    ????????????
??????????????????
with d (l, d) as
(  select 0, min(MF150013)+2 month from oa1t.tmf150a1
   union all select l+1, d + 1 day from d where l < 5
)
select d, (select count(*) from oa1t.tmf150a1 where MF150013=d) a
        , (select count(*) from oa1t.tmf150h1 where MF150013=d) h
    from d
;;
( select 0count(*), MF150013
    from oa1t.tmf150a1
    where MF150013 <
        (select min(MF150013) + 5 days from oa1t.tmf150a1)
    group by MF150013
    with ur
;;
select count(*), MF150013
    from oa1t.tmf150a1
    where MF150013 < '18.02.2010'
    group by MF150013
    with ur
;;
select min(MF150013), max(MF150013)
    from oa1t.tmf150a1 ;
select min(MF150013), max(MF150013)
    from oa1t.tmf150H1 ;
;;
}¢--- A540769.WK.SQL(MF150) cre=2007-11-26 mod=2007-11-26-15.54.26 F540769 -----
select year(mf150013), count(*)
    from oa1t.tmf150a1
    group by year(mf150013)
    order by 1
}¢--- A540769.WK.SQL(MF150HAL) cre=2015-12-24 mod=2016-02-01-14.41.18 A540769 ---
set current sqlid = 'S100447';

alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.01.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.01.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.02.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '28.02.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.03.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.03.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.04.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '30.04.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.05.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.05.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.06.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '30.06.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.07.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.07.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.08.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.08.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '25.09.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '30.09.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.10.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.10.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.11.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '30.11.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.12.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.12.2015' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.01.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.01.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.02.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '29.02.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '15.03.2016' ) ;
alter TABLE OA1P.TMF150H1 add partition ENDING ( '31.03.2016' ) ;

commit;

?elect count(*) from oa1p.tmf150h1 where MF150013 = '03.03.2077'
                                                   20160201 14:40:28
}¢--- A540769.WK.SQL(MF15013) cre=2010-04-14 mod=2010-04-14-13.02.44 A540769 ---
select mf150013, count(*)
    FROM OA1A.tmf150a1
    group by mf150013
    order by mf150013 desc
    fetch first 100 rows only
    with ur
MF150013
---------+---------+-----
13.10.2009       480145
12.10.2009       166740
11.10.2009           19
10.10.2009        44929
09.10.2009       710150
08.10.2009       642392
07.10.2009       739393
06.10.2009       816595
05.10.2009      1303576
04.10.2009        18787
03.10.2009        49964
02.10.2009       946430
01.10.2009      1483369
30.09.2009      1740273
29.09.2009      1482908
28.09.2009      1417973
27.09.2009        20287
26.09.2009        54240
25.09.2009      1256858
24.09.2009       684063
23.09.2009       561024
22.09.2009       570560
21.09.2009       806047
20.09.2009        16217
19.09.2009        44641
}¢--- A540769.WK.SQL(MF200) cre= mod= ------------------------------------------
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBAF (810)     Extract time : 2006-09-26 13:26 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A401A01 In Database AV03A1A   --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=AV03A1A   Stogroup=GSMS
-- Tablespace=AV03A1A.A401A01
------------------------------------------------------------------------
--
  CREATE TABLESPACE A401A01
    IN AV03A1A
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 0
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=OA1A01.TAV401A1 In AV03A1A.A401A01
------------------------------------------------------------------------
--
  CREATE TABLE OA1A01.TAV401A1
     (AV401001             CHAR(16) FOR SBCS DATA NOT NULL,
      AV401002             CHAR(3) FOR SBCS DATA NOT NULL,
      AV401003             CHAR(12) FOR SBCS DATA NOT NULL,
      AV401004             CHAR(5) FOR SBCS DATA NOT NULL,
      AV401005             DECIMAL(15, 3) WITH DEFAULT NULL,
      AV401006             DECIMAL(15, 3) WITH DEFAULT NULL,
      AV401007             DECIMAL(15, 3) NOT NULL,
      AV401008             CHAR(1) FOR SBCS DATA NOT NULL,
      AV401009             CHAR(4) FOR SBCS DATA NOT NULL,
      AV401010             CHAR(2) FOR SBCS DATA NOT NULL,
      AV401011             DECIMAL(15, 6) WITH DEFAULT NULL,
      AV401012             DATE WITH DEFAULT NULL,
      AV401013             CHAR(4) FOR SBCS DATA NOT NULL,
      AV401014             CHAR(4) FOR SBCS DATA NOT NULL,
      AV401015             DECIMAL(15, 6) WITH DEFAULT NULL,
      AV401016             DECIMAL(15, 6) NOT NULL,
      AV401017             CHAR(3) FOR SBCS DATA NOT NULL,
      AV401018             DECIMAL(15, 6) NOT NULL,
      AV401019             DECIMAL(15, 3) NOT NULL,
      AV401020             DECIMAL(15, 3) NOT NULL,
      AV401021             DATE WITH DEFAULT NULL,
      AV401022             DECIMAL(15, 6) NOT NULL,
      AV401023             DECIMAL(15, 6) NOT NULL,
      AV401024             DECIMAL(15, 3) NOT NULL,
      AV401025             DECIMAL(15, 3) NOT NULL,
      AV401026             DECIMAL(15, 3) NOT NULL,
      AV401027             DATE WITH DEFAULT NULL,
      AV401028             DECIMAL(15, 6) WITH DEFAULT NULL,
      AV401029             DECIMAL(15, 6) NOT NULL,
      AV401030             DECIMAL(15, 6) NOT NULL,
      AV401031             DATE WITH DEFAULT NULL,
      AV401032             DECIMAL(15, 6) NOT NULL,
      AV401033             DECIMAL(15, 6) NOT NULL,
      AV401034             DECIMAL(15, 6) NOT NULL,
      AV401035             DATE WITH DEFAULT NULL,
      AV401036             DECIMAL(15, 6) NOT NULL,
      AV401037             DATE WITH DEFAULT NULL,
      AV401038             DECIMAL(15, 3) NOT NULL,
      AV401039             DECIMAL(15, 6) NOT NULL,
      AV401040             DECIMAL(15, 3) NOT NULL,
      AV401041             CHAR(7) FOR SBCS DATA NOT NULL,
      AV401042             CHAR(1) FOR SBCS DATA NOT NULL,
      AV401043             DATE WITH DEFAULT NULL,
      AV401044             DECIMAL(15, 3) NOT NULL,
      AV401045             CHAR(1) FOR SBCS DATA NOT NULL,
      AV401046             CHAR(4) FOR SBCS DATA NOT NULL,
      AV401047             CHAR(2) FOR SBCS DATA NOT NULL,
      AV401048             DATE WITH DEFAULT NULL,
      AV401049             DECIMAL(15, 6) NOT NULL,
      AV401050             DECIMAL(15, 3) NOT NULL,
      AV401051             CHAR(3) FOR SBCS DATA NOT NULL,
      AV401052             DECIMAL(15, 3) NOT NULL,
      AV401053             CHAR(1) FOR SBCS DATA NOT NULL,
      AV401054             DECIMAL(15, 3) NOT NULL,
      AV401055             CHAR(1) FOR SBCS DATA NOT NULL,
      AV401056             DECIMAL(15, 6) NOT NULL,
      AV401057             CHAR(1) FOR SBCS DATA NOT NULL,
      AV401058             DECIMAL(15, 6) NOT NULL,
      AV401059             DECIMAL(15, 3) NOT NULL,
      AV401060             DECIMAL(15, 3) NOT NULL,
      CONSTRAINT AV401001
      PRIMARY KEY (AV401001,
                   AV401002,
                   AV401003,
                   AV401004))
    IN AV03A1A.A401A01
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE OA1A01.TAV401A1 IS 'Safekeeping Security';
--
  LABEL ON OA1A01.TAV401A1
   (AV401060 IS 'CollateralValue2CHF         ',
    AV401059 IS 'CollateralValue2ValCurr     ',
    AV401058 IS 'CollateralRatio2Base        ',
    AV401057 IS 'CollateralRatio2Type        ',
    AV401056 IS 'Interest-Rate               ',
    AV401055 IS 'CollateralRatioTyp          ',
    AV401054 IS 'Agio for Redemption         ',
    AV401053 IS 'AvgPurchPriceType           ',
    AV401052 IS 'CollateralValueCHF          ',
    AV401051 IS 'AnalysisCountryCd           ',
    AV401050 IS 'NonRealPLValueTotal         ',
    AV401049 IS 'NonRealPLPercTotal          ',
    AV401048 IS 'PrematureRedemptDate        ',
    AV401047 IS 'InterestFreqCd              ',
    AV401046 IS 'Analysis CurrCd             ',
    AV401045 IS 'Booking Type Cd             ',
    AV401044 IS 'MarketValue Pos Curr        ',
    AV401043 IS 'Maturity Date               ',
    AV401042 IS 'Dynamic Text Flag           ',
    AV401041 IS 'CSLife Fund Policy No       ',
    AV401040 IS 'CollateralValueValCurr      ',
    AV401039 IS 'CollateralRatio             ',
    AV401038 IS 'ExpEarnValCurr              ',
    AV401037 IS 'PriceYrLowDate              ',
    AV401036 IS 'PriceYrLow                  ',
    AV401035 IS 'PriceYrHighDate             ',
    AV401034 IS 'PriceYrHigh                 ',
    AV401033 IS 'YieldPercCP                 ',
    AV401032 IS 'YieldPercMP                 ',
    AV401031 IS 'ExchangeRateDate            ',
    AV401030 IS 'ExchangeRateCHF             ',
    AV401029 IS 'ExchangeRateCurr            ',
    AV401028 IS 'ContractStrikePrice         ',
    AV401027 IS 'ContractExpiryDate          ',
    AV401026 IS 'ContractSize                ',
    AV401025 IS 'NonRealPLValPrice           ',
    AV401024 IS 'NonRealPLValCurr            ',
    AV401023 IS 'NonRealPLPercPrice          ',
    AV401022 IS 'NonRealPLPercCurr           ',
    AV401021 IS 'AccruedInterestDate         ',
    AV401020 IS 'AccruedInterestCHF          ',
    AV401019 IS 'AccruedInterestValCurr      ',
    AV401018 IS 'Duration                    ',
    AV401017 IS 'StockExchangeCd             ',
    AV401016 IS 'AvgPurchPriceCurrExRate     ',
    AV401015 IS 'AvgPurchPrice               ',
    AV401014 IS 'AvgPurchPriceCurrCd         ',
    AV401013 IS 'SecurityPriceCurrCd         ',
    AV401012 IS 'SecurityPriceDate           ',
    AV401011 IS 'SecurityPrice               ',
    AV401010 IS 'SecurityPriceType           ',
    AV401009 IS 'AssetClass                  ',
    AV401008 IS 'ValueType                   ',
    AV401007 IS 'NominalNo                   ',
    AV401006 IS 'MarketValueCHF              ',
    AV401005 IS 'MarketValueValCurr          ',
    AV401004 IS 'Security Sequence No        ',
    AV401003 IS 'Security No                 ',
    AV401002 IS 'Sequence No                 ',
    AV401001 IS 'Safekeeping Acc No          ');
--
------------------------------------------------------------------------
-- Database=AV03A1A
--    Index=OA1A01.IAV401A0 On OA1A01.TAV401A1
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX OA1A01.IAV401A0
    ON OA1A01.TAV401A1
     (AV401001              ASC,
      AV401002              ASC,
      AV401003              ASC,
      AV401004              ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 0
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
-- Database=AV03A1A
--    Index=OA1A01.IAV401A1 On OA1A01.TAV401A1
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX OA1A01.IAV401A1
    ON OA1A01.TAV401A1
     (AV401003              ASC,
      AV401001              ASC,
      AV401002              ASC,
      AV401004              ASC,
      AV401007              ASC,
      AV401014              ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 0
    GBPCACHE CHANGED
    NOT CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(MF200A) cre=2006-09-12 mod=2006-09-12-14.54.23 F540769 ----
  alter  TABLE GDB9998.TWK200A1
     add
      MF200094             CHAR(16) FOR SBCS DATA
  ;
  commit;
}¢--- A540769.WK.SQL(MF200I) cre=2006-09-12 mod=2006-09-12-14.55.16 F540769 ----
insert into GDB9998.TWK200a1 (MF200001, mf200093, mf200094)
               values('fuenf' , 'fuenf93', 'fuenf94')
;
commit;
select * from GDB9998.TWK200A1
;
x
  CREATE TABLE GDB9998.TWK200A1
     (MF200001             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200002             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200003             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200004             CHAR(25) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200005             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200006             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200007             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200008             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200009             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200010             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200011             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200012             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200013             DATE NOT NULL WITH DEFAULT,
      MF200014             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200015             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200016             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200017             CHAR(12) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200018             DECIMAL(15, 3) NOT NULL WITH DEFAULT,
      MF200019             DECIMAL(15, 3) NOT NULL WITH DEFAULT,
      MF200020             CHAR(8) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200021             TIMESTAMP NOT NULL WITH DEFAULT,
      MF200022             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200023             CHAR(12) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200024             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200025             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200026             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200027             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200028             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200029             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200030             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200031             CHAR(2) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200032             CHAR(7) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200033             CHAR(7) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200034             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200035             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200036             CHAR(18) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200037             DECIMAL(15, 0) NOT NULL WITH DEFAULT,
      MF200038             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200039             CHAR(2) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200040             CHAR(2) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200041             CHAR(2) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200042             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200043             DECIMAL(15, 3) NOT NULL WITH DEFAULT,
      MF200044             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200045             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200046             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200047             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200051             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200052             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200053             DECIMAL(15, 3) NOT NULL WITH DEFAULT,
      MF200054             CHAR(7) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200055             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200056             CHAR(8) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200059             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200060             TIMESTAMP NOT NULL WITH DEFAULT,
      MF200062             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200063             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200064             DATE NOT NULL WITH DEFAULT,
      MF200065             DATE NOT NULL WITH DEFAULT,
      MF200066             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200067             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200068             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200069             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200070             CHAR(7) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200071             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200072             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200073             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200074             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200075             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200076             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200077             CHAR(6) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200078             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200079             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200080             DATE NOT NULL WITH DEFAULT,
      MF200081             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200082             CHAR(26) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200083             SMALLINT NOT NULL WITH DEFAULT,
      MF200084             SMALLINT NOT NULL WITH DEFAULT,
      MF200085             SMALLINT NOT NULL WITH DEFAULT,
      MF200086             CHAR(35) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200087             CHAR(35) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200088             CHAR(35) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200089             CHAR(35) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200090             SMALLINT NOT NULL WITH DEFAULT,
      MF200091             SMALLINT NOT NULL WITH DEFAULT,
      MF200092             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT)
    IN DGDB9998.A200A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE GDB9998.TWK200A1 IS 'dokumentierende Mittelflüsse';
--
  LABEL ON GDB9998.TWK200A1
   (MF200092 IS 'RM-PID international',
    MF200091 IS 'Limiten-Hierarchie',
    MF200090 IS 'Limiten-Typ',
    MF200089 IS 'Ort  Begünstigter',
    MF200088 IS 'Name Begünstigter',
    MF200087 IS 'Ort  Auftraggeber',
    MF200086 IS 'Name Auftraggeber',
    MF200085 IS 'Life-Cycle-Status',
    MF200084 IS 'Relevant-Group',
    MF200083 IS 'Transaction-Typ',
    MF200082 IS 'Lade_Timestamp_ID',
    MF200081 IS 'Preiskomponente',
    MF200080 IS 'mutierbar bis',
    MF200079 IS 'Depot_Uebertrag',
    MF200078 IS 'Vorheriger GP-Typ',
    MF200077 IS 'Bankenclearing-Nr',
    MF200076 IS 'Kommentar_Status',
    MF200075 IS 'Edit-Status Gesamt',
    MF200074 IS 'Edit-Status Hauptgruppe',
    MF200073 IS 'Edit-Status Untergruppe',
    MF200072 IS 'Edit-Status Gegenpartei',
    MF200071 IS 'Prüfziffer Kundencif',
    MF200070 IS 'Stammnummer Kundencif',
    MF200069 IS 'Bankstelle Kundencif',
    MF200068 IS 'int. Form OE Kundenbüro GP',
    MF200067 IS 'int. Form OE Kundenbüro',
    MF200066 IS 'int. Form OE-ID KV',
    MF200065 IS 'Cif-Saldierungsdatum',
    MF200064 IS 'Cif-Eröffnungsdatum',
    MF200063 IS 'Mittelfluss-Identifikation',
    MF200062 IS 'Coupon-Mantel',
    MF200060 IS 'Erstellungstimestamp',
    MF200059 IS 'Auftragslaufnummer',
    MF200056 IS 'Policennr.',
    MF200055 IS 'Richtung des Mittelflusses',
    MF200054 IS 'Leitweg',
    MF200053 IS 'Volumen in Nominal/Stück',
    MF200052 IS 'Bearbeitungscode',
    MF200051 IS 'Domizil Gegenpartei',
    MF200047 IS 'Buchungsart',
    MF200046 IS 'Programm_ID des Corbaservices',
    MF200045 IS 'Depotstelle bzw. GMF_Laufnr.',
    MF200044 IS 'Sequenz-Nummer zu Valor',
    MF200043 IS 'Betrag zu Bestandeswährung',
    MF200042 IS 'Bestandeswährung',
    MF200041 IS 'Untergruppe Gegenpartei',
    MF200040 IS 'Hauptgruppe Gegenpartei',
    MF200039 IS 'Gegenpartei-Geldmarktzusatz',
    MF200038 IS 'Gegenpartei-Beziehungsnummer',
    MF200037 IS 'CSID Gegenpartei',
    MF200036 IS 'Gegenpartei',
    MF200035 IS 'Gegenpartei-Typ',
    MF200034 IS 'BUID Gegenpartei',
    MF200033 IS 'KundenverantwortlicheR',
    MF200032 IS 'Kundenbüro Kunde',
    MF200031 IS 'Kunden-Geldmarktzusatz',
    MF200030 IS 'Kunden-Beziehungsnummer',
    MF200029 IS 'Depotartenschlüssel',
    MF200028 IS 'Kontoartenschlüssel',
    MF200027 IS 'Kundendomizil',
    MF200026 IS 'Kundensegment',
    MF200025 IS 'Kundenart',
    MF200024 IS 'PVV-Kunde',
    MF200023 IS 'Cifnummer Kunde',
    MF200022 IS 'BUID Kunde',
    MF200021 IS 'Mutationsdatum',
    MF200020 IS 'MutationsPID',
    MF200019 IS 'Betrag in CHF',
    MF200018 IS 'Betrag in FWhrg',
    MF200017 IS 'Valor',
    MF200016 IS 'Währung',
    MF200015 IS 'Urheber',
    MF200014 IS 'Grund',
    MF200013 IS 'Buchungsdatum',
    MF200012 IS 'Bewegungsverdichtung',
    MF200011 IS 'Produkteklassifizierung',
    MF200010 IS 'MF-Produkt',
    MF200009 IS 'Produktenr_Prok/Bew.Art Depot',
    MF200008 IS 'Bewegungsart Depot/Edelmetall',
    MF200007 IS 'zu bewerten',
    MF200006 IS 'nachzuerfassen',
    MF200005 IS 'Storno',
    MF200004 IS 'Auftragsnummer',
    MF200003 IS 'Lieferantentyp',
    MF200002 IS 'RZ-Herkunft',
    MF200001 IS 'ID Mittelfluss (UUID)');
--
------------------------------------------------------------------------
-- Database=DGDB9998
--    Index=GDB9998.IWK200A1 On GDB9998.TWK200A1
------------------------------------------------------------------------
--
  CREATE INDEX GDB9998.IWK200A1
    ON GDB9998.TWK200A1
     (MF200067              ASC,
      MF200013              DESC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    CLUSTER
     (PART 1 VALUES('0010ZZZZZZZZ9999'),
      PART 2 VALUES('0011BACOBACO1299'),
      PART 3 VALUES('0011BACOBACO1399'),
      PART 4 VALUES('0011BACOBACO1599'),
      PART 5 VALUES('0011BACOBACO1699'),
      PART 6 VALUES('0011BACOBACO1799'),
      PART 7 VALUES('0011BACOBACO2299'),
      PART 8 VALUES('0011BACOBACO2599'),
      PART 9 VALUES('0011BACOBACO2799'),
      PART 10 VALUES('0011BAHEBAHE9999'),
      PART 11 VALUES('0011BAHTBAHT9999'),
      PART 12 VALUES('0011BCMBBCMB9999'),
      PART 13 VALUES('0011BCMSBCMS9999'),
      PART 14 VALUES('0011BCRFBCRF9999'),
      PART 15 VALUES('0011BCTLBCTL9999'),
      PART 16 VALUES('0011BCZTBCZT9999'),
      PART 17 VALUES('0011BCZWBCZW9999'),
      PART 18 VALUES('0011BDNUBDNU9999'),
      PART 19 VALUES('0011BGBABGBA9999'),
      PART 20 VALUES('0011CKZFCKZF9999'),
      PART 21 VALUES('0012PZZZPZZZ9999'),
      PART 22 VALUES('0012SCNNSCNN9999'),
      PART 23 VALUES('0012SCRRSCRR9999'),
      PART 24 VALUES('0012SCZSSCZS9999'),
      PART 25 VALUES('0012SWESSWES9999'),
      PART 26 VALUES('0012SWLNSWLN9999'),
      PART 27 VALUES('0013ZZZZZZZZ9999'),
      PART 28 VALUES('0014ZZZZZZZZ9999'),
      PART 29 VALUES('0015NCZZNCZZ9999'),
      PART 30 VALUES('0015NZZZNZZZ9999'),
      PART 31 VALUES('0020ZZZZZZZZ9999'),
      PART 32 VALUES('9999ZZZZZZZZ9999'))
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(MF200LA) cre=2006-08-31 mod=2006-08-31-10.51.45 F540769 ---
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBTF (810)     Extract time : 2006-08-29 15:00 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A200A In Database DA540769    --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769  Stogroup=GSMS (for partition 1)
-- Tablespace=DA540769.A200A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A200A
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    FREEPAGE 10 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    DSSIZE 64G
    NUMPARTS 32
     (PART 16 FREEPAGE 0 PCTFREE 5)
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=A540769.twk200A1 In DA540769.A200A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.TWK200A1
     (MF200001             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200002             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200003             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200004             CHAR(25) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200005             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200006             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200007             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200008             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200009             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200010             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200011             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200012             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200013             DATE NOT NULL WITH DEFAULT,
      MF200014             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200015             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200016             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200017             CHAR(12) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200018             DECIMAL(15, 3) NOT NULL WITH DEFAULT,
      MF200019             DECIMAL(15, 3) NOT NULL WITH DEFAULT,
      MF200020             CHAR(8) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200021             TIMESTAMP NOT NULL WITH DEFAULT,
      MF200022             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200023             CHAR(12) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200024             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200025             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200026             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200027             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200028             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200029             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200030             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200031             CHAR(2) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200032             CHAR(7) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200033             CHAR(7) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200034             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200035             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200036             CHAR(18) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200037             DECIMAL(15, 0) NOT NULL WITH DEFAULT,
      MF200038             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200039             CHAR(2) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200040             CHAR(2) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200041             CHAR(2) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200042             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200043             DECIMAL(15, 3) NOT NULL WITH DEFAULT,
      MF200044             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200045             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200046             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200047             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200051             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200052             CHAR(3) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200053             DECIMAL(15, 3) NOT NULL WITH DEFAULT,
      MF200054             CHAR(7) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200055             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200056             CHAR(8) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200059             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200060             TIMESTAMP NOT NULL WITH DEFAULT,
      MF200062             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200063             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200064             DATE NOT NULL WITH DEFAULT,
      MF200065             DATE NOT NULL WITH DEFAULT,
      MF200066             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200067             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200068             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200069             CHAR(4) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200070             CHAR(7) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200071             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200072             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200073             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200074             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200075             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200076             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200077             CHAR(6) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200078             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200079             CHAR(1) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200080             DATE NOT NULL WITH DEFAULT,
      MF200081             CHAR(5) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200082             CHAR(26) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200083             SMALLINT NOT NULL WITH DEFAULT,
      MF200084             SMALLINT NOT NULL WITH DEFAULT,
      MF200085             SMALLINT NOT NULL WITH DEFAULT,
      MF200086             CHAR(35) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200087             CHAR(35) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200088             CHAR(35) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200089             CHAR(35) FOR SBCS DATA NOT NULL
        WITH DEFAULT,
      MF200090             SMALLINT NOT NULL WITH DEFAULT,
      MF200091             SMALLINT NOT NULL WITH DEFAULT,
      MF200092             CHAR(16) FOR SBCS DATA NOT NULL
        WITH DEFAULT
 --   CONSTRAINT MF200001
 --   PRIMARY KEY (MF200001)
    )
    IN DA540769.A200A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
  LABEL ON TABLE A540769.twk200A1 IS 'dokumentierende Mittelflüsse';
--
  LABEL ON A540769.TWK200A1
   (MF200092 IS 'RM-PID international',
    MF200091 IS 'Limiten-Hierarchie',
    MF200090 IS 'Limiten-Typ',
    MF200089 IS 'Ort  Begünstigter',
    MF200088 IS 'Name Begünstigter',
    MF200087 IS 'Ort  Auftraggeber',
    MF200086 IS 'Name Auftraggeber',
    MF200085 IS 'Life-Cycle-Status',
    MF200084 IS 'Relevant-Group',
    MF200083 IS 'Transaction-Typ',
    MF200082 IS 'Lade_Timestamp_ID',
    MF200081 IS 'Preiskomponente',
    MF200080 IS 'mutierbar bis',
    MF200079 IS 'Depot_Uebertrag',
    MF200078 IS 'Vorheriger GP-Typ',
    MF200077 IS 'Bankenclearing-Nr',
    MF200076 IS 'Kommentar_Status',
    MF200075 IS 'Edit-Status Gesamt',
    MF200074 IS 'Edit-Status Hauptgruppe',
    MF200073 IS 'Edit-Status Untergruppe',
    MF200072 IS 'Edit-Status Gegenpartei',
    MF200071 IS 'Prüfziffer Kundencif',
    MF200070 IS 'Stammnummer Kundencif',
    MF200069 IS 'Bankstelle Kundencif',
    MF200068 IS 'int. Form OE Kundenbüro GP',
    MF200067 IS 'int. Form OE Kundenbüro',
    MF200066 IS 'int. Form OE-ID KV',
    MF200065 IS 'Cif-Saldierungsdatum',
    MF200064 IS 'Cif-Eröffnungsdatum',
    MF200063 IS 'Mittelfluss-Identifikation',
    MF200062 IS 'Coupon-Mantel',
    MF200060 IS 'Erstellungstimestamp',
    MF200059 IS 'Auftragslaufnummer',
    MF200056 IS 'Policennr.',
    MF200055 IS 'Richtung des Mittelflusses',
    MF200054 IS 'Leitweg',
    MF200053 IS 'Volumen in Nominal/Stück',
    MF200052 IS 'Bearbeitungscode',
    MF200051 IS 'Domizil Gegenpartei',
    MF200047 IS 'Buchungsart',
    MF200046 IS 'Programm_ID des Corbaservices',
    MF200045 IS 'Depotstelle bzw. GMF_Laufnr.',
    MF200044 IS 'Sequenz-Nummer zu Valor',
    MF200043 IS 'Betrag zu Bestandeswährung',
    MF200042 IS 'Bestandeswährung',
    MF200041 IS 'Untergruppe Gegenpartei',
    MF200040 IS 'Hauptgruppe Gegenpartei',
    MF200039 IS 'Gegenpartei-Geldmarktzusatz',
    MF200038 IS 'Gegenpartei-Beziehungsnummer',
    MF200037 IS 'CSID Gegenpartei',
    MF200036 IS 'Gegenpartei',
    MF200035 IS 'Gegenpartei-Typ',
    MF200034 IS 'BUID Gegenpartei',
    MF200033 IS 'KundenverantwortlicheR',
    MF200032 IS 'Kundenbüro Kunde',
    MF200031 IS 'Kunden-Geldmarktzusatz',
    MF200030 IS 'Kunden-Beziehungsnummer',
    MF200029 IS 'Depotartenschlüssel',
    MF200028 IS 'Kontoartenschlüssel',
    MF200027 IS 'Kundendomizil',
    MF200026 IS 'Kundensegment',
    MF200025 IS 'Kundenart',
    MF200024 IS 'PVV-Kunde',
    MF200023 IS 'Cifnummer Kunde',
    MF200022 IS 'BUID Kunde',
    MF200021 IS 'Mutationsdatum',
    MF200020 IS 'MutationsPID',
    MF200019 IS 'Betrag in CHF',
    MF200018 IS 'Betrag in FWhrg',
    MF200017 IS 'Valor',
    MF200016 IS 'Währung',
    MF200015 IS 'Urheber',
    MF200014 IS 'Grund',
    MF200013 IS 'Buchungsdatum',
    MF200012 IS 'Bewegungsverdichtung',
    MF200011 IS 'Produkteklassifizierung',
    MF200010 IS 'MF-Produkt',
    MF200009 IS 'Produktenr_Prok/Bew.Art Depot',
    MF200008 IS 'Bewegungsart Depot/Edelmetall',
    MF200007 IS 'zu bewerten',
    MF200006 IS 'nachzuerfassen',
    MF200005 IS 'Storno',
    MF200004 IS 'Auftragsnummer',
    MF200003 IS 'Lieferantentyp',
    MF200002 IS 'RZ-Herkunft',
    MF200001 IS 'ID Mittelfluss (UUID)');
--
--
------------------------------------------------------------------------
-- Database=DA540769
--    Index=A540769.IMF200A1 On A540769.twk200A1
------------------------------------------------------------------------
--
  CREATE INDEX A540769.IWK200A1
    ON A540769.TWK200A1
     (MF200067              ASC,
      MF200013              DESC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    CLUSTER
     (PART 1 VALUES('0010ZZZZZZZZ9999'),
      PART 2 VALUES('0011BACOBACO1299'),
      PART 3 VALUES('0011BACOBACO1399'),
      PART 4 VALUES('0011BACOBACO1599'),
      PART 5 VALUES('0011BACOBACO1699'),
      PART 6 VALUES('0011BACOBACO1799'),
      PART 7 VALUES('0011BACOBACO2299'),
      PART 8 VALUES('0011BACOBACO2599'),
      PART 9 VALUES('0011BACOBACO2799'),
      PART 10 VALUES('0011BAHEBAHE9999'),
      PART 11 VALUES('0011BAHTBAHT9999'),
      PART 12 VALUES('0011BCMBBCMB9999'),
      PART 13 VALUES('0011BCMSBCMS9999'),
      PART 14 VALUES('0011BCRFBCRF9999'),
      PART 15 VALUES('0011BCTLBCTL9999'),
      PART 16 VALUES('0011BCZTBCZT9999'),
      PART 17 VALUES('0011BCZWBCZW9999'),
      PART 18 VALUES('0011BDNUBDNU9999'),
      PART 19 VALUES('0011BGBABGBA9999'),
      PART 20 VALUES('0011CKZFCKZF9999'),
      PART 21 VALUES('0012PZZZPZZZ9999'),
      PART 22 VALUES('0012SCNNSCNN9999'),
      PART 23 VALUES('0012SCRRSCRR9999'),
      PART 24 VALUES('0012SCZSSCZS9999'),
      PART 25 VALUES('0012SWESSWES9999'),
      PART 26 VALUES('0012SWLNSWLN9999'),
      PART 27 VALUES('0013ZZZZZZZZ9999'),
      PART 28 VALUES('0014ZZZZZZZZ9999'),
      PART 29 VALUES('0015NCZZNCZZ9999'),
      PART 30 VALUES('0015NZZZNZZZ9999'),
      PART 31 VALUES('0020ZZZZZZZZ9999'),
      PART 32 VALUES('9999ZZZZZZZZ9999'))
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES;
 commit;
}¢--- A540769.WK.SQL(MF202) cre=2006-08-31 mod=2006-08-31-13.21.08 F540769 -----
set current sqlid = 'S100447' ;
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBTF (810)     Extract time : 2006-08-31 13:18 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A202A In Database DA540769    --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=DA540769  Stogroup=GSMS
-- Tablespace=DA540769.A202A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A202A
    IN DA540769
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=A540769.TWK202A1 In DA540769.A202A
------------------------------------------------------------------------
--
  CREATE TABLE A540769.TWK202A1
     (BUID                 CHAR(4) FOR SBCS DATA NOT NULL,
      SELCD                CHAR(20) FOR SBCS DATA NOT NULL,
      GUELTIGAB            TIMESTAMP NOT NULL,
      GUELTIGBIS           TIMESTAMP NOT NULL,
      SPRACHE              SMALLINT NOT NULL,
      LETZTEMUT            TIMESTAMP NOT NULL,
      LETZTEMUTPID         CHAR(7) FOR SBCS DATA NOT NULL,
      "PARAMETER"          VARCHAR(2048) FOR SBCS DATA NOT NULL,
      CONSTRAINT BUID
      PRIMARY KEY (BUID,
                   SELCD,
                   GUELTIGAB))
    IN DA540769.A202A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=DA540769
--    Index=A540769.IWK202A0 On A540769.TWK202A1
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX A540769.IWK202A0
    ON A540769.TWK202A1
     (BUID                  ASC,
      SELCD                 ASC,
      GUELTIGAB             ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
}¢--- A540769.WK.SQL(MF202AKT) cre= mod= ---------------------------------------
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90 (C)  --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBTF (810)     Extract time : 2006-08-29 12:19 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N                                --
-- Grants   : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447';
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A202A In Database MF01A1T     --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=MF01A1T   Stogroup=GSMS
-- Tablespace=MF01A1T.A202A
------------------------------------------------------------------------
--
  CREATE TABLESPACE A202A
    IN MF01A1T
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
------------------------------------------------------------------------
--    Table=OA1T.TMF202A1 In MF01A1T.A202A
------------------------------------------------------------------------
--
  CREATE TABLE OA1T.TMF202A1
     (BUID                 CHAR(4) FOR SBCS DATA NOT NULL,
      SELCD                CHAR(20) FOR SBCS DATA NOT NULL,
      GUELTIGAB            TIMESTAMP NOT NULL,
      GUELTIGBIS           TIMESTAMP NOT NULL,
      SPRACHE              SMALLINT NOT NULL,
      LETZTEMUT            TIMESTAMP NOT NULL,
      LETZTEMUTPID         CHAR(7) FOR SBCS DATA NOT NULL,
      STEUERUNG            VARCHAR(2048) FOR SBCS DATA NOT NULL,
      CONSTRAINT BUID
      PRIMARY KEY (BUID,
                   SELCD,
                   GUELTIGAB))
    IN MF01A1T.A202A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE;
--
------------------------------------------------------------------------
-- Database=MF01A1T
--    Index=OA1T.IMF202A0 On OA1T.TMF202A1
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX OA1T.IMF202A0
    ON OA1T.TMF202A1
     (BUID                  ASC,
      SELCD                 ASC,
      GUELTIGAB             ASC)
    USING STOGROUP GSMS
    PRIQTY 48 SECQTY 7200
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
--
------------------------------------------------------------------------
--    View=OA1T.VMF202A1
------------------------------------------------------------------------
--
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","GDB0389" ;
--
  CREATE VIEW OA1T.VMF202A1(TEV_DAT_ISO, TEV_DAT_EUR) AS
    SELECT CHAR(DATE(SUBSTR(OA1T.TMF202A1.STEUERUNG, 1, 10)), ISO),
           CHAR(DATE(SUBSTR(OA1T.TMF202A1.STEUERUNG, 1, 10)), EUR)
      FROM OA1T.TMF202A1
      WHERE OA1T.TMF202A1.BUID = '0000'
        AND OA1T.TMF202A1.SELCD = 'TEV_ORDERDATE'
        AND OA1T.TMF202A1.GUELTIGAB <= CURRENT TIMESTAMP
        AND OA1T.TMF202A1.GUELTIGBIS >= CURRENT TIMESTAMP ;
--
------------------------------------------------------------------------
--    View=OA1T.VMF202A0
------------------------------------------------------------------------
--
--
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","F558781" ;
--
  CREATE VIEW OA1T.VMF202A0(KSEGM) AS
    SELECT SUBSTR(OA1T.TMF202A1.SELCD, 18, 3)
      FROM OA1T.TMF202A1,
           OA1T.VMF202A1
      WHERE OA1T.TMF202A1.BUID = '0000'
        AND SUBSTR(OA1T.TMF202A1.SELCD, 1, 17) = 'TA-NTA-REL-KSEGM '
        AND SUBSTR(OA1T.TMF202A1.STEUERUNG, 18, 1) = 'J'
        AND OA1T.TMF202A1.GUELTIGAB <= TIMESTAMP(
        OA1T.VMF202A1.TEV_DAT_ISO || '-00.00.00.000000')
        AND OA1T.TMF202A1.GUELTIGBIS >= TIMESTAMP(
        OA1T.VMF202A1.TEV_DAT_ISO || '-00.00.00.000000') ;
--
  COMMIT;
--
--  REBIND PACKAGE(MF.MF5210.(A06M025609))
--
--  REBIND PACKAGE(MF.MF5230.(A06M025609))
--
--  REBIND PACKAGE(MF.MF7000.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7010.(MFR0000056))
--
--  REBIND PACKAGE(MF.MF7010.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7020.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7110.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7120.(MFR0000035))
--
--  REBIND PACKAGE(MF.MF7120.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7120.(MFR0000001))
--
--  REBIND PACKAGE(MF.MF7200.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7200.(MFR0000001))
--
--  REBIND PACKAGE(MF.MF7200.(MFR0000090))
--
--  REBIND PACKAGE(MF.MF7210.(MFR0000056))
--
--  REBIND PACKAGE(MF.MF7210.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7210.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7220.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7220.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF7220.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7230.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF7230.(MFR0000081))
--
--  REBIND PACKAGE(MF.MF7230.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7240.(MFR0000035))
--
--  REBIND PACKAGE(MF.MF7240.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7240.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF7250.(MFR0000035))
--
--  REBIND PACKAGE(MF.MF7250.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7250.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF7260.(MFR0000035))
--
--  REBIND PACKAGE(MF.MF7260.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7260.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF7300.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF7300.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7300.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7310.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF7310.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7310.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7320.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7320.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF7320.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7330.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF7330.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7330.(MFR0000078))
--
--  REBIND PACKAGE(MF.MF7331.(A06M024135))
--
--  REBIND PACKAGE(MF.MF7340.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF7340.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7340.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7360.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF7360.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7360.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7380.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7380.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7500.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF7500.(MFR0000081))
--
--  REBIND PACKAGE(MF.MF7500.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7510.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF7510.(MFR0000081))
--
--  REBIND PACKAGE(MF.MF7510.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF7550.(MFR0000035))
--
--  REBIND PACKAGE(MF.MF7550.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7570.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7570.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7580.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7590.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7750.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7750.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF7801.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7801.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF7801.(MFR0000078))
--
--  REBIND PACKAGE(MF.MF7802.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF7802.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF7802.(MFR0000078))
--
--  REBIND PACKAGE(MF.MF7900.(MFR0000001))
--
--  REBIND PACKAGE(MF.MF7902.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7930.(MFR0000056))
--
--  REBIND PACKAGE(MF.MF7930.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF7930.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF8110.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8110.(MFR0000078))
--
--  REBIND PACKAGE(MF.MF8110.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8111.(A06M023542))
--
--  REBIND PACKAGE(MF.MF8111.(A06M023446))
--
--  REBIND PACKAGE(MF.MF8111.(A06M023686))
--
--  REBIND PACKAGE(MF.MF8120.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8120.(MFR0000078))
--
--  REBIND PACKAGE(MF.MF8120.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8121.(A06M024078))
--
--  REBIND PACKAGE(MF.MF8121.(A06M024620))
--
--  REBIND PACKAGE(MF.MF8130.(MFR0000075))
--
--  REBIND PACKAGE(MF.MF8130.(MFR0000004))
--
--  REBIND PACKAGE(MF.MF8130.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8210.(MFR0000001))
--
--  REBIND PACKAGE(MF.MF8210.(MFR0000019))
--
--  REBIND PACKAGE(MF.MF8210.(MFR0000004))
--
--  REBIND PACKAGE(MF.MF8211.(A06M024078))
--
--  REBIND PACKAGE(MF.MF8211.(A06M024620))
--
--  REBIND PACKAGE(MF.MF8230.(A06M022797))
--
--  REBIND PACKAGE(MF.MF8230.(A06M024620))
--
--  REBIND PACKAGE(MF.MF8230.(A06M025317))
--
--  REBIND PACKAGE(MF.MF8310.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF8310.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF8310.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8320.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF8320.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8320.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8500.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8500.(MFR0000081))
--
--  REBIND PACKAGE(MF.MF8500.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8501.(A19R002525))
--
--  REBIND PACKAGE(MF.MF8501.(A19R001839))
--
--  REBIND PACKAGE(MF.MF8502.(A19R002525))
--
--  REBIND PACKAGE(MF.MF8502.(A19R001839))
--
--  REBIND PACKAGE(MF.MF8505.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8505.(MFR0000081))
--
--  REBIND PACKAGE(MF.MF8505.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8600.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8600.(MFR0000081))
--
--  REBIND PACKAGE(MF.MF8600.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8610.(MFR0000035))
--
--  REBIND PACKAGE(MF.MF8610.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF8620.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8620.(MFR0000081))
--
--  REBIND PACKAGE(MF.MF8620.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8630.(MFR0000035))
--
--  REBIND PACKAGE(MF.MF8630.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF8630.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF8700.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8703.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8704.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8705.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8706.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8707.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8708.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8710.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8711.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8714.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8715.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8717.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8718.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8719.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF8910.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF8910.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF8910.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8920.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF8920.(MFR0000060))
--
--  REBIND PACKAGE(MF.MF8920.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8930.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF8930.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF8930.(MFR0000073))
--
--  REBIND PACKAGE(MF.MF8940.(MFR0000035))
--
--  REBIND PACKAGE(MF.MF8940.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF8950.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF8960.(MFR0000082))
--
--  REBIND PACKAGE(MF.MF9002.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF9002.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF9004.(MFR0000049))
--
--  REBIND PACKAGE(MF.MF9004.(MFR0000065))
--
--  REBIND PACKAGE(MF.MF9008.(MFR0000054))
--
--  REBIND PACKAGE(MF.MF9010.(MFR0000054))
--
--  REBIND PACKAGE(MF.MF9910.(A06M023542))
--
--  REBIND PACKAGE(MF.MF9911.(A06M023542))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M02230450715910))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M02297650A10D70))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M02311350D6EB91))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M02482152286595))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M025182525A6405))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M0253205267EE12))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M02560752CBFAD5))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M02613253048EFA))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M025610536F8CA6))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M026644538DB03D))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M02663553B40B61))
--
--  REBIND PACKAGE(MF.YMFC001.(A06M02715954369B52))
--
--  REBIND PACKAGE(MF.YMFC001.(MFR000000954B51993))
--
--  REBIND PACKAGE(MF.YMFC002.(A06M02352052285F4F))
--
--  REBIND PACKAGE(MF.YMFC002.(A06M0253205267EDEC))
--
--  REBIND PACKAGE(MF.YMFC002.(A06M02560752CE9ADE))
--
--  REBIND PACKAGE(MF.YMFC002.(A06M025610532EF354))
--
--  REBIND PACKAGE(MF.YMFC002.(A06M0266355399BFDF))
--
--  REBIND PACKAGE(MF.YMFC002.(A06M026729543BE13E))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M020968))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M019961))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M021412))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M022304504CA443))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M02297650A10D96))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M02325450EE84A7))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M02352052235FA5))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M0253205267EDA1))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M02561053318ADB))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M02663553B40C7F))
--
--  REBIND PACKAGE(MF.YMFC003.(A06M026729543BE1D2))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M021412))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M0214124FE1F2B4))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M02230450715DAD))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M02297650A51B36))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M024821521377A6))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M025054525C03A9))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M0253205267ED7F))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M02560752CD309B))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M02561053610904))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M0266445384AF2E))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M02663553B40C82))
--
--  REBIND PACKAGE(MF.YMFC004.(A06M0271595435601A))
--
--  REBIND PACKAGE(MF.YMFC004.(MFR000000954B518D8))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M020690))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M020707))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M020487))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M021412))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M02230450715A63))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M02311350D6EBAB))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M0248215228681C))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M025182525A642C))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M025054525E4A6B))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M0253205267ED6B))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M02560752CD30BC))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M02663553B40C8B))
--
--  REBIND PACKAGE(MF.YMFC005.(A06M027159543560E3))
--
--  REBIND PACKAGE(MF.YMFC005.(MFR000000954B518E5))
--
--  REBIND PACKAGE(MF.YMFC006.(A06M0256105337E5BC))
--
--  REBIND PACKAGE(MF.YMFC006.(A06M02651253788C6C))
--
--  REBIND PACKAGE(MF.YMFC006.(A06M02663553B40C96))
--
--  REBIND PACKAGE(MF.YMFC006.(A06M0267295435676D))
--
--  REBIND PACKAGE(MF.YMFC007.(A06M020785))
--
--  REBIND PACKAGE(MF.YMFC007.(A06M0207854FF313A9))
--
--  REBIND PACKAGE(MF.YMFC007.(A06M02230450715940))
--
--  REBIND PACKAGE(MF.YMFC007.(A06M025607529C9320))
--
--  REBIND PACKAGE(MF.YMFC007.(A06M02561053676932))
--
--  REBIND PACKAGE(MF.YMFC007.(A06M026644538C6680))
--
--  REBIND PACKAGE(MF.YMFC007.(A06M02672954356807))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M020785))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M0207854FF3150D))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M02230450715943))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M02297650A10DCF))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M02345050FD12BA))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M024821521377CD))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M0253205267ECFB))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M025607529C932F))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M0256105337E4D3))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M0266445385E835))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M02663553B40BA6))
--
--  REBIND PACKAGE(MF.YMFC008.(A06M02672954356873))
--
--  REBIND PACKAGE(MF.YMFC009.(A06M02560752A46A58))
--
--  REBIND PACKAGE(MF.YMFC009.(A06M025610536F7BBB))
--
--  REBIND PACKAGE(MF.YMFC009.(A06M026512537892FC))
--
--  REBIND PACKAGE(MF.YMFC009.(A06M02663553B40BAE))
--
--  REBIND PACKAGE(MF.YMFC009.(A06M027159543BDEC1))
--
--  REBIND PACKAGE(MF.YMFC010.(A06M025610536F8F8B))
--
--  REBIND PACKAGE(MF.YMFC010.(A06M026512537890CD))
--
--  REBIND PACKAGE(MF.YMFC010.(A06M02700053E10A95))
--
--  REBIND PACKAGE(MF.YMFC010.(A06M02663553E211CE))
--
--  REBIND PACKAGE(MF.YMFC010.(A06M02715954355D79))
--
--  REBIND PACKAGE(MF.YMFC011.(A06M023520524A9DFD))
--
--  REBIND PACKAGE(MF.YMFC011.(A06M0253205270DCB2))
--
--  REBIND PACKAGE(MF.YMFC011.(A06M02560752CBFB1D))
--
--  REBIND PACKAGE(MF.YMFC011.(A06M026274532EB0A2))
--
--  REBIND PACKAGE(MF.YMFC011.(A06M025610536F7C29))
--
--  REBIND PACKAGE(MF.YMFC011.(A06M0266355384BF23))
--
--  REBIND PACKAGE(MF.YMFC011.(A06M02738954282462))
--
--  REBIND PACKAGE(MF.YMFC011.(A06M026729543BE222))
--
--  REBIND PACKAGE(MF.YMFC012.(A06M02560752CD2C29))
--
--  REBIND PACKAGE(MF.YMFC012.(A06M026264533D5907))
--
--  REBIND PACKAGE(MF.YMFC012.(A06M02561053413707))
--
--  REBIND PACKAGE(MF.YMFC012.(A06M026512537891BA))
--
--  REBIND PACKAGE(MF.YMFC012.(A06M026644538F50EA))
--
--  REBIND PACKAGE(MF.YMFC012.(A06M02663553BBFDA1))
--
--  REBIND PACKAGE(MF.YMFC012.(A06M026729543BE65F))
--
--  REBIND PACKAGE(MF.YMFC014.(A06M02560752CD1B68))
--
--  REBIND PACKAGE(MF.YMFC014.(A06M02341952FCBB0E))
--
--  REBIND PACKAGE(MF.YMFC014.(A06M0267295436A722))
--
--  REBIND PACKAGE(MF.YMFC015.(A06M02561053426693))
--
--  REBIND PACKAGE(MF.YMFC015.(A06M02689853C676A7))
--
--  REBIND PACKAGE(MF.YMFC015.(A06M02663553D6564F))
--
--  REBIND PACKAGE(MF.YMFC015.(A06M027159542D71EB))
--
--  REBIND PACKAGE(MF.YMFC015.(MFR000000954B517BE))
--
--  REBIND PACKAGE(MF.YMFC016.(A06M02561053398C72))
--
--  REBIND PACKAGE(MF.YMFC016.(A06M02689853C676AF))
--
--  REBIND PACKAGE(MF.YMFC016.(A06M02663553D655D0))
--
--  REBIND PACKAGE(MF.YMFC016.(A06M027159542D7226))
--
--  REBIND PACKAGE(MF.YMFC016.(MFR000000954B517C5))
--
--  REBIND PACKAGE(MF.YMFC017.(A06M025610536F7CDF))
--
--  REBIND PACKAGE(MF.YMFC017.(A06M02651253789276))
--
--  REBIND PACKAGE(MF.YMFC017.(A06M02672953DE3680))
--
--  REBIND PACKAGE(MF.YMFC017.(A06M02699153DF8D59))
--
--  REBIND PACKAGE(MF.YMFC017.(A06M02663553DFB7EE))
--
--  REBIND PACKAGE(MF.YMFC017.(A06M02728854106546))
--
--  REBIND PACKAGE(MF.YMFC017.(A06M027159543BDF1E))
--
--  REBIND PACKAGE(MF.YMFC101.(A06M02663553C5771E))
--
--  REBIND PACKAGE(MF.YMFC101.(A06M02698453F5D78F))
--
--  REBIND PACKAGE(MF.YMFC101.(A06M027338541EFE8E))
--
--  REBIND PACKAGE(MF.YMFC101.(A06M027159544F7F40))
--
--  REBIND PACKAGE(MF.YMFC101.(A06M027452547D9E63))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR000000654914B9C))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR000000954B50523))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR0000024552BF4EF))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR0000032556D9795))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR0000046556DD5C7))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR0000034559E8A78))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR0000050561B7A9A))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR00000615665540F))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR000000456729578))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR00000045672987C))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR000006656B0DB0A))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR000007556F0221D))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR0000079574C7074))
--
--  REBIND PACKAGE(MF.YMFC101.(MFR0000083578E3B26))
--
--  REBIND PACKAGE(MF.YMFC102.(A06M026729543D2C85))
--
--  REBIND PACKAGE(MF.YMFC102.(A06M027452546CAFDA))
--
--  REBIND PACKAGE(MF.YMFC102.(MFR0000006548983E6))
--
--  REBIND PACKAGE(MF.YMFC102.(MFR000000954AAB638))
--
--  REBIND PACKAGE(MF.YMFC102.(MFR0000024550571A7))
--
--  REBIND PACKAGE(MF.YMFC102.(MFR000003455A514AE))
--
--  REBIND PACKAGE(MF.YMFC102.(MFR000005755D1E863))
--
--  REBIND PACKAGE(MF.YMFC102.(MFR0000050561BC80D))
--
--  REBIND PACKAGE(MF.YMFC103.(A06M026729543D2CBA))
--
--  REBIND PACKAGE(MF.YMFC103.(A06M027452546CB0A9))
--
--  REBIND PACKAGE(MF.YMFC103.(MFR0000006548983F7))
--
--  REBIND PACKAGE(MF.YMFC103.(MFR000000954B530F8))
--
--  REBIND PACKAGE(MF.YMFC103.(MFR000002454E9E006))
--
--  REBIND PACKAGE(MF.YMFC103.(MFR000003455A51C2E))
--
--  REBIND PACKAGE(MF.YMFC103.(MFR0000050561B7CAB))
--
--  REBIND PACKAGE(MF.YMFC104.(A06M026729543D2F02))
--
--  REBIND PACKAGE(MF.YMFC104.(A06M027110546B44FB))
--
--  REBIND PACKAGE(MF.YMFC104.(A06M027452547D8B15))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR0000006548F0CB0))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR000000954B69679))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR00000315522A939))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR0000024554B731D))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR00000435565C9AA))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR0000032556DBA77))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR0000046556DD4E1))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR0000034559BDB0F))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR000000455DAF055))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR000005855E475DE))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR0000050561B7D10))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR000006156604E3B))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR000006656B1D6BC))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR000000456F1559D))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR000007556F15DB9))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR0000079574C707A))
--
--  REBIND PACKAGE(MF.YMFC104.(MFR0000083578E3B39))
--
--  REBIND PACKAGE(MF.YMFC105.(A06M026729543D2ECA))
--
--  REBIND PACKAGE(MF.YMFC105.(A06M027452547D8B1C))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR000000654914C82))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR000000954B50618))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR00000245538B3F4))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR0000032556DC541))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR0000046556DD4D6))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR0000034559BDB1D))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR0000050561B7D86))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR000006156655415))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR000006656C59C6A))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR000007556F02225))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR0000079574C707F))
--
--  REBIND PACKAGE(MF.YMFC105.(MFR0000083578E3B49))
--
--  REBIND PACKAGE(MF.YMFC106.(A06M027159543D3B09))
--
--  REBIND PACKAGE(MF.YMFC106.(A06M027452546CB444))
--
--  REBIND PACKAGE(MF.YMFC106.(MFR0000006548985B4))
--
--  REBIND PACKAGE(MF.YMFC106.(MFR000000954BE6D4D))
--
--  REBIND PACKAGE(MF.YMFC106.(MFR000003455A28BE6))
--
--  REBIND PACKAGE(MF.YMFC106.(MFR0000050561B8D77))
--
--  REBIND PACKAGE(MF.YMFC106.(MFR000006156605954))
--
--  REBIND PACKAGE(MF.YMFC106.(MFR000006656CB3A49))
--
--  REBIND PACKAGE(MF.YMFC106.(MFR00000795728AD7F))
--
--  REBIND PACKAGE(MF.YMFC106.(MFR000008357583124))
--
--  REBIND PACKAGE(MF.YMFC107.(A06M027159543BD679))
--
--  REBIND PACKAGE(MF.YMFC107.(A06M027452546CB47E))
--
--  REBIND PACKAGE(MF.YMFC107.(MFR0000006548985C6))
--
--  REBIND PACKAGE(MF.YMFC107.(MFR000000954BE6CAE))
--
--  REBIND PACKAGE(MF.YMFC107.(MFR0000034559E3B11))
--
--  REBIND PACKAGE(MF.YMFC107.(MFR000006156546BC2))
--
--  REBIND PACKAGE(MF.YMFC107.(MFR00000835757D747))
--
--  REBIND PACKAGE(MF.YMFC108.(A06M027159544CD861))
--
--  REBIND PACKAGE(MF.YMFC108.(A06M027452546CB4C1))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR00000045489A997))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR00000045489B0EC))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR00000065490163B))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR000000954BB9CE9))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR000003455A28C08))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR0000050561B8E06))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR0000061566059BA))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR000006656B2128C))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR00000795728ADD0))
--
--  REBIND PACKAGE(MF.YMFC108.(MFR0000083575831C8))
--
--  REBIND PACKAGE(MF.YMFC109.(A06M026729543D30E5))
--
--  REBIND PACKAGE(MF.YMFC109.(A06M027452546DBEFA))
--
--  REBIND PACKAGE(MF.YMFC109.(MFR00000065489895E))
--
--  REBIND PACKAGE(MF.YMFC109.(MFR000000954C4D95A))
--
--  REBIND PACKAGE(MF.YMFC109.(MFR000002354E1EE99))
--
--  REBIND PACKAGE(MF.YMFC109.(MFR000003455A514FD))
--
--  REBIND PACKAGE(MF.YMFC109.(MFR0000050561B8F9A))
--
--  REBIND PACKAGE(MF.YMFC110.(A06M027159543BD86F))
--
--  REBIND PACKAGE(MF.YMFC110.(A06M027452546DC21F))
--
--  REBIND PACKAGE(MF.YMFC110.(MFR000000654898A18))
--
--  REBIND PACKAGE(MF.YMFC110.(MFR000000954A91AF8))
--
--  REBIND PACKAGE(MF.YMFC110.(MFR000003455A2928D))
--
--  REBIND PACKAGE(MF.YMFC110.(MFR0000050561B7AAE))
--
--  REBIND PACKAGE(MF.YMFC110.(MFR000006156605015))
--
--  REBIND PACKAGE(MF.YMFC110.(MFR000006656C594B5))
--
--  REBIND PACKAGE(MF.YMFC110.(MFR00000795728AE0D))
--
--  REBIND PACKAGE(MF.YMFC110.(MFR00000835767C4BD))
--
--  REBIND PACKAGE(MF.YMFC111.(A06M026729543D2CFF))
--
--  REBIND PACKAGE(MF.YMFC111.(A06M027680546E0BCD))
--
--  REBIND PACKAGE(MF.YMFC111.(A06M027452547C4712))
--
--  REBIND PACKAGE(MF.YMFC111.(MFR00000065489840B))
--
--  REBIND PACKAGE(MF.YMFC111.(MFR000000954BE6AB0))
--
--  REBIND PACKAGE(MF.YMFC111.(MFR000002455127F24))
--
--  REBIND PACKAGE(MF.YMFC111.(MFR000003455A514E6))
--
--  REBIND PACKAGE(MF.YMFC111.(MFR0000050561BC9E6))
--
--  REBIND PACKAGE(MF.YMFC112.(A06M027159543D38B4))
--
--  REBIND PACKAGE(MF.YMFC112.(A06M027452546DC37F))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR000000654898AFC))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR000000954A91662))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR00000245523C86D))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR000003455A294D6))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR0000050561BCD4F))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR000000456645719))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR000006156657951))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR000006656B1CA60))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR000007256F7A308))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR0000079573DC572))
--
--  REBIND PACKAGE(MF.YMFC112.(MFR00000835767C4C4))
--
--  REBIND PACKAGE(MF.YMFC113.(A06M02715954315ED7))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004547C851B))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004547C8D6F))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004547C954B))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004547C980C))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9981))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9BCE))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9DEF))
--
--  REBIND PACKAGE(MF.YMFC113.(A06M027452547DA0D2))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004547F0A9B))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045480695B))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR000000454857785))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004548584D3))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045485C1AB))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045485D2F7))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045485D51B))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045486BBDA))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045486E315))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045486E5A7))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045486E6D4))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045486E8D7))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045486F91D))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR000000454871A0D))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR000000454883902))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004548848D3))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004548851E8))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR000000454885516))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045488580B))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000004548862E2))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000045489A7B6))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000006548F0B50))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000024552BCF02))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000032556D97A0))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000505631ED02))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR0000061564C942A))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR000006656BC60A7))
--
--  REBIND PACKAGE(MF.YMFC113.(MFR00000835767C4CA))
--
--  REBIND PACKAGE(MF.YMFC114.(A06M02715954315F12))
--
--  REBIND PACKAGE(MF.YMFC114.(A06M027452547D87D2))
--
--  REBIND PACKAGE(MF.YMFC114.(MFR000000654898B8E))
--
--  REBIND PACKAGE(MF.YMFC114.(MFR000000954B3E2FB))
--
--  REBIND PACKAGE(MF.YMFC114.(MFR0000083578E4191))
--
--  REBIND PACKAGE(MF.YMFC115.(A06M02663553A30FCC))
--
--  REBIND PACKAGE(MF.YMFC115.(A06M026729543D333A))
--
--  REBIND PACKAGE(MF.YMFC115.(A06M027452546DB354))
--
--  REBIND PACKAGE(MF.YMFC115.(MFR000000654898C30))
--
--  REBIND PACKAGE(MF.YMFC115.(MFR000000954A402D2))
--
--  REBIND PACKAGE(MF.YMFC115.(MFR0000024552BE538))
--
--  REBIND PACKAGE(MF.YMFC115.(MFR0000050561A96A5))
--
--  REBIND PACKAGE(MF.YMFC115.(MFR000006156545415))
--
--  REBIND PACKAGE(MF.YMFC115.(MFR000006656C590E1))
--
--  REBIND PACKAGE(MF.YMFC115.(MFR0000004570E1153))
--
--  REBIND PACKAGE(MF.YMFC115.(MFR0000079573DC675))
--
--  REBIND PACKAGE(MF.YMFC115.(MFR00000835767C4D6))
--
--  REBIND PACKAGE(MF.YMFC116.(A06M02663553A30FEF))
--
--  REBIND PACKAGE(MF.YMFC116.(A06M026729543BB49C))
--
--  REBIND PACKAGE(MF.YMFC116.(A06M027452546DB38A))
--
--  REBIND PACKAGE(MF.YMFC116.(MFR000000654898C41))
--
--  REBIND PACKAGE(MF.YMFC116.(MFR000000954A410A3))
--
--  REBIND PACKAGE(MF.YMFC116.(MFR000002454F3056F))
--
--  REBIND PACKAGE(MF.YMFC116.(MFR0000050561A9685))
--
--  REBIND PACKAGE(MF.YMFC116.(MFR0000061565453DB))
--
--  REBIND PACKAGE(MF.YMFC116.(MFR000006656A095E2))
--
--  REBIND PACKAGE(MF.YMFC116.(MFR0000004570E1158))
--
--  REBIND PACKAGE(MF.YMFC116.(MFR00000835767C4E0))
--
--  REBIND PACKAGE(MF.YMFC117.(A06M026729543D316A))
--
--  REBIND PACKAGE(MF.YMFC117.(A06M027680546E0852))
--
--  REBIND PACKAGE(MF.YMFC117.(A06M027452547C48AB))
--
--  REBIND PACKAGE(MF.YMFC117.(MFR000000654898973))
--
--  REBIND PACKAGE(MF.YMFC117.(MFR000000954C50E17))
--
--  REBIND PACKAGE(MF.YMFC117.(MFR000003455A51514))
--
--  REBIND PACKAGE(MF.YMFC117.(MFR0000050561B95FF))
--
--  REBIND PACKAGE(MF.YMFC118.(A06M026729543BAB2C))
--
--  REBIND PACKAGE(MF.YMFC118.(A06M027452546DC53A))
--
--  REBIND PACKAGE(MF.YMFC118.(MFR000000654898CE6))
--
--  REBIND PACKAGE(MF.YMFC118.(MFR000000954B3EE03))
--
--  REBIND PACKAGE(MF.YMFC118.(MFR0000024554B758C))
--
--  REBIND PACKAGE(MF.YMFC118.(MFR000003455B4E2B8))
--
--  REBIND PACKAGE(MF.YMFC118.(MFR0000050561B8A9F))
--
--  REBIND PACKAGE(MF.YMFC118.(MFR0000061566050F0))
--
--  REBIND PACKAGE(MF.YMFC118.(MFR000006656C59673))
--
--  REBIND PACKAGE(MF.YMFC118.(MFR00000795728AE83))
--
--  REBIND PACKAGE(MF.YMFC118.(MFR0000083575FEE4D))
--
--  REBIND PACKAGE(MF.YMFC119.(MFR0000034559BEA25))
--
--  REBIND PACKAGE(MF.YMFC120.(MFR0000034559BEDB5))
--
--  REBIND PACKAGE(MF.YMFC120.(MFR000005055F01B84))
--
--  REBIND PACKAGE(MF.YMFC202.(MFR000003455A29E00))
--
--  REBIND PACKAGE(MF.YMFC202.(MFR00000505641ED35))
--
--  REBIND PACKAGE(MF.YMFC202.(MFR00000615660567D))
--
--  REBIND PACKAGE(MF.YMFC202.(MFR000006656C1F613))
--
--  REBIND PACKAGE(MF.YMFC202.(MFR0000079574189AF))
--
--  REBIND PACKAGE(MF.YMFC203.(MFR000003455A29E77))
--
--  REBIND PACKAGE(MF.YMFC203.(MFR0000050561B7C7C))
--
--  REBIND PACKAGE(MF.YMFC203.(MFR0000061566056EA))
--
--  REBIND PACKAGE(MF.YMFC203.(MFR000006656C1F86A))
--
--  REBIND PACKAGE(MF.YMFC203.(MFR000007957418A72))
--
--  REBIND PACKAGE(MF.YMFC209.(MFR000003455A297A0))
--
--  REBIND PACKAGE(MF.YMFC209.(MFR0000050561B9011))
--
--  REBIND PACKAGE(MF.YMFC209.(MFR000006156605B7E))
--
--  REBIND PACKAGE(MF.YMFC209.(MFR000006656B0D50E))
--
--  REBIND PACKAGE(MF.YMFC209.(MFR0000079574192C4))
--
--  REBIND PACKAGE(MF.YMFC211.(MFR000003455A29EE0))
--
--  REBIND PACKAGE(MF.YMFC211.(MFR0000050561BC8A9))
--
--  REBIND PACKAGE(MF.YMFC211.(MFR000006156605751))
--
--  REBIND PACKAGE(MF.YMFC211.(MFR000006656C1FB75))
--
--  REBIND PACKAGE(MF.YMFC211.(MFR000007256F7A3D3))
--
--  REBIND PACKAGE(MF.YMFC211.(MFR000007957418AC3))
--
--  REBIND PACKAGE(MF.YMFC217.(MFR000003455A297FC))
--
--  REBIND PACKAGE(MF.YMFC217.(MFR0000050561B9648))
--
--  REBIND PACKAGE(MF.YMFC217.(MFR000006156605B52))
--
--  REBIND PACKAGE(MF.YMFC217.(MFR000006656C1FF7C))
--
--  REBIND PACKAGE(MF.YMFC217.(MFR000007256F7A481))
--
--  REBIND PACKAGE(MF.YMFC217.(MFR000007957419FF1))
--
--  REBIND PACKAGE(MF.YMFC219.(MFR00000505612A1DF))
--
--  REBIND PACKAGE(MF.YMFC219.(MFR0000061566057E5))
--
--  REBIND PACKAGE(MF.YMFC219.(MFR000006656C33628))
--
--  REBIND PACKAGE(MF.YMFC220.(MFR000005055FA980A))
--
--  REBIND PACKAGE(MF.YMFC220.(MFR0000061565465A2))
--
--  REBIND PACKAGE(MF.YMFC220.(MFR000006656C33B6B))
--
--  REBIND PACKAGE(MF.YMFC999.(MFR00000045486EAC4))
--
--  REBIND PACKAGE(MF.YMFC999.(MFR00000045486F46B))
--
--  REBIND PACKAGE(MF.YMFINFC.(A06M0267295403125F))
--
--  REBIND PACKAGE(MF.YMFINFO.(MFR0000050560270B4))
--
--  REBIND PACKAGE(MF.YMFINFO.(MFR0000050560270B4CICS))
--
--  REBIND PACKAGE(MF.YMFLPID.(MFR0000050560270B9))
--
--  REBIND PACKAGE(MF.YMFLPID.(MFR00000725729AA52))
--
--  REBIND PACKAGE(MF.YMFLPID.(MFR00000815735FF48))
--
--  REBIND PACKAGE(MF.YMFLPID.(MFR0000082577E5826))
--
--  REBIND PACKAGE(MF.YMFX155.(A06M0274525468DBC9))
--
--  REBIND PACKAGE(MF.YMFX155.(MFR000000654898DC6))
--
--  REBIND PACKAGE(MF.YMFX155.(MFR000000954BFD972))
--
--  REBIND PACKAGE(MF.YMFX155.(MFR0000034559E93E5))
--
--  REBIND PACKAGE(MF.YMFX155.(MFR0000050561B7A28))
--
--  REBIND PACKAGE(MF.YMFX155.(MFR000006156605569))
--
--  REBIND PACKAGE(MF.YMFX155.(MFR000006656C5AABD))
--
--  REBIND PACKAGE(MF.YMFX155.(MFR00000835767C612))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M020383))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M020384))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M020968))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M022304503C93C0))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M02297650A10E78))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M02325450EE84BE))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M02482152137894))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M0253205267EB08))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M02560752CC0743))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M025610533C1C84))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M0265125378B7F6))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M02663553B40D21))
--
--  REBIND PACKAGE(YY.YYMFX55.(A06M0271595436A01A))
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(MF202REB) cre= mod= ---------------------------------------
     REBIND PACKAGE(MF.MF5210.(A06M025609))
--
     REBIND PACKAGE(MF.MF5230.(A06M025609))
--
     REBIND PACKAGE(MF.MF7000.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7010.(MFR0000056))
--
     REBIND PACKAGE(MF.MF7010.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7020.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7110.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7120.(MFR0000035))
--
     REBIND PACKAGE(MF.MF7120.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7120.(MFR0000001))
--
     REBIND PACKAGE(MF.MF7200.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7200.(MFR0000001))
--
     REBIND PACKAGE(MF.MF7200.(MFR0000090))
--
     REBIND PACKAGE(MF.MF7210.(MFR0000056))
--
     REBIND PACKAGE(MF.MF7210.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7210.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7220.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7220.(MFR0000060))
--
     REBIND PACKAGE(MF.MF7220.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7230.(MFR0000073))
--
     REBIND PACKAGE(MF.MF7230.(MFR0000081))
--
     REBIND PACKAGE(MF.MF7230.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7240.(MFR0000035))
--
     REBIND PACKAGE(MF.MF7240.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7240.(MFR0000060))
--
     REBIND PACKAGE(MF.MF7250.(MFR0000035))
--
     REBIND PACKAGE(MF.MF7250.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7250.(MFR0000073))
--
     REBIND PACKAGE(MF.MF7260.(MFR0000035))
--
     REBIND PACKAGE(MF.MF7260.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7260.(MFR0000060))
--
     REBIND PACKAGE(MF.MF7300.(MFR0000060))
--
     REBIND PACKAGE(MF.MF7300.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7300.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7310.(MFR0000060))
--
     REBIND PACKAGE(MF.MF7310.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7310.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7320.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7320.(MFR0000060))
--
     REBIND PACKAGE(MF.MF7320.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7330.(MFR0000060))
--
     REBIND PACKAGE(MF.MF7330.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7330.(MFR0000078))
--
     REBIND PACKAGE(MF.MF7331.(A06M024135))
--
     REBIND PACKAGE(MF.MF7340.(MFR0000060))
--
     REBIND PACKAGE(MF.MF7340.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7340.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7360.(MFR0000060))
--
     REBIND PACKAGE(MF.MF7360.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7360.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7380.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7380.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7500.(MFR0000073))
--
     REBIND PACKAGE(MF.MF7500.(MFR0000081))
--
     REBIND PACKAGE(MF.MF7500.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7510.(MFR0000073))
--
     REBIND PACKAGE(MF.MF7510.(MFR0000081))
--
     REBIND PACKAGE(MF.MF7510.(MFR0000082))
--
     REBIND PACKAGE(MF.MF7550.(MFR0000035))
--
     REBIND PACKAGE(MF.MF7550.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7570.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7570.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7580.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7590.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7750.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7750.(MFR0000073))
--
     REBIND PACKAGE(MF.MF7801.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7801.(MFR0000073))
--
     REBIND PACKAGE(MF.MF7801.(MFR0000078))
--
     REBIND PACKAGE(MF.MF7802.(MFR0000065))
--
     REBIND PACKAGE(MF.MF7802.(MFR0000073))
--
     REBIND PACKAGE(MF.MF7802.(MFR0000078))
--
     REBIND PACKAGE(MF.MF7900.(MFR0000001))
--
     REBIND PACKAGE(MF.MF7902.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7930.(MFR0000056))
--
     REBIND PACKAGE(MF.MF7930.(MFR0000049))
--
     REBIND PACKAGE(MF.MF7930.(MFR0000060))
--
     REBIND PACKAGE(MF.MF8110.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8110.(MFR0000078))
--
     REBIND PACKAGE(MF.MF8110.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8111.(A06M023542))
--
     REBIND PACKAGE(MF.MF8111.(A06M023446))
--
     REBIND PACKAGE(MF.MF8111.(A06M023686))
--
     REBIND PACKAGE(MF.MF8120.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8120.(MFR0000078))
--
     REBIND PACKAGE(MF.MF8120.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8121.(A06M024078))
--
     REBIND PACKAGE(MF.MF8121.(A06M024620))
--
     REBIND PACKAGE(MF.MF8130.(MFR0000075))
--
     REBIND PACKAGE(MF.MF8130.(MFR0000004))
--
     REBIND PACKAGE(MF.MF8130.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8210.(MFR0000001))
--
     REBIND PACKAGE(MF.MF8210.(MFR0000019))
--
     REBIND PACKAGE(MF.MF8210.(MFR0000004))
--
     REBIND PACKAGE(MF.MF8211.(A06M024078))
--
     REBIND PACKAGE(MF.MF8211.(A06M024620))
--
     REBIND PACKAGE(MF.MF8230.(A06M022797))
--
     REBIND PACKAGE(MF.MF8230.(A06M024620))
--
     REBIND PACKAGE(MF.MF8230.(A06M025317))
--
     REBIND PACKAGE(MF.MF8310.(MFR0000049))
--
     REBIND PACKAGE(MF.MF8310.(MFR0000065))
--
     REBIND PACKAGE(MF.MF8310.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8320.(MFR0000065))
--
     REBIND PACKAGE(MF.MF8320.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8320.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8500.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8500.(MFR0000081))
--
     REBIND PACKAGE(MF.MF8500.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8501.(A19R002525))
--
     REBIND PACKAGE(MF.MF8501.(A19R001839))
--
     REBIND PACKAGE(MF.MF8502.(A19R002525))
--
     REBIND PACKAGE(MF.MF8502.(A19R001839))
--
     REBIND PACKAGE(MF.MF8505.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8505.(MFR0000081))
--
     REBIND PACKAGE(MF.MF8505.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8600.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8600.(MFR0000081))
--
     REBIND PACKAGE(MF.MF8600.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8610.(MFR0000035))
--
     REBIND PACKAGE(MF.MF8610.(MFR0000049))
--
     REBIND PACKAGE(MF.MF8620.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8620.(MFR0000081))
--
     REBIND PACKAGE(MF.MF8620.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8630.(MFR0000035))
--
     REBIND PACKAGE(MF.MF8630.(MFR0000049))
--
     REBIND PACKAGE(MF.MF8630.(MFR0000060))
--
     REBIND PACKAGE(MF.MF8700.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8703.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8704.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8705.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8706.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8707.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8708.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8710.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8711.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8714.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8715.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8717.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8718.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8719.(MFR0000082))
--
     REBIND PACKAGE(MF.MF8910.(MFR0000049))
--
     REBIND PACKAGE(MF.MF8910.(MFR0000065))
--
     REBIND PACKAGE(MF.MF8910.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8920.(MFR0000049))
--
     REBIND PACKAGE(MF.MF8920.(MFR0000060))
--
     REBIND PACKAGE(MF.MF8920.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8930.(MFR0000049))
--
     REBIND PACKAGE(MF.MF8930.(MFR0000065))
--
     REBIND PACKAGE(MF.MF8930.(MFR0000073))
--
     REBIND PACKAGE(MF.MF8940.(MFR0000035))
--
     REBIND PACKAGE(MF.MF8940.(MFR0000049))
--
     REBIND PACKAGE(MF.MF8950.(MFR0000049))
--
     REBIND PACKAGE(MF.MF8960.(MFR0000082))
--
     REBIND PACKAGE(MF.MF9002.(MFR0000049))
--
     REBIND PACKAGE(MF.MF9002.(MFR0000065))
--
     REBIND PACKAGE(MF.MF9004.(MFR0000049))
--
     REBIND PACKAGE(MF.MF9004.(MFR0000065))
--
     REBIND PACKAGE(MF.MF9008.(MFR0000054))
--
     REBIND PACKAGE(MF.MF9010.(MFR0000054))
--
     REBIND PACKAGE(MF.MF9910.(A06M023542))
--
     REBIND PACKAGE(MF.MF9911.(A06M023542))
--
     REBIND PACKAGE(MF.YMFC001.(A06M02230450715910))
--
     REBIND PACKAGE(MF.YMFC001.(A06M02297650A10D70))
--
     REBIND PACKAGE(MF.YMFC001.(A06M02311350D6EB91))
--
     REBIND PACKAGE(MF.YMFC001.(A06M02482152286595))
--
     REBIND PACKAGE(MF.YMFC001.(A06M025182525A6405))
--
     REBIND PACKAGE(MF.YMFC001.(A06M0253205267EE12))
--
     REBIND PACKAGE(MF.YMFC001.(A06M02560752CBFAD5))
--
     REBIND PACKAGE(MF.YMFC001.(A06M02613253048EFA))
--
     REBIND PACKAGE(MF.YMFC001.(A06M025610536F8CA6))
--
     REBIND PACKAGE(MF.YMFC001.(A06M026644538DB03D))
--
     REBIND PACKAGE(MF.YMFC001.(A06M02663553B40B61))
--
     REBIND PACKAGE(MF.YMFC001.(A06M02715954369B52))
--
     REBIND PACKAGE(MF.YMFC001.(MFR000000954B51993))
--
     REBIND PACKAGE(MF.YMFC002.(A06M02352052285F4F))
--
     REBIND PACKAGE(MF.YMFC002.(A06M0253205267EDEC))
--
     REBIND PACKAGE(MF.YMFC002.(A06M02560752CE9ADE))
--
     REBIND PACKAGE(MF.YMFC002.(A06M025610532EF354))
--
     REBIND PACKAGE(MF.YMFC002.(A06M0266355399BFDF))
--
     REBIND PACKAGE(MF.YMFC002.(A06M026729543BE13E))
--
     REBIND PACKAGE(MF.YMFC003.(A06M020968))
--
     REBIND PACKAGE(MF.YMFC003.(A06M019961))
--
     REBIND PACKAGE(MF.YMFC003.(A06M021412))
--
     REBIND PACKAGE(MF.YMFC003.(A06M022304504CA443))
--
     REBIND PACKAGE(MF.YMFC003.(A06M02297650A10D96))
--
     REBIND PACKAGE(MF.YMFC003.(A06M02325450EE84A7))
--
     REBIND PACKAGE(MF.YMFC003.(A06M02352052235FA5))
--
     REBIND PACKAGE(MF.YMFC003.(A06M0253205267EDA1))
--
     REBIND PACKAGE(MF.YMFC003.(A06M02561053318ADB))
--
     REBIND PACKAGE(MF.YMFC003.(A06M02663553B40C7F))
--
     REBIND PACKAGE(MF.YMFC003.(A06M026729543BE1D2))
--
     REBIND PACKAGE(MF.YMFC004.(A06M021412))
--
     REBIND PACKAGE(MF.YMFC004.(A06M0214124FE1F2B4))
--
     REBIND PACKAGE(MF.YMFC004.(A06M02230450715DAD))
--
     REBIND PACKAGE(MF.YMFC004.(A06M02297650A51B36))
--
     REBIND PACKAGE(MF.YMFC004.(A06M024821521377A6))
--
     REBIND PACKAGE(MF.YMFC004.(A06M025054525C03A9))
--
     REBIND PACKAGE(MF.YMFC004.(A06M0253205267ED7F))
--
     REBIND PACKAGE(MF.YMFC004.(A06M02560752CD309B))
--
     REBIND PACKAGE(MF.YMFC004.(A06M02561053610904))
--
     REBIND PACKAGE(MF.YMFC004.(A06M0266445384AF2E))
--
     REBIND PACKAGE(MF.YMFC004.(A06M02663553B40C82))
--
     REBIND PACKAGE(MF.YMFC004.(A06M0271595435601A))
--
     REBIND PACKAGE(MF.YMFC004.(MFR000000954B518D8))
--
     REBIND PACKAGE(MF.YMFC005.(A06M020690))
--
     REBIND PACKAGE(MF.YMFC005.(A06M020707))
--
     REBIND PACKAGE(MF.YMFC005.(A06M020487))
--
     REBIND PACKAGE(MF.YMFC005.(A06M021412))
--
     REBIND PACKAGE(MF.YMFC005.(A06M02230450715A63))
--
     REBIND PACKAGE(MF.YMFC005.(A06M02311350D6EBAB))
--
     REBIND PACKAGE(MF.YMFC005.(A06M0248215228681C))
--
     REBIND PACKAGE(MF.YMFC005.(A06M025182525A642C))
--
     REBIND PACKAGE(MF.YMFC005.(A06M025054525E4A6B))
--
     REBIND PACKAGE(MF.YMFC005.(A06M0253205267ED6B))
--
     REBIND PACKAGE(MF.YMFC005.(A06M02560752CD30BC))
--
     REBIND PACKAGE(MF.YMFC005.(A06M02663553B40C8B))
--
     REBIND PACKAGE(MF.YMFC005.(A06M027159543560E3))
--
     REBIND PACKAGE(MF.YMFC005.(MFR000000954B518E5))
--
     REBIND PACKAGE(MF.YMFC006.(A06M0256105337E5BC))
--
     REBIND PACKAGE(MF.YMFC006.(A06M02651253788C6C))
--
     REBIND PACKAGE(MF.YMFC006.(A06M02663553B40C96))
--
     REBIND PACKAGE(MF.YMFC006.(A06M0267295435676D))
--
     REBIND PACKAGE(MF.YMFC007.(A06M020785))
--
     REBIND PACKAGE(MF.YMFC007.(A06M0207854FF313A9))
--
     REBIND PACKAGE(MF.YMFC007.(A06M02230450715940))
--
     REBIND PACKAGE(MF.YMFC007.(A06M025607529C9320))
--
     REBIND PACKAGE(MF.YMFC007.(A06M02561053676932))
--
     REBIND PACKAGE(MF.YMFC007.(A06M026644538C6680))
--
     REBIND PACKAGE(MF.YMFC007.(A06M02672954356807))
--
     REBIND PACKAGE(MF.YMFC008.(A06M020785))
--
     REBIND PACKAGE(MF.YMFC008.(A06M0207854FF3150D))
--
     REBIND PACKAGE(MF.YMFC008.(A06M02230450715943))
--
     REBIND PACKAGE(MF.YMFC008.(A06M02297650A10DCF))
--
     REBIND PACKAGE(MF.YMFC008.(A06M02345050FD12BA))
--
     REBIND PACKAGE(MF.YMFC008.(A06M024821521377CD))
--
     REBIND PACKAGE(MF.YMFC008.(A06M0253205267ECFB))
--
     REBIND PACKAGE(MF.YMFC008.(A06M025607529C932F))
--
     REBIND PACKAGE(MF.YMFC008.(A06M0256105337E4D3))
--
     REBIND PACKAGE(MF.YMFC008.(A06M0266445385E835))
--
     REBIND PACKAGE(MF.YMFC008.(A06M02663553B40BA6))
--
     REBIND PACKAGE(MF.YMFC008.(A06M02672954356873))
--
     REBIND PACKAGE(MF.YMFC009.(A06M02560752A46A58))
--
     REBIND PACKAGE(MF.YMFC009.(A06M025610536F7BBB))
--
     REBIND PACKAGE(MF.YMFC009.(A06M026512537892FC))
--
     REBIND PACKAGE(MF.YMFC009.(A06M02663553B40BAE))
--
     REBIND PACKAGE(MF.YMFC009.(A06M027159543BDEC1))
--
     REBIND PACKAGE(MF.YMFC010.(A06M025610536F8F8B))
--
     REBIND PACKAGE(MF.YMFC010.(A06M026512537890CD))
--
     REBIND PACKAGE(MF.YMFC010.(A06M02700053E10A95))
--
     REBIND PACKAGE(MF.YMFC010.(A06M02663553E211CE))
--
     REBIND PACKAGE(MF.YMFC010.(A06M02715954355D79))
--
     REBIND PACKAGE(MF.YMFC011.(A06M023520524A9DFD))
--
     REBIND PACKAGE(MF.YMFC011.(A06M0253205270DCB2))
--
     REBIND PACKAGE(MF.YMFC011.(A06M02560752CBFB1D))
--
     REBIND PACKAGE(MF.YMFC011.(A06M026274532EB0A2))
--
     REBIND PACKAGE(MF.YMFC011.(A06M025610536F7C29))
--
     REBIND PACKAGE(MF.YMFC011.(A06M0266355384BF23))
--
     REBIND PACKAGE(MF.YMFC011.(A06M02738954282462))
--
     REBIND PACKAGE(MF.YMFC011.(A06M026729543BE222))
--
     REBIND PACKAGE(MF.YMFC012.(A06M02560752CD2C29))
--
     REBIND PACKAGE(MF.YMFC012.(A06M026264533D5907))
--
     REBIND PACKAGE(MF.YMFC012.(A06M02561053413707))
--
     REBIND PACKAGE(MF.YMFC012.(A06M026512537891BA))
--
     REBIND PACKAGE(MF.YMFC012.(A06M026644538F50EA))
--
     REBIND PACKAGE(MF.YMFC012.(A06M02663553BBFDA1))
--
     REBIND PACKAGE(MF.YMFC012.(A06M026729543BE65F))
--
     REBIND PACKAGE(MF.YMFC014.(A06M02560752CD1B68))
--
     REBIND PACKAGE(MF.YMFC014.(A06M02341952FCBB0E))
--
     REBIND PACKAGE(MF.YMFC014.(A06M0267295436A722))
--
     REBIND PACKAGE(MF.YMFC015.(A06M02561053426693))
--
     REBIND PACKAGE(MF.YMFC015.(A06M02689853C676A7))
--
     REBIND PACKAGE(MF.YMFC015.(A06M02663553D6564F))
--
     REBIND PACKAGE(MF.YMFC015.(A06M027159542D71EB))
--
     REBIND PACKAGE(MF.YMFC015.(MFR000000954B517BE))
--
     REBIND PACKAGE(MF.YMFC016.(A06M02561053398C72))
--
     REBIND PACKAGE(MF.YMFC016.(A06M02689853C676AF))
--
     REBIND PACKAGE(MF.YMFC016.(A06M02663553D655D0))
--
     REBIND PACKAGE(MF.YMFC016.(A06M027159542D7226))
--
     REBIND PACKAGE(MF.YMFC016.(MFR000000954B517C5))
--
     REBIND PACKAGE(MF.YMFC017.(A06M025610536F7CDF))
--
     REBIND PACKAGE(MF.YMFC017.(A06M02651253789276))
--
     REBIND PACKAGE(MF.YMFC017.(A06M02672953DE3680))
--
     REBIND PACKAGE(MF.YMFC017.(A06M02699153DF8D59))
--
     REBIND PACKAGE(MF.YMFC017.(A06M02663553DFB7EE))
--
     REBIND PACKAGE(MF.YMFC017.(A06M02728854106546))
--
     REBIND PACKAGE(MF.YMFC017.(A06M027159543BDF1E))
--
     REBIND PACKAGE(MF.YMFC101.(A06M02663553C5771E))
--
     REBIND PACKAGE(MF.YMFC101.(A06M02698453F5D78F))
--
     REBIND PACKAGE(MF.YMFC101.(A06M027338541EFE8E))
--
     REBIND PACKAGE(MF.YMFC101.(A06M027159544F7F40))
--
     REBIND PACKAGE(MF.YMFC101.(A06M027452547D9E63))
--
     REBIND PACKAGE(MF.YMFC101.(MFR000000654914B9C))
--
     REBIND PACKAGE(MF.YMFC101.(MFR000000954B50523))
--
     REBIND PACKAGE(MF.YMFC101.(MFR0000024552BF4EF))
--
     REBIND PACKAGE(MF.YMFC101.(MFR0000032556D9795))
--
     REBIND PACKAGE(MF.YMFC101.(MFR0000046556DD5C7))
--
     REBIND PACKAGE(MF.YMFC101.(MFR0000034559E8A78))
--
     REBIND PACKAGE(MF.YMFC101.(MFR0000050561B7A9A))
--
     REBIND PACKAGE(MF.YMFC101.(MFR00000615665540F))
--
     REBIND PACKAGE(MF.YMFC101.(MFR000000456729578))
--
     REBIND PACKAGE(MF.YMFC101.(MFR00000045672987C))
--
     REBIND PACKAGE(MF.YMFC101.(MFR000006656B0DB0A))
--
     REBIND PACKAGE(MF.YMFC101.(MFR000007556F0221D))
--
     REBIND PACKAGE(MF.YMFC101.(MFR0000079574C7074))
--
     REBIND PACKAGE(MF.YMFC101.(MFR0000083578E3B26))
--
     REBIND PACKAGE(MF.YMFC102.(A06M026729543D2C85))
--
     REBIND PACKAGE(MF.YMFC102.(A06M027452546CAFDA))
--
     REBIND PACKAGE(MF.YMFC102.(MFR0000006548983E6))
--
     REBIND PACKAGE(MF.YMFC102.(MFR000000954AAB638))
--
     REBIND PACKAGE(MF.YMFC102.(MFR0000024550571A7))
--
     REBIND PACKAGE(MF.YMFC102.(MFR000003455A514AE))
--
     REBIND PACKAGE(MF.YMFC102.(MFR000005755D1E863))
--
     REBIND PACKAGE(MF.YMFC102.(MFR0000050561BC80D))
--
     REBIND PACKAGE(MF.YMFC103.(A06M026729543D2CBA))
--
     REBIND PACKAGE(MF.YMFC103.(A06M027452546CB0A9))
--
     REBIND PACKAGE(MF.YMFC103.(MFR0000006548983F7))
--
     REBIND PACKAGE(MF.YMFC103.(MFR000000954B530F8))
--
     REBIND PACKAGE(MF.YMFC103.(MFR000002454E9E006))
--
     REBIND PACKAGE(MF.YMFC103.(MFR000003455A51C2E))
--
     REBIND PACKAGE(MF.YMFC103.(MFR0000050561B7CAB))
--
     REBIND PACKAGE(MF.YMFC104.(A06M026729543D2F02))
--
     REBIND PACKAGE(MF.YMFC104.(A06M027110546B44FB))
--
     REBIND PACKAGE(MF.YMFC104.(A06M027452547D8B15))
--
     REBIND PACKAGE(MF.YMFC104.(MFR0000006548F0CB0))
--
     REBIND PACKAGE(MF.YMFC104.(MFR000000954B69679))
--
     REBIND PACKAGE(MF.YMFC104.(MFR00000315522A939))
--
     REBIND PACKAGE(MF.YMFC104.(MFR0000024554B731D))
--
     REBIND PACKAGE(MF.YMFC104.(MFR00000435565C9AA))
--
     REBIND PACKAGE(MF.YMFC104.(MFR0000032556DBA77))
--
     REBIND PACKAGE(MF.YMFC104.(MFR0000046556DD4E1))
--
     REBIND PACKAGE(MF.YMFC104.(MFR0000034559BDB0F))
--
     REBIND PACKAGE(MF.YMFC104.(MFR000000455DAF055))
--
     REBIND PACKAGE(MF.YMFC104.(MFR000005855E475DE))
--
     REBIND PACKAGE(MF.YMFC104.(MFR0000050561B7D10))
--
     REBIND PACKAGE(MF.YMFC104.(MFR000006156604E3B))
--
     REBIND PACKAGE(MF.YMFC104.(MFR000006656B1D6BC))
--
     REBIND PACKAGE(MF.YMFC104.(MFR000000456F1559D))
--
     REBIND PACKAGE(MF.YMFC104.(MFR000007556F15DB9))
--
     REBIND PACKAGE(MF.YMFC104.(MFR0000079574C707A))
--
     REBIND PACKAGE(MF.YMFC104.(MFR0000083578E3B39))
--
     REBIND PACKAGE(MF.YMFC105.(A06M026729543D2ECA))
--
     REBIND PACKAGE(MF.YMFC105.(A06M027452547D8B1C))
--
     REBIND PACKAGE(MF.YMFC105.(MFR000000654914C82))
--
     REBIND PACKAGE(MF.YMFC105.(MFR000000954B50618))
--
     REBIND PACKAGE(MF.YMFC105.(MFR00000245538B3F4))
--
     REBIND PACKAGE(MF.YMFC105.(MFR0000032556DC541))
--
     REBIND PACKAGE(MF.YMFC105.(MFR0000046556DD4D6))
--
     REBIND PACKAGE(MF.YMFC105.(MFR0000034559BDB1D))
--
     REBIND PACKAGE(MF.YMFC105.(MFR0000050561B7D86))
--
     REBIND PACKAGE(MF.YMFC105.(MFR000006156655415))
--
     REBIND PACKAGE(MF.YMFC105.(MFR000006656C59C6A))
--
     REBIND PACKAGE(MF.YMFC105.(MFR000007556F02225))
--
     REBIND PACKAGE(MF.YMFC105.(MFR0000079574C707F))
--
     REBIND PACKAGE(MF.YMFC105.(MFR0000083578E3B49))
--
     REBIND PACKAGE(MF.YMFC106.(A06M027159543D3B09))
--
     REBIND PACKAGE(MF.YMFC106.(A06M027452546CB444))
--
     REBIND PACKAGE(MF.YMFC106.(MFR0000006548985B4))
--
     REBIND PACKAGE(MF.YMFC106.(MFR000000954BE6D4D))
--
     REBIND PACKAGE(MF.YMFC106.(MFR000003455A28BE6))
--
     REBIND PACKAGE(MF.YMFC106.(MFR0000050561B8D77))
--
     REBIND PACKAGE(MF.YMFC106.(MFR000006156605954))
--
     REBIND PACKAGE(MF.YMFC106.(MFR000006656CB3A49))
--
     REBIND PACKAGE(MF.YMFC106.(MFR00000795728AD7F))
--
     REBIND PACKAGE(MF.YMFC106.(MFR000008357583124))
--
     REBIND PACKAGE(MF.YMFC107.(A06M027159543BD679))
--
     REBIND PACKAGE(MF.YMFC107.(A06M027452546CB47E))
--
     REBIND PACKAGE(MF.YMFC107.(MFR0000006548985C6))
--
     REBIND PACKAGE(MF.YMFC107.(MFR000000954BE6CAE))
--
     REBIND PACKAGE(MF.YMFC107.(MFR0000034559E3B11))
--
     REBIND PACKAGE(MF.YMFC107.(MFR000006156546BC2))
--
     REBIND PACKAGE(MF.YMFC107.(MFR00000835757D747))
--
     REBIND PACKAGE(MF.YMFC108.(A06M027159544CD861))
--
     REBIND PACKAGE(MF.YMFC108.(A06M027452546CB4C1))
--
     REBIND PACKAGE(MF.YMFC108.(MFR00000045489A997))
--
     REBIND PACKAGE(MF.YMFC108.(MFR00000045489B0EC))
--
     REBIND PACKAGE(MF.YMFC108.(MFR00000065490163B))
--
     REBIND PACKAGE(MF.YMFC108.(MFR000000954BB9CE9))
--
     REBIND PACKAGE(MF.YMFC108.(MFR000003455A28C08))
--
     REBIND PACKAGE(MF.YMFC108.(MFR0000050561B8E06))
--
     REBIND PACKAGE(MF.YMFC108.(MFR0000061566059BA))
--
     REBIND PACKAGE(MF.YMFC108.(MFR000006656B2128C))
--
     REBIND PACKAGE(MF.YMFC108.(MFR00000795728ADD0))
--
     REBIND PACKAGE(MF.YMFC108.(MFR0000083575831C8))
--
     REBIND PACKAGE(MF.YMFC109.(A06M026729543D30E5))
--
     REBIND PACKAGE(MF.YMFC109.(A06M027452546DBEFA))
--
     REBIND PACKAGE(MF.YMFC109.(MFR00000065489895E))
--
     REBIND PACKAGE(MF.YMFC109.(MFR000000954C4D95A))
--
     REBIND PACKAGE(MF.YMFC109.(MFR000002354E1EE99))
--
     REBIND PACKAGE(MF.YMFC109.(MFR000003455A514FD))
--
     REBIND PACKAGE(MF.YMFC109.(MFR0000050561B8F9A))
--
     REBIND PACKAGE(MF.YMFC110.(A06M027159543BD86F))
--
     REBIND PACKAGE(MF.YMFC110.(A06M027452546DC21F))
--
     REBIND PACKAGE(MF.YMFC110.(MFR000000654898A18))
--
     REBIND PACKAGE(MF.YMFC110.(MFR000000954A91AF8))
--
     REBIND PACKAGE(MF.YMFC110.(MFR000003455A2928D))
--
     REBIND PACKAGE(MF.YMFC110.(MFR0000050561B7AAE))
--
     REBIND PACKAGE(MF.YMFC110.(MFR000006156605015))
--
     REBIND PACKAGE(MF.YMFC110.(MFR000006656C594B5))
--
     REBIND PACKAGE(MF.YMFC110.(MFR00000795728AE0D))
--
     REBIND PACKAGE(MF.YMFC110.(MFR00000835767C4BD))
--
     REBIND PACKAGE(MF.YMFC111.(A06M026729543D2CFF))
--
     REBIND PACKAGE(MF.YMFC111.(A06M027680546E0BCD))
--
     REBIND PACKAGE(MF.YMFC111.(A06M027452547C4712))
--
     REBIND PACKAGE(MF.YMFC111.(MFR00000065489840B))
--
     REBIND PACKAGE(MF.YMFC111.(MFR000000954BE6AB0))
--
     REBIND PACKAGE(MF.YMFC111.(MFR000002455127F24))
--
     REBIND PACKAGE(MF.YMFC111.(MFR000003455A514E6))
--
     REBIND PACKAGE(MF.YMFC111.(MFR0000050561BC9E6))
--
     REBIND PACKAGE(MF.YMFC112.(A06M027159543D38B4))
--
     REBIND PACKAGE(MF.YMFC112.(A06M027452546DC37F))
--
     REBIND PACKAGE(MF.YMFC112.(MFR000000654898AFC))
--
     REBIND PACKAGE(MF.YMFC112.(MFR000000954A91662))
--
     REBIND PACKAGE(MF.YMFC112.(MFR00000245523C86D))
--
     REBIND PACKAGE(MF.YMFC112.(MFR000003455A294D6))
--
     REBIND PACKAGE(MF.YMFC112.(MFR0000050561BCD4F))
--
     REBIND PACKAGE(MF.YMFC112.(MFR000000456645719))
--
     REBIND PACKAGE(MF.YMFC112.(MFR000006156657951))
--
     REBIND PACKAGE(MF.YMFC112.(MFR000006656B1CA60))
--
     REBIND PACKAGE(MF.YMFC112.(MFR000007256F7A308))
--
     REBIND PACKAGE(MF.YMFC112.(MFR0000079573DC572))
--
     REBIND PACKAGE(MF.YMFC112.(MFR00000835767C4C4))
--
     REBIND PACKAGE(MF.YMFC113.(A06M02715954315ED7))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004547C851B))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004547C8D6F))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004547C954B))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004547C980C))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9981))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9BCE))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004547C9DEF))
--
     REBIND PACKAGE(MF.YMFC113.(A06M027452547DA0D2))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004547F0A9B))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045480695B))
--
     REBIND PACKAGE(MF.YMFC113.(MFR000000454857785))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004548584D3))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045485C1AB))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045485D2F7))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045485D51B))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045486BBDA))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045486E315))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045486E5A7))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045486E6D4))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045486E8D7))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045486F91D))
--
     REBIND PACKAGE(MF.YMFC113.(MFR000000454871A0D))
--
     REBIND PACKAGE(MF.YMFC113.(MFR000000454883902))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004548848D3))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004548851E8))
--
     REBIND PACKAGE(MF.YMFC113.(MFR000000454885516))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045488580B))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000004548862E2))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000045489A7B6))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000006548F0B50))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000024552BCF02))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000032556D97A0))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000505631ED02))
--
     REBIND PACKAGE(MF.YMFC113.(MFR0000061564C942A))
--
     REBIND PACKAGE(MF.YMFC113.(MFR000006656BC60A7))
--
     REBIND PACKAGE(MF.YMFC113.(MFR00000835767C4CA))
--
     REBIND PACKAGE(MF.YMFC114.(A06M02715954315F12))
--
     REBIND PACKAGE(MF.YMFC114.(A06M027452547D87D2))
--
     REBIND PACKAGE(MF.YMFC114.(MFR000000654898B8E));
--
     REBIND PACKAGE(MF.YMFC114.(MFR000000954B3E2FB));
--
     REBIND PACKAGE(MF.YMFC114.(MFR0000083578E4191));
--
     REBIND PACKAGE(MF.YMFC115.(A06M02663553A30FCC));
--
     REBIND PACKAGE(MF.YMFC115.(A06M026729543D333A));
--
     REBIND PACKAGE(MF.YMFC115.(A06M027452546DB354));
--
     REBIND PACKAGE(MF.YMFC115.(MFR000000654898C30));
--
     REBIND PACKAGE(MF.YMFC115.(MFR000000954A402D2));
--
     REBIND PACKAGE(MF.YMFC115.(MFR0000024552BE538));
--
     REBIND PACKAGE(MF.YMFC115.(MFR0000050561A96A5));
--
     REBIND PACKAGE(MF.YMFC115.(MFR000006156545415));
--
     REBIND PACKAGE(MF.YMFC115.(MFR000006656C590E1));
--
     REBIND PACKAGE(MF.YMFC115.(MFR0000004570E1153));
--
     REBIND PACKAGE(MF.YMFC115.(MFR0000079573DC675));
--
     REBIND PACKAGE(MF.YMFC115.(MFR00000835767C4D6));
--
     REBIND PACKAGE(MF.YMFC116.(A06M02663553A30FEF));
--
     REBIND PACKAGE(MF.YMFC116.(A06M026729543BB49C));
--
     REBIND PACKAGE(MF.YMFC116.(A06M027452546DB38A));
--
     REBIND PACKAGE(MF.YMFC116.(MFR000000654898C41));
--
     REBIND PACKAGE(MF.YMFC116.(MFR000000954A410A3));
--
     REBIND PACKAGE(MF.YMFC116.(MFR000002454F3056F))
--
     REBIND PACKAGE(MF.YMFC116.(MFR0000050561A9685))
--
     REBIND PACKAGE(MF.YMFC116.(MFR0000061565453DB))
--
     REBIND PACKAGE(MF.YMFC116.(MFR000006656A095E2))
--
     REBIND PACKAGE(MF.YMFC116.(MFR0000004570E1158))
--
     REBIND PACKAGE(MF.YMFC116.(MFR00000835767C4E0))
--
     REBIND PACKAGE(MF.YMFC117.(A06M026729543D316A))
--
     REBIND PACKAGE(MF.YMFC117.(A06M027680546E0852))
--
     REBIND PACKAGE(MF.YMFC117.(A06M027452547C48AB))
--
     REBIND PACKAGE(MF.YMFC117.(MFR000000654898973))
--
     REBIND PACKAGE(MF.YMFC117.(MFR000000954C50E17))
--
     REBIND PACKAGE(MF.YMFC117.(MFR000003455A51514))
--
     REBIND PACKAGE(MF.YMFC117.(MFR0000050561B95FF))
--
     REBIND PACKAGE(MF.YMFC118.(A06M026729543BAB2C))
--
     REBIND PACKAGE(MF.YMFC118.(A06M027452546DC53A))
--
     REBIND PACKAGE(MF.YMFC118.(MFR000000654898CE6))
--
     REBIND PACKAGE(MF.YMFC118.(MFR000000954B3EE03))
--
     REBIND PACKAGE(MF.YMFC118.(MFR0000024554B758C))
--
     REBIND PACKAGE(MF.YMFC118.(MFR000003455B4E2B8))
--
     REBIND PACKAGE(MF.YMFC118.(MFR0000050561B8A9F))
--
     REBIND PACKAGE(MF.YMFC118.(MFR0000061566050F0))
--
     REBIND PACKAGE(MF.YMFC118.(MFR000006656C59673))
--
     REBIND PACKAGE(MF.YMFC118.(MFR00000795728AE83))
--
     REBIND PACKAGE(MF.YMFC118.(MFR0000083575FEE4D))
--
     REBIND PACKAGE(MF.YMFC119.(MFR0000034559BEA25))
--
     REBIND PACKAGE(MF.YMFC120.(MFR0000034559BEDB5))
--
     REBIND PACKAGE(MF.YMFC120.(MFR000005055F01B84))
--
     REBIND PACKAGE(MF.YMFC202.(MFR000003455A29E00))
--
     REBIND PACKAGE(MF.YMFC202.(MFR00000505641ED35))
--
     REBIND PACKAGE(MF.YMFC202.(MFR00000615660567D))
--
     REBIND PACKAGE(MF.YMFC202.(MFR000006656C1F613))
--
     REBIND PACKAGE(MF.YMFC202.(MFR0000079574189AF))
--
     REBIND PACKAGE(MF.YMFC203.(MFR000003455A29E77))
--
     REBIND PACKAGE(MF.YMFC203.(MFR0000050561B7C7C))
--
     REBIND PACKAGE(MF.YMFC203.(MFR0000061566056EA))
--
     REBIND PACKAGE(MF.YMFC203.(MFR000006656C1F86A))
--
     REBIND PACKAGE(MF.YMFC203.(MFR000007957418A72))
--
     REBIND PACKAGE(MF.YMFC209.(MFR000003455A297A0))
--
     REBIND PACKAGE(MF.YMFC209.(MFR0000050561B9011))
--
     REBIND PACKAGE(MF.YMFC209.(MFR000006156605B7E))
--
     REBIND PACKAGE(MF.YMFC209.(MFR000006656B0D50E))
--
     REBIND PACKAGE(MF.YMFC209.(MFR0000079574192C4))
--
     REBIND PACKAGE(MF.YMFC211.(MFR000003455A29EE0))
--
     REBIND PACKAGE(MF.YMFC211.(MFR0000050561BC8A9))
--
     REBIND PACKAGE(MF.YMFC211.(MFR000006156605751))
--
     REBIND PACKAGE(MF.YMFC211.(MFR000006656C1FB75))
--
     REBIND PACKAGE(MF.YMFC211.(MFR000007256F7A3D3))
--
     REBIND PACKAGE(MF.YMFC211.(MFR000007957418AC3))
--
     REBIND PACKAGE(MF.YMFC217.(MFR000003455A297FC))
--
     REBIND PACKAGE(MF.YMFC217.(MFR0000050561B9648))
--
     REBIND PACKAGE(MF.YMFC217.(MFR000006156605B52))
--
     REBIND PACKAGE(MF.YMFC217.(MFR000006656C1FF7C))
--
     REBIND PACKAGE(MF.YMFC217.(MFR000007256F7A481))
--
     REBIND PACKAGE(MF.YMFC217.(MFR000007957419FF1))
--
     REBIND PACKAGE(MF.YMFC219.(MFR00000505612A1DF))
--
     REBIND PACKAGE(MF.YMFC219.(MFR0000061566057E5))
--
     REBIND PACKAGE(MF.YMFC219.(MFR000006656C33628))
--
     REBIND PACKAGE(MF.YMFC220.(MFR000005055FA980A))
--
     REBIND PACKAGE(MF.YMFC220.(MFR0000061565465A2))
--
     REBIND PACKAGE(MF.YMFC220.(MFR000006656C33B6B))
--
     REBIND PACKAGE(MF.YMFC999.(MFR00000045486EAC4))
--
     REBIND PACKAGE(MF.YMFC999.(MFR00000045486F46B))
--
     REBIND PACKAGE(MF.YMFINFC.(A06M0267295403125F))
--
     REBIND PACKAGE(MF.YMFINFO.(MFR0000050560270B4))
--
     REBIND PACKAGE(MF.YMFINFO.(MFR0000050560270B4CICS))
--
     REBIND PACKAGE(MF.YMFLPID.(MFR0000050560270B9))
--
     REBIND PACKAGE(MF.YMFLPID.(MFR00000725729AA52))
--
     REBIND PACKAGE(MF.YMFLPID.(MFR00000815735FF48))
--
     REBIND PACKAGE(MF.YMFLPID.(MFR0000082577E5826))
--
     REBIND PACKAGE(MF.YMFX155.(A06M0274525468DBC9))
--
     REBIND PACKAGE(MF.YMFX155.(MFR000000654898DC6))
--
     REBIND PACKAGE(MF.YMFX155.(MFR000000954BFD972))
--
     REBIND PACKAGE(MF.YMFX155.(MFR0000034559E93E5))
--
     REBIND PACKAGE(MF.YMFX155.(MFR0000050561B7A28))
--
     REBIND PACKAGE(MF.YMFX155.(MFR000006156605569))
--
     REBIND PACKAGE(MF.YMFX155.(MFR000006656C5AABD))
--
     REBIND PACKAGE(MF.YMFX155.(MFR00000835767C612))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M020383))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M020384))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M020968))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M022304503C93C0))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M02297650A10E78))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M02325450EE84BE))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M02482152137894))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M0253205267EB08))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M02560752CC0743))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M025610533C1C84))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M0265125378B7F6))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M02663553B40D21))
--
     REBIND PACKAGE(YY.YYMFX55.(A06M0271595436A01A))
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(MF7800) cre=2014-11-27 mod=2014-11-27-17.03.53 A540769 ----
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
    select *
         declare global temporary table session.Tkey_Ver_1 as
             (select MF150001
                  from oa1p.tmf150a1
             )
         with no data
         on commit delete rows
         ;
explain plan set queryno = 3   for
     insert into oa1p.tmf150h1
        (MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
        ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
        ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
        ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
        ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
        ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
        ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
        ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
        ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
        ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
        ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
        ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
        ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
        ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
        ,MF150091, MF150092, MF150019A)
         select
              MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
             ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
             ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
             ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
             ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
             ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
             ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
             ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
             ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
             ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
             ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
             ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
             ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
             ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
             ,MF150091, MF150092, MF150019A
         from oa1p.tmf150a1
             where MF150001 in
                (select MF150001 from session.Tkey_Ver_1)
;
explain plan set queryno = 7   for
     delete from oa1p.tmf150a1 a
         where MF150001 in
            (select MF150001 from session.Tkey_Ver_1)
      ;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
    with ur
;
rollback
;;;;
 /********************************************************************/
 /*                                                                  */
 /*    Letzte Source-Änderung:   21. May. 2012   09:12   F542850     */
 /*                                                                  */
 /********************************************************************/
 /* ----------------------------------------------------------------- * 00010002
  ¦                                                      vvv          ¦ 00020002
  ¦  Package.....: MFR_sfl_history                      ~~~~~         ¦ 00030002
  ¦                                                    ( O O )        ¦ 00040002
  + -----------------------------------------------oooo--(_)--oooo--- + 00050002
  ¦                                                                   ¦ 00060002
  ¦  Autor.......: Corrado Garbagnati  KGCG 21                        ¦ 00070002
  ¦  Datum.......: 10/09/2010                                         ¦ 00080002
  ¦                                                  .oooO            ¦ 00090002
  + -------------------------------------------------(   )-Oooo.----- + 00100002
  ¦                                                   \ (  (   )      ¦ 00110002
  ¦                                                    \_)  ) /       ¦ 00120002
  ¦                                                        (_/        ¦ 00130002
  + ----------------------------------------------------------------- + 00140002
  ¦                                                                   ¦ 00160002
  ¦  Exports.....: MF7800                                             ¦ 00160002
  ¦                                                                   ¦ 00160002
  + ----------------------------------------------------------------- + 00140002
  ¦  Beschreibung:                                                    ¦ 00150002
  ¦                                                                   ¦ 00160002
  ¦  Das Programm historisiert Flüsse, welcher älter als ein Jahr     ¦ 00160002
  ¦  sind. Dieser Prozess koptiert die Daten in TMF150H1 und löscht   ¦ 00160002
  ¦  sie in TMF150A1.                                                 ¦ 00160002
  ¦  Um regelmässiges Absetzen von Commits zu ermöglichen, werden     ¦ 00160002
  ¦  die Daten in Blöcken kopiert. Die Blockgrösse ist in             ¦ 00160002
  ¦  Makro @blocksize (1000) definiert. Dieser Wert kann              ¦ 00160002
  ¦  von "aussen" nicht verändert werden.                             ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  Das Programm läuft wöchentich jeweils am Sonntag.                ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  Es stehen mehrere Transfer-Algorithmen zur Verfügung, die        ¦ 00160002
  ¦  unterschiedliche Strategien verfolgen:                           ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  Version 0 und 1:                                                 ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Ermitteln der zu transferrierenden Flüsse und speichern      ¦ 00160002
  ¦      deren Schlüssel in temporärer DB2-Tabelle                    ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Kopieren dieser Flüsse in TMF150H1 anhand dieser Schlüssel   ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Löschen dieser Flüsse in TMF150A1                            ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    Vorteil:  Daten verbeiben innerhalb von DB2                    ¦ 00160002
  ¦    Nachteil: Daten können nicht mit Garantie in Clustering-       ¦ 00160002
  ¦              Reihenfolge in TMF150H1 eingefügt werden             ¦ 00160002
  ¦              (Fragmentierung).                                    ¦ 00160002
  ¦              Datensuche erfolgt sowohl beim Kopieren als auch     ¦ 00160002
  ¦              beim Löschen.                                        ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  Version 2:                                                       ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Lesen der gelöschten Daten (SELECT FROM DELETE) mittels      ¦ 00160002
  ¦      Cusrorverarbeitung.                                          ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Einfügen der Flüsse in TMF150H1 (FETCH and INSERT).          ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    Vorteil:  Einfügen der Daten in TMF150H1 in Clustering-        ¦ 00160002
  ¦              Reihenfolge.                                         ¦ 00160002
  ¦    Nachteil: Daten verbleiben nicht innerhalb von DB2 (kopieren   ¦ 00160002
  ¦              in den Adressraum des Programmes).                   ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  Version 3 (Walters Vorschlag):                                   ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Ermitteln der zu transferrierenden Flüsse und speichern      ¦ 00160002
  ¦      deren Schlüssel in temporärer DB2-Tabelle                    ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Kopieren dieser Flüsse in TMF150H1 anhand dieser Schlüssel   ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Löschen dieser Flüsse in TMF150A1                            ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    Vorteil:  Daten verbeiben innerhalb von DB2                    ¦ 00160002
  ¦    Nachteil: Daten können nicht mit Garantie in Clustering-       ¦ 00160002
  ¦              Reihenfolge in TMF150H1 eingefügt werden             ¦ 00160002
  ¦              (Fragmentierung).                                    ¦ 00160002
  ¦              Datensuche erfolgt sowohl beim Kopieren als auch     ¦ 00160002
  ¦              beim Löschen.                                        ¦ 00160002
  ¦              Anzahl der ermittelten Flüsse ist variable.          ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  Version 4:                                                       ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Lesen der eingefügten Daten (SELECT FROM INSERT) mittels     ¦ 00160002
  ¦      Cusrorverarbeitung (ROWSET FETCH).                           ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Kopieren der UUID in temp. Tabelle (ROWSET INSERT)           ¦ 00160002
  ¦      Cusrorverarbeitung (ROWSET FETCH).                           ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Löschen in TMF150A1 anhand der temp. Tabelle.                ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    Nachteil: Daten verbleiben nicht innerhalb von DB2 (kopieren   ¦ 00160002
  ¦              in den Adressraum des Programmes).                   ¦ 00160002
  ¦              Daten werden auch in temp. Tabelle kopiert           ¦ 00160002
  ¦              (FINAL TABLE).                                       ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  Durch Performancetests soll der effektivere Algorithmus          ¦ 00160002
  ¦  evaluiert werden.                                                ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  Berechnung des "älter als" Datums:                               ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Aktuelles Datum - 365 Tage                                   ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦    - Falls dieses Datum nicht auf einen Sonntag fällt, muss       ¦ 00160002
  ¦      der vorangegangene Sonntag ermittelt werden.                 ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  Programmparameter (aus Konfigurationsdatei):                     ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  <?xml version="1.0" encoding="ebcdic-cp-ch" standalone="yes"?>   ¦ 00160002
  ¦  <|--configuration of programm MF7800-->                          ¦ 00160002
  ¦  <configuration>                                                  ¦ 00160002
  ¦      <parameter-list>                                             ¦ 00160002
  ¦          <parameter name="use-version">              2</parameter>¦ 00160002
  ¦          <parameter name="print-after-#sfl">      5000</parameter>¦ 00160002
  ¦          <parameter name="stop-after-#sfl">      50000</parameter>¦ 00160002
  ¦          <parameter name="older-than-date"> 01.09.2009</parameter>¦ 00160002
  ¦      </parameter-list>                                            ¦ 00160002
  ¦  </configuration>                                                 ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  use-version:      Verwende Version 2 (Default: Version 1)        ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  print-after-#sfl: Schreibe Meldung nach 5000 Flüssen             ¦ 00160002
  ¦                                       (Default: 50000)            ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  stop-after-#sfl:  Stoppe Verarbeitung nach 50000 Flüssen         ¦ 00160002
  ¦                                       (Default: -1 - kein Stopp)  ¦ 00160002
  ¦                                                                   ¦ 00160002
  ¦  older-than-date:  Verwende dises "älter als" Datum               ¦ 00160002
  ¦                                       (Default: berechnetes Dat.) ¦ 00160002
  ¦                                                                   ¦ 00160002
  + ----------------------------------------------------------------- + 00170002
  ¦  Bemerkung...:                                                    ¦ 00180002
  ¦                                                                   ¦ 00160002
  ¦  Die ersten Unittests wurden im DBAF mit dem Schema GDB0389       ¦ 00160002
  ¦  gemacht (siehe Makro @schema). Für den üblichen ET sollte        ¦ 00160002
  ¦  kein Schema angegeben werden (Blank). Wird durch den Promote     ¦ 00160002
  ¦  eingefügt.                                                       ¦ 00160002
  ¦                                                                   ¦ 00160002
  + ----------------------------------------------------------------- + 00170002
  ¦  Aenderungen.:                                                    ¦ 00180002
  ¦                                                                   ¦ 00190002
  ¦  18.05.2012  Requirements: MFR-FoF_nfr_CS_Standard     Ph.Franzos ¦ 00190002
  ¦              CR          : 7079                            PF0512 ¦ 00190002
  ¦              EPLI V4.2: SQL-Statements dürfen nur noch            ¦ 00190002
  ¦              innerhalb einer Procedur deklariert werden.          ¦ 00190002
  ¦                                                                   ¦ 00190002
  ¦  10.09.2010  Intial                                               ¦
  ¦                                                                   ¦
  ¦              CR 7021 (NEUVA)                                      ¦
  ¦              Requirement MFR-FoF_nfr_Table_0001                   ¦
  ¦                          MFR-FoF_nfr_Table_0002                   ¦
  ¦              Deployment: DC 4-2010                                ¦
  ¦                                                                   ¦
  * ----------------------------------------------------------------- */00200002

1/* ----------------------------------------------------------------- * 00930002
  ¦  Package                                                          ¦ 00940002
  * ----------------------------------------------------------------- */00950002
 MFR_sfl_history: package exports (MF7800);
 %;
 %/* Macros */;
 %;
 %/* Condition codes */;
 %dcl @cc_ok          char;  %@cc_ok          = '0';
 %dcl @cc_err         char;  %@cc_err         = '999';
 %;
 %/* SQL-States */;
 %xinclude YMFWS00H;
 %dcl @sqlDuplicate   char;  %@sqlDuplicate   = '''23505''';
 %;
 %/* DB2-Schema GDB0389 (wird für Unittests verwendet: sonst Blank) */;
 %dcl @schema         char;  %@schema         = '';
 %;
 %/* setze Schema vor Tabellennamen */;
 %@table:        proc ($schema, $tableName) returns (char);
 dcl $schema     char;
 dcl $tableName  char;

     /* Aufruf ohne Schema */
     if length (trim ($schema)) < 1 then return (trim ($tableName));

     return (trim ($schema) || '.' || trim ($tableName));
 %end            @table;
 %activate       @table;
 %;
 %/* Anzahl Historisierungen in einer Unit of Work */;
 %dcl @blocksize      char;  %@blocksize      = '500';
 %dcl @blocksize_3    char;  %@blocksize_3    = '10';
 %;
 %/* Format Buchungsdatum */;
 %dcl @dateFmt        char;  %@dateFmt        = '''DD.MM.YYYY''';
 %;
 %/* Default Datum */;
 %dcl @dfltDate       char;  %@dfltDate       = '''01.01.0001''';
 %;
 %/* sonstiges */;
 %xinclude MFRMACH;
 %;
1/* -Built-In's------------------------------------------------------ */01430002
 dcl (                                                                  01440002
     addr                                                               01590002
    ,datetime                                                           01590002
    ,days                                                               01590002
    ,daystodate                                                         01590002
    ,edit                                                               01590002
    ,float                                                              01590002
    ,handle
    ,hbound
    ,hex
    ,huge
    ,lbound                                                             01590002
    ,length                                                             01590002
    ,lowercase
    ,mod                                                                01590002
    ,omitted                                                            01590002
    ,oncode                                                             01590002
    ,onloc                                                              01590002
    ,packagename                                                        01590002
    ,plidelete                                                          01590002
    ,plidump                                                            01590002
    ,plifill
    ,present
    ,procedurename
    ,ptrvalue
    ,round
    ,sqrt
    ,sysnull
    ,uppercase
    ,validdate
    ,weekday
     )           builtin;                                               01600002
                                                                        01010002
 /* -External(s)----------------------------------------------------- */01430002
 /* -Define(s)------------------------------------------------------- */01430002
 define structure
     1 rtSta_t                    /* Runtime Statistik */
    ,2 sumX     float dec (16)    /* Summe */
    ,2 sumX2    float dec (16)    /* Summe der Quadrate */
    ,2 maxX     float dec (16)    /* Maximum */
    ,2 minX     float dec (16)    /* Minimum */
    ,2 nn       fixed bin (31)    /* Anzahl Messungen */
    ,2 text     char (256) varz   /* Freitext */
    ;

 define alias fTransfer_t         /* Transferfunktion A1 ---> H1 */
     limited entry (file variable nonasgn
                   ,handle sqlca_t nonasgn
                   ,char (10) byaddr nonasgn
                   ,char (10) byaddr nonasgn
                   ,(*) handle rtSta_t byaddr nonasgn
                   )
                 returns (byvalue fixed bin (31))
                 options (byvalue)
     variable;
                                                                        01010002
 /* -Constant(s)----------------------------------------------------- */01430002
     /* YXRRSAF: verwendete Befehle */
 dcl cConnect    char              value ('CONNECT');
 dcl cDisconnect char              value ('DISCONNECT');
 dcl cCommit     char              value ('COMMIT');
 dcl cRollback   char              value ('ROLLBACK');

    /* Packagename */
 dcl cPkg        char              value (packagename ());

    /* Anzahl Transfers bevor Meldung */
 dcl cMsgInterval char             value (50000);

    /* Anzahl Transfers bevor Statistik */
 dcl cStaInterval char             value (-1);

 /* -Module(s)------------------------------------------------------- */01430002
 %xinclude YMFSU0XH;              /* support */
 %xinclude YMFCF0XH;              /* configuration */
 %xinclude YMFMI0XH;              /* misc.: timer, ...*/

 %include YXRRSAF;                /* recoverable attach facility */

 /* -Based Variable(s)----------------------------------------------- */01430002
1/* ----------------------------------------------------------------- * 00930002
  ¦  MF7800                                                           ¦ 00940002
  * ----------------------------------------------------------------- */00950002
 MF7800:         proc ($args) options (MAIN);                           00960002
 dcl $args       char (*) var nonasgn parm;
                                            /* innerhalb PROC PF0512  */
1/* ----------------------------------------------------------------- * 01430002
  ¦  DB2 Tabellendeklarationen                                        ¦
  * ----------------------------------------------------------------- */
 EXEC SQL
      declare @table (@schema, tmf150a1) table
 %include TMF150D;                  /* hat Strichpunkt im Copybook */
 %;
 EXEC SQL
      declare @table (@schema, tmf150h1) table
 %include TMF150D;                  /* hat Strichpunkt im Copybook */
 %;
                                                                        01010002
 /* -External(s)----------------------------------------------------- */01430002
 dcl SYSPRINT    file print stream output ext;

 /* -Constant(s)----------------------------------------------------- */01430002
 dcl cPgm        char              value (procedurename ());
 dcl ddConf      char              value ('file://dd:ddconf');

 /* -Module(s)------------------------------------------------------- */01430002
 /* -Variable(s) (automatic storage)--------------------------------- */01430002
 dcl starttimePgm  type tod_t      init (@getTod ()) nonasgn;
 dcl startDateTime type datetime_t init (datetime ()) nonasgn;

 dcl starttime   type tod_t        init (@getTod ());

 dcl doTransfer  type fTransfer_t  init (doTransferVersion_1);

 dcl nMsgInterval fixed bin (31)   init (cMsgInterval);
 dcl nStaInterval fixed bin (31)   init (cStaInterval);

 dcl nTransfer   fixed bin (31)    init (0);
 dcl nStop       fixed bin (31)    init (-1);
 dcl useVersion  fixed bin (31)    init (1);
 dcl nFlow       fixed bin (31)    init (0);
 dcl nn          fixed bin (31);

 dcl fromDate    char (10)         init (@dfltDate);
 dcl toDate      char (10)         init (calcToDate ());
 dcl stopped     bit (1) aligned;

 dcl sqlca       type sqlca_t;
 dcl hSqlca      handle sqlca_t    init (handle (sqlca));

 dcl 1 ausl,                      /* RETD und PARMD */
 %include RETURND;,
     2 $@rkeyl   char (4),
     2 $@rkeyf   char (76),
 %include PARMD;,
     2 $@ssid    char(4),                    /* DB2-Subsystem */
     2 $@plan    char(8)                     /* Plan */
     ;

 dcl hRtStaTbl (10) handle rtSta_t init ((8) null ()
                                        ,newRtSta ('transfer total')
                                        ,newRtSta ('commit'));

 /* -Error-Handling-------------------------------------------------- */
 %include PGMANFA;
 %;
1/* -Prologue-------------------------------------------------------- */01430002
     call pliretc (@cc_err);                    /* init: error */

     put edit
         ((@nRep) @repChar)
         (skip, a)

         ('Package', cPkg, 'Compiletime', @compiletime)
         (skip, a, x(5), a, col(45), a, x(5), a)

         ('Program', cPgm)
         (skip, a, x(5), a)
         ;

     call @suppPkg (SYSPRINT);

     call @printTimeAndInfo (SYSPRINT, 'entering prologue');

     put skip list ((@nRep) @repChar);

     /* berechne Von-Datum
      * (Von- bzw. Bis-Datum kann noch überschrieben werden
      *  in @getConfiguration - transfer-Funktion)
      */
     fromDate = calcFromDate (toDate);

     /* lese Parameter (PARM-Member)
      */
  %include YYCNTRL;                /* enthält auch READ-call */

     put edit
         ((@nRep) @repChar)
         (skip, a)

         ('SSID=', $@ssid, 'Plan=', $@plan)
         (skip, a, a, x(5), a, a)

         ((@nRep) @repChar)
         (skip, a)
         ;

     /* lese Parameter (Konfiguration)
      */
     call @getConfiguration (transfer, ddConf, *, SYSPRINT);
     put skip list ((@nRep) @repChar);

     /* überprüfe Von-Bis-Datum
      */
     call checkHistPeriod (SYSPRINT, fromDate, toDate);

     put edit
         ('transferring flows, between', fromDate, 'and', toDate)
         (skip, a, x(1), a, x(1), a, x(1), a)
         ;

1    /* baue Verbindung zur DB auf (establish thread)
      */
     call execRRSAFCmd (SYSPRINT, cConnect, $@ssid, $@plan);

     select (useVersion);

       when (0) do;

         put skip list ('using verion 0 (with temporary table)');
         put skip list ((@nRep) @repChar);

         doTransfer = doTransferVersion_0;                              );

         hRtStaTbl (1) = newRtSta
             ('fill UUID in temporary table');
         hRtStaTbl (2) = newRtSta ('insert flows into TMF150H1');
         hRtStaTbl (3) = newRtSta ('delete flows in TMF150A1');

         /* erzeuge Global Temporay Table für UUID
          */
         call @printTimeAndInfo (SYSPRINT
                                ,"declare table 'Tkey_Ver_0'");
 EXEC SQL
         declare global temporary table session.Tkey_Ver_1 as
             (select MF150001
                  from @table (@schema, tmf150a1)
             )
         with no data
         on commit delete rows
         ;

         if ^@chkSQL (@sqlOk) then
             call exitPgm (SYSPRINT,"declare table 'Tkey_Ver_0' failed"
                                   ,hSqlCa);
       end;

       when (1) do;

         put skip list ('using verion 1 (with temporary table)');
         put skip list ((@nRep) @repChar);

         doTransfer = doTransferVersion_1;                              );

         hRtStaTbl (1) = newRtSta
           ('fill UUID, CIF, bookingdate and OU into temporary table');
         hRtStaTbl (2) = newRtSta ('insert flows into TMF150H1');
         hRtStaTbl (3) = newRtSta ('delete flows in TMF150A1');

         /* erzeuge Global Temporay Table für UUID, Buchungsdatum und OE
          */
         call @printTimeAndInfo (SYSPRINT
                                ,"declare table 'Tkey_Ver_1'");
 EXEC SQL
         declare global temporary table session.Tkey_Ver_1 as
             (select MF150001
                    ,MF150023
                    ,MF150013
                    ,MF150067
                  from @table (@schema, tmf150a1)
             )
         with no data
         on commit delete rows
         ;

         if ^@chkSQL (@sqlOk) then
             call exitPgm (SYSPRINT,"declare table 'Tkey_Ver_1' failed"
                                   ,hSqlCa);
       end;

1      when (2) do;

         put skip list ('using verion 2 (select from delete - insert)');
         put skip list ('      ---> data shuffling');
         put skip list ((@nRep) @repChar);

         doTransfer = doTransferVersion_2;                              );

         hRtStaTbl (1) =
             newRtSta ('open cursor - delete flows in TMF150A1');
         hRtStaTbl (2) =
             newRtSta ('fetch and insert flows into TMF150H1');
         hRtStaTbl (3) = newRtSta ('close cursor');
       end;

       when (3) do;

         put skip list ("using verion 3 (walther's solution)");
         put skip list ((@nRep) @repChar);

         doTransfer = doTransferVersion_3;                              );

         hRtStaTbl (1) = newRtSta
             ('fill bookingdate and OU into temporary table');
         hRtStaTbl (2) = newRtSta ('insert flows into TMF150H1');
         hRtStaTbl (3) = newRtSta ('delete flows in TMF150A1');

         /* erzeuge Global Temporay Table für Buchungsdatun und OE
          */
         call @printTimeAndInfo (SYSPRINT, 'declare table Tkey_Ver_3');
 EXEC SQL
         declare global temporary table session.Tkey_Ver_3 as
             (select MF150013
                    ,MF150067
                  from @table (@schema, tmf150a1)
             )
         with no data
         on commit delete rows
         ;

         if ^@chkSQL (@sqlOk) then
             call exitPgm (SYSPRINT,"declare table 'Tkey_Ver_3' failed"
                                   ,hSqlCa);
       end;

1      when (4) do;

         put skip list ('using verion 4 (select from insert - delete)');
         put skip list ((@nRep) @repChar);

         doTransfer = doTransferVersion_4;                              );

         hRtStaTbl (1) = newRtSta
             ('open cursor - insert flows in TMF150H1');
         hRtStaTbl (2) = newRtSta
             ('fetch and delete flows in TMF150A1');
         hRtStaTbl (3) = newRtSta ('fill UUID into temporary table');
         hRtStaTbl (4) = newRtSta ('delete SFL in TMF150A1');
         hRtStaTbl (5) = newRtSta ('close cursor');

         /* erzeuge Global Temporay Table für UUID
          */
         call @printTimeAndInfo (SYSPRINT
                                ,"declare table 'Tkey_Ver_4'");
 EXEC SQL
         declare global temporary table session.Tkey_Ver_4 as
             (select MF150001
                  from @table (@schema, tmf150a1)
             )
         with no data
         on commit delete rows
         ;

         if ^@chkSQL (@sqlOk) then
             call exitPgm (SYSPRINT,"declare table 'Tkey_Ver_4' failed"
                                   ,hSqlCa);
       end;

       other call exitPgm (SYSPRINT, 'not a valid version specified|');
     end;

     call @printElapsedTime (SYSPRINT, starttime
                           ,'ending prologue');

1/* -MAINline-------------------------------------------------------- */01430002
     call @printTimeAndInfo (SYSPRINT, 'entering MAINline');
     put skip list ((@nRep) @repChar);

     /* counting # of flows to be transferred
      */
     nFlow = #ofSFL (SYSPRINT, hSqlca, fromDate, toDate);

     put edit
         ('# of flows expected:', nFlow)
         (skip, a, col(30), p'zzz,zzz,zzz,zz9')
         ;

     if nStop > 0 then
         put edit
             ('ATTENTION: stopping after # of flows transferred:'
             , nStop)
             (skip, a, x(3), p'zzz,zzz,zzz,zz9')
             ;

     if useVersion ^= 3 then
         put edit
             ('transferring flows in blocks of '
             ,trim (edit (@blocksize, 'zzzzz9')))
             (skip, a, x(1), a)
             ;
     put skip list ((@nRep) @repChar);

     /* transferring single flows: TMF150A1 ---> TMF150H1
      */
     startTime = @getTod ();
     nn = doTransfer (SYSPRINT, hSqlca, fromDate, toDate, hRtStaTbl);
     call add2RtStat (hRtStaTbl (9), starttime);

     do while (nn > 0)
        until (stopped);

         nTransfer += nn;

         /* print message
          */
         if mod (nTransfer, nMsgInterval) = 0 then
             call @printTimeAndInfo (SYSPRINT
                                    ,'# of transfers --->'
                                  || edit (nTransfer, 'z,zzz,zzz,zz9'));

         stopped = (nStop > 0  & nStop <= nTransfer);
         if stopped then
             put skip list ('ATTENTION: processing stopped|');
         else do;

             /* committing changes
              */
             startTime = @getTod ();
             call execRRSAFCmd (SYSPRINT, cCommit, *, *);
             call add2RtStat (hRtStaTbl (10), starttime);

             /* print statistics
              */
             if nStaInterval > 0
              & mod (nTransfer, nStaInterval) = 0 then
                 call printRtStaTbl (SYSPRINT, hRtStaTbl);

             /* transferring single flows: TMF150A1 ---> TMF150H1
              */
             startTime = @getTod ();
             nn = doTransfer (SYSPRINT
                             ,hSqlca, fromDate, toDate, hRtStaTbl);
             call add2RtStat (hRtStaTbl (9), starttime);
         end;
     end;

     put skip list ((@nRep) @repChar);

     /* last commit
      */
     startTime = @getTod ();
     call execRRSAFCmd (SYSPRINT, cCommit, *, *);
     call add2RtStat (hRtStaTbl (10), starttime);

1/* -Epilog---------------------------------------------------------- */01430002
     call @printTimeAndInfo (SYSPRINT, 'entering epilogue');
     put skip list ((@nRep) @repChar);

     put edit
         ('Program - Statistics', (@nRep) @repChar)
         (skip, a, skip, a)

         ('  Expected flow(s)', nFlow)
         (skip, a, col(30), p'zzz,zzz,zzz,zz9')

         ('  Transfer(s)', nTransfer)
         (skip, a, col(30), p'zzz,zzz,zzz,zz9')

         ('  Blocksize', @blocksize)
         (skip, a, col(30), p'zzz,zzz,zzz,zz9')
         ;

     /* drucke Runtime-Statistik aus
      * und rufe Destruktoren auf: gebe Heap-Memory frei
      */
     call printRtStaTbl (SYSPRINT, hRtStaTbl);
     call deleteRtStaTbl (hRtStaTbl);

     /* baue Verbindung zur DB ab (also commits changes)
      */
     call execRRSAFCmd (SYSPRINT, cDisconnect, *, *);

     /* Zeitmessung (elpased time)
      */
     call @printStartEndTime (SYSPRINT, startDateTime);
     call @printElapsedTime (SYSPRINT, starttimePgm, 'program');

     close file (*);

     /* Condition Code
      */
     call pliretc (@cc_ok);               /* ok */

1/* ----------------------------------------------------------------- *
  ¦  Prozeduren/Funktionen INTERN                                     ¦
  * ----------------------------------------------------------------- */
 /* -transfer 'getConfiguration'------------------------------Level 2 */
 transfer:       proc ($type, $name, $value)
                      options (nodescriptor);
 dcl $type       type cf_t parm;
 dcl $name       type cf_name_t nonasgn parm;
 dcl $value      type cf_name_t nonasgn optional parm;

 dcl nn          fixed bin (31);
 dcl dateTmp     char (10);

     if $type ^= cf_parameter then return; /* falscher Typ */

     if omitted ($value) then return;      /* kein Wert angegeben */
     if length ($value) = 0 then return;   /* kein Wert mitgegeben */

     /* Parameter(s) (Name/Value Pair)
      */
     select (lowercase ($name));

         /* use version
          */
         when ('use-version') do;

             nn = @char2Int ($value);
             if nn > 0 & nn < 5 then useVersion = nn;
         end;

         /* use this from date
          */
         when ('from-date') do;

             dateTmp = $value;
             if validdate (dateTmp, @dateFmt) then                      p;
                 fromDate = dateTmp;                                    p;
         end;

         /* use this to date
          */
         when ('to-date') do;

             dateTmp = $value;
             if validdate (dateTmp, @dateFmt) then                      p;
                 toDate = dateTmp;                                      p;
         end;

         /* print message to SYSPRINT after # of SFLs transfered
          */
         when ('print-msg-after-#sfl') do;

             nn = @char2Int ($value);
             if nn > 0 then nMsgInterval = nn;
         end;

         /* print statistcs SYSPRINT after # of SFLs transfered
          */
         when ('print-sta-after-#sfl') do;

             nn = @char2Int ($value);
             if nn > 0 then nStaInterval = nn;
         end;

         /* stop processing after # of SFLs transfered
          */
         when ('stop-after-#sfl') do;

             nn = @char2Int ($value);
             if nn > 0 then nStop = nn;
         end;

         other;
     end;
 end             transfer;
 end             MF7800;                                                07640002
1/* ----------------------------------------------------------------- * 01430002
  ¦  Prozeduren/Funktionen EXTERN                                     ¦
  * ----------------------------------------------------------------- */
 /* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
 doTransferVersion_0: proc ($ddPrint
                           ,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
                      returns (byvalue fixed bin (31))
                      options (byvalue);
 dcl $ddPrint    file variable nonasgn parm;    /* Printstream */
 dcl $hSqlca     handle sqlca_t nonasgn parm;   /* SQLCA */
 dcl $fromDate   char (10) byaddr nonasgn parm;
 dcl $toDate     char (10) byaddr nonasgn parm;
 dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;

 dcl fromDate_a  char (10)         init ($fromDate);
 dcl toDate_a    char (10)         init ($toDate);
 dcl starttime   type tod_t;

 dcl sqlca       type sqlca_t based (ptrvalue ($hSqlCa));

     starttime = @getTod ();
 EXEC SQL
     insert into session.Tkey_Ver_1
        (mf150001
        )
        select MF150001 from @table (@schema, tmf150a1)
            where MF150013 between :fromDate_a
                               and :toDate_a
        order by MF150013
                ,MF150067
        fetch first @blocksize rows only
     ;
     if ^(@chkSql (@sqlOk)
        | @chkSql (@sqlNoData)) then
         call exitPgm ($ddPrint
                      ,"insert 'session.Tkey_Ver_1' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (1), starttime);

     if @chkSql (@sqlNoData) then return (0);

1    starttime = @getTod ();
 EXEC SQL
     insert into @table (@schema, tmf150h1)
        (MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
        ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
        ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
        ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
        ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
        ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
        ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
        ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
        ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
        ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
        ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
        ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
        ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
        ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
        ,MF150091, MF150092, MF150019A)
         select
              MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
             ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
             ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
             ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
             ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
             ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
             ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
             ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
             ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
             ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
             ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
             ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
             ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
             ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
             ,MF150091, MF150092, MF150019A
         from @table (@schema, tmf150a1)
             where MF150001 in
                (select MF150001 from session.Tkey_Ver_1)

     ;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"insert into 'TMF150H1' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (2), starttime);

     starttime = @getTod ();
 EXEC SQL
     delete from @table (@schema, tmf150a1) a
         where MF150001 in
            (select MF150001 from session.Tkey_Ver_1)
      ;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"delete flows in 'TMF150A1' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (3), starttime);

     return (sqlca.sqlerrd (3));    /* # of deletes in TMF150A1 */
 end             doTransferVersion_0;

1/* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
 doTransferVersion_1: proc ($ddPrint
                           ,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
                      returns (byvalue fixed bin (31))
                      options (byvalue);
 dcl $ddPrint    file variable nonasgn parm;    /* Printstream */
 dcl $hSqlca     handle sqlca_t nonasgn parm;   /* SQLCA */
 dcl $fromDate   char (10) byaddr nonasgn parm;
 dcl $toDate     char (10) byaddr nonasgn parm;
 dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;

 dcl fromDate_a  char (10)         init ($fromDate);
 dcl toDate_a    char (10)         init ($toDate);
 dcl starttime   type tod_t;

 dcl sqlca       type sqlca_t based (ptrvalue ($hSqlCa));

     starttime = @getTod ();
 EXEC SQL
     insert into session.Tkey_Ver_1
        (mf150001
        ,mf150023
        ,mf150013
        ,mf150067)
        select MF150001
              ,MF150023
              ,MF150013
              ,MF150067 from @table (@schema, tmf150a1)
            where MF150013 >= :fromDate_a
              and MF150013 <= :toDate_a
        order by MF150013
                ,MF150067
        fetch first @blocksize rows only
     ;
     if ^(@chkSql (@sqlOk)
        | @chkSql (@sqlNoData)) then
         call exitPgm ($ddPrint
                      ,"insert 'session.Tkey_Ver_1' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (1), starttime);

     if @chkSql (@sqlNoData) then return (0);

1    starttime = @getTod ();
 EXEC SQL
     insert into @table (@schema, tmf150h1)
        (MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
        ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
        ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
        ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
        ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
        ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
        ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
        ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
        ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
        ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
        ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
        ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
        ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
        ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
        ,MF150091, MF150092, MF150019A)
         select
              MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
             ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
             ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
             ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
             ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
             ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
             ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
             ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
             ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
             ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
             ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
             ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
             ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
             ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
             ,MF150091, MF150092, MF150019A
         from @table (@schema, tmf150a1)
             where MF150001 in
                (select MF150001 from session.Tkey_Ver_1
                 order by MF150013
                         ,MF150067)

     ;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"insert into 'TMF150H1' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (2), starttime);

     starttime = @getTod ();
 EXEC SQL
     delete from @table (@schema, tmf150a1) a
         where (MF150023
               ,MF150013) in
            (select MF150023
                   ,MF150013 from session.Tkey_Ver_1)
           and MF150001 in
            (select MF150001 from session.Tkey_Ver_1)
      ;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"delete flows in 'TMF150A1' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (3), starttime);

     return (sqlca.sqlerrd (3));    /* # of deletes in TMF150A1 */
 end             doTransferVersion_1;

1/* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
 doTransferVersion_2: proc ($ddPrint
                           ,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
                      returns (byvalue fixed bin (31))
                      options (byvalue);
 dcl $ddPrint    file variable nonasgn parm;    /* Printstream */
 dcl $hSqlca     handle sqlca_t nonasgn parm;   /* SQLCA */
 dcl $fromDate   char (10) byaddr nonasgn parm;
 dcl $toDate     char (10) byaddr nonasgn parm;
 dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;

 dcl nn          fixed bin (31)    init (0);
 dcl fromDate_b  char (10)         init ($fromDate);
 dcl toDate_b    char (10)         init ($toDate);
 dcl starttime   type tod_t;
 dcl 1 ioT150_b,
 %include TMF150P;                 /* hat Strichpunkt im Copybook */

 dcl sqlca       type sqlca_t based (ptrvalue ($hSqlCa));

 EXEC SQL
     declare cur_getAndDelete_b cursor for
         select
             MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
            ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
            ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
            ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
            ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
            ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
            ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
            ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
            ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
            ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
            ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
            ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
            ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
            ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
            ,MF150091, MF150092, MF150019A
             from old table
                (delete from @table (@schema, tmf150a1) a
                     where a.MF150001 in
                     (select b.MF150001
                      from @table (@schema, tmf150a1) b
                          where b.MF150013 >= :fromDate_b
                            and b.MF150013 <= :toDate_b
                      order by MF150013
                              ,MF150067
                      fetch first @blocksize rows only
                     )
                 )
         order by MF150013
                 ,MF150067
     ;

1    starttime = @getTod ();
 EXEC SQL
     open cur_getAndDelete_b;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"open cursor 'cur_getAndDelete_b' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (1), starttime);

     starttime = @getTod ();
     do while (getData ());

 EXEC SQL
         insert into @table (@schema, tmf150h1)
             values (:ioT150_b)
             ;

         if ^(@chkSql (@sqlOk)
            | @chkSql (@sqlDuplicate)) then
             call exitPgm ($ddPrint
                          ,"insert flows into 'TMF150H1' failed"
                          ,$hSqlCa);

         nn += 1;
     end;

     call add2RtStat ($hRtStaTbl (2), starttime);

     starttime = @getTod ();
 EXEC SQL
     close cur_getAndDelete_b;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"close cursor 'cur_getAndDelete_b' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (3), starttime);

     return (nn);

 /* -lese Daten ein------------------------------------------Level 2- */
 getData:        proc returns (byvalue bit (1) aligned);
 EXEC SQL
     fetch cur_getAndDelete_b
     into :ioT150_b
     ;
     if @chkSql (@sqlOk) then return (@true);
     if @chkSql (@sqlNodata) then return (@false);

     call exitPgm ($ddPrint
                  ,"fetch cursor 'cur_getAndDelete_b' failed"
                  ,$hSqlCa);
 end             getData;
 end             doTransferVersion_2;

1/* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
 doTransferVersion_3: proc ($ddPrint
                           ,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
                      returns (byvalue fixed bin (31))
                      options (byvalue);
 dcl $ddPrint    file variable nonasgn parm;    /* Printstream */
 dcl $hSqlca     handle sqlca_t nonasgn parm;   /* SQLCA */
 dcl $fromDate   char (10) byaddr nonasgn parm;
 dcl $toDate     char (10) byaddr nonasgn parm;
 dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;

 dcl fromDate_c  char (10)         init ($fromDate);
 dcl toDate_c    char (10)         init ($toDate);
 dcl starttime   type tod_t;

 dcl sqlca       type sqlca_t based (ptrvalue ($hSqlCa));

     starttime = @getTod ();
 EXEC SQL
     insert into session.Tkey_Ver_3
        (mf150013
        ,mf150067)
        select MF150013
              ,MF150067 from
           (select MF150013
                  ,MF150067 from @table (@schema, tmf150a1)
                where MF150013 >= :fromDate_c
                  and MF150013 <= :toDate_c
            fetch first @blocksize_3 rows only
           ) i
        group by MF150013
                ,MF150067
     ;
     if ^(@chkSql (@sqlOk)
        | @chkSql (@sqlNoData)) then
         call exitPgm ($ddPrint
                      ,"insert into 'session.Tkey_Ver_3' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (1), starttime);

     if @chkSql (@sqlNoData) then return (0);

1    starttime = @getTod ();
 EXEC SQL
     insert into @table (@schema, tmf150h1)
        (MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
        ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
        ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
        ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
        ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
        ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
        ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
        ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
        ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
        ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
        ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
        ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
        ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
        ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
        ,MF150091, MF150092, MF150019A)
         select
              MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
             ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
             ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
             ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
             ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
             ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
             ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
             ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
             ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
             ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
             ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
             ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
             ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
             ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
             ,MF150091, MF150092, MF150019A
         from @table (@schema, tmf150a1)
             where (MF150013
                   ,MF150067) in
                (select MF150013
                       ,MF150067 from session.Tkey_Ver_3)
     ;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"insert flow into 'TMF150H1' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (2), starttime);

     starttime = @getTod ();
 EXEC SQL
     delete from @table (@schema, tmf150a1)
         where (MF150013
               ,MF150067) in
            (select MF150013
                   ,MF150067 from session.Tkey_Ver_3)
      ;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"delete flows in 'TMF150A1' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (3), starttime);

     return (sqlca.sqlerrd (3));    /* # of deletes in TMF150A1 */
 end             doTransferVersion_3;

1/* -transfer SFL TMF150A1 --> TMF150H1-----------------------Level 1 */
 doTransferVersion_4: proc ($ddPrint
                           ,$hSqlCa, $fromDate, $toDate, $hRtStaTbl)
                      returns (byvalue fixed bin (31))
                      options (byvalue);
 dcl $ddPrint    file variable nonasgn parm;    /* Printstream */
 dcl $hSqlca     handle sqlca_t nonasgn parm;   /* SQLCA */
 dcl $fromDate   char (10) byaddr nonasgn parm;
 dcl $toDate     char (10) byaddr nonasgn parm;
 dcl $hRtStaTbl (*) handle rtSta_t byaddr nonasgn parm;

 dcl nn          fixed bin (31)    init (0);
 dcl nRow        fixed bin (31);
 dcl is@End      bit (1) aligned   init (@false);
 dcl fromDate_d  char (10)         init ($fromDate);
 dcl toDate_d    char (10)         init ($toDate);
 dcl starttime   type tod_t;
 dcl starttime_i type tod_t;
 dcl uuidTbl (@blocksize) char (16) init ((@blocksize)(''));

 dcl sqlca       type sqlca_t based (ptrvalue ($hSqlCa));

 EXEC SQL
     declare cur_getAndInsert_d cursor
         with rowset positioning for
     select MF150001 from final table (
         insert into @table (@schema, tmf150h1)
        (MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
        ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
        ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
        ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
        ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
        ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
        ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
        ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
        ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
        ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
        ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
        ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
        ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
        ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
        ,MF150091, MF150092, MF150019A)
         select
             MF150001, MF150002, MF150003, MF150004, MF150005, MF150006
            ,MF150007, MF150008, MF150009, MF150010, MF150011, MF150012
            ,MF150013, MF150014, MF150015, MF150016, MF150017, MF150018
            ,MF150019, MF150020, MF150021, MF150022, MF150023, MF150024
            ,MF150025, MF150026, MF150027, MF150028, MF150029, MF150030
            ,MF150031, MF150032, MF150033, MF150034, MF150035, MF150036
            ,MF150037, MF150038, MF150039, MF150040, MF150041, MF150042
            ,MF150043, MF150044, MF150045, MF150046, MF150047, MF150051
            ,MF150052, MF150053, MF150054, MF150055, MF150056, MF150059
            ,MF150060, MF150062, MF150063, MF150064, MF150065, MF150066
            ,MF150067, MF150068, MF150069, MF150070, MF150071, MF150072
            ,MF150073, MF150074, MF150075, MF150076, MF150077, MF150078
            ,MF150079, MF150080, MF150081, MF150082, MF150083, MF150084
            ,MF150085, MF150086, MF150087, MF150088, MF150089, MF150090
            ,MF150091, MF150092, MF150019A
             from @table (@schema, tmf150a1) a
             where (a.MF150001
                  ,a.MF150013
                  ,a.MF150067) in
                 (select b.MF150001
                        ,b.MF150013
                        ,b.MF150067
                  from @table (@schema, tmf150a1) b
                      where b.MF150013 >= :fromDate_d
                        and b.MF150013 <= :toDate_d
                  order by b.MF150013
                          ,b.MF150067
                  fetch first @blocksize rows only
                 )
     ) order by input sequence
     ;

1    starttime = @getTod ();
 EXEC SQL
     open cur_getAndInsert_d;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"open cursor 'cur_getAndInsert_d' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (1), starttime);

     starttime = @getTod ();
     nRow = getData (is@End);
     do while (nRow > 0);

         /* insert UUID into session table
          */
         starttime_i = @getTod ();
 EXEC SQL
         insert into session.Tkey_Ver_4
           values (:uuidTbl)
           for :nRow rows
         ;

         if ^@chkSql (@sqlOk) then
             call exitPgm ($ddPrint
                          ,'insert into session.Tkey_Ver_4 failed'
                          ,$hSqlCa);
         call add2RtStat ($hRtStaTbl (3), starttime_i);

         /* delete flows in TMF150A1
          */
         starttime_i = @getTod ();
 EXEC SQL
         delete from @table (@schema, tmf150a1)
             where MF150001 in
                (select MF150001 from session.Tkey_Ver_4)
          ;
         if ^@chkSql (@sqlOk) then
             call exitPgm ($ddPrint
                          ,"delete flows in 'TMF150A1' failed"
                          ,$hSqlCa);
         call add2RtStat ($hRtStaTbl (4), starttime_i);

         nn += nRow;

         if is@End then nRow = 0;                /* no more data */
                   else nRow = getData (is@End);
     end;

     call add2RtStat ($hRtStaTbl (2), starttime);

     starttime = @getTod ();
 EXEC SQL
     close cur_getAndInsert_d;
     if ^@chkSql (@sqlOk) then
         call exitPgm ($ddPrint
                      ,"close cursor 'cur_getAndInsert_d' failed"
                      ,$hSqlCa);

     call add2RtStat ($hRtStaTbl (5), starttime);

     return (nn);

 /* -lese Daten ein------------------------------------------Level 2- */
 getData:        proc ($is@End)
                     returns (byvalue fixed bin (31));
 dcl $is@End     bit (1) aligned;

 EXEC SQL
     fetch next rowset from cur_getAndInsert_d
         for @blocksize rows
     into :uuidTbl
     ;
     if ^(@chkSql (@sqlOk)
        | @chkSql (@sqlNoData)) then
         call exitPgm ($ddPrint
                      ,"fetch cursor 'cur_getAndInsert_d' failed"
                      ,$hSqlCa);

     $is@End = (@chkSql (@sqlNoData));

     return (sqlca.sqlerrd (3));    /* # of rows in rowset */
 end             getData;
 end             doTransferVersion_4;

1/* -commit changes-------------------------------------------Level 1 */
 #ofSFL:         proc ($ddPrint, $hSqlca, $fromDate, $toDate)
                     options (byvalue)
                     returns (byvalue fixed bin (31));
 dcl $ddPrint    file variable byvalue nonasgn parm;
 dcl $hSqlca     handle sqlca_t nonasgn parm;   /* SQLCA */
 dcl $fromDate   char (10) byaddr nonasgn parm;
 dcl $toDate     char (10) byaddr nonasgn parm;

 dcl nn_c        fixed bin (31)    init (0);
 dcl fromDate_z  char (10)         init ($fromDate);
 dcl toDate_z    char (10)         init ($toDate);
 dcl starttime   type tod_t        init (@getTod ());

 dcl sqlca       type sqlca_t based (ptrvalue ($hSqlCa));

 EXEC SQL
     select count (*)
         into :nn_c
     from @table (@schema, tmf150a1)
         where MF150013 >= :fromDate_z
           and MF150013 <= :toDate_z
     with ur
     ;

     if @chkSql (@sqlOk) then do;

         call @printElapsedTime ($ddPrint, starttime
                                ,"select 'count (*)'");
         return (nn_c);
     end;

     call exitPgm ($ddPrint
                  ,"select 'count (*)' failed"
                  ,$hSqlCa);
 end             #ofSFL;

 /* -commit changes-------------------------------------------Level 1 */
 execRRSAFCmd:   proc ($ddPrint, $cmd, $ssid, $plan)
                     options (byvalue);
 dcl $ddPrint    file variable byvalue nonasgn parm;
 dcl $cmd        char (12) byaddr parm;
 dcl $ssid       char (4) byaddr optional parm;
 dcl $plan       char (8) byaddr optional parm;

 dcl rc          fixed bin (31);

     if $cmd = cConnect then rc = YXRRSAF ($cmd, $ssid, $plan);
                        else rc = YXRRSAF ($cmd);
     if rc ^= 0 then
         call exitPgm ($ddPrint
                     ,"YXRRSAF: "
                   || $cmd
                   || " failed (RC=x'"
                   || hex (rc)
                   || "')"
                      );
 end             execRRSAFCmd;

1/* -calculate to-date----------------------------------------Level 1 */
 calcToDate:     proc
                     returns (char (10));
 dcl nDays       fixed bin (31)    init ((days () - 365));
 dcl ii          fixed bin (31);

     do ii = 1 to 7;

         if weekday (nDays) = 1 then     /* Sunday */
             return (daystodate (nDays, @dateFmt));
         nDays -= 1;
     end;

     return ('01.01.0001');
 end             calcToDate;

 /* -calculate from-date--------------------------------------Level 1 */
 calcFromDate:   proc ($toDate)
                     returns (char (10));
 dcl $toDate     char (10) nonasgn parm;

 dcl nDays       fixed bin (31)    init (days ($toDate, @dateFmt));

     return (daystodate (nDays - 6, @dateFmt));
 end             calcFromDate;

 /* -check period---------------------------------------------Level 1 */
 checkHistPeriod: proc ($ddPrint, $fromDate, $toDate);
 dcl $ddPrint    file variable;
 dcl $fromDate   char (10) nonasgn parm;
 dcl $toDate     char (10) nonasgn parm;

     if days ($fromDate, @dateFmt) <= days ($toDate, @dateFmt) then
         return;

     call exitPgm ($ddPrint
                  ,'from-date '
                 || $fromDate
                 || ' greater then to-date '
                 || $toDate
                  );
 end             checkHistPeriod;

1/* -new runtime statistics container-------------------------Level 1 */
 newRtSta:       proc ($text)
                     returns (byvalue handle rtSta_t);
 dcl hRtStat     handle rtSta_t    init (new (:rtSta_t:)) nonasgn;
 dcl $text       char (*) varz;

     call plifill (ptrvalue (hRtStat), '00'x, size (:rtSta_t:));

     hRtStat=>sumX  = 0.0;
     hRtStat=>sumX2 = 0.0;
     hRtStat=>minX  = huge (hRtStat=>minX);
     hRtStat=>maxX  = 0.0;

     hRtStat=>text = $text;

     return (hRtStat);
 end             newRtSta;

 /* add sample to runtime statistics--------------------------Level 1 */
 add2RtStat:     proc ($hRtStat, $tod)
                     options (byvalue inline);
 dcl $hRtStat    handle rtSta_t nonasgn parm;
 dcl $tod        type tod_t byaddr nonasgn parm;

     call addSample2RtStat ($hRtStat, @calcTodDiff (@getTod (), $tod));
 end             add2RtStat;


 /* add sample to runtime statistics--------------------------Level 1 */
 addSample2RtStat: proc ($hRtStat, $sampleX)
                       options (byvalue);
 dcl $hRtStat    handle rtSta_t nonasgn parm;
 dcl $sampleX    float dec (16) nonasgn parm;

     $hRtStat=>sumX  += $sampleX;
     $hRtStat=>sumX2 += $sampleX * $sampleX;

     if $sampleX > $hRtStat=>maxX then $hRtStat=>maxX = $sampleX;
     if $sampleX < $hRtStat=>minX then $hRtStat=>minX = $sampleX;

     $hRtStat=>nn += 1;
 end             addSample2RtStat;

1/* print runtime statistics----------------------------------Level 1 */
 printRtStat:    proc ($ddPrint, $hRtStat)
                       options (byvalue);
 dcl $ddPrint    file variable nonasgn parm;
 dcl $hRtStat    handle rtSta_t nonasgn parm;

 dcl covariance  float dec (16)    init (0.0);
 dcl deviation   float dec (16)    init (0.0);
 dcl mean        float dec (16)    init (0.0);

     if $hRtStat=>nn > 1 then do;

         /* calculate covariance (Varianz)
          */
         covariance = ($hRtStat=>sumX2 -
                      ($hRtStat=>sumX * $hRtStat=>sumX /
                       float ($hRtStat=>nn, 16))) /
                       float (($hRtStat=>nn - 1), 16);

         /* calculate standard deviation (Standardabweichung)
          */
         deviation = sqrt (covariance);
     end;

     /* calculate mean (Mittelwert)
      */
      if $hRtStat=>nn > 0 then
         mean = $hRtStat=>sumX / float ($hRtStat=>nn, 16);

     put file ($ddPrint) edit
         ('Runtime statistic - ', $hRtStat=>text)
         (skip, a, a)

         ('# of samples', $hRtStat=>nn)
         (skip, a, col(30), p'zzz,zzz,zz9')

         ('minimum', round ($hRtStat=>minX, 3))
         (skip, a, col(30), p'zzz,zzz,zz9V.999')

         ('maximum', round ($hRtStat=>maxX, 3))
         (skip, a, col(30), p'zzz,zzz,zz9V.999')

         ('deviation', round (deviation, 3))
         (skip, a, col(30), p'zzz,zzz,zz9V.999')

         ('covariance', round (covariance, 3))
         (skip, a, col(30), p'zzz,zzz,zz9V.999')

         ('mean', round (mean, 3))
         (skip, a, col(30), p'zzz,zzz,zz9V.999')
         ;
 end             printRtStat;

1/* print runtime statistics table----------------------------Level 1 */
 printRtStaTbl: proc ($ddPrint, $hRtStaTbl)
                       options (byvalue);
 dcl $ddPrint    file variable nonasgn parm;
 dcl $hRtStaTbl (*) handle rtSta_t nonasgn parm;

 dcl ii          fixed bin (31);

     do ii = lbound ($hRtStaTbl) to hbound ($hRtStaTbl);

         if $hRtStaTbl (ii) ^= null () then do;

             put skip file ($ddPrint) list ((@nRep) @repChar);
             call printRtStat ($ddPrint, $hRtStaTbl (ii));
         end;
     end;

     put skip file ($ddPrint) list ((@nRep) @repChar);
 end             printRtStaTbl;                                         07640002

 /* delete runtime statistics table---------------------------Level 1 */
 deleteRtStaTbl: proc ($hRtStaTbl)
                       options (byvalue);
 dcl $hRtStaTbl (*) handle rtSta_t nonasgn parm;

 dcl ii          fixed bin (31);

     do ii = lbound ($hRtStaTbl) to hbound ($hRtStaTbl);

         if $hRtStaTbl (ii) ^= null () then
             call plidelete ($hRtStaTbl (ii));
     end;
 end             deleteRtStaTbl;                                        07640002
 end             MFR_sfl_history;                                       07640002
 /* -CS-KGCG 21-----------------------------------------------------  */07650002
}¢--- A540769.WK.SQL(MIRCOA) cre= mod= -----------------------------------------
--#SET TERMINATOR ?
  SET CURRENT SQLID='S100447'?
  SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","OA1P" ?
  CREATE TRIGGER OA1A.VFI027A1_UPD
    INSTEAD OF UPDATE ON OA1A.VFI027A1
    REFERENCING NEW AS N
                OLD AS O
    FOR EACH ROW MODE DB2SQL
      BEGIN ATOMIC
      VALUES(CASE WHEN(O.TKKEY < 1700001 AND N.TKKEY < 1700001)  OR (O.
             TKKEY BETWEEN 1700001 AND 3200000 AND N.TKKEY BETWEEN
             1700001 AND 3200000)  OR (O.TKKEY BETWEEN 3200001 AND
             4500000 AND N.TKKEY BETWEEN 3200001 AND 4500000)  OR (O.
             TKKEY BETWEEN 4500001 AND 5000000 AND N.TKKEY BETWEEN
             4500001 AND 5000000)  OR (O.TKKEY BETWEEN 5000001 AND
             6980000 AND N.TKKEY BETWEEN 5000001 AND 6980000)  OR (O.
             TKKEY BETWEEN 6980001 AND 9200000 AND N.TKKEY BETWEEN
             6980001 AND 9200000)  OR (O.TKKEY BETWEEN 9200001 AND
             10000000 AND N.TKKEY BETWEEN 9200001 AND 10000000)  OR (
             O.TKKEY BETWEEN 10000001 AND 10500000 AND N.TKKEY
             BETWEEN 10000001 AND 10500000)  OR (O.TKKEY BETWEEN
             10500001 AND 11000000 AND N.TKKEY BETWEEN 10500001 AND
             11000000)  OR (O.TKKEY > 11000000 AND N.TKKEY > 11000000
             ) THEN 0 ELSE RAISE_ERROR('70001',
             'TKKEY update in a different phys. table is not possible vi
a trigger,  use a separate insert and delete statement'
             ) END) ;
      VALUES(CASE WHEN N.BOERSE = O.BOERSE AND N.WHRG = O.WHRG AND N.
             KURSDATUM = O.KURSDATUM THEN 0 ELSE RAISE_ERROR('70002',
             'Some key values (Boerse/Whrg/Kursdatum) cannot be changed,
 message generated because of trigger condition'
             ) END) ;
      UPDATE OA1A.TFI027A1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY < 1700001
            AND N.TKKEY < 1700001
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      UPDATE OA1A.TFI027B1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY BETWEEN 1700001 AND 3200000
            AND N.TKKEY BETWEEN 1700001 AND 3200000
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      UPDATE OA1A.TFI027C1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY BETWEEN 3200001 AND 4500000
            AND N.TKKEY BETWEEN 3200001 AND 4500000
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      UPDATE OA1A.TFI027D1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY BETWEEN 4500001 AND 5000000
            AND N.TKKEY BETWEEN 4500001 AND 5000000
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      UPDATE OA1A.TFI027E1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY BETWEEN 5000001 AND 6980000
            AND N.TKKEY BETWEEN 5000001 AND 6980000
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      UPDATE OA1A.TFI027F1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY BETWEEN 6980001 AND 9200000
            AND N.TKKEY BETWEEN 6980001 AND 9200000
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      UPDATE OA1A.TFI027G1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY BETWEEN 9200001 AND 10000000
            AND N.TKKEY BETWEEN 9200001 AND 10000000
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      UPDATE OA1A.TFI027H1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY BETWEEN 10000001 AND 10500000
            AND N.TKKEY BETWEEN 10000001 AND 10500000
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      UPDATE OA1A.TFI027I1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY BETWEEN 10500001 AND 11000000
            AND N.TKKEY BETWEEN 10500001 AND 11000000
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      UPDATE OA1A.TFI027J1 U
        SET (U.TKKEY, U.VERFALL, U.STATUS, U.MUT_TIMESTAMP,
            U.TK_KURSTYP, U.TK_ZUSATZ, U.CS_KA_NUM, U.KURS_LIEFERUNG,
            U.KURS_UMRECHNUNG, U.MENGE, U.BOERSE_TK, U.ERSTELLUNG,
            U.QUELLE, U.LOG_EINTRAG, U.INSTRAD, U.KS_BPL_ST,
            U.KS_BPL_HT, U.KS_BPL_KS, U.KS_ALT_KS, U.KS_BPL_HA,
            U.KS_AIS_SP, U.KS_BPL_IN, U.KS_BPL_SP, U.EXCODE) = (N.TKKEY,
            N.VERFALL, N.STATUS, CURRENT TIMESTAMP, N.TK_KURSTYP,
            N.TK_ZUSATZ, N.CS_KA_NUM, N.KURS_LIEFERUNG,
            N.KURS_UMRECHNUNG, N.MENGE, N.BOERSE_TK, N.ERSTELLUNG,
            N.QUELLE, N.LOG_EINTRAG, N.INSTRAD, N.KS_BPL_ST,
            N.KS_BPL_HT, N.KS_BPL_KS, N.KS_ALT_KS, N.KS_BPL_HA,
            N.KS_AIS_SP, N.KS_BPL_IN, N.KS_BPL_SP, N.EXCODE)
          WHERE O.TKKEY > 11000000
            AND N.TKKEY > 11000000
            AND O.TKKEY = U.TKKEY
            AND O.BOERSE = U.BOERSE
            AND O.WHRG = U.WHRG
            AND O.KURSDATUM = U.KURSDATUM
            AND O.VERFALL = U.VERFALL
            AND O.STATUS = U.STATUS
            AND O.MUT_TIMESTAMP = U.MUT_TIMESTAMP ;
      END ?
--#SET TERMINATOR ;
  COMMIT;
}¢--- A540769.WK.SQL(MVEXTGG) cre=2014-04-23 mod=2014-04-24-08.12.25 A540769 ---
select count(*), rz, dbMbr
    from oa1p.tQZ050cmd
    group by rz, dbMbr
;
delete
    from oa1p.tQZ050cmd
    where rz = '?'
;
select count(*), rz, dbMbr
    from oa1p.tQZ050cmd
    group by rz, dbMbr
;
commit
;x;
select *
    from oa1p.tQZ050cmd
    where rz = '?'  and system like 'S2%'
    order by tst desc
; x;
delete from oa1p.tQZ050cmd c
    where rz = '?' and dbSys = '?' and verb = '?'
        and exists (select 1 from oa1p.tQZ050cmd o
           where o.rz = 'RZ2' and o.tst = c.tst and o.dbMbr = c.dbMbr
                and o.system = c.system and o.corr = c.corr
                and o.cmd = c.cmd)
;
commit
;
select count(*), rz
    from oa1p.tQZ050cmd
    group by rz
}¢--- A540769.WK.SQL(MVEXTSEL) cre=2014-04-02 mod=2015-11-09-07.50.27 A540769 ---
 select  rz, dbSys, count(*), max(load), max(tst), min(tst)
     from oa1p.tqz050Cmd
     where load > current date - 5 day
     group by rz, dbSys
     order by rz, dbSys
 ;X;
 select  count(*), count(distinct load), min(load)
     from oa1p.tqz050Cmd
     where load > current date - 1 month
     group by date(load)
     order by 3 desc
 ;X;
select count(*), rz, min(dbMbr), max(dbMbr)
              , min(system), max(system)
              , max(tst), min(tst)
              , max(load), min(load)
               --  ,min(rz), max(rz), min(dbSys),max(dbSys)
    from oa1p.Tqz050cmd
    where load >= current date - 7 days
    group by rz
    order by rz
; x;
select * from oa1p.tqz050cmd
     where rz like '%?%' or dbSys like '%?%'
; x
select count(*), dbMbr, system, year(timestamp)
               , min(timestamp), max(timestamp)
               --  ,min(rz), max(rz), min(dbSys),max(dbSys)
    from oa1p.Tqz050cmd
    where timestamp >= '2013-01-01-00.00.00'
    group by dbMbr, system, year(timestamp)
    order by dbMbr, system, year(timestamp) desc
; x;
 select count(*), rz, dbSys, dbMbr, system, min(tst), max(tst)
     from oa1p.tqz050cmd
     group by rz, dbSys, dbMbr, system
     order by rz, dbSys, dbMbr, system
 ; Y;
    order by rz, dbSys, dbMbr, system
; Y;
update oa1p.tqz050cmd   set dbSys = 'DBOF'
     where rz = 'RZ2' and dbSys = '?' and dbMbr like 'DOF%'
;
commit;
update oa1p.tqz050cmd   set dbSys = 'DVBP'
     where rz = 'RZ2' and dbSys = '?' and dbMbr like 'DBP%'
;
commit;
update oa1p.tqz050cmd   set dbSys = 'DP2G'
     where rz = 'RZ2' and dbSys = '?' and dbMbr like 'DP2%'
;
commit;
select *
    from oa1p.tqz050cmd
    where tst = '2012-10-31-16.22.22.74'
    order by tst desc
    fetch first 1000 rows only
;x;
xpdate oa1p.tqz050cmd   set dbSys = 'DC0G'
     where rz = 'RZ8' and dbSys = '?' and dbMbr like 'DC0%'
;
commit;
update oa1p.tqz050cmd   set dbSys = 'DCVG'
     where rz = 'RZ8' and dbSys = '?' and dbMbr like 'DCV%'
;
commit;
update oa1p.tqz050cmd   set dbSys = 'DP8G'
     where rz = 'RZ8' and dbSys = '?' and dbMbr like 'DP8%'
;
commit;
commit;
update oa1p.tqz050cmd   set rz    = 'RZ8'
     where rz = 'RZZ' and system like 'S8%'
;
update oa1p.tqz050cmd   set dbSys = 'DE0G'
     where rz = 'RZZ' and dbSys = '?' and dbMbr like 'DE0%'
;
commit;
update oa1p.tqz050cmd   set dbSys = 'DEVG'
     where rz = 'RZZ' and dbSys = '?' and dbMbr like 'DEV%'
;
commit;
update oa1p.tqz050cmd   set dbSys = 'DBBA'
     where rz = 'RZ1' and dbSys = '?' and dbMbr like 'DBA%'
;
commit;
delete from oa1p.tqz050cmd
     where rz = 'RZ1' -- and dbSys = '?'
;
update oa1p.tqz050cmd   set dbSys = 'DBOL'
     where rz = 'RZ4' and dbSys = '?' and dbMbr like 'DOL%'
;
select *
    from oa1p.tqz050cmd
    order by tst desc
    fetch first 2000 rows  only
}¢--- A540769.WK.SQL(NI02097) cre=2007-03-22 mod=2007-03-22-13.34.10 F540769 ---
select ni107140, ni107146, ni107142, ni107144
    from oa1t.TNI107A101A
    order by abs(ni107142) desc
    fetch first 23 rows only
;
select ni107140, ni107146, ni107142, ni107144
    from oa1t01.TNI107A101A
    order by abs(ni107144) asc
    fetch first 23 rows only
;
select ni107140, ni107146, ni107142, ni107144
    from oa1t02.TNI107A101A
    order by abs(ni107146) desc
    fetch first 23 rows only
;
x
select ni107068, ni107071, ni107069, ni107070
    from oa1t.TNI107A101A
    order by abs(ni107069) desc
    fetch first 23 rows only
;
select ni107068, ni107071, ni107069, ni107070
    from oa1t01.TNI107A101A
    order by abs(ni107070) asc
    fetch first 23 rows only
;
select ni107068, ni107071, ni107069, ni107070
    from oa1t02.TNI107A101A
    order by abs(ni107071) desc
    fetch first 23 rows only
;
x
select ni107142, count(*)
    from oa1t.TNI107A101A
    group by ni107142
    order by ni107142 desc
;
x
-- new
select ni107140, ni107146, ni107142, ni107144
    from oa1t.TNI107A101A
;
-- old
select ni107068, ni107071, ni107069, ni107070
    from oa1T.TNI107A101A
;
-- new
select ni107140, ni107146, ni107142, ni107144
    from oa1t.TNI107A101A
;
}¢--- A540769.WK.SQL(NI5470) cre=2014-08-22 mod=2014-08-22-14.23.21 A540769 ----
set current path = oa1p;
SELECT
-- begin prb insert penc
-- tacct_program p, fsoFmtE7, all, expr ~
      fosFmtE7(p.ELAPSEPKG) "pkgElap"
    , fosFmtE7(p.CPUTCBPKG) "pkgCpu"
    , fosFmtE7(p.CLASS7CPU_ZIIP) "pkgZIIP"
    , fosPrWait(p.ELAPSYNCIO, p.ELPLOCK, p.ELPOTHREAD, p.ELPOTHWRIT
      , p.ELPUNITSW, p.ELPARCQIS, p.ELPDRAIN, p.ELPCLAIM
      , p.ELPARCREAD, p.ELPPGLAT, p.GBLMSGELAP, p.GBLLOKELAP
      , p.SPWAITELAP, p.FUNCWAIT, p.LOBWAITELAP, p.WTELAWTK
      , p.WTELAWTM, p.WTELAWTN, p.WTELAWTO
      , p.WTELAWTQ) "wait    % 1.   % 2.   % 3."
    , fosFmtE7(p.BPGETPAGE) "bpGetPg"
    , fosFmtE7(p.BPPGUPDAT) "bpUpdPg"
    , fosFmtE7(p.BPSYNCRD) "bpSynRe"
    , fosFmtE7(p.SQLCALL) SQLCALL
    , fosFmtE7(p.SQLCOUNT) SQLCOUNT
    , fosFmtE7(p.SELECTS) SELECTS
    , fosFmtE7(p.INSERTS) INSERTS
    , fosFmtE7(p.UPDATES) UPDATES
    , fosFmtE7(p.DELETES) DELETES
    , fosFmtE7(p.DESCRIBES) "describ"
    , fosFmtE7(p.PREPARES) "prepare"
    , fosFmtE7(p.OPENS) OPENS
    , fosFmtE7(p.FETCHES) FETCHES
    , fosFmtE7(p.CLOSES) CLOSES
    , real((p.ELAPSYNCIO + p.ELPLOCK + p.ELPOTHREAD + p.ELPOTHWRIT
      + p.ELPUNITSW + p.ELPARCQIS + p.ELPDRAIN + p.ELPCLAIM
      + p.ELPARCREAD + p.ELPPGLAT + p.GBLMSGELAP + p.GBLLOKELAP
      + p.SPWAITELAP + p.FUNCWAIT + p.LOBWAITELAP + p.WTELAWTK
      + p.WTELAWTM + p.WTELAWTN + p.WTELAWTO + p.WTELAWTQ)) "wait"
    , fosFmtE7(p.OCCURRENCES) OCCURRENCES
    , p.SYSTEMID
    , p.SUBSYSTEM
    , p.PLANNAME
    , p.AUTHID
    , p.CONNECTION
    , p.CORRID
    , p.ORIGPRIMID
    , p.CONNTYPE
    , p.DATETIME
    , p.DATE
    , p.LOCATION
    , p.GROUPNAME
    , p.ENDUSERID
    , p.ENDUSERTX
    , p.ENDUSERWN
    , p.CORRNAME
    , fosFmtE7(p.CLASS7CNT) CLASS7CNT
    , fosFmtE7(p.CLASS8CNT) CLASS8CNT
    , fosFmtE7(p.IFCIDSEQ#) IFCIDSEQ#
    , fosFmtE7(p.CPUSUCONV) CPUSUCONV
    , p.EXECLOCATION
    , p.COLLECTIONID
    , p.PROGRAMNAME
    , p.CONSISTOKEN
    , fosFmtE7(p.ELAPSYNCIO) "syncIOW"
    , fosFmtE7(p.ELPLOCK) ELPLOCK
    , fosFmtE7(p.ELPOTHREAD) "othReaW"
    , fosFmtE7(p.ELPOTHWRIT) "othWriW"
    , fosFmtE7(p.ELPUNITSW) "unitSwW"
    , fosFmtE7(p.ELPARCQIS) "arcLQuW"
    , fosFmtE7(p.ELPDRAIN) "drainW"
    , fosFmtE7(p.ELPCLAIM) "claimW"
    , fosFmtE7(p.ELPARCREAD) "arcLReW"
    , fosFmtE7(p.ELPPGLAT) "pgLatW"
    , fosFmtE7(p.GBLMSGELAP) "glMsgW"
    , fosFmtE7(p.GBLLOKELAP) "glLockW"
    , fosFmtE7(p.SPWAITELAP) "stPrW"
    , fosFmtE7(p.SPROCCNT) SPROCCNT
    , fosFmtE7(p.FUNCWAIT) FUNCWAIT
    , fosFmtE7(p.FUNCCNT) FUNCCNT
    , fosFmtE7(p.LOBWAITELAP) "lobW"
    , fosFmtE7(p.WTELAWTK) "glChiW"
    , fosFmtE7(p.WTELAWTM) "glOthW"
    , fosFmtE7(p.WTELAWTN) "glPrtW"
    , fosFmtE7(p.WTELAWTO) "glPgPhW"
    , fosFmtE7(p.WTELAWTQ) "glOtPhW"
    , fosFmtE7(p.RLFCPULIMITU) RLFCPULIMITU
    , fosFmtE7(p.RLFCPUUSEDU) RLFCPUUSEDU
    , fosFmtE7(p.SUSPLATCH) SUSPLATCH
    , fosFmtE7(p.SUSPOTHER) SUSPOTHER
    , fosFmtE7(p.LOCKREQS) LOCKREQS
    , fosFmtE7(p.UNLOCKREQS) UNLOCKREQS
    , fosFmtE7(p.QUERYREQS) QUERYREQS
    , fosFmtE7(p.CHNGREQS) CHNGREQS
    , fosFmtE7(p.IRLMREQS) IRLMREQS
    , fosFmtE7(p.CLAIMREQ) CLAIMREQ
    , fosFmtE7(p.DRAINREQ) DRAINREQ
    , p.LOADTS
-- end   prb insert penc
    FROM PBXX.TACCT_PROGRAM p
    WHERE PLANNAME = 'NI5470'
    AND DATETIME BETWEEN '2014-08-22-02.00.00.00'
                     and '2014-08-22-03.50.00.00'
    with ur
}¢--- A540769.WK.SQL(NZ240) cre=2013-01-14 mod=2013-01-14-15.27.49 A540769 -----
with p as
( select case
    when NZ240003 <= x'00D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then -1
    when NZ240003 <= x'00D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 53
    when NZ240003 <= x'00D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 54
    when NZ240003 <= x'00DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 55
    when NZ240003 <= x'00E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 56
    when NZ240003 <= x'00E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 57
    when NZ240003 <= x'00E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 58
    when NZ240003 <= x'00EdFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 59
                                                              else 60
    end part, n.*
    from oa1a.tnz240a1 n
)
select part, count(*), hex(min(NZ240003)), hex(max(NZ240003))
    from P
    where nz240003 > x'00D0'
    group by part
;
declare global temporary table session.ins
     as (select * from oa1a.tnz240a1)
     with no data
;
insert into session.ins
    select *
        from oa1a.tnz240a1
        where NZ240003 between  x'00E6' and x'00e9FF'
        fetch first 20 rows only
;
update session.ins set NZ240003 = left(NZ240003, 19) || '?'
;
insert into oa1a.tnz240a1
    select * from session.ins
;
with p as
( select case
    when NZ240003 <= x'00D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then -1
    when NZ240003 <= x'00D5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 53
    when NZ240003 <= x'00D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 54
    when NZ240003 <= x'00DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 55
    when NZ240003 <= x'00E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 56
    when NZ240003 <= x'00E5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 57
    when NZ240003 <= x'00E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 58
    when NZ240003 <= x'00EdFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF' then 59
                                                              else 60
    end part, n.*
    from oa1a.tnz240a1 n
)
select part, count(*), hex(min(NZ240003)), hex(max(NZ240003))
    from P
    where nz240003 > x'00D0'
    group by part
;
rollback
;x;
}¢--- A540769.WK.SQL(NZ240INS) cre=2013-01-14 mod=2013-01-16-11.59.49 A540769 ---
$#@
$*(                generate jobs
                   each looping
                       insert into one partition of tnz240a1
                       sleep
                       rollback
$*)
$>.fEdit()
$@insJob{A, "x'0000'", "x'0002FF'"} $** part 1
$@insJob{B, "x'002A'", "x'002DFF'"} $** part 12
$@insJob{C, "x'00CE'", "x'00D1FF'"} $** part 52
$@insJob{D, "x'00E6'", "x'00E9FF'"} $** part 58
$@insJob{E, "x'00EA'", "x'00EDFF'"} $** part 59
$@insJob{I, "x'00EE'", "x'00EFFF'"} $** part 60
$@insJob{J, "x'00F0'", "x'00F3FF'"}   $** part 61
$@insJob{K, "x'00F8'", "x'00FBFF'"}   $** part 63
$@insJob{L, "x'00FC'", "x'FFFFFF'"}   $** part 64
$@proc insJob $@/insJob/
parse arg , jc, vFr, vTo
    $= jc  =- jc
$@=/jcl/
//A540769$jc JOB (CP00,KE50),'DB2 nz440 ins',                           00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M                                     00030000
//*MAIN CLASS=LOG0                                                      00040001
//*
//S1       EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,                      00020001
//            PARM='WSH'
//SYSPROC   DD DSN=A540769.WK.REXX,DISP=SHR
//SYSPRINT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//SYSTSPRT  DD SYSOUT=*
//*OUT       DD SYSOUT=* avoid truncation
//SYSTSIN   DD DUMMY
//WSH       DD *
$/jcl/
    $$  $"$#@"
    $$- $'$= vFr =- "'vFr'"'
    $$- $'$= vTo =- "'vTo'"'
$@#/wshIn/
call errAddCleanup 'call sqlExec rollback'
call sqlConnect DBAF
$;
$@do ix=1 to 120 $@/loop/
say time() 'inserting'
$;
$<=¢
declare global temporary table session.ins
     as (select * from oa1a.tnz240a1)
     with no data
;
insert into session.ins
    select *
        from oa1a.tnz240a1
        where NZ240003 between  $vFr and $vTo
        fetch first 50 rows only
;
update session.ins set NZ240003 = left(NZ240003, 19) || '?'
;
insert into oa1a.tnz240a1
    select * from session.ins
;
$! call sqlStmts
call sleep 30
say time() 'rolling back'
call sqlExec rollback
$/loop/
$/wshIn/
$/insJob/
$#out                                              20130115 14:32:38
$#out                                              20130115 14:24:22
$#out                                              20130114 20:02:38
$#out                                              20130114 19:54:59
$#out                                              20130114 19:52:44
$#out                                              20130114 19:51:40
$#out                                              20130114 19:50:41
}¢--- A540769.WK.SQL(OBID) cre=2010-01-25 mod=2010-01-25-12.16.25 A540769 ------
with id as
(       select 102 id from sysibm.sysDummy1
  union select 113 id from sysibm.sysDummy1
)
select 'ts obid', s.obId, dbName, name
    from sysibm.sysTablespace s, id
    where dbname = 'DB2ADMIN' and OBID = id
union select 'ts psid', s.psId, dbName, name
    from sysibm.sysTablespace s, id
    where dbname = 'DB2ADMIN' and psID = id
union select 'tb obid', t.obId, dbName, name
    from sysibm.sysTables t, id
    where dbname = 'DB2ADMIN' and obID = id
union select 'ix obid', x.obId, dbName, name
    from sysibm.sysIndexes x, id
    where dbname = 'DB2ADMIN' and obID = id
;
select *
    from sysibm.sysTables
    where dbname = 'DB2ADMIN' and OBID = 102
;
select *
    from sysibm.sysIndexes
    where dbname = 'DB2ADMIN' and OBID = 102
}¢--- A540769.WK.SQL(OCF) cre= mod= --------------------------------------------
select tid150md, tid150tst, tid150uui, tid150cha from oa1a . tid150a1;
select tid150md, tid150tst, tid150uui, tid150cha from oa1a . tid150a1
  where tid150md = 1010
    and TID150TST >= '2004-10-10-11.06.00.000000'
    and tid150uui like '% %'
union select tid150md, tid150tst, tid150uui, tid150cha
  from oa1a.tid150a1
  where tid150md > 1010
    and tid150md  < 1013
    and tid150uui like '%'
union select tid150md, tid150tst, tid150uui, tid150cha
  from oa1a.tid150a1
  where tid150md = 1010
    and TID150TST <= '2004-10-13-21.48.00.000000'
    and tid150uui like '% %'
order by tid150tst desc;
}¢--- A540769.WK.SQL(OCF2) cre= mod= -------------------------------------------
select
    o1.tid150uui, o1.cnt,
      o2.tid150tst, o2.tid150cha,
      o3.tid150tst, o3.tid150cha
  from
    (select
      tid150uui, count(*) cnt,
        min(tid150tst) minTst, max(tid150tst) maxTst
      from oa1a . tid150a1
      group by tid150uui
      having count(*) > 0
    ) o1
  join
    (select
      tid150cha, tid150tst, tid150uui
      from oa1a . tid150a1
    ) o2
  on    o2.tid150tst = o1.minTst
    and o2.tid150uui = o1.tid150uui
  left join
    (select
      tid150cha, tid150tst, tid150uui
      from oa1a . tid150a1
    ) o3
  on    o3.tid150tst = o1.maxTst
    and o3.tid150uui = o1.tid150uui
    and o3.tid150tst > o2.tid150tst
  order by o1.tid150uui asc
;
}¢--- A540769.WK.SQL(OLDNAME) cre=2007-03-13 mod=2007-03-20-13.26.31 F540769 ---
select char(dbName, 8) "db", count(*) "total",
        sum(case when creator = 'IMF' then 1 else 0 end) "imf"   ,
        sum(case when creator = 'ODV' then 1 else 0 end) "odv"   ,
        sum(case when creator = 'OA1P' then 1 else 0 end) "oa1p" ,
        sum(case when creator in ('IMF', 'ODV', 'OA1P')
                     then 0 else 1 end) "other"                  ,
        char(max(case when creator in ('IMF', 'ODV', 'OA1P')
                     then '' else creator end), 8) "other"
    from sysibm.systables
    where type = 'T' and dbName in
        ( select s.dbname
              from sysibm.systables s
              where s.type = 'T' and s.creator in ('IMF', 'ODV')
        )
    group by dbName
    order by dbName
;
select  count(distinct dbName) "dbCnt", count(*) "tbCnt",
        sum(case when creator = 'IMF' then 1 else 0 end) "imf"   ,
        sum(case when creator = 'ODV' then 1 else 0 end) "odv"   ,
        sum(case when creator = 'OA1P' then 1 else 0 end) "oa1p" ,
        sum(case when creator in ('IMF', 'ODV', 'OA1P')
                     then 0 else 1 end) "other"                  ,
        char(max(case when creator in ('IMF', 'ODV', 'OA1P')
                     then '' else creator end), 8) "other"
    from sysibm.systables
    where type = 'T' and dbName in
        ( select s.dbname
              from sysibm.systables s
              where s.type = 'T' and s.creator in ('IMF', 'ODV')
        )
;
select char(d.name, 8),
       sum(coalesce(t.cnt  , 0)) "tables" ,
       sum(coalesce(ts.byte, 0)) "tbBytes",
       sum(coalesce(ts.cnt , 0)) "tbParts",
       sum(coalesce(i.cnt  , 0)) "indexes" ,
       sum(coalesce(xs.byte, 0)) "ixBytes",
       sum(coalesce(xs.cnt , 0)) "ixParts"
    from sysibm.sysDatabase d
      left join
       ( select dbName, count(*) cnt from sysibm.systables
              where type = 'T' group by dbName
       ) t
       on t.dbName = d.name
      left join
      ( select dbName,
               sum(coalesce(float(space), 0) * 1024) byte,
               count(*) cnt
          from sysIbm.tableSpaceStats
          group by dbName
      ) ts
      on ts.dbname = d.name
      left join
       ( select dbName, count(*) cnt from sysibm.sysIndexes
                              group by dbName
       ) i
       on i.dbName = d.name
      left join
      ( select dbName,
               sum(coalesce(float(space), 0)* 1024) byte,
               count(*) cnt
            from sysIbm.indexSpaceStats
            group by dbName
      ) xs
      on xs.dbName = d.name
    where d.name in
        ( select s.dbname
              from sysibm.systables s
              where s.type = 'T' and s.creator in ('IMF', 'ODV')
        )
    group by d.name
    order by d.name
;
select count(distinct d.name)    "dbCnt"  ,
       sum(coalesce(t.cnt  , 0)) "tables" ,
       sum(coalesce(ts.byte, 0)) "tbBytes",
       sum(coalesce(ts.cnt , 0)) "tbParts",
       sum(coalesce(i.cnt  , 0)) "indexes",
       sum(coalesce(xs.byte, 0)) "ixBytes",
       sum(coalesce(xs.cnt , 0)) "ixParts"
    from sysibm.sysDatabase d
      left join
       ( select dbName, count(*) cnt from sysibm.systables
              where type = 'T' group by dbName
       ) t
       on t.dbName = d.name
      left join
      ( select dbName,
               sum(coalesce(float(space), 0) * 1024) byte,
               count(*) cnt
          from sysIbm.tableSpaceStats
          group by dbName
      ) ts
      on ts.dbname = d.name
      left join
       ( select dbName, count(*) cnt from sysibm.sysIndexes
                              group by dbName
       ) i
       on i.dbName = d.name
      left join
      ( select dbName,
               sum(coalesce(float(space), 0)* 1024) byte,
               count(*) cnt
            from sysIbm.indexSpaceStats
            group by dbName
      ) xs
      on xs.dbName = d.name
    where d.name in
        ( select s.dbname
              from sysibm.systables s
              where s.type = 'T' and s.creator in ('IMF', 'ODV')
        )
;
;
x
with cre as
  ( select creator, name, dbname, tsName,
         case when creator like 'OA1P%' then 'OA1P%'
              when substr(creator, 2, 1) in ('0','1','2','3','4',
                     '5','6','7','8','9')
                           then left(creator, 1) || '%user'
              when left(creator, 3) in ('BMC', 'DB2')
                            then left(creator, 3) || '%'
              else creator
       end  creGr
    from sysibm.systables
    where type = 'T'
)
select char(t.creGr, 8), t.cnt "tables",
       coalesce(ts.byte, 0) "tblBytes", ts.cnt "tblParts",
       coalesce(i.cnt, 0) "indexes", xs.sp "idxBytes", xs.pt "idxParts"
    from
      ( select creGr, count(*) cnt
            from cre
            group by creGr
      ) t
      left join
      (select creGr, sum(float(space) * 1024) byte, count(*) cnt
          from cre c,  sysIbm.tableSpaceStats s
          where c.dbname = s.dbName and c.tsName = s.Name
          group by creGr
      ) ts
      on t.creGr = ts.creGr
      left join
      ( select creGr, count(*) cnt
            from cre c, sysibm.sysindexes x
            where c.creator = x.tbCreator and c.name = x.tbName
            group by creGr
      ) i
      on t.creGr = i.creGr
      left join
      ( select creGr, sum(float(q.space)* 1024) sp, count(*) pt
            from cre c, sysibm.sysindexes x, sysIbm.indexSpaceStats q
            where c.creator = x.tbCreator and c.name = x.tbName
               and x.dbname = q.dbName and x.indexSpace = q.indexSpace
            group by creGr
      ) xs
      on t.creGr = xs.creGr
    order by 2 desc
;
x
with cre as
  ( select creator, name,
         case when creator = 'IMF' then 'IMF'
              when creator = 'ODV' then 'ODV'
              when creator like 'OA1P%' then 'OA1P%'
              when left(creator, 2) in ('A0','A1','A2','A3','A4',
                        'A5','A6','A7','A8','A9') then 'Auser'
              when left(creator, 2) in ('F0','F1','F2','F3','F4',
                        'F5','F6','F7','F8','F9') then 'Fuser'
                 else creator
       end  creGr
    from sysibm.systables
)
select char(creGr, 8), count(*)
    from cre
    group by creGr
    order by creGr
;
x
select char(creator, 8), count(*), count(distinct dbname)
    from sysibm.systables
    group by creator
    order by 2 desc
;
select char(creator, 8), count(*), count(distinct dbname)
    from sysibm.systables
    group by creator
    order by 2 desc
;
select char(coalesce(n.db, o.db), 8) "db",
       coalesce(o.cnt, 0) "oldCnt", o.mi "oldMin", o.ma "oldMax",
       coalesce(n.cnt, 0) "newCnt", n.mi "newMin", n.ma "newMax"
  from
    ( select dbname db, count(distinct creator) cnt,
             char(min(creator), 8) mi, char(max(creator), 8) ma
          from sysibm.systables
          where type = 'T' and creator like 'OA1%'
          group by dbname
    ) n
    full join
    ( select dbname db, count(distinct creator) cnt,
             char(min(creator), 8) mi, char(max(creator), 8) ma
          from sysibm.systables
          where type = 'T' and not creator like 'OA1%'
select char(dbName, 8) "db", count(*) "imf+odv+other",
         sum(case when creator = 'IMF' then 1 else 0 end) "imf",
         sum(case when creator = 'ODV' then 1 else 0 end) "odv"
    from sysibm.systables
    where type = 'T' and creator in ('IMF', 'ODV')
    group by dbName
    order by dbName
;
x
with cre as
  ( select creator, name, dbname, tsName,
         case when creator like 'OA1P%' then 'OA1P%'
              when substr(creator, 2, 1) in ('0','1','2','3','4',
                     '5','6','7','8','9')
                           then left(creator, 1) || '%user'
              when left(creator, 3) in ('BMC', 'DB2')
                            then left(creator, 3) || '%'
              else creator
       end  creGr
    from sysibm.systables
    where type = 'T'
)
select char(t.creGr, 8), t.cnt "tables",
       coalesce(ts.byte, 0) "tblBytes", ts.cnt "tblParts",
       coalesce(i.cnt, 0) "indexes", xs.sp "idxBytes", xs.pt "idxParts"
    from
      ( select creGr, count(*) cnt
            from cre
            group by creGr
      ) t
      left join
      (select creGr, sum(float(space) * 1024) byte, count(*) cnt
          from cre c,  sysIbm.tableSpaceStats s
          where c.dbname = s.dbName and c.tsName = s.Name
          group by creGr
      ) ts
      on t.creGr = ts.creGr
      left join
      ( select creGr, count(*) cnt
            from cre c, sysibm.sysindexes x
            where c.creator = x.tbCreator and c.name = x.tbName
            group by creGr
      ) i
      on t.creGr = i.creGr
      left join
      ( select creGr, sum(float(q.space)* 1024) sp, count(*) pt
            from cre c, sysibm.sysindexes x, sysIbm.indexSpaceStats q
            where c.creator = x.tbCreator and c.name = x.tbName
               and x.dbname = q.dbName and x.indexSpace = q.indexSpace
            group by creGr
      ) xs
      on t.creGr = xs.creGr
    order by 2 desc
;
x
with cre as
  ( select creator, name,
         case when creator = 'IMF' then 'IMF'
              when creator = 'ODV' then 'ODV'
              when creator like 'OA1P%' then 'OA1P%'
              when left(creator, 2) in ('A0','A1','A2','A3','A4',
                        'A5','A6','A7','A8','A9') then 'Auser'
              when left(creator, 2) in ('F0','F1','F2','F3','F4',
                        'F5','F6','F7','F8','F9') then 'Fuser'
                 else creator
       end  creGr
    from sysibm.systables
)
select char(creGr, 8), count(*)
    from cre
    group by creGr
    order by creGr
;
x
select char(creator, 8), count(*), count(distinct dbname)
    from sysibm.systables
    group by creator
    order by 2 desc
;
select char(creator, 8), count(*), count(distinct dbname)
    from sysibm.systables
    group by creator
    order by 2 desc
;
select char(coalesce(n.db, o.db), 8) "db",
       coalesce(o.cnt, 0) "oldCnt", o.mi "oldMin", o.ma "oldMax",
       coalesce(n.cnt, 0) "newCnt", n.mi "newMin", n.ma "newMax"
  from
    ( select dbname db, count(distinct creator) cnt,
             char(min(creator), 8) mi, char(max(creator), 8) ma
          from sysibm.systables
          where type = 'T' and creator like 'OA1%'
          group by dbname
    ) n
    full join
    ( select dbname db, count(distinct creator) cnt,
             char(min(creator), 8) mi, char(max(creator), 8) ma
          from sysibm.systables
          where type = 'T' and not creator like 'OA1%'
          group by dbname
    ) o
    on n.db = o.db
    order by 2 desc, 5 desc
;
x
select dbname, count(distinct creator),
    char(min(creator), 8), char(max(creator), 8)
    from sysibm.systables
    where type = 'T' -- and dbname like 'A%'
    group by dbname
    order by 2 desc
}¢--- A540769.WK.SQL(OLDNAMP) cre=2007-03-20 mod=2007-03-20-12.22.33 F540769 ---
select d.name,
       ( select count(*) from sysibm.systables c
             where c.type = 'T' and c.dbName = d.name ) "tables"
    from sysibm.sysDatabase d
    where d.name like 'AV%' -- in ( 'DBJ01', 'DBP01' )
    group by d.name
    order by d.name
;
select d.name,
       ( select count(*) from sysibm.systables c
             where c.type = 'T' and c.dbName = d.name ) "tables"
    from sysibm.sysDatabase d
    where d.name like 'AV%' -- in ( 'DBJ01', 'DBP01' )
    order by d.name
;
}¢--- A540769.WK.SQL(OPTHINCO) cre=2008-03-11 mod=2008-03-11-11.20.37 F540769 ---
INSERT INTO CMNBATCH.PLAN_TABLE (
        "QUERYNO"
      , QBLOCKNO
      , APPLNAME
      , PROGNAME
      , PLANNO
      , METHOD
      , CREATOR
      , TNAME
      , TABNO
      , ACCESSTYPE
      , MATCHCOLS
      , ACCESSCREATOR
      , ACCESSNAME
      , INDEXONLY
      , SORTN_UNIQ
      , SORTN_JOIN
      , SORTN_ORDERBY
      , SORTN_GROUPBY
      , SORTC_UNIQ
      , SORTC_JOIN
      , SORTC_ORDERBY
      , SORTC_GROUPBY
      , TSLOCKMODE
      , TIMESTAMP
      , REMARKS
      , PREFETCH
      , COLUMN_FN_EVAL
      , MIXOPSEQ
      , VERSION
      , COLLID
      , ACCESS_DEGREE
      , ACCESS_PGROUP_ID
      , JOIN_DEGREE
      , JOIN_PGROUP_ID
      , SORTC_PGROUP_ID
      , SORTN_PGROUP_ID
      , PARALLELISM_MODE
      , MERGE_JOIN_COLS
      , CORRELATION_NAME
      , PAGE_RANGE
      , JOIN_TYPE
      , GROUP_MEMBER
      , IBM_SERVICE_DATA
      , WHEN_OPTIMIZE
      , QBLOCK_TYPE
      , BIND_TIME
      , OPTHINT
      , HINT_USED
      , PRIMARY_ACCESSTYPE
      , PARENT_QBLOCKNO
      , TABLE_TYPE
      , TABLE_ENCODE
      , TABLE_SCCSID
      , TABLE_MCCSID
      , TABLE_DCCSID
      , ROUTINE_ID
      , CTEREF
      , STMTTOKEN
   ) select
        QUERYNO
      , QBLOCKNO
      , APPLNAME
      , PROGNAME
      , PLANNO
      , METHOD
      , CREATOR
      , TNAME
      , TABNO
      , ACCESSTYPE
      , MATCHCOLS
      , ACCESSCREATOR
      , ACCESSNAME
      , INDEXONLY
      , SORTN_UNIQ
      , SORTN_JOIN
      , SORTN_ORDERBY
      , SORTN_GROUPBY
      , SORTC_UNIQ
      , SORTC_JOIN
      , SORTC_ORDERBY
      , SORTC_GROUPBY
      , TSLOCKMODE
      , TIMESTAMP
      , REMARKS
      , PREFETCH
      , COLUMN_FN_EVAL
      , MIXOPSEQ
      , 'A18Q002827' --        VERSION
      , COLLID
      , ACCESS_DEGREE
      , ACCESS_PGROUP_ID
      , JOIN_DEGREE
      , JOIN_PGROUP_ID
      , SORTC_PGROUP_ID
      , SORTN_PGROUP_ID
      , PARALLELISM_MODE
      , MERGE_JOIN_COLS
      , CORRELATION_NAME
      , PAGE_RANGE
      , JOIN_TYPE
      , GROUP_MEMBER
      , IBM_SERVICE_DATA
      , WHEN_OPTIMIZE
      , QBLOCK_TYPE
      , current timestamp -- BIND_TIME
      , 'WK1' -- OPTHINT
      , HINT_USED
      , PRIMARY_ACCESSTYPE
      , PARENT_QBLOCKNO
      , TABLE_TYPE
      , TABLE_ENCODE
      , TABLE_SCCSID
      , TABLE_MCCSID
      , TABLE_DCCSID
      , ROUTINE_ID
      , CTEREF
      , STMTTOKEN
    from CMNBATCH.PLAN_TABLE
--  where progName = 'RI0810'    and timestamp > '200802'
--        and queryNo   =    3974
        where progname = 'RI0810'
        and bind_time = '2008-02-09-00.39.32.954891'
        and Queryno = 3974
    ;
select * from cmnBatch.plan_table
     where optHint = 'WK1'
    ;
commit
;
    ,
}¢--- A540769.WK.SQL(OPTHINTC) cre=2010-11-18 mod=2010-11-18-10.47.07 A540769 ---
set current sqlid = 'S100447';
-- drop   TABLESPACE db2admin.AOPTHINT;
commit;
CREATE TABLESPACE AOPTHINT
  IN DB2ADMIN
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 5
  GBPCACHE CHANGED
  TRACKMOD YES
  LOGGED
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS NO
  CCSID      Unicode
  DEFINE YES
  MAXROWS 255
;
create table s100447.tOptHint
    like cmnBatch.plan_table
    in db2Admin.aOptHint
;
-- Achtung (teil)copy aus planvw, aenderungen dort |||||||              00010000
-- Achtung (teil)copy aus planvw, aenderungen dort |||||||              00020000
-- Achtung (teil)copy aus planvw, aenderungen dort |||||||              00030000
-- SET CURRENT SQLID = 'S100447';                                       00040000
-- drop   VIEW S100447.vOptHint_VIEW1 ;                                 00050001
   CREATE VIEW S100447.vOptHint_VIEW1 as                                00060001
   SELECT SUBSTR(DIGITS(QUERYNO), 5) AS STMT,                           00070000
          QBLOCK_TYPE AS "TYPE",                                        00080000
                                                                        00090000
          CASE WHEN PRIMARY_ACCESSTYPE = 'D' then 'dirRow'              00100000
               WHEN ACCESSTYPE = 'I ' THEN 'ixScan'                     00110000
               WHEN ACCESSTYPE = 'I1' THEN 'ixOne '                     00120000
               WHEN ACCESSTYPE = 'R ' THEN 'tsScan'                     00130000
               WHEN ACCESSTYPE = 'N ' THEN 'ixSPin'                     00140000
               WHEN ACCESSTYPE = 'M ' THEN 'ixScMu'                     00150000
               WHEN ACCESSTYPE = 'MX' THEN 'ixScMX'                     00160000
               WHEN ACCESSTYPE = 'MI' THEN 'ixScIn'                     00170000
               WHEN ACCESSTYPE = 'MU' THEN 'ixScUn'                     00180000
               WHEN ACCESSTYPE = 'T ' THEN 'ixSPRS'                     00190000
               WHEN ACCESSTYPE = '  ' THEN '      '                     00200000
               ELSE                        '??' || accessType           00210000
          END AS ACCESS,                                                00220000
                                                                        00230000
          CASE WHEN ACCESSTYPE = 'R  ' THEN '       ' WHEN              00240000
          PRIMARY_ACCESSTYPE = 'D' THEN '       ' ELSE SUBSTR(          00250000
          ACCESSNAME, 1, 12) END AS "INDEX",                            00260000
          SUBSTR(TNAME, 1, 12) AS "TABLE",                              00270000
                                                                        00280000
          CASE WHEN TABLE_TYPE IS NULL THEN '      ' ELSE TABLE_TYPE    00290000
          END AS TTYP,                                                  00300000
          CASE WHEN METHOD = 3 THEN '      ' WHEN ACCESSTYPE = 'R '     00310000
          THEN '      ' ELSE SUBSTR(DIGITS(MATCHCOLS), 5, 1) CONCAT     00320000
          '  ' CONCAT INDEXONLY END AS MC_O,                            00330000
          CASE METHOD WHEN 0 THEN '      ' WHEN 1 THEN 'NLJOIN' WHEN    00340000
          2 THEN 'SMJOIN' WHEN 3 THEN 'SORT  ' WHEN 4 THEN 'HYJOIN'     00350000
          ELSE NULL END AS METHOD,                                      00360000
          CASE JOIN_TYPE WHEN 'F' THEN 'FULL ' WHEN 'L' THEN 'LEFT '    00370000
          WHEN 'S' THEN 'STAR ' ELSE ' ' END AS "JOIN",                 00380000
          SORTN_UNIQ CONCAT SORTN_JOIN CONCAT SORTN_ORDERBY CONCAT      00390000
          SORTN_GROUPBY AS UJOG,                                        00400000
          SORTC_UNIQ CONCAT SORTC_JOIN CONCAT SORTC_ORDERBY CONCAT      00410000
          SORTC_GROUPBY AS UJOC, TSLOCKMODE AS LCK,                     00420000
          SUBSTR(CORRELATION_NAME, 1, 4) AS CORR,                       00430000
          CASE PARALLELISM_MODE WHEN 'C' THEN 'CPU' WHEN 'I' THEN       00440000
          'I-O' WHEN 'X' THEN 'SYSPLEX' ELSE NULL END AS PARAL,         00450000
          STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') CONCAT ' '         00460000
          CONCAT STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG,    00470000
          STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '      00480000
          CONCAT STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') AS         00490000
          PG_DEG, STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC,   00500000
          PREFETCH AS PRE,                                              00510000
          STRIP(DIGITS(QUERYNO), LEADING, '0') AS QNO,                  00520000
          SUBSTR(DIGITS(QBLOCKNO), 4, 2) CONCAT ' ' CONCAT SUBSTR(      00530000
          DIGITS(PLANNO), 4, 2) AS BL_PL, PARENT_QBLOCKNO,              00540000
          QBLOCKNO, PLANNO, TNAME, ACCESSNAME, OPTHINT,                 00550000
          HINT_USED, APPLNAME, "COLLID", PROGNAME, VERSION,             00560000
          TIMESTAMP, QUERYNO, MIXOPSEQ, BIND_TIME                       00570000
     FROM s100447.tOpthint A                                            00580001
;                                                                       00590000
------------------------------------------------------------------------00600000
insert into s100447.tOptHint
          select * from cmnbatch.plan_table where opthint <> ''
    union select * from cmnbatch.plan_table where opthint <> ''
    union select * from S100006.plan_table where opthint <> ''
    union select * from S100447.plan_table where opthint <> ''
    union select * from S103931.plan_table where opthint <> ''
 ;
 commit;
;yx
;
select count(*), opthint, length(opthint), hex(opthint)
    from cmnBatch.plan_table
    group by opthint
    order by opthint
    with ur
}¢--- A540769.WK.SQL(OPTHISBQ) cre=2014-07-09 mod=2014-07-09-16.26.38 A540769 ---
//A540769W JOB (CP00,KE50),'DB2 bind',                                  00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2                          00030000
//*MAIN CLASS=LOG                                                       00040000
//P04     EXEC PGM=IKJEFT01
//SYSTSPRT  DD SYSOUT=*
//SYSPRINT  DD SYSOUT=*
//SYSTSIN   DD *
 DSN SYS(DBOF)
  BIND QUERY EXPLAININPUTSCHEMA('A540769')
}¢--- A540769.WK.SQL(OPTHISEL) cre=2014-10-14 mod=2014-10-14-09.05.51 A540769 ---
  select *
    from oa1p.tQZ081OptHintPlan p
    where explain_time = '2014-08-06-16.23.48.000000'
;x;
with p as
(
  select explain_time, count(*) cPlan
    from oa1p.tQZ081OptHintPlan p
    group by explain_time
)
, j as
( select value(q.explain_time, p.explain_time) explain
       , case when q.explain_time is null then 0 else 1 end cQuery
       , case when p.explain_time is null then 0 else cPlan end cPlan
       , q.desc
    from oa1p.tQZ080OptHintQuery q
      full outer join p
        on q.explain_time = p.explain_time
)
select min(explain) explain_min
       , microSecond(max(explain)) max
       , sum(cQuery) cQuery
       , sum(cPlan) cPlan
       , desc
       , max(explain) explain_max
    from j
    group by trunc_timestamp(explain, 'ss'), desc
    order by 1 desc, desc
;
select e from q
    order by 1 desc
;x;
    group by trunc_timestamp(explain_time, 'sec'), desc
)
, p as
( select explain_time, count(*) cPlan
    from oa1p.tQZ081OptHintPlan
    group by explain_time
)
select value(p.explain_time, q.explain_time), cPlan
        , cQuery, desc, descTo
    from q full outer join p
      on p.explain_time = q.explain_time
    order by 1 desc
;
with q as
( select min(explain_time) explain_min
       , max(explain_time) explain_max
       , count(*) cQuery
       , desc
    from oa1p.tQZ080OptHintQuery
    group by trunc_timestamp(explain_time, 'sec'), desc
)
with q as
( select explain_time, count(*) cQuery, min(desc) desc, max(desc) descTo
    from oa1p.tQZ080OptHintQuery
    group by explain_time
)
, p as
( select explain_time, count(*) cPlan
    from oa1p.tQZ081OptHintPlan
    group by explain_time
)
select value(p.explain_time, q.explain_time), cPlan
        , cQuery, desc, descTo
    from q full outer join p
      on p.explain_time = q.explain_time
    order by 1 desc
;
select *
    from oa1p.tQZ080OptHintQuery
    order by explain_time desc
;
commit
;x;
select *
    from oa1p.tQZ081OptHintPlan
    order by explain_time desc
;
commit
;x;
update oa1p.tQZ081OptHintPlan set explain_time = bind_time
    where explain_time is null
        or explain_time < '1111-11-11-11.11.11'
;
delete from oa1p.tQZ080OptHintQuery
    where explain_time in ('2014-08-08-15.44.50.000000'
                          ,'2014-08-06-16.23.11.000000')
;
delete from oa1p.tQZ081OptHintPlan
    where explain_time in ('2014-08-08-15.44.50.000000'
                          ,'2014-08-06-16.23.11.000000')
;
rollback
;x;
update OA1P.TQZ080OptHintQuery set query_text = ''
;
xelete from OA1P.TQZ080OptHintQuery
   where  explain_time = '2014-08-06-16.23.48.000000'
;
xelete from OA1P.TQZ081OptHintPlan
   where  explain_time = '2014-08-08-19.27.49.000000'
;
xpdate OA1P.TQZ080OptHintQuery
     set  explain_time = '2014-08-06-16.23.48.000000'
   where  explain_time = '2014-08-08-19.27.49.000000'
;
}¢--- A540769.WK.SQL(OPTHISFQ) cre=2014-07-14 mod=2014-07-14-17.06.18 A540769 ---
//A540769W JOB (CP00,KE50),'DB2 bind',                                  00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2                          00030000
//*MAIN CLASS=LOG                                                       00040000
//P04     EXEC PGM=IKJEFT01
//SYSTSPRT  DD SYSOUT=*
//SYSPRINT  DD SYSOUT=*
//SYSTSIN   DD *
 DSN SYS(DBOF)
  free QUERY queryid(4)
}¢--- A540769.WK.SQL(OPTHISIO) cre=2014-07-09 mod=2014-09-16-19.13.21 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.dsn_userquery_table;
insert into A540769.plan_table
  select *
      from cmnbatch.plan_table
   -- from cmnbatch.plan_view2Det
      where     collid     = 'BP'
          and progName     = 'YBPSUCH'
          and explain_time = '2014-04-20-03.58.20.271427'
          and queryno = 713
  ;
-- insert opthint text and options
INSERT INTO DSN_USERQUERY_TABLE
    ( QUERYNO, SCHEMA, HINT_SCOPE,
      QUERY_TEXT,
      REOPT
    )
    SELECT 713, p.qualifier, 0, -- 0=system, 1=package
        s.STATEMENT,
        'Y'
    from sysibm.sysPackStmt s
      join sysibm.sysPackage p
        on s.location = p.location and s.collid = p.collid
          and s.name = p.name
          and s.version = p.version and s.contoken = p.contoken
    where s.location  ='' and s.collid = 'BP' and s.name = 'YBPSUCH'
          and s.version = 'BPST000070594A877D'
          and s.queryno = 713
;
commit
;
select * from plan_view1;
select * from dsn_userquery_table;
;x
;x;
select * from sysibm.sysQuery
;
select p.qualifier, s.statement
    from sysibm.sysPackStmt s
      join sysibm.sysPackage p
        on s.location = p.location and s.collid = p.collid
          and s.name = p.name
          and s.version = p.version and s.contoken = p.contoken
    where s.location  ='' and s.collid = 'BP' and s.name = 'YBPSUCH'
          and s.version = 'BPST000070594A877D'
          and s.queryno = 713
;
-- -dsn BIND QUERY EXPLAININPUTSCHEMA( A540769 )
;x;
-- insert opthint text and options
}¢--- A540769.WK.SQL(OPTHISIP) cre=2014-07-09 mod=2014-07-16-07.46.43 A540769 ---
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
delete from A540769.dsn_userquery_table;
INSERT INTO DSN_USERQUERY_TABLE
    ( QUERYNO, SCHEMA, HINT_SCOPE
    , QUERY_TEXT
    )
    SELECT 70, p.qualifier, 0, -- 0=system, 1=package
        s.STATEMENT
    from sysibm.sysPackStmt s
      join sysibm.sysPackage p
        on s.location = p.location and s.collid = p.collid
          and s.name = p.name
          and s.version = p.version and s.contoken = p.contoken
    where s.location  ='' and s.collid = 'BP' and s.name = 'YBPSUCH'
          and s.version = 'BPST000070594A877D'
          and s.queryno = 713
;
explain plan set queryno = 70  for
SELECT A.BP20401, A.BP20404, A.BP20410, A.BP20411, B.BP20004,
B.BP20017, B.BP20013, B.BP20022, C.BP20501, C.BP20504, C.BP20509,
C.BP20510, C.BP20512
FROM oa1p.TBP204A1 A, oa1p.TBP200A1 B, oa1p.TBP205A1
C WHERE A.BP20401 = ? AND A.BP20402 <= ? AND A.BP20403
>= ? AND A.BP20405 = ? AND A.BP20409 = 'A' AND
B.BP20001 = A.BP20411 AND B.BP20002 <= ? AND B.BP20005 =
? AND B.BP20003 >= ? AND C.BP20501 = A.BP20411 AND
C.BP20502 <= ? AND C.BP20503 >= ?
AND C.BP20505 = '9999-12-31-23.59.59.999999'
  AND ( ( C.BP20508 = 1 AND C.BP20513 <> 'LAE ' ) OR (
C.BP20508 = 3 AND C.BP20513 = 'LAE ' ) )
;
commit
;
select * from  plan_view1
    order by -- collid, progName, version, bind_time,
             queryNo, qblockno, planno, mixOpSeq
}¢--- A540769.WK.SQL(OPTHISRB) cre=2014-07-09 mod=2014-07-09-17.54.23 A540769 ---
//A540769W JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M                                     00030000
//*MAIN CLASS=LOG                                                       00040000
//P04     EXEC PGM=IKJEFT01
//SYSTSPRT  DD SYSOUT=*
//SYSPRINT  DD SYSOUT=*
//SYSTSIN   DD *
DSN SYS(DBOF)
REBIND PACKAGE ( A540769.YBPSUCH.(BPST000070594A877D) )
END
}¢--- A540769.WK.SQL(PALLY) cre=2011-06-23 mod=2011-06-23-14.34.42 A540769 -----
SELECT
        row_number() over (),
        name
    FROM Sysibm.sysColumns
    fetch first 100 rows only
}¢--- A540769.WK.SQL(PART) cre= mod= -------------------------------------------
select     char(t.name,20) ,
           t.creator,                                char(' '),
           t.dbname,                                 char(' '),
           t.tsname,                                 char(' '),
           char(coalesce(char(p.partition), '<<null>>') || ' '),
           char(coalesce(char(int(p.limitKey)), '<<null>>'))
  from sysibm.systables t
    left join sysibm.systablepart p
      on t.tsname = p.tsname and t.dbname = p.dbname
  where t.name = 'TID150A1' and t.creator = 'OA1P'
  order by p.partition
;
select     char(tid150md),                           char(' '),
           char(coalesce(sum(cnt), 0)),              char(' '),
           char(count(distinct tid150tst)) ,         char(' '),
           char(coalesce(char(min(tid150tst)), '--') || ' '),
           char(coalesce(char(max(tid150tst)), '--'))
  from
    ( select tid150tst, tid150md, count(*) cnt
          from OA1P.tid150a1
          group by tid150md, tid150tst
    ) g
  group by tid150md
  order by tid150md
;
}¢--- A540769.WK.SQL(PARTJOIN) cre= mod= ---------------------------------------
select     char(c.name,20) ,
           c.creator,                                char(' '),
           c.dbname,                                 char(' '),
           c.tsname,                                 char(' '),
           char(c.p_part) ,                          char(' '),
           char(c.p_limit) ,                         char(' '),
           char(coalesce(sum(cnt), 0)) tst_all,      char(' '),
           char(coalesce(sum(tstDis), 0)) tst_dist,  char(' '),
           char(coalesce(
             char(min(tid150md)) || ' '||
             char(max(tid150md)) || ' ' ||
             char(min(tstMin)) || ' ' ||
             char(max(tstMax)) || ' '
             , '<<null>>'))
  from
    ( select
         t.name, t.creator, t.dbname, t.tsname,
         p.partition p_part, int(p.limitkey) p_limit,
         q.partition q_part, int(q.limitkey) q_limnu,
         case when q.limitkey is null then -9999 else int(q.limitkey
              end q_limit
      from sysibm.systables t
        join sysibm.systablepart p
          on t.tsname = p.tsname and t.dbname = p.dbname
        left join sysibm.systablepart q
          on p.tsname = q.tsname and p.dbname = q.dbname
             and p.partition - 1 = q.partition
      where t.name = 'TID150A1' and t.creator = 'OA1P' ) c
    left join
        ( select tid150md, count(*) cnt,
              count(distinct tid150tst) tstDis,
              min(tid150tst) tstMin,  max(tid150tst) tstMax
            from OA1P.tid150a1
            group by tid150md
        ) d
      on d.tid150md <= c.p_limit and d.tid150md > c.q_limit
  group by c.p_limit, c.q_limit, c.p_part, c.q_part,
           c.name, c.creator, c.dbname, c.tsname
  order by c.p_limit, c.q_limit
           ;
}¢--- A540769.WK.SQL(PARTKEY) cre=2007-03-15 mod=2007-03-16-16.10.26 F540769 ---
with nn as
( select partition prt, char(left(limitkey, 10), 10) key
      from sysibm.systablepart n
      where n.dbname = 'NZ06A1P' and n.tsName = 'A265A'
), oo as
( select partition prt, char(left(limitkey, 10), 10) key
      from sysibm.systablepart n
      where n.dbname = 'NZ06A1P' and n.tsName = 'A260A'
)
select n.prt "new", min(o.prt) "oldMin", max(o.prt) "oldMax",
        m.key "newKeyBef", n.key "newKey",
        min(p.key) "oldBefMin", max(o.key) "oldKeyMax"
    from nn n
      left join nn m on n.prt - 1 = m.prt
      left join
        ( oo o left join oo p on o.prt-1 = p.prt)
        on m.key <= o.key and n.key > p.key
    group by n.prt, n.key, m.key
 -- group by "newKey", n.key, m.key
    order by n.prt -- , o.prt
;
x
select 'new' , count(*), char(min(tsname), 8), char(max(tsName), 8),
    partition, limitkey
    from sysibm.systablepart
    where dbname = 'NZ06A1P'
        -- and tsName >= 'A260A' and tsName <= 'A264A'
        and tsName in ('A241A', 'A241A', 'A243A', 'A244A',
                       'A259A', 'A265A', 'A266A')
        group by partition, limitKey
union
select 'old' , count(*), char(min(tsname), 8), char(max(tsName), 8),
    partition, limitkey
    from sysibm.systablepart
    where dbname = 'NZ06A1P'
        and tsName >= 'A260A' and tsName <= 'A264A'
        -- and tsName in ('A241A', 'A241A', 'A243A', 'A244A',
        --               'A259A', 'A265A', 'A266A')
        group by partition, limitKey
        order by 6 asc, 5 asc
;
}¢--- A540769.WK.SQL(PATST1) cre=2006-11-28 mod=2006-11-28-13.04.08 F540769 ----
sql=
select 'before', current timestamp from sysibm.sysdummy1
;
sql=
with c1 as
  ( select trunc_Timestamp(current_timestamp - 1 month, 'MON') von,
           trunc_Timestamp(current_timestamp          , 'MON') bis
    from sysibm.sysdummy1
  ) ,
 c  as
 (
    select c1.*, days(bis) - days(von) noDays,
        (days(bis)-days(von))*24*3600 secs
    from c1
  ) ,
e as
  ( select t.*,
        occurrences  * real(class2_cpu) / secs cpu,
        case
            when lower(plan_name) =  'asnapply'       then 'gAsnApply'
            when plan_name <> upper(plan_name)        then 'aSer'
            when left(plan_name, 3) = 'ACT'           then 'aBMC'
            when left(plan_name, 3) = 'ADM'           then 'aBMC'
            when left(plan_name, 3) = 'AEX'           then 'aBMC'
            when left(plan_name, 3) = 'ASU'           then 'aBMC'
            when left(plan_name, 3) = 'CM7'           then 'aBMC'
            when left(plan_name, 3) = 'ADB'           then 'aDBA'
            when left(plan_name, 3) = 'AFR'           then '|AFR'
            when left(plan_name, 3) = 'ALA'           then '|ALA'
            when left(plan_name, 3) = 'CBR'           then 'aCBri'
            when left(plan_name, 3) = 'CNT'           then '|CNT'
            when left(plan_name, 3) = 'CSQ'           then 'aMQ'
            when left(plan_name, 3) = 'DB2'           then 'aDBA'
            when plan_name          = 'DISTSERV'      then 'gDistServ'
            when plan_name          = 'DSNUTIL'       then 'aUtil'
            when left(plan_name, 3) = 'DSN'           then 'aDSN'
            when left(plan_name, 2) = 'DS'            then '|DS'
            when left(plan_name, 3) = 'FPE'           then 'aDBA'
            when left(plan_name, 3) = 'FRN'           then '|FRN'
            when plan_name          = 'FILEAID'       then 'aFileAid'
            when left(plan_name, 3) = 'HPS'           then 'aHPS'
            when left(plan_name, 3) = 'ISL'           then '|ISL'
            when left(plan_name, 3) = 'JSK'           then '|JSK'
            when left(plan_name, 3) = 'MB1'           then 'aSer'
            when left(plan_name, 3) = 'MB2'           then 'aSer'
            when left(plan_name, 3) = 'MQ1'           then 'aMQ'
            when left(plan_name, 3) = 'MSA'           then 'aSer'
            when left(plan_name, 3) = 'M24'           then '|M24'
            when left(plan_name, 3) = 'NTA'           then 'aCics'
            when left(plan_name, 3) = 'QMF'           then 'aQMF'
            when left(plan_name, 3) = 'SAS'           then 'aSAS'
            when left(plan_name, 3) = 'SMU'           then '|SMU'
            when left(plan_name, 3) = 'SPD'           then '|SPD'
            when left(plan_name, 3) = 'STR'           then '|STR'
            when left(plan_name, 2) = 'S6'            then '|S6'
            when left(plan_name, 3) = 'XIN'           then 'aXX'
            when connect_type = 'UTILITY'             then 'aUtil'
            when plan_name    = ''                    then '|Leer'
            else                              'g' || left(plan_name, 2)
        end gp
      from DB2PMPDB.TACCT_EXTRACT t, c
      where interval_time >= von and interval_time < bis
  )
select  gp    , left(subsystem_id, 3),
        sum(cpu), count(*), sum(occurrences)
    from e
    group by gp   , left(subsystem_id, 3)
    order by 3 desc
    with ur
;
sql=
select 'before', current timestamp from sysibm.sysdummy1
;
x
select gp, left(subsystem_id, 3), plan_name,  connect_type,
        sum(cpu), count(*), sum(occurrences)
    from e
    group by gp, left(subsystem_id, 3), plan_name, connect_type
    order by 1, 2, 3, 4
    with ur
;
}¢--- A540769.WK.SQL(PC010) cre=2010-02-11 mod=2010-02-11-10.26.52 A540769 -----
select *
    from OA1T02.VPC016A1A
    where TIS_UWI         = x'00025D0ABF54853D0CC26B90D4FA2084F2F50001'
 -- where TIS_UWI         = x'000CE34CBF48EBE34A02C0B30FDE2084F2F10001'
 ;      and INSTR_LEVEL   = '2'
 ; --      TL1_ASSET_CAT
          TL2_REGION
          SL1_AIS_ASSET_CAT
          SL2_CUR
                 = x'00025D0A BF54853D 0CC26B90 D4FA2084 F2F50001'
}¢--- A540769.WK.SQL(PDBCORR) cre=2009-06-25 mod=2009-06-30-15.05.15 A540769 ---
SELECT timestamp,
       subsystem_id,
       connect_type,
       connect_id,
       corrName,
       plan_name,
       occurrences,
       COMMIT,
       ROLLBACK ,
       PROGRAMS ,
       SELECT   ,
       INSERT   ,
       UPDATE   ,
       DELETE   ,
       OPEN     ,
       FETCH
    FROM RZ2DD.TACCT_GENERAL
    WHERE TIMESTAMP >= current timestamp -  2 month
 --   AND TIMESTAMP <= '2099-07-02-00.00.00.000000'
    AND (upper(plan_Name) like 'DB2B%'
         or upper(corrName) like 'DB2B%'
        )
    ORDER BY                   TIMESTAMP DESC
;
}¢--- A540769.WK.SQL(PDBDEAD) cre=2010-04-27 mod=2010-04-27-12.06.24 A540769 ---
            -- count locks by resource from pdb
            --             ==> dp2g.tadm60a1
with n as
(
select case when posStr(substr(name, 10), '.') < 1 then name
            else left(name,  9+posStr(substr(name, 10), '.')) end nm
       , s.*
    from oa1p.tadm60a1 s
)
select count(*), type, nm, min(reason_code), max(reason_code)
    from n
    where ssid like 'DOF%' -- and timestamp > '2010-04-20-00.00.00'
             and name like '%WI02%'
    group by nm, type
    order by 1 desc
    fetch first 100 rows only
    with ur
; x;
select *
    from oa1a.tadm60a1
    where timestamp > current timestamp - 14 day
        and name like 'VV21A1T .VDPS026%'
    order by timestamp desc
;x;
select *
    from oa1p.tadm60a1
    where ssid like 'DOF%' -- and timestamp > '2010-04-20-00.00.00'
             and name like '%WI02%'
    order by 1 desc
    fetch first 100 rows only
    with ur
; x;
select trunc_timestamp(timestamp, 'DD') , count(*) dbof,
    sum(case when name like '%WI02%' then 1 else 0 end) wi02,
    sum(case when name like '%WI02%'
         and name like '%A112%' then 1 else 0 end) wi02a112
    from oa1p.tadm60a1
    where ssid like 'DOF%' and timestamp > '2010-01-01-00.00.00'
    group by trunc_timestamp(timestamp, 'DD')
    order by 1 desc
    fetch first 100 rows only
    with ur
;
x
select EN1PART, count(*), min(EB1POSTENNUMMER), max(EB1POSTENNUMMER)
    from bua.XBDRW001PS001001
    group by EN1PART
    with ur
;
x
set current sqlid = 'S100447';
alter table bua.txbe011
    volatile
;
commit;
x
select jobName, timestamp(max(runtime)) - timestamp(min(runtime))
    -- runtime
                  from oa1p.tadm11a1 s
     where         runtime >= '2009-11-15-00.00.00'
              and  runtime <  '2009-11-17-00.00.00'
              and  utility_type = 'W'
              and jobName = 'QR38702P'
     group by jobName
     order by 2       desc
;
x
select jobName, runtime, s.* from oa1p.tadm11a1 s
     where jobName like 'QR4980%'
     order by runtime desc
;
x
select changeid, name, status from s100447.adbChg
where changeid = 0002342
;
 x
select count(*), sum(bigint(length(ea1inhalt)))
    from BUA.XBCQ4009IT002001 ;
    x
select 'x' || char(bigInt(123)) || 'y'
     from sysibm.sysdummy1
;
x
------------------------------------------------------------------------
--                                                                    --
-- Database 2 Administration Tool (DB2 Admin) , program 5697-L90      --
--                                                                    --
-- ADB2GEN  -  Extract object definitions from the DB2 Catalog tables --
--                                                                    --
-- Input prepared on : DBOF (915)     Extract time : 2009-09-11 11:18 --
--                                                                    --
-- Catalog values overridden : none
--                                                                    --
-- Generate : SG=N DB=Y TS=Y TB=Y VW=Y IX=Y SY=Y AL=Y LB=Y CM=Y FK=Y  --
--            TG=Y UT=N UF=N SP=N SQ=N RO=N                           --
-- Grants   : SG=N DB=Y TS=N TB=N VW=N SC=N UT=N UF=N SP=N SQ=N       --
--                                                                    --
------------------------------------------------------------------------
------------------------------------------------------------------------
--                                                                    --
-- ADB2GEN: Generate DDL for Tablespace=A835A In Database KS09A1P     --
--                                                                    --
------------------------------------------------------------------------
--
------------------------------------------------------------------------
-- Database=KS09A1P   Stogroup=GSMS
-- Tablespace=KS09A1P.A835A
------------------------------------------------------------------------
--
  SET CURRENT SQLID='S100447 ';
--
  CREATE TABLESPACE A835A
    IN KS09A1P
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 4 PCTFREE 50
    GBPCACHE CHANGED
    TRACKMOD YES
    LOGGED
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      EBCDIC
    DEFINE YES
    MAXROWS 255;
--
  COMMIT;
--
------------------------------------------------------------------------
--    Table=OA1P    .TKS835A1 In KS09A1P.A835A
------------------------------------------------------------------------
--
  SET CURRENT SQLID='OA1P    ';
--
  CREATE TABLE OA1P.TKS835A1
     (KS835010             CHAR(20) FOR SBCS DATA NOT NULL,
      KS835020             CHAR(20) FOR SBCS DATA NOT NULL,
      KS835030             CHAR(20) FOR SBCS DATA NOT NULL,
      KS835040             INTEGER NOT NULL,
      KS835050             CHAR(20) FOR SBCS DATA NOT NULL,
      KS835060             CHAR(4) FOR SBCS DATA NOT NULL,
      KS835070             CHAR(20) FOR SBCS DATA NOT NULL,
      KS835080             CHAR(20) FOR SBCS DATA NOT NULL,
      KS835090             CHAR(140) FOR SBCS DATA NOT NULL,
      KS835100             CHAR(2) FOR SBCS DATA NOT NULL,
      KS835110             DATE NOT NULL,
      KS835120             DATE NOT NULL,
      KS835130             DATE NOT NULL,
      KS835140             DATE NOT NULL,
      KS835150             TIMESTAMP NOT NULL,
      KS835160             CHAR(10) FOR SBCS DATA NOT NULL,
      KS835170             TIMESTAMP NOT NULL,
      PRIMARY KEY (KS835010,
                   KS835030,
                   KS835040,
                   KS835020,
                   KS835050,
                   KS835060))
    IN KS09A1P.A835A
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      EBCDIC
    NOT VOLATILE
    APPEND NO  ;
--
  LABEL ON TABLE OA1P.TKS835A1 IS 'SERVICE';
--
  LABEL ON OA1P.TKS835A1
   (KS835170 IS 'CONTROL_TIME',
    KS835160 IS 'LAST_UPDATE_ID',
    KS835150 IS 'LAST_UPDATE_TIME',
    KS835140 IS 'VALID_TO_DATE',
    KS835130 IS 'VALID_FROM_DATE',
    KS835120 IS 'LOCK_TO_DATE',
    KS835110 IS 'LOCK_FROM_DATE',
    KS835100 IS 'STATE',
    KS835090 IS 'COMMENT',
    KS835080 IS 'PRODUCT_ID',
    KS835070 IS 'ARRANG_PARTNER_KEY',
    KS835060 IS 'ARRANGEMENT_TYPE',
    KS835050 IS 'ARRANGEMENT_ID',
    KS835040 IS 'PARTNER_TYPE',
    KS835030 IS 'PARTNER_KEY',
    KS835020 IS 'SERVICE_KEY',
    KS835010 IS 'CONTRACT_KEY');
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A0 On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE UNIQUE INDEX OA1P.IKS835A0
    ON OA1P.TKS835A1
     (KS835010              ASC,
      KS835030              ASC,
      KS835040              ASC,
      KS835020              ASC,
      KS835050              ASC,
      KS835060              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 50
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER NO
    DEFINE YES;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A1 On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IKS835A1
    ON OA1P.TKS835A1
     (KS835080              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 30
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER NO
    DEFINE YES;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A10 On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IKS835A10
    ON OA1P.TKS835A1
     (KS835030              ASC,
      KS835040              ASC,
      KS835010              ASC,
      KS835080              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A3 On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IKS835A3
    ON OA1P.TKS835A1
     (KS835050              ASC,
      KS835060              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 40
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER NO
    DEFINE YES;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A4 On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IKS835A4
    ON OA1P.TKS835A1
     (KS835020              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 30
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER NO
    DEFINE YES;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A5 On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IKS835A5
    ON OA1P.TKS835A1
     (KS835030              ASC,
      KS835040              ASC,
      KS835060              ASC,
      KS835050              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 40
    GBPCACHE CHANGED
    CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFER NO
    DEFINE YES;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A6 On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IKS835A6
    ON OA1P.TKS835A1
     (KS835050              DESC,
      KS835060              DESC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 30
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER NO
    DEFINE YES;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A7 On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IKS835A7
    ON OA1P.TKS835A1
     (KS835130              DESC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 30
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER NO
    DEFINE YES;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A8 On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IKS835A8
    ON OA1P.TKS835A1
     (KS835010              ASC,
      KS835080              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 30
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER NO
    DEFINE YES;
--
  COMMIT;
--
------------------------------------------------------------------------
-- Database=KS09A1P
--    Index=OA1P    .IKS835A9TEMP On OA1P    .TKS835A1
------------------------------------------------------------------------
--
  CREATE INDEX OA1P.IKS835A9TEMP
    ON OA1P.TKS835A1
     (KS835070              ASC)
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 8 PCTFREE 30
    GBPCACHE CHANGED
    NOT CLUSTER
    COMPRESS NO
    BUFFERPOOL BP1
    CLOSE NO
    COPY NO
    DEFER NO
    DEFINE YES
    PIECESIZE 2 G;
--
  COMMIT;
--
------------------------------------------------------------------------
--    View=OA1P    .VKS835A1V
------------------------------------------------------------------------
--
--
  CREATE VIEW OA1P.VKS835A1V(CONTRACT_KEY, SERVICE_KEY, PARTNER_KEY,
      PARTNER_TYPE, ARRANGEMENT_ID, ARRANGEMENT_TYPE,
      ARRANG_PARTNER_KEY, PRODUCT_ID, COMMENT, STATE, LOCK_FROM_DATE,
      LOCK_TO_DATE, VALID_FROM_DATE, VALID_TO_DATE, LAST_UPDATE_TIME,
      LAST_UPDATE_ID, CONTROL_TIME) AS
    SELECT ALL KS835010, KS835020, KS835030, KS835040, KS835050,
           KS835060, KS835070, KS835080, KS835090, KS835100, KS835110,
           KS835120, KS835130, KS835140, KS835150, KS835160, KS835170
      FROM OA1P.TKS835A1 ;
--
  COMMIT;
--
------------------------------------------------------------------------
-- ADB2GEN - End of generated DDL                                     --
------------------------------------------------------------------------
--
}¢--- A540769.WK.SQL(PDBEOT) cre=2010-08-05 mod=2010-08-06-08.13.55 A540769 ----
    -- abnormal eot pro Monat
SELECT substr(char(trunc_timestamp(timestamp, 'MM')), 1, 10),
--  smallint(max(dayofMonth(timestamp))-min(dayOfMonth(timestamp)) +1)
--        "ma-mi+1",
    smallint(count(distinct date(timestamp))) "#days",
    count(*) "all",
    sum(case when corrid_id like '%WB0670 %' then 1 else 0 end) wb0670,
    sum(case when corrid_id like '%WB0930 %' then 1 else 0 end) wb0930,
    sum(case when corrid_id like '%WC0211 %' then 1 else 0 end) wc0211,
    sum(case when corrid_id like '%WC0214 %' then 1 else 0 end) wc0214
FROM OA1P.TADM65A1
WHERE -- TIMESTAMP > '2010-07-15-00.00.00' and
     event_type = 'A' and ssid like 'DOF%'
group by trunc_timestamp(timestamp, 'MM')
order by 1 desc
with ur
;;
    -- abnormal eot pro Tag
SELECT substr(char(trunc_timestamp(timestamp, 'DD')), 1, 10),
    smallint(max(dayofMonth(timestamp))-min(dayOfMonth(timestamp)) +1)
          "ma-mi+1",
    smallint(count(distinct date(timestamp))) "#days",
    sum(case when corrid_id like '%WB0670 %' then 1 else 0 end) wb0670,
    sum(case when corrid_id like '%WB0930 %' then 1 else 0 end) wb0930,
    sum(case when corrid_id like '%WC0211 %' then 1 else 0 end) wc0211,
    sum(case when corrid_id like '%WC0214 %' then 1 else 0 end) wc0214
FROM OA1P.TADM65A1
WHERE TIMESTAMP > '2010-06-01-00.00.00' and
      event_type = 'A' and ssid like 'DOF%'
group by trunc_timestamp(timestamp, 'DD')
order by 1 desc
with ur
;;
AND SSID LIKE 'DOF%'
AND name like '%WKDBDOF%'
ORDER BY TIMESTAMP DESC
;;
SELECT *
FROM OA1P.TADM60A1
WHERE DATE(TIMESTAMP) between '01.07.2010'
AND '05.08.2010'
AND SSID LIKE 'DOF%'
AND VICTIM_PLAN LIKE 'WB0670%%'
ORDER BY TIMESTAMP DESC
}¢--- A540769.WK.SQL(PDBG#XC) cre=2013-01-14 mod=2013-01-14-08.35.19 A540769 ---
select corrName, timestamp, class1_elapsed,
                 timestamp + class1_elapsed seconds "dT+ela",
                 timestamp - class1_elapsed seconds "dT-ela",
                 g.*
    from rz2xx.tACCT_GENERAL g
    where timestamp between '2013-01-03-23.00.00.000000'
                      and  '2013-01-04-01.00.00.000000'
        and corrName = 'NZT1900P'
;;;;
select *
    from rz2xx.tacct_general
    where timestamp between '2013-01-03-00.00.00'
                        and '2013-01-05-00.00.00'
        and plan_name = 'MB5020'
        order by class1_elapsed desc
        fetch first 100 rows only
}¢--- A540769.WK.SQL(PDBG#X2X) cre=2013-01-14 mod=2013-01-14-12.33.46 A540769 ---
select  'rz1' ,
        plan_name planName, timestamp,
        timestamp - class1_elapsed seconds ,
        class1_elapsed ,
        class1_cpu_total ,
        class2_elapsed ,
        class2_cpu_total ,
        subsystem_id ,
        corrName ,
        g.*
    from RZ2mm.TACCT_GENERAL g
    where 1=1
      and subsystem_id like 'DOF%'
      and timestamp >       '2012-10-01-00.00.00'
      and plan_name = 'PW5230'
    order by 3
;;;;

set current path oa1p;
select  plan_name planName
      , fosFmte7(sum(OCCURRENCES)) occ
      , fosFmte7(sum(commit)) commit
      , fosFmte7(sum(class1_elapsed))   c1Ela
      , fosFmte7(sum(class1_cpu_total)) c1cpu
      , fosFmte7(sum(class1_su_cpu   )) c1su
      , fosFmte7(sum(class2_elapsed))   c2Ela
      , fosFmte7(sum(class2_cpu_total)) c2cpu
      , fosFmte7(sum(class2_su_cpu   )) c2su
      , min(subsystem_id), max(subsystem_id)
      , min(group_name), max(group_name)
 --   , CONNECT_TYPE
 --   , CONNECT_ID
 --   , CORRNAME
      , min(TIMESTAMP)
      , max(TIMESTAMP)
    from RZ2mm.TACCT_GENERAL g
    where 1=1
      and subsystem_id like 'DOF%'
      and timestamp between '2013-01-04-00.00.00'
                        and '2013-01-06-23.59.59'
      and timestamp - class1_elapsed seconds
                    between '2013-01-04-00.00.00'
                        and '2013-01-04-23.59.59'
    group by -- date(timestamp)
        plan_name
  --  , subsystem_id
  --  , group_name
 --   , CONNECT_TYPE
 --   , CONNECT_ID
  --  , CORRNAME
    order by sum(class2_cpu_total) desc
     fetch first 500 rows only
;;;
select  *
    from RZ2xx.TACCT_GENERAL g
      where   plan_name like 'java%'
      and subsystem_id like 'DOF%'
      and timestamp between '2013-01-04-09.05.00'
                        and '2013-01-04-09.07.00'
      order by class2_cpu_total  desc
    fetch first 1000 rows only
;x;
set current path oa1p;
select  plan_name planName
      , fosFmte7(sum(OCCURRENCES)) occ
      , fosFmte7(sum(commit)) commit
      , fosFmte7(sum(class1_elapsed))   c1Ela
      , fosFmte7(sum(class1_cpu_total)) c1cpu
      , fosFmte7(sum(class1_su_cpu   )) c1su
      , fosFmte7(sum(class2_elapsed))   c2Ela
      , fosFmte7(sum(class2_cpu_total)) c2cpu
      , fosFmte7(sum(class2_su_cpu   )) c2su
      , min(subsystem_id), max(subsystem_id)
      , min(group_name), max(group_name)
 --   , CONNECT_TYPE
 --   , CONNECT_ID
 --   , CORRNAME
      , min(TIMESTAMP)
      , max(TIMESTAMP)
    from RZ2dd.TACCT_GENERAL g
    where 1=1
    --and plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2013-01-04-00.00.00'
                        and '2013-01-04-23.59.59'
    group by date(timestamp)
      , plan_name
  --  , subsystem_id
  --  , group_name
 --   , CONNECT_TYPE
 --   , CONNECT_ID
  --  , CORRNAME
    order by sum(class2_cpu_total) desc
     fetch first 100 rows only
;;;
?????????????????????????????
 set current path oa1p;
 select  planname
       , fosFmte7(sum(OCCURRENCES)) occ
       , fosFmte7(sum(p2Commits)) commit
       , fosFmte7(sum(ELAPSETOD     ))   c1Ela
       , fosFmte7(sum(ELAPSETCB + ELAPSESRB )) c1cpu
       , fosFmte7(sum((ELAPSETCB + ELAPSESRB)
                 *occurrences*16000000/CPUSUCONV))c1su
       , fosFmte7(sum(EDB2TOD       ))   c2Ela
       , fosFmte7(sum(EDB2TCB + EDB2SRB      )) c2cpu
       , fosFmte7(sum((EDB2TCB + EDB2SRB)
                 *occurrences * 16000000/CPUSUCONV)) c2su
   --  , min(cpusuconv), avg(cpusuconv), max(cpusuconv)
       , min(subsystem_id), max(subsystem_id)
       , min(groupname), max(groupname)
   --  , CONNTYPE
   --  , CONNECTION
   --  , CORRNAME
       , min(datetime)
       , max(datetime)
     from Pbdd.TACCT_GENERAL g
     where 1=1
    -- and planname in ('ER0044')
       and subsystem like 'DOF%'
       and datetime between '2013-01-04-00.00.00'
                        and '2013-01-04-23.59.59'
     group by date(datetime)
       , planname
    -- , subsystem
       , groupname
     --, CONNTYPE
     --, CONNECTion
     --, CORRNAME
       , PLANNAME
 --  order by subsystem
     order by sum(EDB2TCB + EDB2SRB      )  desc
     fetch first 100 rows only
 ;;;
?????????????????????????????
with s as(
  select date(timestamp) dt, hour(timestamp) hh, int(sum(commit))commit
    from RZ2hh.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-12-01-00.00.00'
                        and '2012-12-31-00.00.00'
    group by timestamp
)
, d as (
  select dt from s group by dt
)
select d.dt,
       right('    ' || value(strip(char(s00.commit)), ''), 4)
    || right('    ' || value(strip(char(s01.commit)), ''), 4)
    || right('    ' || value(strip(char(s02.commit)), ''), 4)
    || right('    ' || value(strip(char(s03.commit)), ''), 4)
    || right('    ' || value(strip(char(s04.commit)), ''), 4)
    || right('    ' || value(strip(char(s05.commit)), ''), 4)
    || right('    ' || value(strip(char(s06.commit)), ''), 4)
    || right('    ' || value(strip(char(s07.commit)), ''), 4)
    || right('    ' || value(strip(char(s08.commit)), ''), 4)
    || right('    ' || value(strip(char(s09.commit)), ''), 4)
    || right('    ' || value(strip(char(s10.commit)), ''), 4)
    || right('    ' || value(strip(char(s11.commit)), ''), 4)
    || right('    ' || value(strip(char(s12.commit)), ''), 4)
    || right('    ' || value(strip(char(s13.commit)), ''), 4)
    || right('    ' || value(strip(char(s14.commit)), ''), 4)
    || right('    ' || value(strip(char(s15.commit)), ''), 4)
    || right('    ' || value(strip(char(s16.commit)), ''), 4)
    || right('    ' || value(strip(char(s17.commit)), ''), 4)
    || right('    ' || value(strip(char(s18.commit)), ''), 4)
    || right('    ' || value(strip(char(s19.commit)), ''), 4)
    || right('    ' || value(strip(char(s20.commit)), ''), 4)
    || right('    ' || value(strip(char(s21.commit)), ''), 4)
    || right('    ' || value(strip(char(s22.commit)), ''), 4)
    || right('    ' || value(strip(char(s23.commit)), ''), 4)
      from d
      left join s s00  on s00.dt = d.dt and s00.hh = 00
      left join s s01  on s01.dt = d.dt and s01.hh = 01
      left join s s02  on s02.dt = d.dt and s02.hh = 02
      left join s s03  on s03.dt = d.dt and s03.hh = 03
      left join s s04  on s04.dt = d.dt and s04.hh = 04
      left join s s05  on s05.dt = d.dt and s05.hh = 05
      left join s s06  on s06.dt = d.dt and s06.hh = 06
      left join s s07  on s07.dt = d.dt and s07.hh = 07
      left join s s08  on s08.dt = d.dt and s08.hh = 08
      left join s s09  on s09.dt = d.dt and s09.hh = 09
      left join s s10  on s10.dt = d.dt and s10.hh = 10
      left join s s11  on s11.dt = d.dt and s11.hh = 11
      left join s s12  on s12.dt = d.dt and s12.hh = 12
      left join s s13  on s13.dt = d.dt and s13.hh = 13
      left join s s14  on s14.dt = d.dt and s14.hh = 14
      left join s s15  on s15.dt = d.dt and s15.hh = 15
      left join s s16  on s16.dt = d.dt and s16.hh = 16
      left join s s17  on s17.dt = d.dt and s17.hh = 17
      left join s s18  on s18.dt = d.dt and s18.hh = 18
      left join s s19  on s19.dt = d.dt and s19.hh = 19
      left join s s20  on s20.dt = d.dt and s20.hh = 20
      left join s s21  on s21.dt = d.dt and s21.hh = 21
      left join s s22  on s22.dt = d.dt and s22.hh = 22
      left join s s23  on s23.dt = d.dt and s23.hh = 23
    order by d.dt desc
;;;;
select plan_name, timestamp,
      fosFmte7(sum(class1_cpu_total)) "c1cpu",
      fosFmte7(sum(class2_cpu_total)) "c2cpu",
      fosFmte7(sum(sqls)                   ) "sqls",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
          fosFmte7(sum(real(select))) "select",
          fosFmte7(sum(real(open))) "open",
          fosFmte7(sum(real(fetch))) "fetch",
          fosFmte7(sum(real(insert))) "insert",
          fosFmte7(sum(real(update))) "update",
          fosFmte7(sum(real(delete))) "delete",
          fosFmte7(sum(real(PROGRAMS))) "pkgs"
    from s
--  group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
--  order by plan_name, min(class1_elapsed/max(sqls, 1))
    group by plan_name, timestamp
    order by plan_name, timestamp desc
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2hh.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-12-01-00.00.00'
                        and '2012-12-31-00.00.00'
)
select plan_name, timestamp,
      fosFmte7(sum(class1_cpu_total)) "c1cpu",
      fosFmte7(sum(class2_cpu_total)) "c2cpu",
      fosFmte7(sum(sqls)                   ) "sqls",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
          fosFmte7(sum(real(select))) "select",
          fosFmte7(sum(real(open))) "open",
          fosFmte7(sum(real(fetch))) "fetch",
          fosFmte7(sum(real(insert))) "insert",
          fosFmte7(sum(real(update))) "update",
          fosFmte7(sum(real(delete))) "delete",
          fosFmte7(sum(real(PROGRAMS))) "pkgs"
    from s
--  group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
--  order by plan_name, min(class1_elapsed/max(sqls, 1))
    group by plan_name, timestamp
    order by plan_name, timestamp desc
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2HH.TACCT_GENERAL g
    where plan_name in ('PW5200', 'PW5220')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-01-01-00.00.00'
                        and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
      plan_name,
      fosFmte7((class1_elapsed)/(cr)                 ) "c1ela/coR",
      fosFmte7((class2_elapsed)/(cr)                 ) "c2ela/coR",
      fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
      fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
      fosFmte7((CLASS3_ASYNCH_IXL)     /(cr)              ) "c3IXL/coR",
      int((occurrences))     "occ",
      int((commit))     "commit",
      int((rollback))     "rollBack",
      fosFmte7((sqls)/(cr)                 ) "sqls/coR",
          fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
          fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
          fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
          fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
          fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
          fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
          fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
          fosFmte7((real(commit))/(cr)) "commit",
          fosFmte7((real(rollback))/(cr)) "rollback",
          fosFmte7((real(select))/(cr)) "select",
          fosFmte7((real(open) )/(cr)) "open",
          fosFmte7((real(fetch) )/(cr)) "fetch",
          fosFmte7((real(insert))/(cr)) "insert",
          fosFmte7((real(update))/(cr)) "update",
          fosFmte7((real(delete))/(cr)) "delete",
        fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
          fosFmte7((real(PROGRAMS))         /(cr)) "pkgs"
    from s
 -- group by trunc_timestamp(timestamp,'HH'), plan_name
    order by plan_name, (class1_elapsed)/(cr) desc
    fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
    from rz1xx.tacct_program
    where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
    group by plan_name
    with ur
set current path = oa1p;
with i as
(
select plan_name
     , sum(class2_elapsed) ela
     , sum(class2_cpu_total) cpu
     , sum(commit) com
     , sum(select) sel
     , sum(open) op
     , sum(fetch) fet
     , min(timestamp) von
     , max(timestamp) bis
    from rz2mm.tacct_general
    where timestamp > '2011-01-01 00:00:00' and commit > 0
        and plan_name in ('PW0602', 'PW0408')
    group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
     , fosFmte7(ela / com)   "ela/com"
     , fosFmte7(com) commit
     , fosFmtE7(cpu / com)   "cpu/com"
     , fosFmtE7(sel / com)   "sel/Com"
     , fosFmtE7(op  / com)   "ope/Com"
     , fosFmtE7(fet / com)   "fet/Com"
     , von , bis
    from i
    order by plan_name, ela/com desc
    with ur
}¢--- A540769.WK.SQL(PDBGEN) cre=2010-02-01 mod=2012-09-20-14.58.34 A540769 ----
set current path = 'OA1P';
select plan_name, fosFmtE7(sum(occurrences)) occs,
       fosFmtE7(sum(class1_cpu_total)) cpuTotal,
       fosFmtE7(sum(class2_cpu_total)) cpuDb2,
       fosFmtE7(max(class1_elapsed/occurrences)) maxEla
    from RZ1dd.TACCT_GENERAL g
    where timestamp > current timestamp - 5 days
    group by plan_name
    order by sum(occurrences) desc
    fetch first 1000 rows only
    with ur
;x;
set current path = 'OA1P';
select timestamp,
       fosFmtE7(sum(class1_cpu_total)) cpuTotal,
       fosFmtE7(sum(class2_cpu_total)) cpuDb2,
       fosFmtE7(max(class1_elapsed/occurrences)) maxEla
    from RZ1hh.TACCT_GENERAL g
    where corrname like 'QT0%BRK%'
         and timestamp between '2012-08-26-00.00.00'
                           and '2012-08-27-00.00.00'
    group by timestamp
    order by timestamp desc
    with ur
;x;
select timestamp - class1_elapsed seconds, g.*
    from RZ1mm.TACCT_GENERAL g
    where corrname like 'QT0%BRK%'
         and timestamp between '2012-08-26-00.00.00'
                           and '2012-08-27-00.00.00'
    order by timestamp desc
    with ur
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENAV) cre=2011-07-14 mod=2012-09-07-18.20.04 A540769 ---
set current path = oa1p;
with s as(
  select real(select+open+fetch+insert+update+delete) sqls, g.*
    from RZ2XX.TACCT_GENERAL g
    where plan_name = 'AV0142'  and subsystem_id like 'DOF%'
      and timestamp between '2012-09-05-00.00.00'
                        and '2012-12-02-00.00.00'
)
select
      fosFmte7(min(class1_elapsed)                   ) "c1ela min",
      fosFmte7(max(class1_elapsed)                   ) "c1ela max",
      fosFmte7(sum(class1_elapsed)/sum(Occurrences)  ) "c1ela/occ",
      fosFmte7(sum(class2_elapsed)/sum(Occurrences)  ) "c2ela/occ",
      fosFmte7(sum(class1_cpu_total)/sum(Occurrences)) "c1cpu/occ",
      fosFmte7(sum(class2_cpu_total)/sum(Occurrences)) "c2cpu/occ",
      fosFmte7(sum(CLASS3_ASYNCH_IXL)  /sum(Occurrences)  ) "c3IXL/occ",
      int(sum(occurrences))  "occ",
      fosFmte7(sum(sqls)/sum(Occurrences)  ) "sqls/occ",
          fosFmte7(sum(class3_global_cont)/sum(Occurrences)) "c2gloCon",
          fosFmte7(sum(class3_DB_IO)/sum(Occurrences)) "c3dbIo",
          fosFmte7(sum(class3_LOG_WRT_IO)/sum(Occurrences)) "c2logIo",
          fosFmte7(sum(real(OPEN_CLOSE_SUSP))/sum(Occurrences)) "opClo",
          fosFmte7(sum(CLASS3_OPEN_CLOSE)/sum(Occurrences)) "c3opClo",
          fosFmte7(sum(real(SERV_TASK_SUSP))/sum(Occurrences)) "serTa",
          fosFmte7(sum(CLASS3_SERV_TASK)/sum(Occurrences)) "c3serTa",
          fosFmte7(sum(real(commit))/sum(Occurrences)) "commit",
          fosFmte7(sum(real(rollback))/sum(Occurrences)) "rollback",
          fosFmte7(sum(real(select))/sum(Occurrences)) "select",
          fosFmte7(sum(real(open) )/sum(Occurrences)) "open",
          fosFmte7(sum(real(fetch) )/sum(Occurrences)) "fetch",
          fosFmte7(sum(real(insert))/sum(Occurrences)) "insert",
          fosFmte7(sum(real(update))/sum(Occurrences)) "update",
          fosFmte7(sum(real(delete))/sum(Occurrences)) "delete",
        fosFmte7(sum(real(INCREMENTAL_BIND))/sum(Occurrences))"incrBi",
          fosFmte7(sum(real(PROGRAMS))      /sum(Occurrences)) "pkgs"
    from s
    group by floor(log10(class1_elapsed)*3)
    order by min(class1_elapsed)
;;;
  select real(select+open+fetch+insert+update+delete) sqls, g.*
    from RZ2XX.TACCT_GENERAL g
    where plan_name = 'AV0142'  and subsystem_id like 'DOF%'
      and timestamp between '2012-07-01-00.00.00'
                        and '2012-12-02-00.00.00'
    order by timestamp desc
;x;
with s as(
  select real(select+open+fetch+insert+update+delete) sqls, g.*
    from RZ2XX.TACCT_GENERAL g
    where plan_name = 'AV0142'  and subsystem_id like 'DOF%'
      and timestamp between '2012-09-01-00.00.00'
                        and '2012-12-02-00.00.00'
)
select  connect_id, date(timestamp) ,
      fosFmtE7(class1_cpu_total/sqls) "c1cpu/sql",
      fosFmtE7(class2_cpu_total/sqls) "c2cpu/sql",
      fosFmtE7(class1_elapsed/sqls) "c1ela/sql",
      fosFmtE7(class2_elapsed/sqls) "c2ela/sql",
      int(occurrences)   "occ",
      fosfmte7(class1_cpu_total) "c1cpu",
      fosfmte7(class2_cpu_total) "c2cpu",
      fosFmtE7(sqls) sqls,
          fosFmtE7(class2_elapsed) "c2ela",
          fosFmtE7(class2_cpu_total) "c2cpu",
          fosFmtE7(class3_global_cont) "c2gloCon",
          fosFmtE7(class3_DB_IO) "c3dbIo",
          fosFmtE7(class3_LOG_WRT_IO) "c2logIo",
          fosFmtE7(OPEN_CLOSE_SUSP) "opClo",
          fosFmtE7(CLASS3_OPEN_CLOSE) "c3opClo",
          fosFmtE7(SERV_TASK_SUSP) "serTa",
          fosFmtE7(CLASS3_SERV_TASK) "c3serTa",
          fosFmtE7(select)   "select",
          fosFmtE7(select)   "select",
          fosFmtE7(open )    "open",
          fosFmtE7(fetch )   "fetch",
          fosFmtE7(insert)   "insert",
          fosFmtE7(update)   "update",
          fosFmtE7(delete)   "delete",
          s.*
    from s
    order by connect_id, timestamp
;;;
select *
    from rz2xx.tacct_general
    where plan_name = 'AV8465'  and subsystem_id like 'DOF%'
    order by timestamp desc
    with ur
;;;
select count(*), plan_name
    from rz1xx.tacct_program
    where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
    group by plan_name
    with ur
}¢--- A540769.WK.SQL(PDBGENBE) cre=2010-12-02 mod=2011-07-13-11.33.48 A540769 ---
set current path oa1p;
set current schema = RZ2MM;
select *
    from tacct_general
 -- where corrName = 'BES0404P'
    where plan_Name = 'BE5000'
    and timestamp =       '2011-06-30-09.53.00.000000'
 -- and timestamp between '2011-06-30-09.00.00'
 --                   and '2011-06-30-11.00.00'
    order by timestamp
    with ur
;;;
select date(timestamp),
       fosFmte7(sum(class2_elapsed)) "c2ElaSu",
       fosFmte7(max(class2_elapsed)) "c2ElaMa",
       fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
       fosFmte7(sum(select+fetch+insert+update+delete)
              / sum(commit))                            "ops/com",
       fosFmte7(sum(LOG_WRT_IO_SUSP)
              / sum(commit))                            "lIO/com",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(CLASS3_DB_IO)
          / sum(DB_IO_SUSP)) "dbIOTi",
       fosFmte7(sum(class3_LOG_WRT_IO)
          / sum(LOG_WRT_IO_SUSP)) "logIOTi",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_PAGE_LATCH)
          / sum(select+fetch+insert+update+delete)) "pgLat/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_LOG_WRT_io)
          / sum(select+fetch+insert+update+delete)) "logIO/o",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(deadlock)) "deadlock",
       fosFmte7(sum(timeout)) "timeout",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where  1=1 and  plan_name = 'BE5000'
        and    timestamp > current timestamp - 375 days
    group by date(timestamp)
    order by date(timestamp) desc
--  order by sum(class2_elapsed) desc
    fetch first 1000 rows only
    with ur
; x
set current path oa1p;
set current schema = RZ2MM;
select timestamp,
       fosFmte7((class3_LOG_WRT_IO)
          / (LOG_WRT_IO_SUSP)) "logIOTi",
       fosFmte7((class2_elapsed)
          / (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7((class2_cpu_total)
          / (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7((CLASS3_LOCK_LATCH)
          / (0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (0.0+select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (SYNC_IO_SUSP)) "synIOTi",
       fosFmte7((CLASS3_DB_IO)
          / (DB_IO_SUSP)) "dbIOTi",
       fosFmte7((class3_LOG_WRT_IO)
          / (LOG_WRT_IO_SUSP)) "logIOTi",
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000' and insert  > 200000
 -- and        timestamp > current timestamp - 30  days
 -- order by class2_elapsed desc
    order by     class3_LOG_WRT_IO
              / (LOG_WRT_IO_SUSP) desc
    fetch first 300 rows only
    with ur
;  x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
       fosFmte7(occurrences) occ,
       fosFmtE7(   (select)) sel,
       fosFmtE7(   (insert)) ins,
                    update   upd,
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    order by class2_elapsed desc
    with ur
;
set current schema = RZ2xx;
select      timestamp ,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2xx;
select date(timestamp),
       fosFmte7(sum(class2_elapsed)) "c2ElaSu",
       fosFmte7(max(class2_elapsed)) "c2ElaMa",
       fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by date(timestamp)
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
;;
select timestamp,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
 -- and        timestamp > current timestamp -  10 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 1000 rows only
    with ur
;  x
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 3  days
      and (    corrName like 'MFT15%'
            or corrName like 'MFT18%'
            or corrName like 'MFT56%'
            or connect_id like  'MFT56%'
            or corrName =    'MFT3100P'
          )
    order by timestamp desc
    with ur
;
}¢--- A540769.WK.SQL(PDBGENBG) cre=2012-07-19 mod=2012-07-19-15.57.01 A540769 ---
select *
    from rr2xx.tacct_general
    where plan_name = 'BG8020'
    order by timestamp desc
}¢--- A540769.WK.SQL(PDBGENBP) cre=2011-01-20 mod=2011-01-20-13.24.02 A540769 ---
set current path oa1p;
select date(timestamp), fosFmtE7(class1_cpu_total) c1Cpu,
      smallint(occurrences) occ,
      fosFmtE7(class1_elapsed) c1Ela,
      fosFmtE7(class2_elapsed) c2Ela,
      fosFmtE7(select) sel,
      fosFmtE7(open) open,
      fosFmtE7(fetch) fetch,
      fosFmtE7(commit) comm,
      fosFmtE7(rollback) rollBa,
      fosFmtE7(RID_POOL_USED) ridUsed,
    g.*
    from RZ2dd.TACCT_GENERAL g
    where -- plan_name = 'MI5700'
              plan_name like 'EU500%'
         and timestamp >       '2009-11-01-00.00.00'
         and fetch > 1e6
    order by timestamp desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENBX) cre=2011-01-25 mod=2011-12-20-08.28.35 A540769 ---
set current path = oa1p;
select time(timestamp - class1_elapsed seconds) von, timestamp,
       SUBSYSTEM_ID subS,
       fosfmte7(class3_db_IO / class3_Log_wrt_IO) "db/log",
       fosfmte7(class3_db_IO) db_io , fosFmte7(class3_Log_wrt_IO) logIO,
       g.*
    from RZ2MM.TACCT_GENERAL g
    where    corrName like 'BXT64%'
         and timestamp between '2011-12-01-00.00.00'
                           and '2011-12-02-00.00.00'
         and subsystem_id like 'DOF%'
         and class3_Log_wrt_IO > 0
         and plan_name = 'DSNUTIL'
  --     and class2_elapsed > 600
    order by class2_elapsed desc
    WITH UR
;x;
select count(*), sum(occurrences), sum(class2_elapsed),
       sum(class3_db_IO) / sum(class3_Log_wrt_IO) "db/log",
       sum(class3_db_IO) dbio, sum(class3_Log_wrt_IO) "log",
       timestamp
    from RZ2HH.TACCT_GENERAL g
    where -- corrName like 'BXT64%'
             timestamp between '2011-12-01-00.00.00'
                           and '2011-12-02-00.00.00'
         and subsystem_id like 'DOF%'
         and class3_Log_wrt_IO > 0
  --     and plan_name = 'DSNUTIL'
  --     and class2_elapsed > 600
    group by timestamp
    order by timestamp      desc
    WITH UR
;x;
select *
    from RZ2DD.TACCT_GENERAL g
    where corrName like 'BXT64%'
         and timestamp between '2010-05-31-00.00.00'
                           and '2012-10-01-09.00.00'
         and subsystem_id like 'DOF%'
         and plan_name = 'DSNUTIL'
         and class2_elapsed > 600
    order by class2_elapsed desc
    WITH UR
;x;
select *
    from RZ2DD.TACCT_GENERAL g
    where corrName like 'BXT6431P%'
         and plan_name = 'DSNUTIL'
         and timestamp > current timestamp - 1  year
    order by class2_elapsed desc
    with ur
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENCD) cre=2011-08-22 mod=2012-05-21-08.55.20 A540769 ---
select timestamp - class1_elapsed seconds, timestamp, g.*
    from RZ2XX.TACCT_GENERAL g
    where     timestamp between '2012-05-18-09.00.00'
                          and '2012-05-18-12.10.00'
    --  or timestamp between '2011-08-11-23.41.00'
    --                  and '2011-08-11-23.47.00'
    --     timestamp in ( '2011-08-20-00.07.14.094155'
    --                   ,'2011-08-11-23.45.22.160512' )
    --   )and( corrName like 'CDT690%'
        and plan_name in -- ('MB5020'
                     --  ('NZ0610'
                         ('CI0900'
                         )
    order by plan_name, class2_cpu_total desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    sMB5020 (1000* (class2_cpu_total
     NZ0610      + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENCT) cre=2010-05-14 mod=2012-05-22-15.14.54 A540769 ---
select *
    from RZ2HH.TACCT_GENERAL g
    where timestamp >  current timestamp  - 3 days
          and plan_name like 'CZ0580%'
        order by class2_cpu_total desc
 ;x;
select         timestamp ,
      int(sum(occurrences))   "occ",
      dec(sum(class2_elapsed)/sum(occurrences),5,2) "c2ela/occ",
      dec(sum(select+open+fetch+insert+update+delete)/sum(occurrences)
                                ,5,2)          "sopiud/occ",
          sum(class2_elapsed) "c2ela",
          sum(class2_cpu_total) "c2cpu",
          sum(class3_global_cont) "c2gloCon",
          sum(class3_DB_IO) "c3dbIo",
          sum(class3_LOG_WRT_IO) "c2logIo",
          sum(OPEN_CLOSE_SUSP) "opClo",
          sum(CLASS3_OPEN_CLOSE) "c3opClo",
          sum(SERV_TASK_SUSP) "serTa",
          sum(CLASS3_SERV_TASK) "c3serTa",
          sum(select)        "select",
          sum(open )         "open",
          sum(fetch )        "fetch",
          sum(insert)        "insert",
          sum(update)        "update",
          sum(delete)        "delete"
    from RZ2HH.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 15 DAY, 'DD')
   -- and timestamp > '2010-05-11-17.00.00'
   --     and connect_id like 'MFT5614P%'
   --     and corrname like 'MFT5614P'
          and plan_name like 'CZ0580%'
   --     and insert >= 1
    group by timestamp
    ORDER BY timestamp desc
    with ur
;
X
select timestamp, int(sum(occurrences))   "occ",
       dec(sum(class2_elapsed)/sum(occurrences),5,2) "c2ela/occ",
        sum(OPEN_CLOSE_susp) / sum(occurrences) "OCsusp",
       sum(CLASS3_OPEN_CLOSE) / sum(occurrences) "OCtime"
    from RZ2dd.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 99 DAY, 'DD')
          and plan_name like 'CT0790%'
    group BY timestamp
    ORDER BY timestamp desc
    with ur
;x;
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENCY) cre=2010-12-03 mod=2010-12-03-11.05.06 A540769 ---
set current path oa1p;
set current schema = RZ2XX;
select timestamp,
       class1_elapsed,
       class2_elapsed,
       CLASS3_SYNC_IO,
       fosFmte7((CLASS3_SYNC_IO)
          / (SYNC_IO_SUSP)) "synIOTi",
       fosFmte7((class2_elapsed)
          / (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7((class2_cpu_total)
          / (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7((CLASS3_LOCK_LATCH)
          / (0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (0.0+select+fetch+insert+update+delete)) "synIO/o",
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'CY5150'
    and        timestamp > current timestamp - 3   days
    order by class2_elapsed desc
    fetch first 300 rows only
    with ur
;  x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
       fosFmte7(occurrences) occ,
       fosFmtE7(   (select)) sel,
       fosFmtE7(   (insert)) ins,
                    update   upd,
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    order by class2_elapsed desc
    with ur
;
set current schema = RZ2xx;
select      timestamp ,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2xx;
select date(timestamp),
       fosFmte7(sum(class2_elapsed)) "c2ElaSu",
       fosFmte7(max(class2_elapsed)) "c2ElaMa",
       fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by date(timestamp)
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
;;
select timestamp,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
 -- and        timestamp > current timestamp -  10 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 1000 rows only
    with ur
;  x
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 3  days
      and (    corrName like 'MFT15%'
            or corrName like 'MFT18%'
            or corrName like 'MFT56%'
            or connect_id like  'MFT56%'
            or corrName =    'MFT3100P'
          )
    order by timestamp desc
    with ur
;
}¢--- A540769.WK.SQL(PDBGEND) cre=2011-02-23 mod=2011-02-23-09.34.07 A540769 ---
select min(timestamp), max(timestamp)
    from rz2xx.tacct_general
}¢--- A540769.WK.SQL(PDBGENDG) cre=2012-05-23 mod=2012-05-23-16.36.21 A540769 ---
select *
    from RZ2DD.TACCT_GENERAL g
    where     plan_name = 'DG8130'
             and timestamp > current timestamp - 50 days
    order by timestamp desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    sMB5020 (1000* (class2_cpu_total
     NZ0610      + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENEC) cre=2011-09-20 mod=2011-09-29-09.37.44 A540769 ---
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select *
    from RZ2MM.TACCT_GENERAL g
    where plan_name in ('EC5492')
         and timestamp between  '2011-09-03-00.40.00'
                           and  '2011-09-03-02.00.00'
    order by timestamp desc
    with ur
;x;
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENEL) cre=2010-09-20 mod=2010-09-29-14.11.58 A540769 ---
select *
    from RZ2HH.TACCT_GENERAL g
    where corrName  = 'YELARJ01'
         and timestamp >       '2010-09-17-00.00.00'
    order by timestamp desc
;x;
select timestamp, plan_name,
        sum(occurrences) occ,
        sum(CLASS1_ELAPSED) / sum(occurrences) c1Ela    ,
        sum(CLASS1_CPU_TOTAL) / sum(occurrences) c1Cpu  ,
        sum(CLASS2_ELAPSED) / sum(occurrences) c2Ela  ,
        sum(CLASS2_CPU_TOTAL) / sum(occurrences) c2Cpu
    from RZ2MM.TACCT_GENERAL g
    where plan_Name in ('XBLE80', 'XBLE82', 'XBLE84')
         and subsystem_id like 'DBP%'
         and timestamp between   '2010-09-18-14.00.00'
                           and   '2010-09-18-18.00.00'
    group by timestamp, plan_name
    order by plan_name, 4 desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENER) cre=2012-12-19 mod=2012-12-24-13.54.17 A540769 ---
set current path oa1p;
set current path = oa1p;
select *
    from RZ2dd.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and timestamp between '2012-12-21-00.00.00'
                        and '2012-12-21-23.59.59'
    order by subsystem_id
;;;
with s as(
  select date(timestamp) dt, hour(timestamp) hh, int(sum(commit))commit
    from RZ2hh.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-12-01-00.00.00'
                        and '2012-12-31-00.00.00'
    group by timestamp
)
, d as (
  select dt from s group by dt
)
select d.dt,
       right('    ' || value(strip(char(s00.commit)), ''), 4)
    || right('    ' || value(strip(char(s01.commit)), ''), 4)
    || right('    ' || value(strip(char(s02.commit)), ''), 4)
    || right('    ' || value(strip(char(s03.commit)), ''), 4)
    || right('    ' || value(strip(char(s04.commit)), ''), 4)
    || right('    ' || value(strip(char(s05.commit)), ''), 4)
    || right('    ' || value(strip(char(s06.commit)), ''), 4)
    || right('    ' || value(strip(char(s07.commit)), ''), 4)
    || right('    ' || value(strip(char(s08.commit)), ''), 4)
    || right('    ' || value(strip(char(s09.commit)), ''), 4)
    || right('    ' || value(strip(char(s10.commit)), ''), 4)
    || right('    ' || value(strip(char(s11.commit)), ''), 4)
    || right('    ' || value(strip(char(s12.commit)), ''), 4)
    || right('    ' || value(strip(char(s13.commit)), ''), 4)
    || right('    ' || value(strip(char(s14.commit)), ''), 4)
    || right('    ' || value(strip(char(s15.commit)), ''), 4)
    || right('    ' || value(strip(char(s16.commit)), ''), 4)
    || right('    ' || value(strip(char(s17.commit)), ''), 4)
    || right('    ' || value(strip(char(s18.commit)), ''), 4)
    || right('    ' || value(strip(char(s19.commit)), ''), 4)
    || right('    ' || value(strip(char(s20.commit)), ''), 4)
    || right('    ' || value(strip(char(s21.commit)), ''), 4)
    || right('    ' || value(strip(char(s22.commit)), ''), 4)
    || right('    ' || value(strip(char(s23.commit)), ''), 4)
      from d
      left join s s00  on s00.dt = d.dt and s00.hh = 00
      left join s s01  on s01.dt = d.dt and s01.hh = 01
      left join s s02  on s02.dt = d.dt and s02.hh = 02
      left join s s03  on s03.dt = d.dt and s03.hh = 03
      left join s s04  on s04.dt = d.dt and s04.hh = 04
      left join s s05  on s05.dt = d.dt and s05.hh = 05
      left join s s06  on s06.dt = d.dt and s06.hh = 06
      left join s s07  on s07.dt = d.dt and s07.hh = 07
      left join s s08  on s08.dt = d.dt and s08.hh = 08
      left join s s09  on s09.dt = d.dt and s09.hh = 09
      left join s s10  on s10.dt = d.dt and s10.hh = 10
      left join s s11  on s11.dt = d.dt and s11.hh = 11
      left join s s12  on s12.dt = d.dt and s12.hh = 12
      left join s s13  on s13.dt = d.dt and s13.hh = 13
      left join s s14  on s14.dt = d.dt and s14.hh = 14
      left join s s15  on s15.dt = d.dt and s15.hh = 15
      left join s s16  on s16.dt = d.dt and s16.hh = 16
      left join s s17  on s17.dt = d.dt and s17.hh = 17
      left join s s18  on s18.dt = d.dt and s18.hh = 18
      left join s s19  on s19.dt = d.dt and s19.hh = 19
      left join s s20  on s20.dt = d.dt and s20.hh = 20
      left join s s21  on s21.dt = d.dt and s21.hh = 21
      left join s s22  on s22.dt = d.dt and s22.hh = 22
      left join s s23  on s23.dt = d.dt and s23.hh = 23
    order by d.dt desc
;;;;
select plan_name, timestamp,
      fosFmte7(sum(class1_cpu_total)) "c1cpu",
      fosFmte7(sum(class2_cpu_total)) "c2cpu",
      fosFmte7(sum(sqls)                   ) "sqls",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
          fosFmte7(sum(real(select))) "select",
          fosFmte7(sum(real(open))) "open",
          fosFmte7(sum(real(fetch))) "fetch",
          fosFmte7(sum(real(insert))) "insert",
          fosFmte7(sum(real(update))) "update",
          fosFmte7(sum(real(delete))) "delete",
          fosFmte7(sum(real(PROGRAMS))) "pkgs"
    from s
--  group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
--  order by plan_name, min(class1_elapsed/max(sqls, 1))
    group by plan_name, timestamp
    order by plan_name, timestamp desc
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2hh.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-12-01-00.00.00'
                        and '2012-12-31-00.00.00'
)
select plan_name, timestamp,
      fosFmte7(sum(class1_cpu_total)) "c1cpu",
      fosFmte7(sum(class2_cpu_total)) "c2cpu",
      fosFmte7(sum(sqls)                   ) "sqls",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
          fosFmte7(sum(real(select))) "select",
          fosFmte7(sum(real(open))) "open",
          fosFmte7(sum(real(fetch))) "fetch",
          fosFmte7(sum(real(insert))) "insert",
          fosFmte7(sum(real(update))) "update",
          fosFmte7(sum(real(delete))) "delete",
          fosFmte7(sum(real(PROGRAMS))) "pkgs"
    from s
--  group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
--  order by plan_name, min(class1_elapsed/max(sqls, 1))
    group by plan_name, timestamp
    order by plan_name, timestamp desc
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2HH.TACCT_GENERAL g
    where plan_name in ('PW5200', 'PW5220')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-01-01-00.00.00'
                        and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
      plan_name,
      fosFmte7((class1_elapsed)/(cr)                 ) "c1ela/coR",
      fosFmte7((class2_elapsed)/(cr)                 ) "c2ela/coR",
      fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
      fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
      fosFmte7((CLASS3_ASYNCH_IXL)     /(cr)              ) "c3IXL/coR",
      int((occurrences))     "occ",
      int((commit))     "commit",
      int((rollback))     "rollBack",
      fosFmte7((sqls)/(cr)                 ) "sqls/coR",
          fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
          fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
          fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
          fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
          fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
          fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
          fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
          fosFmte7((real(commit))/(cr)) "commit",
          fosFmte7((real(rollback))/(cr)) "rollback",
          fosFmte7((real(select))/(cr)) "select",
          fosFmte7((real(open) )/(cr)) "open",
          fosFmte7((real(fetch) )/(cr)) "fetch",
          fosFmte7((real(insert))/(cr)) "insert",
          fosFmte7((real(update))/(cr)) "update",
          fosFmte7((real(delete))/(cr)) "delete",
        fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
          fosFmte7((real(PROGRAMS))         /(cr)) "pkgs"
    from s
 -- group by trunc_timestamp(timestamp,'HH'), plan_name
    order by plan_name, (class1_elapsed)/(cr) desc
    fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
    from rz1xx.tacct_program
    where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
    group by plan_name
    with ur
set current path = oa1p;
with i as
(
select plan_name
     , sum(class2_elapsed) ela
     , sum(class2_cpu_total) cpu
     , sum(commit) com
     , sum(select) sel
     , sum(open) op
     , sum(fetch) fet
     , min(timestamp) von
     , max(timestamp) bis
    from rz2mm.tacct_general
    where timestamp > '2011-01-01 00:00:00' and commit > 0
        and plan_name in ('PW0602', 'PW0408')
    group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
     , fosFmte7(ela / com)   "ela/com"
     , fosFmte7(com) commit
     , fosFmtE7(cpu / com)   "cpu/com"
     , fosFmtE7(sel / com)   "sel/Com"
     , fosFmtE7(op  / com)   "ope/Com"
     , fosFmtE7(fet / com)   "fet/Com"
     , von , bis
    from i
    order by plan_name, ela/com desc
    with ur
}¢--- A540769.WK.SQL(PDBGENES) cre=2010-11-05 mod=2010-11-05-22.23.13 A540769 ---
select id, rz, count(*), min(timeSTamp), max(timestamp)
    from A540769.tacct_general
    group by id, rz
;;;
set current schema = rz2DD;
-- insert into A540769.tacct_general
    with w  as
    (  select
           case
           when corrName like 'NIT16%'
                and log_recs_written > 30 then 'ni250Load'
           when plan_name = 'NI5310'      then 'ni250Update'
           when plan_name = 'NI5340'      then 'ni250Insert'
           when corrName like  'MFT15%'   then 'mfLoad'
           when corrName like  'MFT18%'   then 'mfPflege'
           when connect_id like 'MFT56%'  then 'mfTurnover'
           when corrName =     'MFT3100P' then 'mfAuswertung'
           else                                '' end id,
           left(current schema, 3) rz, g.*, current date insDate
         from tacct_general g
 -- ) , sel as
   )  select * from w where id <> ''  and timestamp >
                 current timestamp - 3 days
      order by timestamp desc
;
    ( select * from w where id <> ''
    )
      select * from sel
          where not exists (select 1
              from A540769.TACCT_GENERAL o
              where o.id = sel.id and o.rz = sel.rz
                  and o.timestamp = sel.timestamp
                  and o.subsystem_id = sel.subsystem_id
            )
;
}¢--- A540769.WK.SQL(PDBGENEU) cre=2011-01-26 mod=2011-01-27-16.13.46 A540769 ---
set current path = oa1p;
select date(timestamp)
    , subsystem_id
--  , substr(strip(min(subsystem_id))
--           || case when min(subsystem_id) = max(subsystem_id) then ''
--              else '*' || substr(max(subsystem_id), 4, 1) end, 1, 6)
    , fosFmtE7(class2_elapsed/fetch)  "c2Ela/fe"
    , fosFmtE7(class2_cpu_total/fetch)  "c2Cpu/fe"
    , fosFmtE7(fetch)             "fetch"
    , fosFmtE7(class1_elapsed)    "c1Ela"
    , fosFmtE7(class2_elapsed)    "c2Ela"
    , fosFmtE7(class1_cpu_total)  "c1Cpu"
    , fosFmtE7(class2_cpu_total)  "c2Cpu"
    , g.*
    from RZ2DD.TACCT_GENERAL g
    where plan_name = 'EU5000'
         and fetch >1e6
         and timestamp >       '2008-11-01-00.00.00'
    order by timestamp desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENEX) cre=2010-07-01 mod=2011-05-19-08.07.40 A540769 ---
set current schema = RR2xx;
insert into A540769.tacct_general
    with w  as
    (  select
           case
           when corrName like  'MFT15%'       then 'mfLoad'
           when corrName like  'MFT18%'       then 'mfPflege'
           when connect_id like 'MFT56%'      then 'mfTurnover'
           when corrName =     'MFT3100P'     then 'mfAuswertung'
           when corrName like 'NIT15%'        then 'ni150load'
           when corrName like 'NIT16%' and log_recs_written > 30
                                              then 'ni250Load'
           when CONNECT_ID like 'NIT17%'      then 'ni150InsEmpClu'
           when CONNECT_ID like 'NIT18%' or plan_name = 'NI5392'
                                              then 'ni250InsNoPos'
           when plan_name = 'NI5310'          then 'ni250Update'
           when plan_name = 'NI5340'          then 'ni250Insert'
           else                                    '' end id,
           left(current schema, 3) rz,
           current date insDate,
           g.*
         from tacct_general g
    ) , sel as
    ( select * from w where id <> ''
    )
      select * from sel
          where not exists (select 1
              from A540769.TACCT_GENERAL o
              where o.id = sel.id and o.rz = sel.rz
                  and o.timestamp = sel.timestamp
                  and o.subsystem_id = sel.subsystem_id
            )
;
}¢--- A540769.WK.SQL(PDBGENEY) cre=2010-08-03 mod=2011-05-19-08.28.35 A540769 ---
set current schema A540769;
select id, rz,  count(*), min(insDate), max(insDate)
    from tacct_general
    group by id, rz
    order by 1 desc, 2 asc
;
commit
;;;
select insDate, rz,  count(*)
    from tacct_general
    group by insDate, rz
    order by 1 desc, 2 asc
;
set current schema rr2xx;
-- insert into A540769.tacct_general
    with w  as
    (  select
           case
           when corrName like 'NIT15%'        then 'ni150load'
           when corrName like 'NIT16%' and log_recs_written > 30
                                              then 'ni250Load'
           when CONNECT_ID like 'NIT17%'      then 'ni150InsEmptyClu'
           when CONNECT_ID like 'NIT18%' or plan_name = 'NI5392'
                                              then 'ni250InsNoPos'
           when plan_name = 'NI5310'          then 'ni250Update'
           when plan_name = 'NI5340'          then 'ni250Insert'
           else                                '' end id,
           left(current schema, 3) rz, g.*, current date insDate
         from tacct_general g
         where timestamp > '2011-04-14-00.00.00'
    ) , sel as
    ( select * from w where id <> ''
    )
 select * from sel
     order by date(timestamp) desc, id, timestamp
     with ur
 ;;;
      select * from sel
          where not exists (select 1
              from A540769.TACCT_GENERAL o
              where o.id = sel.id and o.rz = sel.rz
                  and o.timestamp = sel.timestamp
                  and o.subsystem_id = sel.subsystem_id
            )
;
set current schema = 'A540769';
select insDate, rz, count(*)
    from tacct_general
    group by insDate, rz
    order by 1 desc, 2 asc
;
select date(timestamp), rz, count(*)
    from tacct_general
    group by date(timestamp), rz
    order by 1 desc, 2 asc
;
select *
    from tacct_general
update tacct_general set id = 'ni150InsEmpClu'
               where    id = 'ni150InsEmptyCl'
;
}¢--- A540769.WK.SQL(PDBGENFI) cre=2011-09-30 mod=2011-09-30-09.42.10 A540769 ---
select insert, class2_elapsed / max(1, insert),
        g.*
    from RZ2XX.TACCT_GENERAL g
    where plan_name in ('FI7300')
         and timestamp >       '2011-09-25-00.00.00'
    order by timestamp desc
    with ur
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENHO) cre=2012-07-13 mod=2012-07-13-10.14.06 A540769 ---
set current path oa1p;
set current schema = RZ2hh;
select plan_name, dayOfWeek_iso(timestamp) dayOfWeek,
                  hour(timestamp) hh,
       count(*) count,
       fosFmte7(sum(commit)) "commit",
       fosFmte7(sum(select)) "select",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class1_cpu_total)) "c1Cpu",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(class3_Sync_IO )) "c3Syn",
       fosFmte7(min(CLASS3_LOCK_LATCH)) "~c3LoLa",
       fosFmte7(min(class2_elapsed)) "c2Ela-",
       fosFmte7(max(class2_elapsed)) "-c2Ela",
       fosFmte7(min(class2_cpu_total)) "c2Cpu-",
       fosFmte7(max(class2_cpu_total)) "-c2Cpu",
       fosFmte7(min(class3_Sync_IO )) "c3Syn-",
       fosFmte7(max(class3_Sync_Io )) "-c3Syn"
    from TACCT_GENERAL g
    where      plan_name  =    'VZ52C'
        and timestamp >       '2012-06-10-00.00.00'
    group by dayOfWeek_iso(timestamp) , plan_name,
             hour(timestamp)
    order by dayOfWeek_iso(timestamp) ,
             hour(timestamp)
;x
set current path oa1p;
set current schema = RZ2xx;
select *
    from TACCT_GENERAL g
    where      plan_name = 'XBLE86'
        and timestamp >       '2012-06-06-00.00.00'
    order by insert         desc
--  order by class2_elapsed desc
    fetch first 100 rows only
;;
set current schema = RZ2xx;
select substr(strip(group_name) || ' ' || strip(connect_type), 1, 9),
       count(*) count,
       fosFmte7(min(class1_elapsed)) "c1Ela-",
       fosFmte7(max(class1_elapsed)) "-c1Ela",
       fosFmte7(avg(class1_elapsed)) "~c1Ela",
       fosFmte7(avg(class2_elapsed)) "~c2Ela",
       fosFmte7(min(class1_cpu_total)) "~c1Cpu",
       fosFmte7(min(class2_cpu_total)) "~c2Cpu",
       fosFmte7(min(class3_Sync_IO )) "~c3Syn",
       fosFmte7(min(CLASS3_LOCK_LATCH)) "~c3LoLa",
       fosFmte7(min(class2_elapsed)) "c2Ela-",
       fosFmte7(max(class2_elapsed)) "-c2Ela",
       fosFmte7(min(class2_cpu_total)) "c2Cpu-",
       fosFmte7(max(class2_cpu_total)) "-c2Cpu",
       fosFmte7(min(class3_Sync_IO )) "c3Syn-",
       fosFmte7(max(class3_Sync_Io )) "-c3Syn",
       avg(commit) "~commit"
    from TACCT_GENERAL g
    where      plan_name = 'XBLE80'
        and timestamp between '2010-12-03-00.00.00'
                    and '2010-12-04-00.00.00'
    group by group_name, connect_type,
             int(log10(max(class1_elapsed, 0.001)) * 2.)
    order by group_name, connect_type,
             min(class1_elapsed)
;x
set current schema = RZ2xx;
select *
    from TACCT_GENERAL g
    where      plan_name = 'XBLE80'
        and timestamp between '2010-12-03-00.00.00'
                    and '2010-12-04-00.00.00'
        and class3_Sync_IO = 0
        and CLASS3_LOCK_LATCH = 0
    order by class2_elapsed
    fetch first 100 rows only
;;
set current schema = RZ2xx;
select   *
    from TACCT_GENERAL g
    where      plan_name = 'XBLE80'
               and class2_Elapsed > 50
    order by class2_Elapsed desc
;x
select      timestamp ,
       fosFmte7(sum(class2_elapsed)
          / sum(0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_elapsed)
          / sum(0.0+commit)) "c2Ela/c",
       fosFmte7(sum(0.0+ select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(sum(class2_cpu_total)
          / sum(0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(0.0+select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(0+select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del,
       fosFmtE7(sum(commit)) commit
    from  (select g.*, commit coms
               from TACCT_GENERAL g) g
    where      plan_name = 'XBLE80'
    and        timestamp > current timestamp - 5 days
    group by      timestamp
 -- order by  min(timestamp) desc
    order by  real(sum(class2_elapsed)) / sum(coms)    desc
    fetch first 100 rows only
    with ur
;  x
set current schema = RZ2MM;
select timestamp,
       fosFmte7((class2_elapsed)
          / (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7((class2_cpu_total)
          / (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7((CLASS3_LOCK_LATCH)
          / (0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (0.0+select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7((CLASS3_LOG_WRT_IO)
          / (0.0+select+fetch+insert+update+delete)) "logWr/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (SYNC_IO_SUSP)) "synIOTi",
       commit,
       insert,
       (0.0+select+fetch+insert+update+delete)  "sqls",
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'XBLE80' -- and insert/occurrences > 100000
    and        timestamp > current timestamp - 5   days
    order by class2_elapsed
          / (0.0+select+fetch+insert+update+delete)  desc
    fetch first 300 rows only
    with ur
;  x
select timestamp,
       fosFmte7((class2_elapsed)
          / (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7((class2_cpu_total)
          / (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7((CLASS3_LOCK_LATCH)
          / (0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (0.0+select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (SYNC_IO_SUSP)) "synIOTi",
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'XB5000'
 -- and        timestamp > current timestamp - 5   days
    order by class2_elapsed desc
    fetch first 300 rows only
    with ur
;  x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
       fosFmte7(occurrences) occ,
       fosFmtE7(   (select)) sel,
       fosFmtE7(   (insert)) ins,
                    update   upd,
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    order by class2_elapsed desc
    with ur
;
set current schema = RZ2xx;
select      timestamp ,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2xx;
select date(timestamp),
       fosFmte7(sum(class2_elapsed)) "c2ElaSu",
       fosFmte7(max(class2_elapsed)) "c2ElaMa",
       fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by date(timestamp)
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
;;
select timestamp,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
 -- and        timestamp > current timestamp -  10 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 1000 rows only
    with ur
;  x
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 3  days
      and (    corrName like 'MFT15%'
            or corrName like 'MFT18%'
            or corrName like 'MFT56%'
            or connect_id like  'MFT56%'
            or corrName =    'MFT3100P'
          )
    order by timestamp desc
    with ur
;
}¢--- A540769.WK.SQL(PDBGENII) cre=2011-07-12 mod=2011-07-12-16.29.16 A540769 ---
set current path = oa1p;
select trunc_timestamp(timestamp, 'HH'),
       fosfmte7(sum(occurrences))  occ,
       fosfmte7(sum(CLASS1_IIP_CPU)) c1IIP,
       fosfmte7(sum(CLASS2_IIP_CPU)) c2IIP,
       fosfmte7(sum(CLASS2_IIP_CPU)
             /  sum(occurrences)) "c2IIP/oc",
       fosfmte7(sum(CLASS1_ELAPSED)
             /  sum(occurrences)) "c1ela/oc",
       fosfmte7(sum(CLASS1_CPU_TOTAL)
             /  sum(occurrences)) "c1cpu/oc",
       fosfmte7(sum(CLASS2_ELAPSED  )
             /  sum(occurrences)) "c2ela/oc",
       fosfmte7(sum(CLASS2_CPU_TOTAL)
             /  sum(occurrences)) "c2epu/oc",
       fosfmte7(sum(IIPCP_ELIGIBLE)) iipEl
    from rz2HH.tacct_general
    where subsystem_id = 'DOF1'
         and timestamp >= '2011-06-20-00.00.00'
         and CONNECT_ID = 'SERVER' and CORRNAME = 'java'
         and PLAN_NAME = 'DISTSERV'
    group by trunc_timestamp(timestamp, 'HH')
    order by trunc_timestamp(timestamp, 'HH') desc
    with ur
;;
select trunc_timestamp(timestamp, 'HH'),
       fosfmte7(sum(occurrences))  occ,
       fosfmte7(sum(CLASS1_IIP_CPU)) c1IIP,
       fosfmte7(sum(CLASS2_IIP_CPU)) c2IIP,
       fosfmte7(sum(case
         when CONNECT_ID = 'SERVER' and CORRNAME = 'java'
         and PLAN_NAME = 'DISTSERV' then CLASS2_IIP_CPU
                                    else 0 end)) j2IIP,
       fosfmte7(sum(CLASS2_IIP_CPU)
             /  sum(occurrences)) "c2IIP/oc",
       fosfmte7(sum(IIPCP_ELIGIBLE)) iipEl
    from rz2HH.tacct_general
    where subsystem_id = 'DOF1'
         and timestamp >= '2011-07-04-00.00.00'
    group by trunc_timestamp(timestamp, 'HH')
    order by trunc_timestamp(timestamp, 'HH') desc
    with ur
;;
select *
    from rz2XX.tacct_general
    where subsystem_id = 'DOF1'
         and timestamp >= '2011-07-09-09.30.00'
         and timestamp <= '2011-07-09-23.30.00'
         and CONNECT_ID = 'SERVER' and CORRNAME = 'java'
         and PLAN_NAME = 'DISTSERV'
    order by CLASS2_IIP_CPU desc
--  order by timestamp      desc
    fetch first 100  rows only
    with ur
;;;
select *
    from rz2DD.tacct_general
    where subsystem_id = 'DOF1'
         and timestamp >= '2011-06-01-00.00.00'
         and CONNECT_ID = 'SERVER' and CORRNAME = 'java'
         and PLAN_NAME = 'DISTSERV'
--  order by CLASS2_IIP_CPU desc
    order by timestamp      desc
    fetch first 1000 rows only
    with ur
;;;
}¢--- A540769.WK.SQL(PDBGENIN) cre=2010-07-01 mod=2011-04-18-10.35.55 A540769 ---
select * from A540769.tacct_general
    order by timestamp desc
}¢--- A540769.WK.SQL(PDBGENIO) cre=2010-07-17 mod=2010-07-17-17.26.08 A540769 ---
with a as
(
select (CLASS3_SYNC_IO+CLASS3_DB_IO+CLASS3_LOG_WRT_IO
      +CLASS3_OTHER_READ + OTHER_WRITE_SUSP) / CLASS1_ELAPSED
      * min(1800, CLASS1_ELAPSED) io30,
       CLASS3_SYNC_IO+CLASS3_DB_IO+CLASS3_LOG_WRT_IO
      +CLASS3_OTHER_READ + OTHER_WRITE_SUSP ioTo, t.*
    from rz2xx.tacct_general t
    where timestamp between '2010-07-10-23.10.00'
                        and '2010-07-11-05.00.00'
      and timestamp -class1_elapsed seconds
           between '2010-07-10-22.55.00'
               and '2010-07-10-23.25.00'
)
select plan_name, sum(io30), sum(ioTo), count(*),
        min(timestamp), max(timestamp)
    from a
    group by plan_name
    having sum(io30) > 10
    order by 2 desc
;
;x;
select (CLASS3_SYNC_IO+CLASS3_DB_IO+CLASS3_LOG_WRT_IO
      +CLASS3_OTHER_READ + OTHER_WRITE_SUSP) / CLASS1_ELAPSED
      * min(1800, CLASS1_ELAPSED),
       CLASS3_SYNC_IO+CLASS3_DB_IO+CLASS3_LOG_WRT_IO
      +CLASS3_OTHER_READ + OTHER_WRITE_SUSP, t.*
    from rz2xx.tacct_general t
    where timestamp between '2010-07-10-23.00.00'
                    and     '2010-07-11-00.59.00'
    order by 1 desc
;
set current path oa1p;
set current schema = A540769;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '1919-05-19-11.00.00'
                               and '1919-05-19-12.30.00' then 'o'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIO/i+u",
       count(distinct subsystem_id) "#ssid", plan_name, id,
       fosFmte7(sum(CLASS3_LOG_WRT_IO) /sum(insert+update)) "logWa/iu",
       fosFmte7(sum(real(Log_RECS_WRITTEN ))
            /sum(insert+update)) "logRe/iu",
       fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))
                     /sum(insert+update)) "logBy/i+u"
    --   min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
    from g
    where -- timestamp > current timestamp - 9992 month
              rz = 'RZ1' and id like 'ni250%'
      --  and connect_ID like 'NI229%'
      --  and plan_name in ( 'NI5310', 'NI5340')
      --  and insert >= 1
      group by g1, g2, id, plan_name
  --  having sum(insert+update) > 0
      order by id, 1 desc
    with ur
;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '1919-05-19-11.00.00'
                               and '1919-05-19-12.30.00' then 'o'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(class2_elapsed)) "c2ela" ,
       fosFmte7(sum(class2_cpu_total) ) "c2cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "LocLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIO",
       count(distinct subsystem_id) "#ssid", plan_name, id,
       fosFmte7(sum(CLASS3_LOG_WRT_IO) ) "logWa",
       fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
       fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte"
    --   min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
    from g
    where -- timestamp > current timestamp - 9992 month
              rz = 'RZ1' and id like 'ni250Loa%'
      --  and connect_ID like 'NI229%'
      --  and plan_name in ( 'NI5310', 'NI5340')
      --  and insert >= 1
      group by g1, g2, id, plan_name
  --  having sum(insert+update) > 0
      order by id, 1 desc
    with ur
;
X;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '2019-05-19-11.00.00'
                               and '2019-05-19-12.30.00'
              or timestamp between '2019-05-19-13.00.00'
                               and '2019-05-19-13.30.00' then 'a'
            when timestamp between '2019-05-19-16.00.00'
                               and '2019-05-19-23.00.00' then 'b'
            when timestamp between '2019-04-14-21.50.00'
                               and '2019-04-14-23.20.00' then 'c'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
    where not    timestamp between '2010-05-19-12.30.00'
                               and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
       count(distinct subsystem_id) "#ssid", plan_name,
       min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
    from g
    where timestamp > current timestamp - 9992 month
          and rz = 'RR2' and id like 'ni250%'
      --  and connect_ID like 'NI229%'
          and plan_name in ( 'NI5310', 'NI5340')
      --  and insert >= 1
      group by id
      having sum(insert+update) > 0
      order by plan_Name, 1 desc
    with ur
;
;x;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
    from RZ2dd.TACCT_GENERAL g
    where timestamp > current timestamp - 1 month
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    group by timestamp
    ORDER BY Timestamp desc
    with ur
;
X
select plan_name,
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp > '2010-03-21-00.30.00.000'
      and timestamp < '2010-03-21-02.30.00.000'
      --  and connect_ID like 'NI229%'
      --  and plan_name = 'NI5340'
      --  and insert >= 1
    group by plan_name
    order by sum(select+insert+update+delete) desc
    with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
       sum(class2_elapsed) / sum(insert) "ela/ins" ,
       sum(class2_cpu_total) / sum(insert) "cpu/ins",
       sum(LOCK_LATCH_SUSP),
       sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
       sum(SYNC_IO_SUSP),
       sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
       sum(occurrences)  occ,
       timestamp
    from RZ2hh.TACCT_GENERAL g
    where timestamp > current timestamp - 2 DAY
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    ORDER BY Timestamp desc
    with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from RR2HH.TACCT_GENERAL g
 -- where corrName like 'NI%'
    group by subsystem_id
    order by subsystem_id
    with ur
;
xelect class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RR2HH.TACCT_GENERAL g
    where -- timestamp > current timestamp - 120 DAY
              corrname like 'NI229%'
 --        or corrname like 'NI22922%'
   --     and plan_name like 'DSNUT%'
   --     and insert >= 1
    ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENKC) cre=2011-08-31 mod=2011-08-31-06.39.52 A540769 ---
select *
    from RZ2XX.TACCT_GENERAL g
    where plan_name in ('KC5400', 'N00000')
         and timestamp >       '2011-08-27-00.00.00'
    order by timestamp desc
    with ur
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENKS) cre=2013-01-31 mod=2013-01-31-18.45.43 A540769 ---
select *
    from rz2dd.tacct_general
    where corrname like 'CKS6007%'
    and timestamp > current timestamp - 40 days
}¢--- A540769.WK.SQL(PDBGENMF) cre=2010-04-20 mod=2011-11-15-12.16.45 A540769 ---
set current path oa1p;
select *
    from       rz2XX.TACCT_GENERAL g
    where --timestamp > current timestamp - 3 day
            plan_Name =    'MF7270'
    order by timestamp desc
    fetch first 100 rows only
;;;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '2000-05-19-11.00.00'
                               and '2000-05-19-12.30.00' then 'x'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
    where not    timestamp between '2010-05-19-12.30.00'
                               and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(occurrences)) occ,
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(class1_cpu_total)) "tot cpu",
       fosFmte7(sum(class2_cpu_total)) "db2 cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(CLASS3_GLOBAL_CONT)) "gloCon",
       oa1p.fosFmtE7(sum(select)) "select",
       oa1p.fosFmtE7(sum(open)) "open",
       oa1p.fosFmtE7(sum(fetch)) "fetch",
       oa1p.fosFmtE7(sum(commit)) "commit",
       oa1p.fosFmtE7(sum(insert)) "insert",
       oa1p.fosFmtE7(sum(update)) "update",
       oa1p.fosFmtE7(sum(delete)) "delete",
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
       count(distinct subsystem_id) "#ssid",
       plan_name,
       min(connect_id) || '-' || max(connect_id) "connectionId"
    from g
    where timestamp > current timestamp - 666 days
      --  and connect_ID like 'NI229%'
          and plan_name in ( 'MF8500', 'MF7230', 'MF7310')
          and (plan_name <> 'MF8500' or connect_id like 'MFT56%')
      --  and insert >= 1
      group by g1, g2, plan_name, left(connect_Id, 5)
      having sum(insert+update) > 0
      order by plan_Name, 1 desc
    with ur
;
X;
select *
    from       rz2dd.TACCT_GENERAL g
    where timestamp > current timestamp - 2 day
           and plan_Name like 'MF%'
    order by timestamp desc
    fetch first 100 rows only
;;;
set current schema = RZ2MM;
select dayofWeek(timestamp), class1_elapsed, class2_elapsed,
       fosFmte7(occurrences) occ,
       fosFmtE7(   (select)) sel,
       fosFmtE7(   (insert)) ins,
                    update   upd,
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'MF7800'
         and timestamp between '2010-12-19-00.00.00'
                       and     '2010-12-20-00.00.00'
    order by timestamp desc
    with ur
;  x
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 3  days
      and (    corrName like 'MFT15%'
            or corrName like 'MFT18%'
            or corrName like 'MFT56%'
            or connect_id like  'MFT56%'
            or corrName =    'MFT3100P'
          )
    order by timestamp desc
    with ur
;
x;
set current path oa1p;
set current schema = RR2HH;
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 5  days
      and      corrName = 'YMFNVLOH'
    order by timestamp desc
    with ur
;
x;
select timestamp - class1_elapsed seconds "von",
       timestamp "bis",
       g.*
    from       TACCT_GENERAL g
    where -- timestamp > current timestamp - 2  days
              (corrName like 'A895326%' or corrName like 'MF%')
      --  and connect_ID like 'NI229%'
          and plan_name like 'MF%'
          and subsystem_id like 'DZF%'
      --  and insert >= 1
      order by timestamp    desc
    with ur
;x;
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp >=      '2010-07-27-00.00.00'
    group by subsystem_id
;x;
select min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
;x;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
    from RZ2dd.TACCT_GENERAL g
    where timestamp > current timestamp - 1 month
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    group by timestamp
    ORDER BY Timestamp desc
    with ur
;
X
select plan_name,
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp > '2010-03-21-00.30.00.000'
      and timestamp < '2010-03-21-02.30.00.000'
      --  and connect_ID like 'NI229%'
      --  and plan_name = 'NI5340'
      --  and insert >= 1
    group by plan_name
    order by sum(select+insert+update+delete) desc
    with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
       sum(class2_elapsed) / sum(insert) "ela/ins" ,
       sum(class2_cpu_total) / sum(insert) "cpu/ins",
       sum(LOCK_LATCH_SUSP),
       sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
       sum(SYNC_IO_SUSP),
       sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
       sum(occurrences)  occ,
       timestamp
    from RZ2hh.TACCT_GENERAL g
    where timestamp > current timestamp - 2 DAY
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    ORDER BY Timestamp desc
    with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from RR2HH.TACCT_GENERAL g
 -- where corrName like 'NI%'
    group by subsystem_id
    order by subsystem_id
    with ur
;
xelect class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RR2HH.TACCT_GENERAL g
    where -- timestamp > current timestamp - 120 DAY
              corrname like 'NI229%'
 --        or corrname like 'NI22922%'
   --     and plan_name like 'DSNUT%'
   --     and insert >= 1
    ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENMI) cre=2011-01-25 mod=2011-01-25-11.31.17 A540769 ---
set current path oa1p;
select
    fosFmtE7(sum(occurrences)) occ,
    fosFmtE7(sum(rollback)) roll,
    fosFmtE7(sum(commit)) comm,
    fosFmtE7(sum(select)) sel,
    fosFmtE7(sum(open)) open,
    fosFmtE7(sum(fetch)) fetch,
    fosFmtE7(sum(insert)) insert,
    fosFmtE7(sum(update)) update,
    fosFmtE7(sum(delete)) delete,
    count(distinct date(timestamp)) dates
    from RZ2DD.TACCT_GENERAL g
    where plan_name = 'MI5000'
         and timestamp >       current timestamp - 3 month
--  order by rollback desc, timestamp desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENNI) cre=2010-02-12 mod=2011-11-07-10.48.15 A540769 ---
select *
    from RZ2MM.tacct_general
    where plan_name = 'NI5730'
          and ( timestamp between '2011-11-01-04.57.00'
                            and '2011-11-01-04.59.00'
             or timestamp between '2011-10-08-03.04.00'
                            and '2011-10-08-03.04.00'
              )
    order by timestamp desc
;
select *
    from RZ2MM.tacct_program
    where plan_name = 'NI5730'
          and pck_id = 'YAVX009'
          and ( timestamp between '2011-11-01-04.57.00'
                            and '2011-11-01-04.59.00'
             or timestamp between '2011-10-08-03.04.00'
                            and '2011-10-08-03.04.00'
              )
    order by timestamp desc
    ;;
select *
    from RZ2MM.tacct_general
    where plan_name = 'NI8610'
          and timestamp between '2011-09-17-00.00.00'
                            and '2011-09-18-00.00.00'
    order by timestamp desc
    fetch first 200 rows only
    ;;
set current path oa1p;
set current schema = A540769;
set current path oa1p;
set current schema = A540769;
select id, rz, insDate "insDateRZ1",
       min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       smallint(timestampDiff(4, char(max(timestamp)
             -  min(timestamp - class1_elapsed seconds)))) "minuten",
       smallInt(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(class1_elapsed)) "c1Ela" ,
       fosFmte7(sum(class1_cpu_total)) "c1Cpu",
       oa1p.fosFmtE7(sum(class2_elapsed)) "c2Ela" ,
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "c3LocLat",
       fosFmte7(sum(CLASS3_GLOBAL_CONT)) "c3GloCon",
       fosFmte7(sum(CLASS3_SYNC_IO)) "c3SyncIO",
       fosFmte7(sum(CLASS3_LOG_WRT_IO)) "c3LogWr",
       fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
       fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte",
       smallInt(count(distinct subsystem_id)) "#ssid",
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
   sum(ARCH_LOG_SUSP) "arch_log_sus" ,
   sum(ARCH_READS_SUSP) "arch_reads_s" ,
   sum(ASYNCH_IXL_REQU) "asynch_ixl_r" ,
   min(BYTES_PER_LOG_REC) "bytes_per_lo<" ,
   sum(CACHE_LIMIT_EXCEED) "cache_limit_" ,
   sum(CHANGE_REQ) "change_req" ,
   sum(CLAIM_FAILED) "claim_failed" ,
   sum(CLAIM_REL_SUSP) "claim_rel_su" ,
   sum(CLAIM_REQ) "claim_req" ,
   fosFmtE7(sum(CLASS1_CPU_TOTAL)) "c1_cpu_total" ,
   fosFmtE7(sum(CLASS1_ELAPSED)) "c1_elapsed" ,
   fosFmtE7(sum(CLASS1_IIP_CPU)) "c1_iip_cpu" ,
   fosFmtE7(sum(CLASS1_SU_CPU)) "c1_su_cpu" ,
   fosFmtE7(sum(CLASS1_SU_IIP_CPU)) "c1_su_iip_cp" ,
   min(CLASS2) "c2<" ,
   fosFmtE7(sum(CLASS2_CPU_TOTAL)) "c2_cpu_total" ,
   fosFmtE7(sum(CLASS2_ELAPSED)) "c2_elapsed" ,
   fosFmtE7(sum(CLASS2_IIP_CPU)) "c2_iip_cpu" ,
   fosFmtE7(sum(CLASS2_SU_CPU)) "c2_su_cpu" ,
   fosFmtE7(sum(CLASS2_SU_IIP_CPU)) "c2_su_iip_cp" ,
   min(CLASS3) "c3<" ,
   fosFmtE7(sum(CLASS3_ARCH_LOG)) "c3_arch_log" ,
   fosFmtE7(sum(CLASS3_ARCH_READS)) "c3_arch_read" ,
   fosFmtE7(sum(CLASS3_ASYNCH_IXL)) "c3_asynch_ix" ,
   fosFmtE7(sum(CLASS3_CLAIM_REL)) "c3_claim_rel" ,
   fosFmtE7(sum(CLASS3_DB_IO)) "c3_db_io" ,
   fosFmtE7(sum(CLASS3_DRAIN_LOCK)) "c3_drain_loc" ,
   fosFmtE7(sum(CLASS3_EXT_DEL_DEF)) "c3_ext_del_d" ,
   fosFmtE7(sum(CLASS3_FORCE_AT_C)) "c3_force_at_" ,
   fosFmtE7(sum(CLASS3_GLOBAL_CONT)) "c3_global_co" ,
   fosFmtE7(sum(CLASS3_LLOCK_CHILD)) "c3_llock_chi" ,
   fosFmtE7(sum(CLASS3_LLOCK_OTHER)) "c3_llock_oth" ,
   fosFmtE7(sum(CLASS3_LLOCK_PARNT)) "c3_llock_par" ,
   fosFmtE7(sum(CLASS3_LOCK_LATCH)) "c3_lock_latc" ,
   fosFmtE7(sum(CLASS3_LOG_WRT_IO)) "c3_log_wrt_i" ,
   fosFmtE7(sum(CLASS3_NOTIFY_MSG)) "c3_notify_ms" ,
   fosFmtE7(sum(CLASS3_OPEN_CLOSE)) "c3_open_clos" ,
   fosFmtE7(sum(CLASS3_OTHER_READ)) "c3_other_rea" ,
   fosFmtE7(sum(CLASS3_OTHER_SERV)) "c3_other_ser" ,
   fosFmtE7(sum(CLASS3_OTHER_WRITE)) "c3_other_wri" ,
   fosFmtE7(sum(CLASS3_PAGE_LATCH)) "c3_page_latc" ,
   fosFmtE7(sum(CLASS3_PLOCK_OTHER)) "c3_plock_oth" ,
   fosFmtE7(sum(CLASS3_PLOCK_PAGE)) "c3_plock_pag" ,
   fosFmtE7(sum(CLASS3_PLOCK_PSET)) "c3_plock_pse" ,
   fosFmtE7(sum(CLASS3_SCHEDUL_UDF)) "c3_schedul_u" ,
   fosFmtE7(sum(CLASS3_SCHED_STPRC)) "c3_sched_stp" ,
   fosFmtE7(sum(CLASS3_SERV_TASK)) "c3_serv_task" ,
   fosFmtE7(sum(CLASS3_SYNC_IO)) "c3_sync_io" ,
   fosFmtE7(sum(CLASS3_SYSLOGR_REC)) "c3_syslogr_r" ,
   fosFmtE7(sum(CLASS3_UPD_COMMIT)) "c3_upd_commi" ,
   fosFmtE7(sum(CLASS5_DESCRIBE)) "c5_describe" ,
   fosFmtE7(sum(CLASS5_ELAPSED)) "c5_elapsed" ,
   fosFmtE7(sum(CLASS5_LOG_EXTRACT)) "c5_log_extra" ,
   fosFmtE7(sum(CLASS5_TCB)) "c5_tcb" ,
   sum(CLOSE) "close" ,
   sum(COMMIT) "commit" ,
   min(CONNECT_ID) "connect_id<" ,
   min(CONNECT_TYPE) "connect_type<" ,
   min(CORRNAME) "corrname<" ,
   min(CORRNUMBER) "corrnumber<" ,
   sum(DATA_ROWS_RETURNED) "data_rows_re" ,
   sum(DB_IO_SUSP) "db_io_susp" ,
   sum(DEADLOCK) "deadlock" ,
   sum(DELETE) "delete" ,
   sum(DESCRIBE) "describe" ,
   sum(DESCRIBES_PERFORM) "describes_pe" ,
   sum(DESCRIBE_TABLE) "describe_tab" ,
   sum(DESCRIPT_RETURNED) "descript_ret" ,
   sum(DIRECT_ACCESS) "direct_acces" ,
   sum(DRAIN_FAILED) "drain_failed" ,
   sum(DRAIN_LOCK_SUSP) "drain_lock_s" ,
   sum(DRAIN_REQ) "drain_req" ,
   sum(EXT_DEL_DEF_SUSP) "ext_del_def_" ,
   sum(FETCH) "fetch" ,
   sum(FORCE_AT_COMMIT) "force_at_com" ,
   sum(GLOBAL_CONT_SUSP) "global_cont_" ,
   min(GROUP_NAME) "group_name<" ,
   sum(HIGHEST_USED_CPU) "highest_used" ,
   min(ID) "id<" ,
   sum(IFI_CALLS) "ifi_calls" ,
   sum(IIPCP_ELIGIBLE) "iipcp_eligib" ,
   sum(IMPLICIT_PREPARES) "implicit_pre" ,
   sum(INCOMPAT_RET_LOCK) "incompat_ret" ,
   sum(INCREMENTAL_BIND) "incremental_" ,
   sum(INDEX_USED) "index_used" ,
   min(INSDATE) "insdate<" ,
   sum(INSERT) "insert" ,
   sum(LIMIT_IN_CPU) "limit_in_cpu" ,
   sum(LIMIT_IN_SU) "limit_in_su" ,
   sum(LLOCK_CHILD_SUSP) "llock_child_" ,
   sum(LLOCK_OTHER_SUSP) "llock_other_" ,
   sum(LLOCK_PARENT_SUSP) "llock_parent" ,
   sum(LOCK_ESC_EXCLUSIVE) "lock_esc_exc" ,
   sum(LOCK_ESC_SHARED) "lock_esc_sha" ,
   sum(LOCK_LATCH_SUSP) "lock_latch_s" ,
   sum(LOCK_REQ) "lock_req" ,
   sum(LOCK_TABLE) "lock_table" ,
   sum(LOG_READS_PERFORM) "log_reads_pe" ,
   sum(LOG_RECS_CAPTURED) "log_recs_cap" ,
   sum(LOG_RECS_RETURNED) "log_recs_ret" ,
   sum(LOG_RECS_WRITTEN) "log_recs_wri" ,
   sum(LOG_WRT_IO_SUSP) "log_wrt_io_s" ,
   sum(LUW_SEQNO) "luw_seqno" ,
   sum(MAX_LOCKS_HELD) "max_locks_he" ,
   sum(MAX_SQL_CASCAD_LVL) "max_sql_casc" ,
   sum(MAX_STOR_LOB_VALUE) "max_stor_lob" ,
   sum(NOTIFY_MSG_SENT) "notify_msg_s" ,
   sum(NOTIFY_MSG_SUSP) "notify_msg_s" ,
   sum(OCCURRENCES) "occurrences" ,
   sum(OPEN) "open" ,
   sum(OPEN_CLOSE_SUSP) "open_close_s" ,
   sum(OTHER_READ_SUSP) "other_read_s" ,
   sum(OTHER_REQ) "other_req" ,
   sum(OTHER_SERV_SUSP) "other_serv_s" ,
   sum(OTHER_WRITE_SUSP) "other_write_" ,
   sum(PAGE_LATCH_SUSP) "page_latch_s" ,
   sum(PARTSPLIT) "partsplit" ,
   min(PLAN_NAME) "plan_name<" ,
   sum(PLOCK_OTHER_SUSP) "plock_other_" ,
   sum(PLOCK_PAGE_SUSP) "plock_page_s" ,
   sum(PLOCK_PSET_SUSP) "plock_pset_s" ,
   sum(PREPARE) "prepare" ,
   sum(PREP_FROM_CACHE) "prep_from_ca" ,
   sum(PREP_STMT_MATCH) "prep_stmt_ma" ,
   sum(PREP_STMT_NO_MATCH) "prep_stmt_no" ,
   sum(PREP_STMT_PURGED) "prep_stmt_pu" ,
   sum(PROGRAMS) "programs" ,
   sum(P_LOCK_CHANGE) "p_lock_chang" ,
   sum(P_LOCK_LOCK) "p_lock_lock" ,
   sum(P_LOCK_UNLOCK) "p_lock_unloc" ,
   sum(QUERY_REQ) "query_req" ,
   sum(REOPTIMIZATION) "reoptimizati" ,
   sum(RID_POOL_FAIL_MXLT) "rid_pool_fai" ,
   sum(RID_POOL_FAIL_NOSG) "rid_pool_fai" ,
   sum(RID_POOL_USED) "rid_pool_use" ,
   min(RLF_TABLE) "rlf_table<" ,
   sum(RLF_TYPE) "rlf_type" ,
   sum(ROLLBACK) "rollback" ,
   sum(ROW_TRIGGER) "row_trigger" ,
   min(RZ) "rz<" ,
   sum(SCHEDUL_UDF_SUSP) "schedul_udf_" ,
   sum(SCHED_STPRC_SUSP) "sched_stprc_" ,
   sum(SELECT) "select" ,
   sum(SERV_TASK_SUSP) "serv_task_su" ,
   sum(SET_CURRENT_PREC) "set_current_" ,
   sum(STATEMENT_TRIGGER) "statement_tr" ,
   sum(STPROC_ABEND) "stproc_abend" ,
   sum(STPROC_CALL) "stproc_call" ,
   sum(STPROC_REJECTED) "stproc_rejec" ,
   sum(STPROC_TIMEOUT) "stproc_timeo" ,
   min(SUBSYSTEM_ID) "subsystem_id<" ,
   sum(SUSPEND_FALSE_CONT) "suspend_fals" ,
   sum(SUSPEND_IRLM_CONT) "suspend_irlm" ,
   sum(SUSPEND_IRLM_LATCH) "suspend_irlm" ,
   sum(SUSPEND_LOCK) "suspend_lock" ,
   sum(SUSPEND_OTHER) "suspend_othe" ,
   sum(SUSPEND_XES_CONT) "suspend_xes_" ,
   sum(SU_IIPCP_ELIGIBLE) "su_iipcp_eli" ,
   sum(SVPT_RELEASE) "svpt_release" ,
   sum(SVPT_REQUESTS) "svpt_request" ,
   sum(SVPT_ROLLBACK) "svpt_rollbac" ,
   sum(SYNC_IO_SUSP) "sync_io_susp" ,
   sum(SYNC_XES_CHANGE) "sync_xes_cha" ,
   sum(SYNC_XES_LOCK) "sync_xes_loc" ,
   sum(SYNC_XES_UNLOCK) "sync_xes_unl" ,
   sum(SYSLOGR_REC_SUSP) "syslogr_rec_" ,
   sum(TABLES_RETURNED) "tables_retur" ,
   sum(TIMEOUT) "timeout" ,
   min(TIMESTAMP) "timestamp<" ,
   sum(TRIGGER_SQL_ERROR) "trigger_sql_" ,
   sum(TS_SCAN_USED) "ts_scan_used" ,
   sum(UDF_ABENDS) "udf_abends" ,
   sum(UDF_EXECUTED) "udf_executed" ,
   sum(UDF_REJECTED) "udf_rejected" ,
   sum(UDF_TIMEOUTS) "udf_timeouts" ,
   sum(UNLOCK_REQ) "unlock_req" ,
   sum(UPDATE) "update" ,
   sum(UPD_COMMIT_SUSP) "upd_commit_s"
    from tacct_general
    where    timestamp > '2011-03-01-00.00.00'
        and   rz in ('RR2', 'RZ2') and id like 'ni%'
      group by id, rz, insDate, date(timestamp)
      order by id, rz, insDate desc, date(timestamp) desc
    with ur
;;;
select id, rz, insDate "insDateRZ1",
       min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       smallint(timestampDiff(4, char(max(timestamp)
             -  min(timestamp - class1_elapsed seconds)))) "minuten",
       smallInt(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(class1_elapsed)) "c1Ela" ,
       fosFmte7(sum(class1_cpu_total)) "c1Cpu",
       oa1p.fosFmtE7(sum(class2_elapsed)) "c2Ela" ,
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "c3LocLat",
       fosFmte7(sum(CLASS3_GLOBAL_CONT)) "c3GloCon",
       fosFmte7(sum(CLASS3_SYNC_IO)) "c3SyncIO",
       fosFmte7(sum(CLASS3_LOG_WRT_IO)) "c3LogWr",
       fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
       fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte",
       smallInt(count(distinct subsystem_id)) "#ssid",
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del
    from tacct_general
    where    timestamp > '2011-03-01-00.00.00'
        and   rz in ('RR2', 'RZ2') and id like 'ni%'
      group by id, rz, insDate, date(timestamp)
      order by id, rz, insDate desc, date(timestamp) desc
    with ur
;;;
select *
    from A540769.tacct_general
    where id like 'ni%'
    order by timestamp desc
    fetch first 200 rows only
    ;;
select count(*), id, rz, date(timestamp), min(timestamp),
                 max(timestamp + class1_elapsed seconds)
    from A540769.tacct_general
    group by id, rz, date(timestamp)
    order by 5 desc
;;
select count(*), id, rz
    from A540769.tacct_general
    group by id, rz
;;
set current path oa1p;
set current schema = RZ2MM;
select        dayofWeek(timestamp),
              fosFmtE7(   class1_elapsed) "c1Ela",
              fosFmtE7(   class2_elapsed) "c2Ela",
              fosFmtE7(   class2_Cpu_total) "c2Cpu",
              fosFmtE7(   select) sel,
              fosFmtE7(   open  ) opn,
              fosFmtE7(   fetch ) opn,
              fosFmtE7(   insert) ins,
              fosFmtE7(   update) upd,
              fosFmtE7(   delete) del,
              g.*
    from       TACCT_GENERAL g
    where (corrName like '%NIT1615%')
        and timestamp > current timestamp - 93 days
        and class1_elapsed > 1000
    order by  2 desc
; ;;
set current path oa1p;
set current schema = A540769;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '1919-05-19-11.00.00'
                               and '1919-05-19-12.30.00' then 'o'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       smallint(timestampDiff(4, char(max(timestamp)
             -  min(timestamp - class1_elapsed seconds)))) "minuten",
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(class2_elapsed)) "c2Ela" ,
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "c3LocLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "c3SyncIO",
       count(distinct subsystem_id) "#ssid",
       fosFmte7(sum(CLASS3_LOG_WRT_IO)) "c3LogWa",
       fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
       fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte",
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       plan_name, id, rz
    --   min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
    from g
    where -- timestamp > current timestamp - 9992 month
              rz = 'RZ2' and id like 'ni250Lo%'
      --  and connect_ID like 'NI229%'
      --  and plan_name in ( 'NI5310', 'NI5340')
      --  and insert >= 1
      group by g1, g2, id, rz, plan_name
  --  having sum(insert+update) > 0
      order by id,  1 desc
    with ur
;x;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '1919-05-19-11.00.00'
                               and '1919-05-19-12.30.00' then 'o'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
)
select * from g
    where rz = 'RZ2' and id like 'ni250Lo%'
    order by timestamp desc
    with ur
;x;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '1919-05-19-11.00.00'
                               and '1919-05-19-12.30.00' then 'o'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIO/i+u",
 --    fosFmte7(sum(CLASS3_DB_IO)) "c3dbIO",
       count(distinct subsystem_id) "#ssid", plan_name, id,
       fosFmte7(sum(CLASS3_LOG_WRT_IO) /sum(insert+update)) "logWa/iu",
 --    fosFmte7(sum(CLASS3_LOG_WRT_IO) ) "c3logWa",
       fosFmte7(sum(real(Log_RECS_WRITTEN ))
            /sum(insert+update)) "logRe/iu",
       fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))
                     /sum(insert+update)) "logBy/i+u"
    --   min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
    from g
    where -- timestamp > current timestamp - 9992 month
              rz = 'RZ2' and id like 'ni250%'
      --  and connect_ID like 'NI229%'
      --  and plan_name in ( 'NI5310', 'NI5340')
      --  and insert >= 1
      group by g1, g2, id, plan_name
  --  having sum(insert+update) > 0
      order by id, 1 desc
    with ur
;x;
select *    from       TACCT_GENERAL g;
;x;
set current schema = RR2xx;
select * from         tacct_general
    where corrName like 'NIT16%'
    order by timestamp desc
;;;
select count(*), date(timestamp)
    from tacct_general
    group by date(timestamp)
;;;
    where -- corrName like 'NIT16%'
           plan_name = 'DSNUTIL'
   --    and timestamp > current timestamp
         order by timestamp desc
;;;
select count(*), id, rz
    from A540769.tacct_general
    group by id, rz
;;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '1919-05-19-11.00.00'
                               and '1919-05-19-12.30.00' then 'o'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(class2_elapsed)) "c2ela" ,
       fosFmte7(sum(class2_cpu_total) ) "c2cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "LocLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIO",
       count(distinct subsystem_id) "#ssid", plan_name, id, rz,
       fosFmte7(sum(CLASS3_LOG_WRT_IO) ) "logWa",
       fosFmte7(sum(real(Log_RECS_WRITTEN ))) "logRecs",
       fosFmte7(sum(fosRealK(BYTES_PER_LOG_REC))) "logByte"
    --   min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
    from g
    where -- timestamp > current timestamp - 9992 month
              rz = 'RZ1' and id like 'ni250Loa%'
      --  and connect_ID like 'NI229%'
      --  and plan_name in ( 'NI5310', 'NI5340')
      --  and insert >= 1
      group by g1, g2, id, plan_name
  --  having sum(insert+update) > 0
      order by id, 1 desc
    with ur
;
X;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '2019-05-19-11.00.00'
                               and '2019-05-19-12.30.00'
              or timestamp between '2019-05-19-13.00.00'
                               and '2019-05-19-13.30.00' then 'a'
            when timestamp between '2019-05-19-16.00.00'
                               and '2019-05-19-23.00.00' then 'b'
            when timestamp between '2019-04-14-21.50.00'
                               and '2019-04-14-23.20.00' then 'c'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
    where not    timestamp between '2010-05-19-12.30.00'
                               and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
       count(distinct subsystem_id) "#ssid", plan_name,
       min(SUBSYSTEM_ID), max(SUBSYSTEM_ID)
    from g
    where timestamp > current timestamp - 9992 month
          and rz = 'RR2' and id like 'ni250%'
      --  and connect_ID like 'NI229%'
          and plan_name in ( 'NI5310', 'NI5340')
      --  and insert >= 1
      group by id
      having sum(insert+update) > 0
      order by plan_Name, 1 desc
    with ur
;
;x;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
    from RZ2dd.TACCT_GENERAL g
    where timestamp > current timestamp - 1 month
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    group by timestamp
    ORDER BY Timestamp desc
    with ur
;
X
select plan_name,
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp > '2010-03-21-00.30.00.000'
      and timestamp < '2010-03-21-02.30.00.000'
      --  and connect_ID like 'NI229%'
      --  and plan_name = 'NI5340'
      --  and insert >= 1
    group by plan_name
    order by sum(select+insert+update+delete) desc
    with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
       sum(class2_elapsed) / sum(insert) "ela/ins" ,
       sum(class2_cpu_total) / sum(insert) "cpu/ins",
       sum(LOCK_LATCH_SUSP),
       sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
       sum(SYNC_IO_SUSP),
       sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
       sum(occurrences)  occ,
       timestamp
    from RZ2hh.TACCT_GENERAL g
    where timestamp > current timestamp - 2 DAY
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    ORDER BY Timestamp desc
    with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from RR2HH.TACCT_GENERAL g
 -- where corrName like 'NI%'
    group by subsystem_id
    order by subsystem_id
    with ur
;
xelect class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RR2HH.TACCT_GENERAL g
    where -- timestamp > current timestamp - 120 DAY
              corrname like 'NI229%'
 --        or corrname like 'NI22922%'
   --     and plan_name like 'DSNUT%'
   --     and insert >= 1
    ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENNJ) cre=2010-04-22 mod=2010-05-11-11.56.54 A540769 ---
-- select * from tstRts.TrtsReoTSException;
set current sqlid = 'S100447';
set current schema = 'RZ2XX';
select current timestamp from sysibm.sysDummy1;
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
       count(*) "count",
       avg(class7_elapsed) "avgElapsed" ,
       sum(class7_elapsed) "totElapsed" ,
       min(class7_elapsed) "minElapsed" ,
       max(class7_elapsed) "maxElapsed" ,
       min(timestamp -class7_elapsed seconds) "minStart",
       max(timestamp) "maxEnd"
    from       TACCT_Program p, A540769.TPDB t
    where  -- timestamp > timestamp(date(current_timestamp - 2 days)
           -- , '00.00.00') and
          (    (PCK_COLLECTION_ID = 'NI'
                  and pck_id in (  'NI6210',
                                   'NI6260',
                                   'NI6860',
                                   'NI7600',
                                   'NI9700',
                                   'NI9740',
                                   'YNI0131',
                                   'YNI0183',
                                   'YNI0350',
                                   'YNI56SR',
                                   'YNICAMU',
                                   'YNICRSS',
                                   'YNICTEU',
                                   'YNINP03',
                                   'YNIPACG',
                                   'YNIPAMG',
                                   'YNIPAMU',
                                   'YNIPFLG',
                                   'YNIPREG',
                                   'YNIPTEG',
                                   'YNIPTEU',
                                   'YNIREST'))
              or (PCK_COLLECTION_ID in ('NI01', 'NI02')
                  and pck_id in (  'YNICL03',
                                   'YNINP03',
                                   'YNIPACG'))
              or (PCK_COLLECTION_ID = 'OA1P'
                  and pck_id in (  'NI660AAI')))
        and p.timestamp + 0 seconds >= t.von
        and p.timestamp - p.class7_elapsed seconds <= t.bis
    group by t.PLAN, t.von, t.bis,
             p.plan_name, p.pck_id
    order by 1, 2, 3, 5, 6
    with ur
;
select current timestamp from sysibm.sysDummy1;
;
;x;
insert into A540769.TPDB
select plan_name plan,
       min(timestamp - class1_elapsed seconds) von,
       (max(timestamp)) bis
    from       TACCT_general
    where -- timestamp > timestamp(date(current_timestamp - 2 days)
          --  , '00.00.00') and
        plan_name in ('NI5340', 'NI5310')
    group by date(timestamp), plan_name
;
select current timestamp from sysibm.sysDummy1;
commit;
select current timestamp from sysibm.sysDummy1;
;x;
drop   TABLESPACE DA540769.TPDB;
commit;
CREATE TABLESPACE TPDB
  IN DA540769
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  FREEPAGE 10 PCTFREE 12
  GBPCACHE CHANGED
  TRACKMOD YES
  segsize 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  LOCKMAX SYSTEM
  CLOSE YES
  COMPRESS YES
  CCSID      EBCDIC
  DEFINE YES
  MAXROWS 255;
create table A540769.TPDB as
(
select plan_name plan,
       min(timestamp - class1_elapsed seconds) von,
       (max(timestamp)) bis
    from       TACCT_general
    where -- timestamp > timestamp(date(current_timestamp - 2 days)
          --  , '00.00.00') and
        plan_name in ('NI5340', 'NI5310')
    group by date(timestamp), plan_name
 -- order by date(timestamp), plan_name
) with no data
in DA540769.Tpdb
;
CREATE UNIQUE INDEX A540769.IPDB1
  ON A540769.TPDB
   (von, bis, plan)
  USING STOGROUP GSMS
  PRIQTY -1 SECQTY -1
  ERASE  NO
  FREEPAGE 0 PCTFREE 10
  GBPCACHE CHANGED
  BUFFERPOOL BP1
  COPY NO
  DEFER NO
  DEFINE YES;
commit
;x;
set current path oa1p;
set current schema = RZ2XX;
set current sqlid = 'A540769';
delete from A540769.plan_table;
explain plan set queryno = 3 for
with t as
(
select plan_name,
       min(timestamp - class1_elapsed seconds) von,
       (max(timestamp)) bis
    from       TACCT_general
    where -- timestamp > timestamp(date(current_timestamp - 2 days)
          --  , '00.00.00') and
        plan_name in ('NI5340', 'NI5310')
    group by date(timestamp), plan_name
    order by date(timestamp), plan_name
)
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
       count(*) "count",
       avg(class7_elapsed) "avgElapsed" ,
       sum(class7_elapsed) "totElapsed" ,
       min(class7_elapsed) "minElapsed" ,
       max(class7_elapsed) "maxElapsed" ,
       min(timestamp -class7_elapsed seconds) "minStart",
       max(timestamp) "maxEnd"
    from       TACCT_Program p, t
    where  -- timestamp > timestamp(date(current_timestamp - 2 days)
           -- , '00.00.00') and
          (    (PCK_COLLECTION_ID = 'NI'
                  and pck_id in (  'NI6210',
                                   'NI6260',
                                   'NI6860',
                                   'NI7600',
                                   'NI9700',
                                   'NI9740',
                                   'YNI0131',
                                   'YNI0183',
                                   'YNI0350',
                                   'YNI56SR',
                                   'YNICAMU',
                                   'YNICRSS',
                                   'YNICTEU',
                                   'YNINP03',
                                   'YNIPACG',
                                   'YNIPAMG',
                                   'YNIPAMU',
                                   'YNIPFLG',
                                   'YNIPREG',
                                   'YNIPTEG',
                                   'YNIPTEU',
                                   'YNIREST'))
              or (PCK_COLLECTION_ID in ('NI01', 'NI02')
                  and pck_id in (  'YNICL03',
                                   'YNINP03',
                                   'YNIPACG'))
              or (PCK_COLLECTION_ID = 'OA1P'
                  and pck_id in (  'NI660AAI')))
        and p.timestamp >= t.von
        and p.timestamp -class7_elapsed seconds <= t.bis
    group by t.PLAN_NAME, t.von, t.bis,
             p.plan_name, p.pck_id
    order by 1, 2, 3, 5, 6
    with ur
;
select * from A540769.plan_view2
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
xxx
select * from cmnbatch.plan_view5
   where progName = 'YDG130' and queryno in ( 2453, 2454)
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
SELECT   SYMBOLCH,SYMBOLCSFI,SYMBOLISIN,IDSYMBOL_RATING,SCHEME_RATING,
    raTINGDATE,RATINGSTATUSTYPE,WATCHLISTSTATTYPE
FROM oa1t.VVV_XTREQSCANKEY INNER
JOIN oa1t.VVV_IDS_STD814
     ON oa1t.VVV_IDS_STD814.INSTRUMENTID
     = oa1t.VVV_XTREQSCANKEY.TEMP_DBKEY
 --  WHERE oa1t.VVV_XTREQSCANKEY.PARTITION_NUMBER =         8
WITH UR
fOR FETCH ONLY
;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
select *
    from a540769.vrtsReoTs
    where dbName like 'MF%'
;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 3 for
 -- find the startpoint for a recovery or logDiscontinuity
 with recSta as
   ( select c.*
         from sysibm.syscopy c
         where c.timestamp =
           ( select max(a.timestamp)
                 from sysibm.syscopy a
                 where c.dbName = a.dbName and c.tsName = a.tsName
                     and c.dsNum = a.dsNum
                     and icType in ('F', 'R', 'S', 'W', 'Y')
           )
   )
 select * from recSta
     where dbName like 'D%' and icType <> 'F'
     order by dbName, tsName, dsNum
 ;
 -- find the startpoint for a recovery or logDiscontinuity
explain plan set queryno = 9 for
 with recSta as
   ( select p.dbName db, p.tsName ts, p.partition pa, q.*
         from sysibm.systablepart p
         left join
     (   select c.*
         from sysibm.syscopy c
         where c.timestamp =
           ( select max(a.timestamp)
                 from sysibm.syscopy a
                 where c.dbName = a.dbName and c.tsName = a.tsName
                     and c.dsNum = a.dsNum
                     and icType in ('F', 'R', 'S', 'W', 'Y')
           )
     ) q
     on q.dbName = p.dbName and q.tsName = p.tsName
            and p.partition = q.dsNum
   )
 select * from recSta
     where dbName like 'D%' and icType <> 'F'
     order by dbName, tsName, dsNum
 ;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
----- query 1532  YXEBV2E,               30.6.09
----- Kumar Sandeep will sequenz  TKS835, TKS833, TKS843, TKS843
-----      seit einem Jahr bind  TKS843, TKS835, TKS833, TKS843
-----
----- 3: partner_*=? in 833 und join : original
explain plan set queryno = 3 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 5: partner_*=? in 835 und join
explain plan set queryno = 5 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V835.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V835.PARTNER_TYPE = 3 AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 35: partner_*=? in 833 und 835 und join: fake filtering
explain plan set queryno = 35 for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
AND V833.PARTNER_KEY = V835.PARTNER_KEY AND
V833.CONTRACT_KEY = V835.CONTRACT_KEY AND V833.PARTNER_TYPE =
V835.PARTNER_TYPE AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
----- 359: partner_*=? in 833 und 835 NO join
explain plan set queryno = 359  for
SELECT 1
FROM oA1P.VKS833A1V V833, oA1P.VKS835A1V V835, oA1P.VKS843A1V V843S,
 oA1P.VKS843A1V V843O
WHERE V833.PARTNER_KEY = ? AND V833.CONTRACT_COLL = ?
AND V833.PARTNER_TYPE = 3
and   V835.PARTNER_KEY = ? AND V835.PARTNER_TYPE = 3
and V833.CONTRACT_KEY = V835.CONTRACT_KEY
AND V835.ARRANGEMENT_TYPE = ? AND
V835.ARRANGEMENT_ID = ? AND V835.SERVICE_KEY = V843S.TAB_CODE AND
V843S.TAB_ART = 'SERVICE_ID' AND V843O.TAB_ART = 'OTHER_CONDITION' AND
V843O.TAB_CODE = V843S.TAB_TEXT3 AND V843O.BU = ? AND CURRENT DATE
BETWEEN V835.VALID_FROM_DATE AND V835.VALID_TO_DATE FETCH FIRST ROW ONLY
 ;
select * from plan_view5a
  --where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
select * from CMNbatch.plan_view5
    where queryno between 142 and 147
    and progname = 'YCI017C'
    order by applname, progname, timestamp, queryNo, qblockno, planno
;
x
explain plan set queryno = 111 for
select * from cmnbatch.plan_view5
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
select * from cmnbatch.plan_view5ss
 -- where progname in ('XBIM33')
    where progname in ('XBIM31', 'XBIM32', 'XBIM33', 'XBIM34' ,
                       'XBIM35', 'XBIM42')
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
x
set current sqlid = 'A540769';
explain plan set queryno = 111 for
    UPDATE bua.TXBH111
    SET ESSTATE = 3 WHERE EAUUIDMQ IN (SELECT
      EAUUIDMQ FROM bua.TXBH111 WHERE EAUUIDHT = '?' )
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
set current sqlId = 'A540769';
delete   from A540769.plan_table
;
explain plan set queryno = 111 for
      select count(*), jobname, max(partition), min(partition)
          from sysibm.syscopy c, sysibm.systablepart p
          where c.dbName = p.dbName and c.tsName = p.tsname
              and c.dsNum in (0, p.partition)
          group by jobName
          order by 1 desc
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
xelect *
    from CMNBATCH.plan_view5
    where progName = 'DBWK3'
    order by applname, progname, queryNo, qblockno, planno
;
xelect count(*), auftrags_nummer, pm_id
    from oa1t.vpw210a1V
    group by auftrags_nummer, pm_id
    order by 1 desc
;
--select count(*) from oa1t.TSN100A1
--    with ur
--    ;
select *
    from CMNBATCH.plan_view5
    where progName = 'YPW2KPI' and queryNo = 4235
    order by applname, progname, queryNo, qblockno, planno
;
x
set current sqlid = 'A540769'
;
delete from plan_table where queryno in (111, 222)
;
select current timestamp from sysibm.sysdummy1
;
 explain plan set queryno = 111 for
         SELECT T.* FROM oa1t.VNI600A101A C
               , oa1t.VNI203A101A T
           WHERE T.PERENDDT >= DATE(C.CTRLTIMESTMPFROM)
           AND C.CTRLID = 'NI6220R'
;
select current timestamp from sysibm.sysdummy1
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
explain plan set queryno = 222 for
    WITH NI600 (PERENDDT) AS
            (SELECT DATE(C.CTRLTIMESTMPFROM) AS ENDDT
               FROM oa1t.VNI600A101A C
               WHERE C.CTRLID = 'NI6220R'
             )
             SELECT T.* FROM NI600
                   ,oa1t.VNI203A101A T
               WHERE T.PERENDDT >= NI600.PERENDDT
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
select * from plan_view5
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
x
select *
    from cmnbatch.plan_view5
    where progName = 'YRPNIMP' and queryNo = 866
    order by applname, progname, queryNo, qblockno, planno
;
x
         d.bType, p.collid, p.Name, p.version,
 p.conToken, p.timeStamp, p.type,
 p.validate, p.isolation, p.valid, p.operative,
 p.owner, p.qualifier
m sysibm.syspackdep d join sysibm.syspackage p
 on p.location = d.dLocation and p.collid = d.dCollid
     and p.name = d.dName and  p.conToken = d.dConToken     2.22.129867'
re
 (bQualifier, bName, bType) in
 (  select dbName, name, 'R'
         from sysIbm.sysTablespace
         where dbName in ('NF01A1A', 'NF02A1A', 'NF03A1A')
 )
     from gdb0283.vnz240a1v
    where    SearchValue01            = ?
          -- dec(SearchValue01,15,3)  = ?
      and CreateDateTime           < ?
      and dec(SearchValue02,15,3) >= ?
      and dec(SearchValue02,15,3) <= ?
      and Objtype                 ^= 'PORDSPLT'
    order by CreateDateTime
    fetch first 101 rows only
    optimize for 101 rows
    with ur
;
select * from plan_view5A
    where queryno = 999
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
select * from plan_table
    order by applname, progname, queryNo, qblockno, planno
;
rollback
;
set current path oa1p;
set current schema = RZ2XX;
with t as
(
select plan_name,
       min(timestamp - class1_elapsed seconds) von,
       (max(timestamp)) bis
    from       TACCT_general
    where -- timestamp > timestamp(date(current_timestamp - 2 days)
          --  , '00.00.00') and
        plan_name in ('NI5340', 'NI5310')
    group by date(timestamp), plan_name
    order by date(timestamp), plan_name
)
SELECT t.*, p.PLAN_NAME, substr(PCK_ID, 1, 10),
       count(*) "count",
       avg(class7_elapsed) "avgElapsed" ,
       sum(class7_elapsed) "totElapsed" ,
       min(class7_elapsed) "minElapsed" ,
       max(class7_elapsed) "maxElapsed" ,
       min(timestamp -class7_elapsed seconds) "minStart",
       max(timestamp) "maxEnd"
    from       TACCT_Program p, t
    where  -- timestamp > timestamp(date(current_timestamp - 2 days)
           -- , '00.00.00') and
          (    (PCK_COLLECTION_ID = 'NI'
                  and pck_id in (  'NI6210',
                                   'NI6260',
                                   'NI6860',
                                   'NI7600',
                                   'NI9700',
                                   'NI9740',
                                   'YNI0131',
                                   'YNI0183',
                                   'YNI0350',
                                   'YNI56SR',
                                   'YNICAMU',
                                   'YNICRSS',
                                   'YNICTEU',
                                   'YNINP03',
                                   'YNIPACG',
                                   'YNIPAMG',
                                   'YNIPAMU',
                                   'YNIPFLG',
                                   'YNIPREG',
                                   'YNIPTEG',
                                   'YNIPTEU',
                                   'YNIREST'))
              or (PCK_COLLECTION_ID in ('NI01', 'NI02')
                  and pck_id in (  'YNICL03',
                                   'YNINP03',
                                   'YNIPACG'))
              or (PCK_COLLECTION_ID = 'OA1P'
                  and pck_id in (  'NI660AAI')))
        and p.timestamp >= t.von
        and p.timestamp -class7_elapsed seconds <= t.bis
    group by t.PLAN_NAME, t.von, t.bis,
             p.plan_name, p.pck_id
    order by 1, 2, 3, 5, 6
    with ur
;
}¢--- A540769.WK.SQL(PDBGENNK) cre=2010-10-04 mod=2010-10-15-12.42.10 A540769 ---
set current path oa1p;
select date(timestamp),
        substr(subsystem_id, 1, 4)  "subS",
        fosFmtE7(CLASS1_ELAPSED)    "c1Ela",
        fosFmtE7(CLASS1_cpu_total)  "c1Cpu",
        fosFmtE7(CLASS2_ELAPSED)    "c2Ela",
        fosFmtE7(CLASS2_cpu_total)  "c2Cpu",
        fosFmtE7(CLASS3_LOCK_LATCH) "c3LoLa",
        fosFmtE7(CLASS3_SYNC_IO)    "c3SycIO",
        fosFmtE7(CLASS3_DB_IO)      "c3DbIo",
        fosFmtE7(class3_LOG_WRT_IO) "c3LogIo",
        g.*
    from RZ2DD.TACCT_GENERAL g
    where corrName  = 'NIT6700P'
         and timestamp >       '2009-01-01-00.00.00'
         and CLASS2_CPU_total > 100
    order by timestamp        desc
    fetch first 100 rows only
    with ur
;x;
select timestamp, plan_name,
        sum(occurrences) occ,
        sum(CLASS1_ELAPSED) / sum(occurrences) c1Ela    ,
        sum(CLASS1_CPU_TOTAL) / sum(occurrences) c1Cpu  ,
        sum(CLASS2_ELAPSED) / sum(occurrences) c2Ela  ,
        sum(CLASS2_CPU_TOTAL) / sum(occurrences) c2Cpu
    from RZ2MM.TACCT_GENERAL g
    where plan_Name in ('XBLE80', 'XBLE82', 'XBLE84')
         and subsystem_id like 'DBP%'
         and timestamp between   '2010-09-18-14.00.00'
                           and   '2010-09-18-18.00.00'
    group by timestamp, plan_name
    order by plan_name, 4 desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENNT) cre=2010-07-01 mod=2010-07-01-11.51.20 A540769 ---
set current path oa1p;
set current schema = RZ1xx;
select *
    from       TACCT_GENERAL g
    where timestamp between '2009-06-30-14.00.00'
                        and '2013-06-30-22.00.00'
        and subsystem_id like 'DTF%'
        and corrName     like 'NIT16%'
        order by corrName, timestamp
;x;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '2019-05-19-11.00.00'
                               and '2019-05-19-12.30.00'
              or timestamp between '2019-05-19-13.00.00'
                               and '2019-05-19-13.30.00' then 'a'
            when timestamp between '2019-05-19-16.00.00'
                               and '2019-05-19-23.00.00' then 'b'
            when timestamp between '2019-04-14-21.50.00'
                               and '2019-04-14-23.20.00' then 'c'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
--  where not    timestamp between '2010-05-19-12.30.00'
--                             and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
       count(distinct subsystem_id) "#ssid", plan_name
    from g
    where timestamp > current timestamp - 9992 month
      --  and connect_ID like 'NI229%'
      m   and plan_name in ( 'NI5310', 'NI5340')
      --  and insert >= 1
      group by g1, g2, plan_name
      having sum(insert+update) > 0
      order by plan_Name, 1 desc
    with ur
;
X;
select *
    from     TACCT_GENERAL g
    where     plan_name in (           'NI5340')
    and timestamp > current timestamp - 2 days
    order by timestamp
    with ur
;x;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
    from RZ2dd.TACCT_GENERAL g
    where timestamp > current timestamp - 1 month
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    group by timestamp
    ORDER BY Timestamp desc
    with ur
;
X
select plan_name,
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp > '2010-03-21-00.30.00.000'
      and timestamp < '2010-03-21-02.30.00.000'
      --  and connect_ID like 'NI229%'
      --  and plan_name = 'NI5340'
      --  and insert >= 1
    group by plan_name
    order by sum(select+insert+update+delete) desc
    with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
       sum(class2_elapsed) / sum(insert) "ela/ins" ,
       sum(class2_cpu_total) / sum(insert) "cpu/ins",
       sum(LOCK_LATCH_SUSP),
       sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
       sum(SYNC_IO_SUSP),
       sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
       sum(occurrences)  occ,
       timestamp
    from RZ2hh.TACCT_GENERAL g
    where timestamp > current timestamp - 2 DAY
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    ORDER BY Timestamp desc
    with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from RR2HH.TACCT_GENERAL g
 -- where corrName like 'NI%'
    group by subsystem_id
    order by subsystem_id
    with ur
;
xelect class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RR2HH.TACCT_GENERAL g
    where -- timestamp > current timestamp - 120 DAY
              corrname like 'NI229%'
 --        or corrname like 'NI22922%'
   --     and plan_name like 'DSNUT%'
   --     and insert >= 1
    ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENNZ) cre=2011-07-12 mod=2012-06-04-15.11.49 A540769 ---
select class2_elapsed / max(1, commit + rollback)
     , g.*
    from RZ2xx.TACCT_GENERAL g
    where plan_name in ('VZ56C'
                       ,'VZ52C'
                       ,'NTA1P'
                       )
        and class1_elapsed > 100
        and timestamp between '2012-06-03-20:48:00.36'
                          and '2012-06-03-23.10.35.53'
    order by timestamp
;x;
select hour(timestamp)      , count(*),
        sum(class1_elapsed) "c1ela",
        sum(class1_cpu_total) "c1cpu",
        sum(class2_elapsed) "c2ela",
        sum(class2_cpu_total) "c2cpu",
        sum(select+open+fetch+insert+update+delete) "stmts",
        sum(occurrences) occ
    from RZ2hh.TACCT_GENERAL g
    where corrName in ('NZ20', 'VZ52')
        and timestamp >=      '2012-05-24-00.00.00'
    group by hour(timestamp)
    order by 3 desc
;x;
select trunc_timestamp(timestamp, 'DD'),
       int(sum(select             )) sel,
       int(sum(RID_POOL_USED      )) ridUsed,
       int(sum(RID_POOL_FAIL_NOSG )) ridFaiSG,
       int(sum(RID_POOL_FAIL_MXLT )) ridFaiMX
    from RR2DD.TACCT_GENERAL g
    where plan_name = 'NZ5820'
         and timestamp >       '2012-05-17-00.00.00'
    group by trunc_timestamp(timestamp, 'DD')
    order by 1         desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENOP) cre=2010-04-06 mod=2010-04-06-15.14.38 A540769 ---
set current path oa1p;
set current schema = RZ2HH;
select timestamp,
       fosFmte7(sum(select)) "select",
       fosFmte7(sum(fetch)) "fetch",
       fosFmte7(sum(open)) "open",
       fosFmte7(sum(insert)) "insert"
      ,fosFmte7(sum(update)) "update"
      ,fosFmte7(sum(delete)) "delete"
      ,fosFmte7(sum(commit)) "commit"
      ,fosFmte7(sum(rollback)) "rollBa"
    from       TACCT_GENERAL g
    where subsystem_id like 'DOF%'
         and timestamp > '2010-03-01-00.00.00'
    group by timestamp
    order by sum(insert) desc
    with ur
;
x
select trunc_timestamp(timestamp, 'HH'),
       fosFmte7(sum(select)) "select",
       fosFmte7(sum(fetch)) "fetch",
       fosFmte7(sum(open)) "open",
       fosFmte7(sum(insert)) "insert"
      ,fosFmte7(sum(update)) "update"
      ,fosFmte7(sum(delete)) "delete"
      ,fosFmte7(sum(commit)) "commit"
      ,fosFmte7(sum(rollback)) "rollBa"
    from       TACCT_GENERAL g
    where subsystem_id like 'DOF%'
         and timestamp > '2010-03-01-00.00.00'
    group by trunc_timestamp(timestamp, 'HH')
    order by sum(insert) desc
    with ur
;
set current schema = RZ2DD;
select date(timestamp),
       fosFmte7(sum(select)) "select",
       fosFmte7(sum(fetch)) "fetch",
       fosFmte7(sum(open)) "open",
       fosFmte7(sum(insert)) "insert"
      ,fosFmte7(sum(update)) "update"
      ,fosFmte7(sum(delete)) "delete"
      ,fosFmte7(sum(commit)) "commit"
      ,fosFmte7(sum(rollback)) "rollBa"
    from       TACCT_GENERAL g
    where subsystem_id like 'DOF%'
         and timestamp > '2010-03-01-00.00.00'
    group by date(timestamp)
    order by date(timestamp) desc
    with ur
;
x
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(commit)) com,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
       count(distinct subsystem_id) "#ssid", plan_name
    from g
    where timestamp > current timestamp - 9992 month
      --  and connect_ID like 'NI229%'
          and plan_name in ( 'NI5310', 'NI5340')
      --  and insert >= 1
      group by g1, g2, plan_name
      order by plan_Name, 1 desc
    with ur
;
X
set current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
    from RZ2dd.TACCT_GENERAL g
    where timestamp > current timestamp - 1 month
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    group by timestamp
    ORDER BY Timestamp desc
    with ur
;
X
select plan_name,
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp > '2010-03-21-00.30.00.000'
      and timestamp < '2010-03-21-02.30.00.000'
      --  and connect_ID like 'NI229%'
      --  and plan_name = 'NI5340'
      --  and insert >= 1
    group by plan_name
    order by sum(select+insert+update+delete) desc
    with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
       sum(class2_elapsed) / sum(insert) "ela/ins" ,
       sum(class2_cpu_total) / sum(insert) "cpu/ins",
       sum(LOCK_LATCH_SUSP),
       sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
       sum(SYNC_IO_SUSP),
       sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
       sum(occurrences)  occ,
       timestamp
    from RZ2hh.TACCT_GENERAL g
    where timestamp > current timestamp - 2 DAY
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    ORDER BY Timestamp desc
    with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from RR2HH.TACCT_GENERAL g
 -- where corrName like 'NI%'
    group by subsystem_id
    order by subsystem_id
    with ur
;
xelect class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RR2HH.TACCT_GENERAL g
    where -- timestamp > current timestamp - 120 DAY
              corrname like 'NI229%'
 --        or corrname like 'NI22922%'
   --     and plan_name like 'DSNUT%'
   --     and insert >= 1
    ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENPC) cre=2012-05-24 mod=2012-05-24-07.34.25 A540769 ---
select *
    from rz2xx.tacct_general
    where timestamp > '2012-05-22-00.00.00'
      and corrname = 'PC5020'
  --  and corrnum  = '0110'
    order by timestamp desc
}¢--- A540769.WK.SQL(PDBGENPK) cre=2012-04-17 mod=2012-04-17-15.21.24 A540769 ---
--    vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with g as
  (
  SELECT DATE(TIMESTAMP) AS DATUM
        ,SUM(SELECT+INSERT+UPDATE+delete+open+fetch+close) as mdl
        ,SUM(CLASS2_su_cpu) C2_SU
        ,SUM(CLASS2_su_cpu) /
         SUM(SELECT+INSERT+UPDATE+delete+open+fetch+close) as su_st
        ,sum(CLASS2_CPU_TOTAL) C2_CPU
    FROM RZ2DD.TACCT_GENERAL
      WHERE TIMESTAMP >= '2012-03-01-00.00.00.000000'
        AND GROUP_NAME = 'DBOF'
    GROUP BY DATE(TIMESTAMP)
  ) , p as
  (
    SELECT DATE(TIMESTAMP) AS DATUM
          ,SUM(SQL_STMTS_ISSUED) AS ANZ_SQL
          ,SUM(CLASS7_SU_CPU) AS SU_CLASS7
          ,SUM(CLASS7_SU_CPU)/SUM(SQL_STMTS_ISSUED) as su_st_p
          ,sum(CLASS7_CPU_TOTAL) as CPU_C7
      FROM RZ2DD.TACCT_PROGRAM
        WHERE TIMESTAMP >= '2012-03-01-00.00.00.000000'
          AND GROUP_NAME = 'DBOF'
      GROUP BY DATE(TIMESTAMP)
  )
  select coalesce (p.datum, g.datum) datum
        ,substr(fosFmte7(C2_CPU), 1, 7) c2_cpu
        ,substr(fosFmte7(CPU_C7), 1, 7) c7_cpu
        ,substr(fosFmte7(C2_SU), 1, 7) c2_su
        ,substr(fosFmte7(SU_CLASS7), 1, 7) c7_su
        ,substr(fosFmte7(mdl), 1, 7) gen_st
        ,substr(fosFmte7(anz_sql), 1, 7) pg_st
        ,substr(fosFmte7(C2_SU/mdl), 1, 7) gen_su_st
        ,substr(fosFmte7(SU_CLASS7/anz_sql), 1, 7) pg_su_st

   from g full join p
     on p.datum = g.datum
    ORDER BY 1 DESC
;;;;;;;
  SELECT DATE(TIMESTAMP) AS DATUM
        ,DEC(SUM(SELECT)) AS SELECT
        ,DEC(SUM(INSERT)) AS INSERT
        ,DEC(SUM(CLASS2_CPU_TOTAL)) SUM_CLASS2
    FROM RZ1DD.TACCT_GENERAL
      WHERE TIMESTAMP >= '2012-04-01-00.00.00.000000'
        AND GROUP_NAME = 'DBAF'
    GROUP BY DATE(TIMESTAMP)
    ORDER BY DATE(TIMESTAMP) DESC
  ;
}¢--- A540769.WK.SQL(PDBGENPR) cre=2010-09-10 mod=2010-11-22-16.23.12 A540769 ---
select * -- corrName, min(timestamp), max(timestamp), count(*)
    from RZ1xx.TACCT_GENERAL g
    where      plan_Name = 'PVPOSY'
        and  subsystem_id like 'DAF%'
        and  timestamp between '2010-11-14-00.00.19.176317'
                           and '2010-11-17-19.55.21.911467'
 --   group by corrName
 --   order by corrName
;x;
select *
    from RZ1dd.TACCT_GENERAL g
    where      corrName = 'PVABRUFA'
   --   and  subsystem_id like 'DAF%'
        and  timestamp between '2010-09-01-00.00.19.176317'
                           and '2011-09-07-19.55.21.911467'
    order by timestamp
;x;
           ) and
       --    subsystem_id like 'DAF%'
             timestamp between '2010-09-06-13.40.19.176317'
                           and '2011-09-09-18.49.21.911467'
select *
    from RZ1xx.TACCT_GENERAL g
    where -- (   corrName like 'A343905%'
        -- and  plan_name like 'PVPOS%'
        --   ) and
       --    subsystem_id like 'DAF%'
             timestamp =       '2010-09-07-14.11.54.964347'
;x;
             timestamp between '2010-09-06-13.40.19.176317'
                           and '2011-09-09-18.49.21.911467'
SELECT  *
    FROM RZ1XX.TACCT_PROGRAM
    where    timestamp between '2010-09-07-14.00.00'
                           and '2010-09-07-15.55.00'
    AND PCK_ID   like 'A5PO356%'
;x;
select *
    from RZ1xx.TACCT_GENERAL g
    where  (   corrName like 'PVABRUFA'
         and  plan_name like 'PVPOS%'
           ) and
       --    subsystem_id like 'DAF%'
             timestamp between '2010-09-06-13.40.19.176317'
                           and '2011-09-09-18.49.21.911467'
 -- order by corrname
    order by class1_elapsed desc
;x;
select *
    from RZ1xx.TACCT_GENERAL g
    where   timestamp in ( '2010-09-07-14.35.31.976691',
                           '2010-09-07-14.39.19.176317',
                           '2010-09-07-14.39.21.911467')
;x;
SELECT  *
    FROM RZ1XX.TACCT_PROGRAM
    where    timestamp between '2010-09-07-14.00.00'
                           and '2010-09-07-15.33.00'
    AND PCK_ID   like 'A5PO%'
;x;
             or plan_name like 'PVPO%')
         and subsystem_id = 'DAF1'
         and timestamp between '2010-09-07-14.00.00'
                           and '2010-09-07-15.33.00'
 -- order by corrname
    order by class1_elapsed desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENPW) cre=2012-02-03 mod=2012-09-10-16.10.11 A540769 ---
set current path = oa1p;
set current path = oa1p;
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2XX.TACCT_GENERAL g
    where plan_name in ('PW5200', 'PW5220')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-01-05-00.00.00'
                        and '2012-12-02-00.00.00'
)
select plan_name,
      fosFmte7(min(class1_elapsed/cr)                ) "c1ela min",
      fosFmte7(max(class1_elapsed/cr)                ) "c1ela max",
      fosFmte7(sum(class1_elapsed)/sum(cr)           ) "c1ela/coR",
      fosFmte7(sum(class2_elapsed)/sum(cr)           ) "c2ela/coR",
      fosFmte7(sum(class1_cpu_total)/sum(cr)) "c1cpu/coR",
      fosFmte7(sum(class2_cpu_total)/sum(cr)) "c2cpu/coR",
      fosFmte7(sum(CLASS3_ASYNCH_IXL)  /sum(cr)           ) "c3IXL/coR",
      int(sum(occurrences))  "occur",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
      fosFmte7(sum(sqls)/sum(cr)           ) "sqls/coR",
          fosFmte7(sum(class3_global_cont)/sum(cr)) "c2gloCon",
          fosFmte7(sum(class3_DB_IO)/sum(cr)) "c3dbIo",
          fosFmte7(sum(class3_LOG_WRT_IO)/sum(cr)) "c2logIo",
          fosFmte7(sum(real(OPEN_CLOSE_SUSP))/sum(cr)) "opClo",
          fosFmte7(sum(CLASS3_OPEN_CLOSE)/sum(cr)) "c3opClo",
          fosFmte7(sum(real(SERV_TASK_SUSP))/sum(cr)) "serTa",
          fosFmte7(sum(CLASS3_SERV_TASK)/sum(cr)) "c3serTa",
          fosFmte7(sum(real(commit))/sum(cr)) "commit",
          fosFmte7(sum(real(rollback))/sum(cr)) "rollback",
          fosFmte7(sum(real(select))/sum(cr)) "select",
          fosFmte7(sum(real(open) )/sum(cr)) "open",
          fosFmte7(sum(real(fetch) )/sum(cr)) "fetch",
          fosFmte7(sum(real(insert))/sum(cr)) "insert",
          fosFmte7(sum(real(update))/sum(cr)) "update",
          fosFmte7(sum(real(delete))/sum(cr)) "delete",
          fosFmte7(sum(real(INCREMENTAL_BIND))/sum(cr))"incrBi",
          fosFmte7(sum(real(PROGRAMS))      /sum(cr)) "pkgs",
          min(timestamp), max(timestamp)
    from s
    group by plan_name, floor(log10(class1_elapsed/max(cr, 1))*3)
    order by plan_name, min(class1_elapsed/max(cr, 1))
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2HH.TACCT_GENERAL g
    where plan_name in ('PW5200', 'PW5220')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-01-01-00.00.00'
                        and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
      plan_name,
      fosFmte7((class1_elapsed)/(cr)                 ) "c1ela/coR",
      fosFmte7((class2_elapsed)/(cr)                 ) "c2ela/coR",
      fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
      fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
      fosFmte7((CLASS3_ASYNCH_IXL)     /(cr)              ) "c3IXL/coR",
      int((occurrences))     "occ",
      int((commit))     "commit",
      int((rollback))     "rollBack",
      fosFmte7((sqls)/(cr)                 ) "sqls/coR",
          fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
          fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
          fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
          fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
          fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
          fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
          fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
          fosFmte7((real(commit))/(cr)) "commit",
          fosFmte7((real(rollback))/(cr)) "rollback",
          fosFmte7((real(select))/(cr)) "select",
          fosFmte7((real(open) )/(cr)) "open",
          fosFmte7((real(fetch) )/(cr)) "fetch",
          fosFmte7((real(insert))/(cr)) "insert",
          fosFmte7((real(update))/(cr)) "update",
          fosFmte7((real(delete))/(cr)) "delete",
        fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
          fosFmte7((real(PROGRAMS))         /(cr)) "pkgs"
    from s
 -- group by trunc_timestamp(timestamp,'HH'), plan_name
    order by plan_name, (class1_elapsed)/(cr) desc
    fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
    from rz1xx.tacct_program
    where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
    group by plan_name
    with ur
set current path = oa1p;
with i as
(
select plan_name
     , sum(class2_elapsed) ela
     , sum(class2_cpu_total) cpu
     , sum(commit) com
     , sum(select) sel
     , sum(open) op
     , sum(fetch) fet
     , min(timestamp) von
     , max(timestamp) bis
    from rz2mm.tacct_general
    where timestamp > '2011-01-01 00:00:00' and commit > 0
        and plan_name in ('PW0602', 'PW0408')
    group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
     , fosFmte7(ela / com)   "ela/com"
     , fosFmte7(com) commit
     , fosFmtE7(cpu / com)   "cpu/com"
     , fosFmtE7(sel / com)   "sel/Com"
     , fosFmtE7(op  / com)   "ope/Com"
     , fosFmtE7(fet / com)   "fet/Com"
     , von , bis
    from i
    order by plan_name, ela/com desc
    with ur
}¢--- A540769.WK.SQL(PDBGENQR) cre=2011-02-03 mod=2012-06-15-17.17.19 A540769 ---
set current path oa1p;
set current schema = RZ2XX;
select count(*), dec(avg(class1_elapsed), 10, 6) avg,
                 min(class1_elapsed), max(class1_elapsed),
                 min(timestamp), max(timestamp),
                 max(commit + rollback)

    from       TACCT_GENERAL g
    where  plan_name = 'VZ52C'
--             timestamp > current timestamp - 992 days
          --   timestamp between '2011-01-23-09.53.00'
          --                 and '2011-01-23-09.54.43'
  --  and    class1_elapsed >  60
  --  and rollback > 0
  --  and (    corrName like 'QR00315%'
  --       or  corrName like 'QR00316%'
  --      )
  --  and CLASS3_DRAIN_LOCK < 10
--  order by timestamp desc
--  order by class1_elapsed desc
    group by floor(2*log10(class1_elapsed))
    order by 4
    fetch first 100 rows only
    with ur
;;;
select *
    from       TACCT_GENERAL g
    where      timestamp between '2011-01-23-09.53.00'
                             and '2011-01-23-09.54.43'
      and    class1_elapsed > 200
  --  and rollback > 0
  --  and (    corrName like 'QR00315%'
  --       or  corrName like 'QR00316%'
  --      )
    order by timestamp desc
--  order by class1_elapsed desc
    with ur
;;
set current path oa1p;
set current schema = RZ2MM;
select dayofWeek(timestamp), class1_elapsed, class2_elapsed,
       fosFmte7(occurrences) occ,
       fosFmtE7(   (select)) sel,
       fosFmtE7(   (insert)) ins,
                    update   upd,
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'MF7800'
         and timestamp between '2010-12-19-00.00.00'
                       and     '2010-12-20-00.00.00'
    order by timestamp desc
    with ur
;  x
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 3  days
      and (    corrName like 'MFT15%'
            or corrName like 'MFT18%'
            or corrName like 'MFT56%'
            or connect_id like  'MFT56%'
            or corrName =    'MFT3100P'
          )
    order by timestamp desc
    with ur
;
x;
set current path oa1p;
set current schema = RR2HH;
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 5  days
      and      corrName = 'YMFNVLOH'
    order by timestamp desc
    with ur
;
x;
select timestamp - class1_elapsed seconds "von",
       timestamp "bis",
       g.*
    from       TACCT_GENERAL g
    where -- timestamp > current timestamp - 2  days
              (corrName like 'A895326%' or corrName like 'MF%')
      --  and connect_ID like 'NI229%'
          and plan_name like 'MF%'
          and subsystem_id like 'DZF%'
      --  and insert >= 1
      order by timestamp    desc
    with ur
;x;
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp >=      '2010-07-27-00.00.00'
    group by subsystem_id
;x;
select min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
;x;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '2000-05-19-11.00.00'
                               and '2000-05-19-12.30.00' then 'x'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
    where not    timestamp between '2010-05-19-12.30.00'
                               and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(occurrences)) occ,
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(class1_cpu_total)) "tot cpu",
       fosFmte7(sum(class2_cpu_total)) "db2 cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(CLASS3_GLOBAL_CONT)) "gloCon",
       oa1p.fosFmtE7(sum(select)) "select",
       oa1p.fosFmtE7(sum(open)) "open",
       oa1p.fosFmtE7(sum(fetch)) "fetch",
       oa1p.fosFmtE7(sum(commit)) "commit",
       oa1p.fosFmtE7(sum(insert)) "insert",
       oa1p.fosFmtE7(sum(update)) "update",
       oa1p.fosFmtE7(sum(delete)) "delete",
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
       count(distinct subsystem_id) "#ssid",
       plan_name,
       min(connect_id) || '-' || max(connect_id) "connectionId"
    from g
    where timestamp > current timestamp - 666 days
      --  and connect_ID like 'NI229%'
          and plan_name in ( 'MF8500', 'MF7230', 'MF7310')
          and (plan_name <> 'MF8500' or connect_id like 'MFT56%')
      --  and insert >= 1
      group by g1, g2, plan_name, left(connect_Id, 5)
      having sum(insert+update) > 0
      order by plan_Name, 1 desc
    with ur
;
X;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
    from RZ2dd.TACCT_GENERAL g
    where timestamp > current timestamp - 1 month
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    group by timestamp
    ORDER BY Timestamp desc
    with ur
;
X
select plan_name,
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp > '2010-03-21-00.30.00.000'
      and timestamp < '2010-03-21-02.30.00.000'
      --  and connect_ID like 'NI229%'
      --  and plan_name = 'NI5340'
      --  and insert >= 1
    group by plan_name
    order by sum(select+insert+update+delete) desc
    with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
       sum(class2_elapsed) / sum(insert) "ela/ins" ,
       sum(class2_cpu_total) / sum(insert) "cpu/ins",
       sum(LOCK_LATCH_SUSP),
       sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
       sum(SYNC_IO_SUSP),
       sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
       sum(occurrences)  occ,
       timestamp
    from RZ2hh.TACCT_GENERAL g
    where timestamp > current timestamp - 2 DAY
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    ORDER BY Timestamp desc
    with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from RR2HH.TACCT_GENERAL g
 -- where corrName like 'NI%'
    group by subsystem_id
    order by subsystem_id
    with ur
;
xelect class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RR2HH.TACCT_GENERAL g
    where -- timestamp > current timestamp - 120 DAY
              corrname like 'NI229%'
 --        or corrname like 'NI22922%'
   --     and plan_name like 'DSNUT%'
   --     and insert >= 1
    ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENRR) cre=2010-07-15 mod=2010-07-15-15.17.07 A540769 ---
SELECT
WEEK(TIMESTAMP) AS WEEK
,DEC(SUM(OCCURRENCES),25,0) AS OCCURRENCES
,DEC(SUM(CLASS1_ELAPSED),25,0) AS CLASS1_ELAPSED
,DEC(SUM(CLASS1_CPU_TOTAL),25,0) AS CLASS1_CPU_TOTAL
,DEC(SUM(CLASS2_ELAPSED),25,0) AS CLASS2_ELAPSED
,DEC(SUM(CLASS2_CPU_TOTAL),25,0) AS CLASS2_CPU_TOTAL
FROM RZ2DD.TACCT_GENERAL
WHERE TIMESTAMP >= '2010-05-10-00.00.00.000000'
AND TIMESTAMP <= '2010-07-15-00.00.00.000000'
AND CORRNAME LIKE 'QR%'
GROUP BY WEEK(TIMESTAMP)
ORDER BY WEEK DESC
}¢--- A540769.WK.SQL(PDBGENRX) cre=2012-05-29 mod=2012-05-29-15.05.26 A540769 ---
set current path oa1p;
select *
    from rz2hh.tacct_general
    where plan_name = 'DSNREXX'
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
        and dayofweek_iso(timestamp) <= 5
              AND hour(timestamp) between 9 and 11

    order by
                       CLASS2_CPU_TOTAL desc
;;;
set current path oa1p;
select
       date(trunc_timestamp(timestamp, 'ddd')),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('YCDSGET')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timesta p) between 9 and 11

    group by  pck_id, pck_collection_id ,
                        trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBGENSN) cre=2011-04-19 mod=2011-09-29-10.51.33 A540769 ---
select sum(class2_elapsed) / max(1, sum(commit)), sum(commit)
    from RZ2DD.TACCT_GENERAL g
    where plan_name = 'SN0100'
         and timestamp >       '2011-09-01-00.00.00'
    group by date(timestamp)
    order by date(timestamp)
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENSU) cre=2012-01-26 mod=2012-01-26-16.31.57 A540769 ---
select *
    from rr2xx.tstat_general
    WHERE subsystem_id = 'DOF2'
    and INTERVAL_TSTAMP  between '2012-01-19-00.00.00'
                             and '2012-01-20-00.00.00'
    order by INTERVAL_TSTAMP desc
;;;
set current path = 'OA1P';
select *
    from rr2xx.tacct_program
    WHERE PCK_ID = 'YSUDCFC'
         and plan_name = 'WC0217' -- and subsystem_id = 'DOF2'
         and timestamp between '2012-01-19-00.00.00'
                           and '2012-01-20-00.00.00'
    order by class7_elapsed desc
    with ur
    ;
select fosfmte7(class1_elapsed) c1ela
      ,fosfmte7(class3_global_cont) "gloCon"
      ,fosfmte7(class3_page_latch) "pgLat"
      , g.*
    from rr2xx.tacct_general g
    WHERE --PCK_ID = 'YSUDCFC' and
          plan_name = 'WC0217' -- and subsystem_id = 'DOF2'
         and timestamp between '2012-01-19-00.00.00'
                           and '2012-01-20-00.00.00'
    order by class1_elapsed desc
    with ur
;;;
select *
    from rr2xx.tacct_program
    WHERE PCK_ID in('DADSP203'
                   ,'DADSP202'
                   ,'WEBM051'
                   ,'WEBM051N'
                   )
         and plan_name = 'WC0217' and subsystem_id = 'DOF2'
         and timestamp between '2012-01-19-00.00.00'
                           and '2012-01-20-00.00.00'
    order by class7_elapsed desc
    with ur
    ;;;;
}¢--- A540769.WK.SQL(PDBGENSV) cre=2012-01-26 mod=2012-01-26-09.19.45 A540769 ---
select *
    from RR2XX.TACCT_GENERAL g
    where -- corrName = 'SVJ2000P'
             plan_name = 'SV8500'
         and timestamp >       '2012-02-01-00.00.00'
    order by timestamp desc
    with ur
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENTB) cre=2010-07-01 mod=2011-05-11-12.43.59 A540769 ---
       -- ERR
       -- RR2
       -- RR4
       -- RZ1
       -- RZ2
       -- RZ4
SELECT min(subsystem_id), max(subsystem_id),
       count(*), 'ERR' cre, '-', '-'
    from ERRXX.TACCT_GENERAL
    group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
       count(*), 'RR2' cre, min(group_name), max(group_Name)
    from RR2XX.TACCT_GENERAL
    group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
       count(*), 'RR4' cre, min(group_name), max(group_Name)
    from RR4XX.TACCT_GENERAL
    group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
       count(*), 'RZ1' cre, min(group_name), max(group_Name)
    from RZ1XX.TACCT_GENERAL
    group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
       count(*), 'RZ2' cre, min(group_name), max(group_Name)
    from RZ2XX.TACCT_GENERAL
    group by left(subsystem_id, 3)
union all
SELECT min(subsystem_id), max(subsystem_id),
       count(*), 'RZ4' cre, min(group_name), max(group_Name)
    from RZ4XX.TACCT_GENERAL
    group by left(subsystem_id, 3)
    order by 4, 1
    with ur
;;;;
SELECT id, rz, insDate, count(*)
         , min(timestamp), max(timestamp)
    from A540769.TACCT_GENERAL
    group by id, rz, insDate
    order by insDate desc, id, rz
;;;::
set current sqlId = 'S100447';
-- alter table A540769.TACCT_GENERAL
--    add column insDate date not null with default '01.01.0001';
commit;
-- drop tablespace dA540769.aGen;
commit;
CREATE TABLESPACE AGEN
  IN DA540769
  USING STOGROUP GSMS
  FREEPAGE 10 PCTFREE 12
  SEGSIZE 64
  BUFFERPOOL BP2
  LOCKSIZE ANY
  COMPRESS YES;
create table A540769.TACCT_GENERAL
     as (select char('id', 15) id,
                char('RZ2', 4) rz,
                current date   insDate,
                g.*
              from rz2xx.TACCT_GENERAL g) with no data
     in dA540769.aGen
;
commit;
create unique index A540769.IACCT_GENERAL on A540769.TACCT_GENERAL
     (id, rz, timestamp, subsystem_id)
;
commit;
}¢--- A540769.WK.SQL(PDBGENTG) cre=2011-08-31 mod=2011-08-31-08.22.42 A540769 ---
select *
    from RZ1XX.TACCT_Program g
    where plan_name in ('TG5900')
      -- and (corrname like 'F495683%'
      --      or connect_id like 'F495683%'
      --     )
         and ( timestamp between '2011-08-25-13.50.00'
                             and '2011-08-25-14.20.00'
            or timestamp between '2011-08-25-11.45.00'
                             and '2011-08-25-12.09.00'
             )
         and pck_id = 'YTG002'
    order by timestamp desc
    with ur
;
select *
    from RZ1XX.TACCT_General g
    where plan_name in ('TG5900')
      -- and (corrname like 'F495683%'
      --      or connect_id like 'F495683%'
      --     )
         and ( timestamp between '2011-08-25-13.50.00'
                             and '2011-08-25-14.20.00'
            or timestamp between '2011-08-25-11.45.00'
                             and '2011-08-25-12.09.00'
             )
    order by timestamp desc
    with ur
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENTL) cre=2011-05-11 mod=2011-05-11-12.56.41 A540769 ---
//A540769L  JOB (CP00,KE50),                                            00010001
//         MSGCLASS=T,TIME=1440,LINES=(999999,WARNING),
//         NOTIFY=A540769
//*MAIN CLASS=LOG
//S1       EXEC PGM=DSNUTILB,PARM='DBOC,A540769L.LOAD'                  00020001
//SYSPRINT DD SYSOUT=*
//UTPRINT DD SYSOUT=*
//SYSTEMPL  DD DSN=DBOC.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN    DD *
TEMPLATE DBU4GQGQ
     DSN('DBOC.DA540769.AGEN.P00000.D110511.REC')
     DISP(OLD,KEEP,KEEP)
LOAD DATA INDDN DBU4GQGQ LOG NO REPLACE COPYDDN(TCOPYD)
 EBCDIC  CCSID(00500,00000,00000)
 SORTKEYS
  SORTDEVT DISK
  WORKDDN(TSYUTD,TSOUTD)
 INTO TABLE
 "A540769".
 "TACCT_GENERAL"
 WHEN(00001:00002) = X'0008'
 NUMRECS                22781
 ( "ID"
  POSITION(  00003:00017) CHAR(00015)
 , "RZ"
  POSITION(  00018:00021) CHAR(00004)
 , "PARTSPLIT"
  POSITION(  00022:00023) SMALLINT
 , "OCCURRENCES"
  POSITION(  00024:00027) INTEGER
 , "SUBSYSTEM_ID"
  POSITION(  00028:00031) CHAR(00004)
 , "TIMESTAMP"
  POSITION(  00032:00057) TIMESTAMP EXTERNAL
 , "LUW_SEQNO"
  POSITION(  00058:00059) SMALLINT
 , "CONNECT_TYPE"
  POSITION(  00060:00067) CHAR(00008)
 , "CONNECT_ID"
  POSITION(  00068:00075) CHAR(00008)
 , "CORRNAME"
  POSITION(  00076:00083) CHAR(00008)
 , "CORRNUMBER"
  POSITION(  00084:00091) CHAR(00008)
 , "PLAN_NAME"
  POSITION(  00092:00099) CHAR(00008)
 , "CLASS2"
  POSITION(  00100:00100) CHAR(00001)
 , "CLASS3"
  POSITION(  00101:00101) CHAR(00001)
 , "CLASS1_ELAPSED"
  POSITION(  00102:00108) DECIMAL
 , "CLASS1_CPU_TOTAL"
  POSITION(  00109:00115) DECIMAL
 , "CLASS2_ELAPSED"
  POSITION(  00116:00122) DECIMAL
 , "CLASS2_CPU_TOTAL"
  POSITION(  00123:00129) DECIMAL
 , "CLASS5_ELAPSED"
  POSITION(  00130:00136) DECIMAL
 , "CLASS5_TCB"
  POSITION(  00137:00143) DECIMAL
 , "CLASS5_DESCRIBE"
  POSITION(  00144:00150) DECIMAL
 , "CLASS5_LOG_EXTRACT"
  POSITION(  00151:00157) DECIMAL
 , "LOCK_LATCH_SUSP"
  POSITION(  00158:00161) INTEGER
 , "CLASS3_LOCK_LATCH"
  POSITION(  00162:00168) DECIMAL
 , "SYNC_IO_SUSP"
  POSITION(  00169:00172) INTEGER
 , "CLASS3_SYNC_IO"
  POSITION(  00173:00179) DECIMAL
 , "DB_IO_SUSP"
  POSITION(  00180:00183) INTEGER
 , "CLASS3_DB_IO"
  POSITION(  00184:00190) DECIMAL
 , "LOG_WRT_IO_SUSP"
  POSITION(  00191:00194) INTEGER
 , "CLASS3_LOG_WRT_IO"
  POSITION(  00195:00201) DECIMAL
 , "OTHER_READ_SUSP"
  POSITION(  00202:00205) INTEGER
 , "CLASS3_OTHER_READ"
  POSITION(  00206:00212) DECIMAL
 , "OTHER_WRITE_SUSP"
  POSITION(  00213:00216) INTEGER
 , "CLASS3_OTHER_WRITE"
  POSITION(  00217:00223) DECIMAL
 , "SERV_TASK_SUSP"
  POSITION(  00224:00227) INTEGER
 , "CLASS3_SERV_TASK"
  POSITION(  00228:00234) DECIMAL
 , "UPD_COMMIT_SUSP"
  POSITION(  00235:00238) INTEGER
 , "CLASS3_UPD_COMMIT"
  POSITION(  00239:00245) DECIMAL
 , "OPEN_CLOSE_SUSP"
  POSITION(  00246:00249) INTEGER
 , "CLASS3_OPEN_CLOSE"
  POSITION(  00250:00256) DECIMAL
 , "SYSLOGR_REC_SUSP"
  POSITION(  00257:00260) INTEGER
 , "CLASS3_SYSLOGR_REC"
  POSITION(  00261:00267) DECIMAL
 , "EXT_DEL_DEF_SUSP"
  POSITION(  00268:00271) INTEGER
 , "CLASS3_EXT_DEL_DEF"
  POSITION(  00272:00278) DECIMAL
 , "OTHER_SERV_SUSP"
  POSITION(  00279:00282) INTEGER
 , "CLASS3_OTHER_SERV"
  POSITION(  00283:00289) DECIMAL
 , "ARCH_LOG_SUSP"
  POSITION(  00290:00293) INTEGER
 , "CLASS3_ARCH_LOG"
  POSITION(  00294:00300) DECIMAL
 , "ARCH_READS_SUSP"
  POSITION(  00301:00304) INTEGER
 , "CLASS3_ARCH_READS"
  POSITION(  00305:00311) DECIMAL
 , "DRAIN_LOCK_SUSP"
  POSITION(  00312:00315) INTEGER
 , "CLASS3_DRAIN_LOCK"
  POSITION(  00316:00322) DECIMAL
 , "CLAIM_REL_SUSP"
  POSITION(  00323:00326) INTEGER
 , "CLASS3_CLAIM_REL"
  POSITION(  00327:00333) DECIMAL
 , "PAGE_LATCH_SUSP"
  POSITION(  00334:00337) INTEGER
 , "CLASS3_PAGE_LATCH"
  POSITION(  00338:00344) DECIMAL
 , "SCHED_STPRC_SUSP"
  POSITION(  00345:00348) INTEGER
 , "CLASS3_SCHED_STPRC"
  POSITION(  00349:00355) DECIMAL
 , "SCHEDUL_UDF_SUSP"
  POSITION(  00356:00359) INTEGER
 , "CLASS3_SCHEDUL_UDF"
  POSITION(  00360:00366) DECIMAL
 , "NOTIFY_MSG_SUSP"
  POSITION(  00367:00370) INTEGER
 , "CLASS3_NOTIFY_MSG"
  POSITION(  00371:00377) DECIMAL
 , "GLOBAL_CONT_SUSP"
  POSITION(  00378:00381) INTEGER
 , "CLASS3_GLOBAL_CONT"
  POSITION(  00382:00388) DECIMAL
 , "COMMIT"
  POSITION(  00389:00392) INTEGER
 , "ROLLBACK"
  POSITION(  00393:00396) INTEGER
 , "INCREMENTAL_BIND"
  POSITION(  00397:00400) INTEGER
 , "PROGRAMS"
  POSITION(  00401:00404) INTEGER
 , "SELECT"
  POSITION(  00405:00408) INTEGER
 , "INSERT"
  POSITION(  00409:00412) INTEGER
 , "UPDATE"
  POSITION(  00413:00416) INTEGER
 , "DELETE"
  POSITION(  00417:00420) INTEGER
 , "DESCRIBE"
  POSITION(  00421:00424) INTEGER
 , "DESCRIBE_TABLE"
  POSITION(  00425:00428) INTEGER
 , "PREPARE"
  POSITION(  00429:00432) INTEGER
 , "OPEN"
  POSITION(  00433:00436) INTEGER
 , "FETCH"
  POSITION(  00437:00440) INTEGER
 , "CLOSE"
  POSITION(  00441:00444) INTEGER
 , "LOCK_TABLE"
  POSITION(  00445:00448) INTEGER
 , "TIMEOUT"
  POSITION(  00449:00452) INTEGER
 , "DEADLOCK"
  POSITION(  00453:00456) INTEGER
 , "SUSPEND_LOCK"
  POSITION(  00457:00460) INTEGER
 , "SUSPEND_IRLM_LATCH"
  POSITION(  00461:00464) INTEGER
 , "SUSPEND_OTHER"
  POSITION(  00465:00468) INTEGER
 , "LOCK_REQ"
  POSITION(  00469:00472) INTEGER
 , "UNLOCK_REQ"
  POSITION(  00473:00476) INTEGER
 , "QUERY_REQ"
  POSITION(  00477:00480) INTEGER
 , "CHANGE_REQ"
  POSITION(  00481:00484) INTEGER
 , "OTHER_REQ"
  POSITION(  00485:00488) INTEGER
 , "LOCK_ESC_SHARED"
  POSITION(  00489:00492) INTEGER
 , "LOCK_ESC_EXCLUSIVE"
  POSITION(  00493:00496) INTEGER
 , "MAX_LOCKS_HELD"
  POSITION(  00497:00500) INTEGER
 , "P_LOCK_LOCK"
  POSITION(  00501:00504) INTEGER
 , "P_LOCK_UNLOCK"
  POSITION(  00505:00508) INTEGER
 , "P_LOCK_CHANGE"
  POSITION(  00509:00512) INTEGER
 , "SYNC_XES_LOCK"
  POSITION(  00513:00516) INTEGER
 , "SYNC_XES_UNLOCK"
  POSITION(  00517:00520) INTEGER
 , "SYNC_XES_CHANGE"
  POSITION(  00521:00524) INTEGER
 , "SUSPEND_IRLM_CONT"
  POSITION(  00525:00528) INTEGER
 , "SUSPEND_XES_CONT"
  POSITION(  00529:00532) INTEGER
 , "SUSPEND_FALSE_CONT"
  POSITION(  00533:00536) INTEGER
 , "INCOMPAT_RET_LOCK"
  POSITION(  00537:00540) INTEGER
 , "NOTIFY_MSG_SENT"
  POSITION(  00541:00544) INTEGER
 , "RID_POOL_USED"
  POSITION(  00545:00548) INTEGER
 , "RID_POOL_FAIL_NOSG"
  POSITION(  00549:00552) INTEGER
 , "RID_POOL_FAIL_MXLT"
  POSITION(  00553:00556) INTEGER
 , "MAX_SQL_CASCAD_LVL"
  POSITION(  00557:00560) INTEGER
 , "STPROC_CALL"
  POSITION(  00561:00564) INTEGER
 , "STPROC_ABEND"
  POSITION(  00565:00568) INTEGER
 , "STPROC_TIMEOUT"
  POSITION(  00569:00572) INTEGER
 , "STPROC_REJECTED"
  POSITION(  00573:00576) INTEGER
 , "UDF_EXECUTED"
  POSITION(  00577:00580) INTEGER
 , "UDF_ABENDS"
  POSITION(  00581:00584) INTEGER
 , "UDF_TIMEOUTS"
  POSITION(  00585:00588) INTEGER
 , "UDF_REJECTED"
  POSITION(  00589:00592) INTEGER
 , "STATEMENT_TRIGGER"
  POSITION(  00593:00596) INTEGER
 , "ROW_TRIGGER"
  POSITION(  00597:00600) INTEGER
 , "TRIGGER_SQL_ERROR"
  POSITION(  00601:00604) INTEGER
 , "DRAIN_REQ"
  POSITION(  00605:00608) INTEGER
 , "DRAIN_FAILED"
  POSITION(  00609:00612) INTEGER
 , "CLAIM_REQ"
  POSITION(  00613:00616) INTEGER
 , "CLAIM_FAILED"
  POSITION(  00617:00620) INTEGER
 , "IFI_CALLS"
  POSITION(  00621:00624) INTEGER
 , "LOG_RECS_CAPTURED"
  POSITION(  00625:00628) INTEGER
 , "LOG_READS_PERFORM"
  POSITION(  00629:00632) INTEGER
 , "DATA_ROWS_RETURNED"
  POSITION(  00633:00636) INTEGER
 , "LOG_RECS_RETURNED"
  POSITION(  00637:00640) INTEGER
 , "DESCRIPT_RETURNED"
  POSITION(  00641:00644) INTEGER
 , "TABLES_RETURNED"
  POSITION(  00645:00648) INTEGER
 , "DESCRIBES_PERFORM"
  POSITION(  00649:00652) INTEGER
 , "REOPTIMIZATION"
  POSITION(  00653:00656) INTEGER
 , "PREP_STMT_MATCH"
  POSITION(  00657:00660) INTEGER
 , "PREP_STMT_NO_MATCH"
  POSITION(  00661:00664) INTEGER
 , "IMPLICIT_PREPARES"
  POSITION(  00665:00668) INTEGER
 , "PREP_FROM_CACHE"
  POSITION(  00669:00672) INTEGER
 , "CACHE_LIMIT_EXCEED"
  POSITION(  00673:00676) INTEGER
 , "PREP_STMT_PURGED"
  POSITION(  00677:00680) INTEGER
 , "DIRECT_ACCESS"
  POSITION(  00681:00684) INTEGER
 , "INDEX_USED"
  POSITION(  00685:00688) INTEGER
 , "TS_SCAN_USED"
  POSITION(  00689:00692) INTEGER
 , "LOG_RECS_WRITTEN"
  POSITION(  00693:00696) INTEGER
 , "BYTES_PER_LOG_REC"
  POSITION(  00697:00704) CHAR(00008)
 , "MAX_STOR_LOB_VALUE"
  POSITION(  00705:00708) INTEGER
 , "RLF_TYPE"
  POSITION(  00709:00712) INTEGER
 , "RLF_TABLE"
  POSITION(  00713:00714) CHAR(00002)
 , "LIMIT_IN_SU"
  POSITION(  00715:00718) INTEGER
 , "LIMIT_IN_CPU"
  POSITION(  00719:00722) INTEGER
 , "HIGHEST_USED_CPU"
  POSITION(  00723:00726) INTEGER
 , "SET_CURRENT_PREC"
  POSITION(  00727:00730) INTEGER
 , "FORCE_AT_COMMIT"
  POSITION(  00731:00734) INTEGER
 , "CLASS3_FORCE_AT_C"
  POSITION(  00735:00741) DECIMAL
 , "ASYNCH_IXL_REQU"
  POSITION(  00742:00745) INTEGER
 , "CLASS3_ASYNCH_IXL"
  POSITION(  00746:00752) DECIMAL
 , "SVPT_REQUESTS"
  POSITION(  00753:00756) INTEGER
 , "SVPT_RELEASE"
  POSITION(  00757:00760) INTEGER
 , "SVPT_ROLLBACK"
  POSITION(  00761:00764) INTEGER
 , "CLASS1_SU_CPU"
  POSITION(  00765:00772) DECIMAL
 , "CLASS2_SU_CPU"
  POSITION(  00773:00780) DECIMAL
 , "LLOCK_PARENT_SUSP"
  POSITION(  00781:00784) INTEGER
 , "CLASS3_LLOCK_PARNT"
  POSITION(  00785:00791) DECIMAL
 , "LLOCK_CHILD_SUSP"
  POSITION(  00792:00795) INTEGER
 , "CLASS3_LLOCK_CHILD"
  POSITION(  00796:00802) DECIMAL
 , "LLOCK_OTHER_SUSP"
  POSITION(  00803:00806) INTEGER
 , "CLASS3_LLOCK_OTHER"
  POSITION(  00807:00813) DECIMAL
 , "PLOCK_PSET_SUSP"
  POSITION(  00814:00817) INTEGER
 , "CLASS3_PLOCK_PSET"
  POSITION(  00818:00824) DECIMAL
 , "PLOCK_PAGE_SUSP"
  POSITION(  00825:00828) INTEGER
 , "CLASS3_PLOCK_PAGE"
  POSITION(  00829:00835) DECIMAL
 , "PLOCK_OTHER_SUSP"
  POSITION(  00836:00839) INTEGER
 , "CLASS3_PLOCK_OTHER"
  POSITION(  00840:00846) DECIMAL
 , "CLASS1_IIP_CPU"
  POSITION(  00847:00853) DECIMAL
 , "CLASS2_IIP_CPU"
  POSITION(  00854:00860) DECIMAL
 , "IIPCP_ELIGIBLE"
  POSITION(  00861:00867) DECIMAL
 , "CLASS1_SU_IIP_CPU"
  POSITION(  00868:00875) DECIMAL
 , "CLASS2_SU_IIP_CPU"
  POSITION(  00876:00883) DECIMAL
 , "SU_IIPCP_ELIGIBLE"
  POSITION(  00884:00891) DECIMAL
 , "GROUP_NAME"
  POSITION(  00893:00900) CHAR(00008)
                          NULLIF(00892)=X'FF'
 , "INSDATE"
  POSITION(  00901:00910) DATE EXTERNAL
 )
}¢--- A540769.WK.SQL(PDBGENTN) cre=2010-05-19 mod=2011-05-20-10.54.58 A540769 ---
select timestamp, connect_id, commit,
        class2_elapsed/max(1, commit) "ela/com",
        class1_elapsed, class2_elapsed,
        class2_cpu_total,
        update, select, open, fetch,
    g.*
    from RZ2dd.TACCT_GENERAL g
    where timestamp > '2011-05-01-00.00.00'
      and plan_name in ('TN7080','TN8110')
    order by timestamp desc
    with ur
;;;
select *
    from RZ2xx.TACCT_GENERAL g
    where plan_name in ('TN7080','TN8110')
    order by timestamp desc
    with ur
;;;
select trunc_timestamp(timestamp, 'IW'),
       sum(class2_elapsed    ) / sum(select+open+fetch) "ela/sof",
       sum(class2_cpu_total  ) / sum(select+open+fetch) "cpu/sof",
       sum(select+open+fetch) "sof",
       sum(class2_elapsed    ) ela,
       sum(class1_cpu_total  ) "c1Cpu",
       sum(class2_cpu_total  ) "c2Cpu",
       sum(class3_global_cont) "gloCon",
       sum(class3_DB_IO      ) "db io",
       sum(select            ) "sel",
       sum(open              ) "open",
       sum(fetch             ) "fetch",
       sum(SUSPEND_IRLM_CONT  ) "irmlCont",
       sum(SUSPEND_XES_CONT  ) "xesCont"  ,
       sum(SUSPEND_FALSE_CONT  ) "falseCont"
    from RZ2dd.TACCT_GENERAL g
    where timestamp >= '2009-09-01-00.00.00'
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    group by trunc_timestamp(timestamp, 'IW')
    ORDER BY 1 desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENTU) cre=2011-05-11 mod=2011-05-11-11.25.31 A540769 ---
//A540769V JOB (CP00,KE50),
//       'CATALOG',MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M
//*MAIN CLASS=LOG
//*
//***************************************************
//*  UNLOAD COPY
//***************************************************
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
//   PARM=(DBOC,'A540769.UNLOAC'),
//   REGION=0M
//*DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSTEMPL  DD DSN=DBOC.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN DD *
     UNLOAD TABLESPACE DA540769.AGEN
       PUNCHDDN TPUNCH  UNLDDN TSRECD
         SHRLEVEL REFERENCE
}¢--- A540769.WK.SQL(PDBGENUU) cre=2011-07-19 mod=2012-05-08-08.13.57 A540769 ---
set current path oa1p;
select count(*), min(timestamp), max(timestamp)
    from Rz2XX.TACCT_GENERAL g
;
select *
    from Rz2XX.TACCT_GENERAL g
    where plan_name =    'UU5400'
    order by timestamp desc
;x;
select
    fosFmte7(occurrences) occ,
    fosFmte7(commit) com,
    fosFmte7(rollback) roll,
    fosFmte7(   (insert)/   (max(1, commit))) "ins/com",
    g.*
    from Rz2DD.TACCT_GENERAL g
    where plan_name = 'UU0751'
         and timestamp >       '2011-07-01-00.00.00'
    order by timestamp desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENVK) cre=2011-09-30 mod=2011-09-30-16.55.03 A540769 ---
select *
    from RZ1XX.TACCT_GENERAL g
    where plan_Name =    'VK5725'
         and subsystem_id like 'DAF%'
         and timestamp between '2011-09-29-15.40.00'
                           and '2011-09-29-19.40.00'
    order by timestamp desc
    with ur
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENVV) cre=2011-06-03 mod=2012-03-09-16.17.53 A540769 ---
set current path oa1p;
select *
    from Rz2MM.TACCT_general g
    where plan_name = 'VV6200'
         and timestamp >  current timestamp - 121 day
         and class2_elapsed > 1000
    order by class2_elapsed   desc
 -- order by timestamp desc
    with ur
;;;
select *
    from RZ2MM.TACCT_general g
    where plan_name = 'VV6010'
         and timestamp >  current timestamp -  5 day
    order by timestamp desc
    with ur
;;;,
select date(trunc_timestamp(timestamp, 'WW')),
     int(sum(occurrences)) occ,
     int(sum(commit)) com,
     int(sum(rollback)) roll,
     count(*)     cnt,
     fosFmte7(sum(class1_elapsed)/sum(max(occurrences, commit)))c1Ela,
     fosFmte7(sum(class2_elapsed)/sum(max(occurrences, commit)))c2Ela,
     fosFmte7(sum(class1_cpu_Total)/sum(max(occurrences, commit)))c1Cpu,
     fosFmte7(sum(class2_cpu_total)/sum(max(occurrences, commit)))c2Cpu,
       min(class1_elapsed /   (max(occurrences, commit)))  c1ElaMi,
       max(class1_elapsed /   (max(occurrences, commit)))  c1ElaMa,
       fosFmte7(real(sum(select ))/sum(max(occurrences, commit)))select,
       fosFmte7(real(sum(open ))/sum(max(occurrences, commit)))open ,
       fosFmte7(real(sum(fetch ))/sum(max(occurrences, commit)))fetch ,
       fosFmte7(real(sum(insert ))/sum(max(occurrences, commit)))insert,
       fosFmte7(real(sum(update ))/sum(max(occurrences, commit)))update,
       fosFmte7(real(sum(delete ))/sum(max(occurrences, commit)))delete,
       min(timestamp), max(timestamp)
    from Rz2DD.TACCT_GENERAL g
    where plan_name = 'VV5720'
         and timestamp >  current timestamp - 1 year
    group by trunc_timestamp(timestamp, 'WW')
 -- group by floor(3*log10(
 --       max(1e-9, class1_elapsed/max(occurrences, commit))))
    order by min(timestamp) desc
;x;
select class1_elapsed/max(1, commit) "c1Ela/co", g.*
    from RZ2xx.TACCT_GENERAL g
    where plan_name = 'VV5720'
       and
            class1_elapsed/max(1, commit) > 60
    order by 1 desc
;;;
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
select *
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENVZ) cre=2011-01-27 mod=2011-04-07-11.17.54 A540769 ---
set current path = oa1p;
set current path oa1p;
set current schema = RZ2XX;
select timestamp, class1_elapsed, class3_drain_lock, g.*
    from       TACCT_GENERAL g
    where --   timestamp > current timestamp - 2 days
               timestamp between '2011-04-03-06.00.00'
                             and '2011-04-03-07.00.00'
  --  and    class1_elapsed >  60
  --  and rollback > 0
  --  and (    corrName like 'QR00315%'
  --       or  corrName like 'QR00316%'
  --      )
      and plan_name = 'VZ52C'
--    and CLASS3_DRAIN_LOCK < 10
--  order by timestamp desc
--  order by class1_elapsed desc
--  group by floor(2*log10(class1_elapsed))
    order by class1_elapsed desc
    fetch first 100 rows only
    with ur
;;;
select count(*), dec(avg(class1_elapsed), 8, 4) "c1ElaAvg",
                 dec(min(class1_elapsed), 8, 4) "c1ElaMin",
                 dec(max(class1_elapsed), 8, 4) "c1ElaMax"
    , fosFmte7(sum(real(select))  /sum(occurrences)) "select"
    , fosFmte7(sum(real(fetch ))  /sum(occurrences)) "fetch"
    , fosFmte7(sum(real(open  ))  /sum(occurrences)) "open"
    , fosFmte7(sum(real(insert))  /sum(occurrences)) "insert"
    , fosFmte7(sum(real(update))  /sum(occurrences)) "update"
    , fosFmte7(sum(real(delete))  /sum(occurrences)) "delete"
    , fosFmte7(sum(real(commit))/sum(occurrences)) "comm"
    , fosFmte7(sum(real(rollback))/sum(occurrences)) "rollbac"
    , fosFmte7(sum(real(prepare))/sum(occurrences)) "prepare"
    , fosFmte7(sum(real(incremental_bind))/sum(occurrences)) "incBind"
    , fosFmte7(sum(class1_cpu_total)/sum(occurrences)) "c1Cpu"
    , fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu"
    , fosFmte7(sum(CLASS3_Sync_IO)/sum(occurrences)) "syIO/oc"
    , fosFmte7(sum(log_recs_written)/sum(occurrences)) "logRecs"
    , fosFmte7(sum(CLASS3_Lock_Latch) /sum(occurrences)) "c3LoL/oc"
    , fosFmte7(sum(CLASS3_GLOBAL_CONT)/sum(occurrences)) "c3Glo/oc"
    , fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
    , min(timestamp), max(timestamp)

    from       TACCT_GENERAL g
    where --   timestamp > current timestamp - 2 days
          --   timestamp between '2011-01-23-09.53.00'
          --                 and '2011-01-23-09.54.43'
  --  and    class1_elapsed >  60
  --  and rollback > 0
  --  and (    corrName like 'QR00315%'
  --       or  corrName like 'QR00316%'
  --      )
          plan_name = 'VZ52C'
      and CLASS3_DRAIN_LOCK < 10
--  order by timestamp desc
--  order by class1_elapsed desc
    group by floor(2*log10(class1_elapsed))
    order by 4
    fetch first 100 rows only
    with ur
;;;
select
                                timestamp
    , fosFmte7((occurrences))     "occs"
    , fosFmte7((CLASS3_Sync_IO)/(occurrences)) "syIO/oc"
    , fosFmte7((CLASS3_LLOCK_CHILD)/(occurrences)) "c3LCh/oc"
    , fosFmte7((class1_elapsed)/(occurrences)) "c1ela"
    , fosFmte7((class2_elapsed)/(occurrences)) "c2ela"
    , fosFmte7((class1_cpu_total)/(occurrences)) "c1Cpu"
    , fosFmte7((class2_cpu_total)/(occurrences)) "c2Cpu"
    , fosFmte7((CLASS3_Lock_Latch) /(occurrences)) "c3LoL/oc"
    , fosFmte7((CLASS3_GLOBAL_CONT)/(occurrences)) "c3Glo/oc"
    , fosFmte7((CLASS3_LLOCK_CHILD)/(occurrences)) "c3LCh/oc"
    , fosFmte7((real(commit))/(occurrences)) "comm"
    , fosFmte7((real(rollback))/(occurrences)) "roll"
    , fosFmte7((real(select))/(occurrences)) "sele"
    , fosFmte7((insert)/(occurrences)) "insert"
    , g.*
    from RZ2MM.TACCT_GENERAL g
    where plan_name = 'VZ52C'
        and timestamp between  '2011-01-25-07.00.00'
                          and  '2011-01-25-11.00.00'
    order by clASS1_elapsed /    occurrences  desc
    with ur
;;;;
select
    substr(char(trunc_timestamp(timestamp, 'mi')), 1, 16)
    ,         (count(*)) "count"
    , fosFmte7(sum(occurrences))  "occs"
    , fosFmte7(sum(CLASS3_Sync_IO)/sum(occurrences)) "syIO/oc"
    , fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
    , fosFmte7(sum(class1_elapsed)/sum(occurrences)) "c1ela"
    , fosFmte7(sum(class2_elapsed)/sum(occurrences)) "c2ela"
    , fosFmte7(sum(class1_cpu_total)/sum(occurrences)) "c1Cpu"
    , fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu"
    , fosFmte7(sum(CLASS3_Lock_Latch) /sum(occurrences)) "c3LoL/oc"
    , fosFmte7(sum(CLASS3_GLOBAL_CONT)/sum(occurrences)) "c3Glo/oc"
    , fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
    , fosFmte7(sum(real(commit))/sum(occurrences)) "comm"
    , fosFmte7(sum(real(rollback))/sum(occurrences)) "roll"
    , fosFmte7(sum(real(select))/sum(occurrences)) "sele"
    , fosFmte7(sum(insert)/sum(occurrences)) "insert"
    ,         (sum(case when class1_elapsed/occurrences >=  40
        and CLASS3_DRAIN_LOCK / occurrences < 10
                 then occurrences else 0 end))              "occ>=40"
    , fosFmte7(sum(case when class1_elapsed/occurrences >=  40
        and CLASS3_DRAIN_LOCK / occurrences < 10
                 then class1_elapsed else 0 end))           "ela>=40"
    , fosFmte7(sum(class1_elapsed))           "ela"
    ,         (sum(case when class1_elapsed/occurrences >=  40
                and CLASS3_DRAIN_LOCK / occurrences >= 10
                 then occurrences else 0 end))              "occ>=40Dr"
    , fosFmte7(sum(case when class1_elapsed/occurrences >=  40
                and CLASS3_DRAIN_LOCK / occurrences >= 10
                 then class1_elapsed else 0 end))           "ela>=40Dr"
    from RZ2MM.TACCT_GENERAL g
    where plan_name = 'VZ52C'
        and timestamp between  '2011-01-25-07.00.00'
                          and  '2011-01-25-11.00.00'
    --  and CLASS3_DRAIN_LOCK / occurrences < 10
    group by trunc_timestamp(timestamp, 'mi')
--  order by trunc_timestamp(timestamp, 'mi') asc
    order by sum(clASS1_elapsed)/sum(occurrences) desc
    with ur
;;;
select
    dayOfWeek_iso(max(timestamp)) "Son=1" ,
    substr(char(trunc_timestamp(timestamp, 'dd')), 1, 16)
    ,         (count(*)) "count"
    ,         fosFmte7(sum(occurrences)) "occs"
    , fosFmte7(sum(class1_elapsed))           "ela"
    from RZ2dd.TACCT_GENERAL g
    where plan_name = 'VZ52C'
        and timestamp >       '2010-01-01-00.00.00'
    --                    and '2011-01-26-10.00.00'
    --  and CLASS3_DRAIN_LOCK / occurrences < 10
    group by trunc_timestamp(timestamp, 'dd')
    order by trunc_timestamp(timestamp, 'dd') desc
    with ur
;;;
set current path = oa1p;
select
    substr(char(trunc_timestamp(timestamp, 'hh')), 1, 16)
    ,         (count(*)) "count"
    ,         (sum(occurrences)) "occs"
    , fosFmte7(sum(class1_elapsed))           "ela"
    ,         (sum(case when class1_elapsed/occurrences >=  40
        and CLASS3_DRAIN_LOCK / occurrences < 10
                 then occurrences else 0 end))              "occ>=40"
    , fosFmte7(sum(case when class1_elapsed/occurrences >=  40
        and CLASS3_DRAIN_LOCK / occurrences < 10
                 then class1_elapsed else 0 end))           "ela>=40"
    , fosFmte7(sum(class1_elapsed))           "ela"
    ,         (sum(case when class1_elapsed/occurrences >=  40
                and CLASS3_DRAIN_LOCK / occurrences >= 10
                 then occurrences else 0 end))              "occ>=40Dr"
    , fosFmte7(sum(case when class1_elapsed/occurrences >=  40
                and CLASS3_DRAIN_LOCK / occurrences >= 10
                 then class1_elapsed else 0 end))           "ela>=40Dr"
    from RZ2xx.TACCT_GENERAL g
    where plan_name = 'VZ52C'
    --  and timestamp >       '2011-02-08-08.00.00'
    --                    and '2011-01-26-10.00.00'
    --  and CLASS3_DRAIN_LOCK / occurrences < 10
    group by trunc_timestamp(timestamp, 'hh')
    order by trunc_timestamp(timestamp, 'hh') desc
    with ur
;;;
set current path = oa1p;
select
    substr(char(trunc_timestamp(timestamp, 'mi')), 1, 16)
    , smallint(count(*)) cnt
    , smallint(sum(case when class1_elapsed/occurrences >= 100
                 then 1 else 0 end))                    ">=100"
    , smallint(sum(case when class1_elapsed/occurrences < 100
                         and class1_elapsed/occurrences >= 30
                 then 1 else 0 end))                    ">=30"
    , smallint(sum(case when class1_elapsed/occurrences <  30
                         and class1_elapsed/occurrences >= 10
                 then 1 else 0 end))                    ">=10"
    , smallint(sum(case when class1_elapsed/occurrences <  10
                         and class1_elapsed/occurrences >=  3
                 then 1 else 0 end))                     ">=3"
    , smallint(sum(case when class1_elapsed/occurrences <   3
                         and class1_elapsed/occurrences >=  1
                 then 1 else 0 end))                     ">=1"
    , smallint(sum(case when class1_elapsed/occurrences <   1
                         and class1_elapsed/occurrences >=  0.3
                 then 1 else 0 end))                     ">=0.3"
    , smallint(sum(case when class1_elapsed/occurrences <  0.3
                         and class1_elapsed/occurrences >= 0.1
                 then 1 else 0 end))                     ">=0.1"
    , smallint(sum(case when class1_elapsed/occurrences <  0.1
                         and class1_elapsed/occurrences >= 0.03
                 then 1 else 0 end))                     ">=0.03"
    , smallint(sum(case when class1_elapsed/occurrences <  0.03
                         and class1_elapsed/occurrences >= 0.01
                 then 1 else 0 end))                     ">=0.01"
    , smallint(sum(case when class1_elapsed/occurrences <  0.01
                         and class1_elapsed/occurrences >= 0.003
                 then 1 else 0 end))                     ">=0.003"
    , smallint(sum(case when class1_elapsed/occurrences <  0.003
                         and class1_elapsed/occurrences >= 0.001
                 then 1 else 0 end))                     ">=0.001"
    , smallint(sum(case when class1_elapsed/occurrences <  0.001
                    --   and class1_elapsed/occurrences >= 0.001
                 then 1 else 0 end))                     "< 0.001"
    , fosFmte7(sum(class1_elapsed)/sum(occurrences)) "c1Ela/oc"
    , fosFmte7(sum(class2_elapsed)/sum(occurrences)) "c2Ela/oc"
    , fosFmte7(sum(CLASS3_Lock_Latch) /sum(occurrences)) "c3LoL/oc"
    , fosFmte7(sum(CLASS3_GLOBAL_CONT)/sum(occurrences)) "c3Glo/oc"
    , fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
    , fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu/oc"
    , fosFmte7(sum(commit)) "comm"
    , fosFmte7(sum(rollback)) "roll"
    from RZ2xx.TACCT_GENERAL g
    where plan_name = 'VZ52C'
        and timestamp between '2011-01-26-08.00.00'
                          and '2011-01-26-10.00.00'
    group by trunc_timestamp(timestamp, 'mi')
    order by trunc_timestamp(timestamp, 'mi')
    with ur
;;;
select timestamp
--  , subsystem_id
    , substr(strip(min(subsystem_id))
             || case when min(subsystem_id) = max(subsystem_id) then ''
                else '*' || substr(max(subsystem_id), 4, 1) end, 1, 6)
    , fosFmte7(sum(occurrences)) "occ"
    , fosFmte7(sum(class1_elapsed)/sum(occurrences)) "c1Ela/oc"
    , fosFmte7(sum(class2_elapsed)/sum(occurrences)) "c2Ela/oc"
    , fosFmte7(sum(CLASS3_Lock_Latch) /sum(occurrences)) "c3LoL/oc"
    , fosFmte7(sum(CLASS3_GLOBAL_CONT)/sum(occurrences)) "c3Glo/oc"
    , fosFmte7(sum(CLASS3_LLOCK_CHILD)/sum(occurrences)) "c3LCh/oc"
    , fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu/oc"
    , fosFmte7(sum(fetch))        "fetch"
    , fosFmte7(sum(class1_elapsed)) "c1Ela"
    , fosFmte7(sum(class2_elapsed)) "c2Ela"
    , fosFmte7(sum(CLASS3_LOCK_LATCH)) "c3LoLa"
    , fosFmte7(sum(class1_cpu_total)) "c1Cpu"
    , fosFmte7(sum(class2_cpu_total)) "c2Cpu"
    , fosFmte7(sum(commit)) "comm"
    , fosFmte7(sum(rollback)) "roll"
--  , g.*
    from RZ2mm.TACCT_GENERAL g
    where plan_name = 'VZ52C'
        and timestamp between '2011-01-25-09.00.00'
                          and '2011-01-25-09.20.00'
    group by timestamp
    order by timestamp
    with ur
;;;
select *
    from RZ2xx.TACCT_GENERAL g
    where plan_name = 'VZ52C'
        and timestamp between '2011-01-25-09.00.00'
                          and '2011-01-25-09.20.00'
    order by class2_elapsed/occurrences desc
    with ur
;;;
select timestamp
--  , subsystem_id
    , substr(strip(min(subsystem_id))
             || case when min(subsystem_id) = max(subsystem_id) then ''
                else '*' || substr(max(subsystem_id), 4, 1) end, 1, 6)
    , fosFmte7(sum(occurrences)) "occ"
    , fosFmte7(sum(class2_elapsed)/sum(occurrences)) "c2Ela/oc"
    , fosFmte7(sum(CLASS3_DRAIN_LOCK) /sum(occurrences)) "c3Dra/oc"
    , fosFmte7(sum(class2_cpu_total)/sum(occurrences)) "c2Cpu/oc"
    , fosFmte7(sum(fetch))        "fetch"
    , fosFmte7(sum(class1_elapsed)) "c1Ela"
    , fosFmte7(sum(class2_elapsed)) "c2Ela"
    , fosFmte7(sum(CLASS3_DRAIN_LOCK)) "c3Dra"
    , fosFmte7(sum(class1_cpu_total)) "c1Cpu"
    , fosFmte7(sum(class2_cpu_total)) "c2Cpu"
--  , g.*
    from RZ2mm.TACCT_GENERAL g
    where plan_name = 'VZ52C'
        and timestamp between '2011-01-25-08.00.00'
                          and '2011-01-25-11.00.00'
    group by timestamp
    order by timestamp
    with ur
;;;
select count(*), sum(occurences), pck_id
    from RZ2mm.TACCT_program
select *
    from RZ2xx.TACCT_GENERAL g
    where plan_name = 'VZ52C'
        and timestamp between '2011-01-25-09.00.00'
                          and '2011-01-25-09.20.00'
    order by class2_elapsed/occurrences desc
    with ur
;;;
}¢--- A540769.WK.SQL(PDBGENWB) cre=2010-07-28 mod=2011-11-01-14.09.59 A540769 ---
set current path = 'OA1P';
select min(timestamp),
       fosFmte7(sum(class1_elapsed)) "c1Elaps",
       fosFmte7(sum(class2_elapsed)) "c2Elaps",
       fosFmte7(sum(class1_CPU_total)) "c1Cpu",
       fosFmte7(sum(class2_CPU_total)) "c2Cpu",
       fosFmte7(sum(CLASS1_SU_CPU   )) "c1SU",
       fosFmte7(sum(CLASS2_SU_CPU   )) "c2SU",
       fosFmte7(sum(CLASS3_DB_IO)) "dbIO",
       fosFmte7(sum(class3_LOG_WRT_IO)) "logIO",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(commit  )) "commit",
       fosFmte7(sum(deadlock)) "deadlock",
       fosFmte7(sum(timeout)) "timeout",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from RZ2DD.TACCT_GENERAL g
    where plan_name = 'WB0640'
         and timestamp >       '2010-01-01-00.00.00'
         group by trunc_timestamp(timestamp, 'MON')
            --         and     '2010-07-31-20.00.00'
    order by 1 desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
select timestamp,
       fosFmte7(class1_elapsed) "c1Elaps",
       fosFmte7(class2_elapsed) "c2Elaps",
       fosFmte7(class2_CPU_total) "c2Cpu",
       fosFmte7(CLASS3_ARCH_LOG
               +CLASS3_ARCH_READS
               +CLASS3_ASYNCH_IXL
               +CLASS3_CLAIM_REL
               +CLASS3_DB_IO
               +CLASS3_DRAIN_LOCK
               +CLASS3_EXT_DEL_DEF
               +CLASS3_FORCE_AT_C
               +CLASS3_LLOCK_CHILD
               +CLASS3_LLOCK_OTHER
               +CLASS3_LLOCK_PARNT
               +CLASS3_LOCK_LATCH
               +CLASS3_LOG_WRT_IO
               +CLASS3_NOTIFY_MSG
               +CLASS3_OPEN_CLOSE
               +CLASS3_PAGE_LATCH
               +CLASS3_PLOCK_OTHER
               +CLASS3_PLOCK_PAGE
               +CLASS3_PLOCK_PSET
               +CLASS3_SCHEDUL_UDF
               +CLASS3_SCHED_STPRC
               +CLASS3_SERV_TASK
               +CLASS3_SYNC_IO
               +CLASS3_SYSLOGR_REC
               +CLASS3_UPD_COMMIT
               )                "c3",
       fosFmte7(CLASS3_OTHER_READ
               +CLASS3_OTHER_SERV
               +CLASS3_OTHER_WRITE
               +CLASS3_GLOBAL_CONT
               )                "c3Other",
       fosFmte7(CLASS3_LOCK_LATCH + CLASS3_SYNC_IO) ,
       fosFmte7(CLASS3_DB_IO      + CLASS3_LOG_WRT_IO) ,
       g.*
    from RZ2DD.TACCT_GENERAL g
    where plan_name = 'WB0640'
         and timestamp >       '2011-01-01-00.00.00'
            --         and     '2010-07-31-20.00.00'
    order by timestamp desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENWF) cre=2011-11-01 mod=2011-11-01-16.32.14 A540769 ---
select *
    from RZ2XX.TACCT_GENERAL g
    where plan_name = 'WF0900'
        and timestamp  = '2011-10-23-20.51.30.492026'
;
select *
    from RZ2MM.TACCT_GENERAL g
    where plan_name = 'WF0900'
        and timestamp  = '2011-10-01-06.24.00.000000'
; ;;;
set current path = 'OA1P';
select int(sum(occurrences)),
       fosFmte7(sum(class1_elapsed) / sum(occurrences)) "c1Ela",
       fosFmte7(min(class1_elapsed  / occurrences)) "min",
       fosFmte7(max(class1_elapsed  / occurrences)) "max",
       min(timestamp) "von", max(timestamp) "bis"
    from RZ2MM.TACCT_GENERAL g
    where plan_name = 'WF0900'
        and timestamp >= '2011-08-01-00.00.00'
    group by floor(3 * log10(max(1e-7, class1_elapsed/occurrences)))
    order by min(class1_elapsed  / occurrences) desc
    with ur
;;;
         group by trunc_timestamp(timestamp, 'MON')
set current path = 'OA1P';
select min(timestamp),
       fosFmte7(sum(class1_elapsed)) "c1Elaps",
       fosFmte7(sum(class2_elapsed)) "c2Elaps",
       fosFmte7(sum(class1_CPU_total)) "c1Cpu",
       fosFmte7(sum(class2_CPU_total)) "c2Cpu",
       fosFmte7(sum(CLASS1_SU_CPU   )) "c1SU",
       fosFmte7(sum(CLASS2_SU_CPU   )) "c2SU",
       fosFmte7(sum(CLASS3_DB_IO)) "dbIO",
       fosFmte7(sum(class3_LOG_WRT_IO)) "logIO",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(commit  )) "commit",
       fosFmte7(sum(deadlock)) "deadlock",
       fosFmte7(sum(timeout)) "timeout",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from RZ2DD.TACCT_GENERAL g
    where plan_name = 'WB0640'
         and timestamp >       '2010-01-01-00.00.00'
         group by trunc_timestamp(timestamp, 'MON')
            --         and     '2010-07-31-20.00.00'
    order by 1 desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
select timestamp,
       fosFmte7(class1_elapsed) "c1Elaps",
       fosFmte7(class2_elapsed) "c2Elaps",
       fosFmte7(class2_CPU_total) "c2Cpu",
       fosFmte7(CLASS3_ARCH_LOG
               +CLASS3_ARCH_READS
               +CLASS3_ASYNCH_IXL
               +CLASS3_CLAIM_REL
               +CLASS3_DB_IO
               +CLASS3_DRAIN_LOCK
               +CLASS3_EXT_DEL_DEF
               +CLASS3_FORCE_AT_C
               +CLASS3_LLOCK_CHILD
               +CLASS3_LLOCK_OTHER
               +CLASS3_LLOCK_PARNT
               +CLASS3_LOCK_LATCH
               +CLASS3_LOG_WRT_IO
               +CLASS3_NOTIFY_MSG
               +CLASS3_OPEN_CLOSE
               +CLASS3_PAGE_LATCH
               +CLASS3_PLOCK_OTHER
               +CLASS3_PLOCK_PAGE
               +CLASS3_PLOCK_PSET
               +CLASS3_SCHEDUL_UDF
               +CLASS3_SCHED_STPRC
               +CLASS3_SERV_TASK
               +CLASS3_SYNC_IO
               +CLASS3_SYSLOGR_REC
               +CLASS3_UPD_COMMIT
               )                "c3",
       fosFmte7(CLASS3_OTHER_READ
               +CLASS3_OTHER_SERV
               +CLASS3_OTHER_WRITE
               +CLASS3_GLOBAL_CONT
               )                "c3Other",
       fosFmte7(CLASS3_LOCK_LATCH + CLASS3_SYNC_IO) ,
       fosFmte7(CLASS3_DB_IO      + CLASS3_LOG_WRT_IO) ,
       g.*
    from RZ2DD.TACCT_GENERAL g
    where plan_name = 'WB0640'
         and timestamp >       '2011-01-01-00.00.00'
            --         and     '2010-07-31-20.00.00'
    order by timestamp desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENWI) cre=2010-12-03 mod=2012-06-25-17.48.58 A540769 ---
set current path oa1p;
set current schema = RR2DD;
select *
    from  rr2dd.TACCT_GENERAL g
    where timestamp between '2012-07-30-00.00.00'
                        and '2012-07-31-00.00.00'
 --   and  connect_id in('WIS290OP', 'WIS992OP','WIS292OP')
      and  plan_name = 'NZ0500'
 ;;;;
select
       date(trunc_timestamp(timestamp, 'DDD')) ,
       fosfmte7(sum(occurrences)) occ,
       fosFmte7(sum(class1_elapsed) / sum(fetch)) "c1Ela/fe",
       fosFmte7(sum(class2_elapsed) / sum(fetch)) "c2Ela/fe",
       fosFmte7(sum(class2_cpu_total) / sum(fetch)) "c2Cpu/fe",
       fosFmte7(sum(class2_cpu_total)) cpu,
       fosFmte7(sum(commit)) com,
       fosfmte7(sum(select)) sel,
       fosFmte7(sum(open)) open ,
       fosFmte7(sum(fetch)) fetch,
       fosFmte7(sum(fetch) /
                sum(open)) "fet/op" ,
                sum(fetch) /
                sum(open)
    from  rz2dd.TACCT_GENERAL g
    where  --  plan_name like 'WI5790%'
               plan_name =    'WI5600'
               and timestamp > current timestamp  -37 days
    group by trunc_timestamp(timestamp, 'DDD')
    order by 1  desc
    with ur for read only
;  x
select *
    from       TACCT_GENERAL g
    where  --  plan_name like 'WI5790%'
               plan_name like 'WI8781%'
               and timestamp > current timestamp   - 12 days
;;;
select date(timestamp), sum(ASYNCH_IXL_REQU), sum(cLASS3_ASYNCH_IXL)
    from       TACCT_GENERAL g
    where timestamp > '2011-07-01-00.00.00'
    group by date(timestamp)
    order by 1 desc
;;;
select timestamp,
       class1_elapsed,
       class2_elapsed,
       CLASS3_SYNC_IO,
       fosFmte7((CLASS3_SYNC_IO)
          / (SYNC_IO_SUSP)) "synIOTi",
       fosFmte7((class2_elapsed)
          / (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7((class2_cpu_total)
          / (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7((CLASS3_LOCK_LATCH)
          / (0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (0.0+select+fetch+insert+update+delete)) "synIO/o",
       g.*
    from       TACCT_GENERAL g
    where      plan_name like 'WI5950%'
    and        timestamp > current timestamp - 11  days
    order by class2_elapsed desc
    fetch first 300 rows only
    with ur
;  x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
       fosFmte7(occurrences) occ,
       fosFmtE7(   (select)) sel,
       fosFmtE7(   (insert)) ins,
                    update   upd,
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    order by class2_elapsed desc
    with ur
;
set current schema = RZ2xx;
select      timestamp ,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2xx;
select date(timestamp),
       fosFmte7(sum(class2_elapsed)) "c2ElaSu",
       fosFmte7(max(class2_elapsed)) "c2ElaMa",
       fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by date(timestamp)
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
;;
select timestamp,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
 -- and        timestamp > current timestamp -  10 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 1000 rows only
    with ur
;  x
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 3  days
      and (    corrName like 'MFT15%'
            or corrName like 'MFT18%'
            or corrName like 'MFT56%'
            or connect_id like  'MFT56%'
            or corrName =    'MFT3100P'
          )
    order by timestamp desc
    with ur
;
}¢--- A540769.WK.SQL(PDBGENWK) cre=2010-12-22 mod=2010-12-22-12.12.37 A540769 ---
set current path oa1p;
set current schema = RZ1XX;
select timestamp, class1_elapsed, class2_elapsed,
       fosFmte7(occurrences) occ,
       fosFmtE7(   (select)) sel,
       fosFmtE7(   (insert)) ins,
                    update   upd,
       g.*
    from       TACCT_GENERAL g
    where      corrName like 'A540769%'
         and timestamp between '2010-12-21-00.00.00'
                       and     '2010-12-23-00.00.00'
    order by timestamp desc
    with ur
;  x
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 3  days
      and (    corrName like 'MFT15%'
            or corrName like 'MFT18%'
            or corrName like 'MFT56%'
            or connect_id like  'MFT56%'
            or corrName =    'MFT3100P'
          )
    order by timestamp desc
    with ur
;
x;
set current path oa1p;
set current schema = RR2HH;
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 5  days
      and      corrName = 'YMFNVLOH'
    order by timestamp desc
    with ur
;
x;
select timestamp - class1_elapsed seconds "von",
       timestamp "bis",
       g.*
    from       TACCT_GENERAL g
    where -- timestamp > current timestamp - 2  days
              (corrName like 'A895326%' or corrName like 'MF%')
      --  and connect_ID like 'NI229%'
          and plan_name like 'MF%'
          and subsystem_id like 'DZF%'
      --  and insert >= 1
      order by timestamp    desc
    with ur
;x;
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp >=      '2010-07-27-00.00.00'
    group by subsystem_id
;x;
select min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
;x;
with g as
(
  select date(timestamp) g1,
       case when timestamp between '2000-05-19-11.00.00'
                               and '2000-05-19-12.30.00' then 'x'
            else ' ' end g2,
       g.*
    from       TACCT_GENERAL g
    where not    timestamp between '2010-05-19-12.30.00'
                               and '2010-05-19-13.00.00'
)
select min(timestamp - class1_elapsed seconds) "von",
       time(max(timestamp)) "bis",
       fosFmte7(sum(occurrences)) occ,
       fosFmte7(sum(class1_elapsed)) "ela sec",
       fosFmte7(sum(class1_cpu_total)) "tot cpu",
       fosFmte7(sum(class2_cpu_total)) "db2 cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(CLASS3_GLOBAL_CONT)) "gloCon",
       oa1p.fosFmtE7(sum(select)) "select",
       oa1p.fosFmtE7(sum(open)) "open",
       oa1p.fosFmtE7(sum(fetch)) "fetch",
       oa1p.fosFmtE7(sum(commit)) "commit",
       oa1p.fosFmtE7(sum(insert)) "insert",
       oa1p.fosFmtE7(sum(update)) "update",
       oa1p.fosFmtE7(sum(delete)) "delete",
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u",
       count(distinct subsystem_id) "#ssid",
       plan_name,
       min(connect_id) || '-' || max(connect_id) "connectionId"
    from g
    where timestamp > current timestamp - 666 days
      --  and connect_ID like 'NI229%'
          and plan_name in ( 'MF8500', 'MF7230', 'MF7310')
          and (plan_name <> 'MF8500' or connect_id like 'MFT56%')
      --  and insert >= 1
      group by g1, g2, plan_name, left(connect_Id, 5)
      having sum(insert+update) > 0
      order by plan_Name, 1 desc
    with ur
;
X;
xet current path oa1p;
set current schema = RZ2DD;
select date(timestamp),
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       oa1p.fosFmtE7(sum(class2_elapsed)/sum(insert+update)) "ela/i+u" ,
       fosFmte7(sum(class2_cpu_total) / sum(insert+update)) "cpu/i+u",
       fosFmte7(sum(CLASS3_LOCK_LATCH)/sum(insert+update)) "LocLat/i+u",
       fosFmte7(sum(CLASS3_SYNC_IO)/sum(insert+update)) "syncIo/i+u"
    from RZ2dd.TACCT_GENERAL g
    where timestamp > current timestamp - 1 month
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    group by timestamp
    ORDER BY Timestamp desc
    with ur
;
X
select plan_name,
       fosFmte7(sum(occurrences)) occ,
       oa1p.fosFmtE7(sum(select)) sel,
       oa1p.fosFmtE7(sum(insert)) ins,
       oa1p.fosFmtE7(sum(update)) upd,
       oa1p.fosFmtE7(sum(delete)) del,
       min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
    where timestamp > '2010-03-21-00.30.00.000'
      and timestamp < '2010-03-21-02.30.00.000'
      --  and connect_ID like 'NI229%'
      --  and plan_name = 'NI5340'
      --  and insert >= 1
    group by plan_name
    order by sum(select+insert+update+delete) desc
    with ur
;
X
select sum(select) sel , sum(insert) ins, sum(update) upd,
       sum(class2_elapsed) / sum(insert) "ela/ins" ,
       sum(class2_cpu_total) / sum(insert) "cpu/ins",
       sum(LOCK_LATCH_SUSP),
       sum(CLASS3_LOCK_LATCH)/sum(insert) "LocLat/ins",
       sum(SYNC_IO_SUSP),
       sum(CLASS3_SYNC_IO)/sum(insert) "syncIo/ins",
       sum(occurrences)  occ,
       timestamp
    from RZ2hh.TACCT_GENERAL g
    where timestamp > current timestamp - 2 DAY
      --  and connect_ID like 'NI229%'
          and plan_name = 'NI5340'
      --  and insert >= 1
    ORDER BY Timestamp desc
    with ur
;
X
select subsystem_id, count(*), min(timestamp), max(timestamp)
    from RR2HH.TACCT_GENERAL g
 -- where corrName like 'NI%'
    group by subsystem_id
    order by subsystem_id
    with ur
;
xelect class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RR2HH.TACCT_GENERAL g
    where -- timestamp > current timestamp - 120 DAY
              corrname like 'NI229%'
 --        or corrname like 'NI22922%'
   --     and plan_name like 'DSNUT%'
   --     and insert >= 1
    ORDER BY CLASS1_ELAPSED desc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBGENWM) cre=2012-03-06 mod=2012-03-06-13.24.02 A540769 ---
select *
    from rz1dd.tacct_general
    where plan_name = 'WM8105'
        and timestamp > current timestamp - 20 days
    order by timestamp desc
}¢--- A540769.WK.SQL(PDBGENWN) cre=2012-09-20 mod=2012-09-20-09.13.38 A540769 ---
set current path = oa1p;
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2DD.TACCT_GENERAL g
    where plan_name in ('WN5100')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-08-01-00.00.00'
                        and '2012-12-02-00.00.00'
)
select plan_name, date(timestamp),
      fosFmte7(min(class1_elapsed/sqls)              ) "c1ela min",
      fosFmte7(max(class1_elapsed/sqls)              ) "c1ela max",
      fosFmte7(sum(class1_elapsed)/sum(sqls)         ) "c1ela/coR",
      fosFmte7(sum(class2_elapsed)/sum(sqls)         ) "c2ela/coR",
      fosFmte7(sum(class1_cpu_total)/sum(sqls)) "c1cpu/coR",
      fosFmte7(sum(class2_cpu_total)/sum(sqls)) "c2cpu/coR",
      fosFmte7(sum(CLASS3_ASYNCH_IXL)  /sum(sqls)         ) "c3IXL/coR",
      int(sum(occurrences))  "occur",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
      fosFmte7(sum(sqls)                   ) "sqls",
          fosFmte7(sum(class3_global_cont)/sum(sqls)) "c2gloCon",
          fosFmte7(sum(class3_DB_IO)/sum(sqls)) "c3dbIo",
          fosFmte7(sum(class3_LOG_WRT_IO)/sum(sqls)) "c2logIo",
          fosFmte7(sum(real(OPEN_CLOSE_SUSP))/sum(sqls)) "opClo",
          fosFmte7(sum(CLASS3_OPEN_CLOSE)/sum(sqls)) "c3opClo",
          fosFmte7(sum(real(SERV_TASK_SUSP))/sum(sqls)) "serTa",
          fosFmte7(sum(CLASS3_SERV_TASK)/sum(sqls)) "c3serTa",
          fosFmte7(sum(real(commit))/sum(sqls)) "commit",
          fosFmte7(sum(real(rollback))/sum(sqls)) "rollback",
          fosFmte7(sum(real(select))/sum(sqls)) "select",
          fosFmte7(sum(real(open) )/sum(sqls)) "open",
          fosFmte7(sum(real(fetch) )/sum(sqls)) "fetch",
          fosFmte7(sum(real(insert))/sum(sqls)) "insert",
          fosFmte7(sum(real(update))/sum(sqls)) "update",
          fosFmte7(sum(real(delete))/sum(sqls)) "delete",
          fosFmte7(sum(real(incrEMENTAL_BIND))/sum(sqls))"incremBi",
          fosFmte7(sum(real(PROGRAMS))      /sum(sqls)) "pkgs",
          min(timestamp), max(timestamp)
    from s
--  group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
--  order by plan_name, min(class1_elapsed/max(sqls, 1))
    group by plan_name, timestamp
    order by plan_name, timestamp
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2HH.TACCT_GENERAL g
    where plan_name in ('PW5200', 'PW5220')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-01-01-00.00.00'
                        and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
      plan_name,
      fosFmte7((class1_elapsed)/(cr)                 ) "c1ela/coR",
      fosFmte7((class2_elapsed)/(cr)                 ) "c2ela/coR",
      fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
      fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
      fosFmte7((CLASS3_ASYNCH_IXL)     /(cr)              ) "c3IXL/coR",
      int((occurrences))     "occ",
      int((commit))     "commit",
      int((rollback))     "rollBack",
      fosFmte7((sqls)/(cr)                 ) "sqls/coR",
          fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
          fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
          fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
          fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
          fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
          fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
          fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
          fosFmte7((real(commit))/(cr)) "commit",
          fosFmte7((real(rollback))/(cr)) "rollback",
          fosFmte7((real(select))/(cr)) "select",
          fosFmte7((real(open) )/(cr)) "open",
          fosFmte7((real(fetch) )/(cr)) "fetch",
          fosFmte7((real(insert))/(cr)) "insert",
          fosFmte7((real(update))/(cr)) "update",
          fosFmte7((real(delete))/(cr)) "delete",
        fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
          fosFmte7((real(PROGRAMS))         /(cr)) "pkgs"
    from s
 -- group by trunc_timestamp(timestamp,'HH'), plan_name
    order by plan_name, (class1_elapsed)/(cr) desc
    fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
    from rz1xx.tacct_program
    where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
    group by plan_name
    with ur
set current path = oa1p;
with i as
(
select plan_name
     , sum(class2_elapsed) ela
     , sum(class2_cpu_total) cpu
     , sum(commit) com
     , sum(select) sel
     , sum(open) op
     , sum(fetch) fet
     , min(timestamp) von
     , max(timestamp) bis
    from rz2mm.tacct_general
    where timestamp > '2011-01-01 00:00:00' and commit > 0
        and plan_name in ('PW0602', 'PW0408')
    group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
     , fosFmte7(ela / com)   "ela/com"
     , fosFmte7(com) commit
     , fosFmtE7(cpu / com)   "cpu/com"
     , fosFmtE7(sel / com)   "sel/Com"
     , fosFmtE7(op  / com)   "ope/Com"
     , fosFmtE7(fet / com)   "fet/Com"
     , von , bis
    from i
    order by plan_name, ela/com desc
    with ur
}¢--- A540769.WK.SQL(PDBGENWP) cre=2010-11-05 mod=2010-11-05-12.31.01 A540769 ---
select *
    from RZ2DD.TACCT_GENERAL g
 -- where plan_name = 'MI5700'
    where    corrName   like 'WPT220%'
         and timestamp >       '2010-11-01-00.00.00'
    order by class1_elapsed desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENWQ) cre=2010-10-15 mod=2010-10-15-10.04.27 A540769 ---
select date(timestamp),
        subsystem_id,
        CLASS1_ELAPSED,
        CLASS1_cpu_total,
        CLASS3_LOCK_LATCH,
        CLASS3_SYNC_IO,
        CLASS3_DB_IO,
        g.*
    from RZ2DD.TACCT_GENERAL g
    where plan_Name  = 'WQ5960'
         and timestamp >       '2010-10-01-00.00.00'
--       and timestamp <       '2010-04-01-00.00.00'
         and CLASS2_CPU_total > 100
--  order by CLASS2_CPU_total desc
    order by timestamp        desc
    fetch first 100 rows only
    with ur
;x;
select timestamp, plan_name,
        sum(occurrences) occ,
        sum(CLASS1_ELAPSED) / sum(occurrences) c1Ela    ,
        sum(CLASS1_CPU_TOTAL) / sum(occurrences) c1Cpu  ,
        sum(CLASS2_ELAPSED) / sum(occurrences) c2Ela  ,
        sum(CLASS2_CPU_TOTAL) / sum(occurrences) c2Cpu
    from RZ2MM.TACCT_GENERAL g
    where plan_Name in ('XBLE80', 'XBLE82', 'XBLE84')
         and subsystem_id like 'DBP%'
         and timestamp between   '2010-09-18-14.00.00'
                           and   '2010-09-18-18.00.00'
    group by timestamp, plan_name
    order by plan_name, 4 desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENXB) cre=2010-12-06 mod=2013-01-11-17.11.24 A540769 ---
set current path oa1p;
set current schema = RZ2dd;
with c as
(
select left(corrname, 4) corr,
       date(trunc_timestamp(timestamp - 4 days, 'iw')) + 4 days woche,
               (sum(class1_cpu_total)) c1Cpu,
               (sum(class2_cpu_total)) c2Cpu,
               (sum(class1_elapsed)) c1Ela,
               (sum(class2_elapsed)) c2Ela,
               (sum(commit)) commit,
               (sum(select)) select,
               (sum(open  )) open,
               (sum(fetch )) fetch,
               (sum(insert)) insert,
               (sum(update)) update,
               (sum(delete)) delete,
       count(*) count,
               (sum(occurrences)) occ ,
       count(distinct date(timestamp)) tage,
       date(min(timestamp)) wocheVon,
       date(min(timestamp)) wocheBis
    from TACCT_GENERAL g
    where   group_name = 'DVBP' and plan_name = 'DSNUTIL'
       and  timestamp >       '2012-09-28-00.00.00'
    group by group_name, trunc_timestamp(timestamp - 4 days, 'iw'),
             left(corrname, 4)
)
,r as
(
select row_number() over (partition by woche
                          order by c2Cpu desc) rng
       , c.*
    from c
)
select  woche, corr || '*' corr,
        fosFmtE7(c1Cpu) c1Cpu, fosFmtE7(c2Cpu) c2Cpu,
        fosFmtE7(c1Ela) c1Ela, fosFmtE7(c2Ela) c2Ela,
        fosFmtE7(commit) commit, fosFmtE7(select) select,
        fosFmtE7(open) open,
        fosFmtE7(fetch) fetch, fosFmtE7(insert) insert,
        fosFmtE7(update) update, fosFmtE7(delete) delete,
        fosFmtE7(count) count, fosFmtE7(occ) occ,
        tage, wocheVon, wocheBis
    from r
    where rng < 4
    order by woche desc, r.c2cpu desc
;;;;;
set current path oa1p;
set current schema = RZ2dd;
with p  as
(
select plan_name plan,
       date(trunc_timestamp(timestamp - 4 days, 'iw')) + 4 days woche,
               (sum(class1_cpu_total)) c1Cpu,
               (sum(class2_cpu_total)) c2Cpu,
               (sum(class1_elapsed)) c1Ela,
               (sum(class2_elapsed)) c2Ela,
               (sum(commit)) commit,
               (sum(select)) select,
               (sum(open  )) open,
               (sum(fetch )) fetch,
               (sum(insert)) insert,
               (sum(update)) update,
               (sum(delete)) delete,
       count(*) count,
               (sum(occurrences)) occ ,
       count(distinct date(timestamp)) tage,
       date(min(timestamp)) wocheVon,
       date(min(timestamp)) wocheBis
    from TACCT_GENERAL g
    where   group_name = 'DVBP'
       and  timestamp >       '2012-09-28-00.00.00'
    group by group_name, trunc_timestamp(timestamp - 4 days, 'iw'),
             plan_name
    order by group_name
)
, w as
(
select  0 rng, '*' plan , woche,
        sum(c1Cpu) c1Cpu, sum(c2Cpu) c2Cpu,
        sum(c1Ela) c1Ela, sum(c2Ela) c2Ela,
        sum(commit) commit, sum(select) select, sum(open) open,
        sum(fetch) fetch, sum(insert) insert,
        sum(update) update, sum(delete) delete,
        sum(count) count, sum(occ) occ,
        max(tage) tage, min(wocheVon) wocheVon, max(wocheBis) wocheBis
    from p
    group by woche
)
, r as
(
select row_number() over (partition by woche
                          order by c2Cpu desc) rng
       , p.*
    from p
)
, f as
(
    select * from w
    union all select * from r where rng <= 12
)
select  smallInt(rng) rng, plan , woche,
        smallint(c1Cpu * 1000/
             (select c1Cpu from w where w.woche = f.woche)) c1Prm,
        smallint(c2Cpu * 1000/
             (select c2Cpu from w where w.woche = f.woche)) c2Prm,
        fosFmtE7(c1Cpu) c1Cpu, fosFmtE7(c2Cpu) c2Cpu,
        fosFmtE7(c1Ela) c1Ela, fosFmtE7(c2Ela) c2Ela,
        fosFmtE7(commit) commit, fosFmtE7(select) select,
        fosFmtE7(open) open,
        fosFmtE7(fetch) fetch, fosFmtE7(insert) insert,
        fosFmtE7(update) update, fosFmtE7(delete) delete,
        fosFmtE7(count) count, fosFmtE7(occ) occ,
        tage, wocheVon, wocheBis
    from f
    order by f.plan, f.woche desc
;x
set current path oa1p;
set current schema = RZ2dd;
with p  as
(
select plan_name plan,
       date(trunc_timestamp(timestamp - 4 days, 'iw')) + 4 days woche,
               (sum(class1_cpu_total)) c1Cpu,
               (sum(class2_cpu_total)) c2Cpu,
               (sum(class1_elapsed)) c1Ela,
               (sum(class2_elapsed)) c2Ela,
               (sum(commit)) commit,
               (sum(select)) select,
               (sum(open  )) open,
               (sum(fetch )) fetch,
               (sum(insert)) insert,
               (sum(update)) update,
               (sum(delete)) delete,
       count(*) count,
               (sum(occurrences)) occ ,
       count(distinct date(timestamp)) tage,
       date(min(timestamp)) wocheVon,
       date(min(timestamp)) wocheBis
    from TACCT_GENERAL g
    where   group_name = 'DVBP'
       and  timestamp >       '2012-09-28-00.00.00'
    group by group_name, trunc_timestamp(timestamp - 4 days, 'iw'),
             plan_name
    order by group_name
)
, w as
(
select  0 rng, '*' plan , woche,
        sum(c1Cpu) c1Cpu, sum(c2Cpu) c2Cpu,
        sum(c1Ela) c1Ela, sum(c2Ela) c2Ela,
        sum(commit) commit, sum(select) select, sum(open) open,
        sum(fetch) fetch, sum(insert) insert,
        sum(update) update, sum(delete) delete,
        sum(count) count, sum(occ) occ,
        max(tage) tage, min(wocheVon) wocheVon, max(wocheBis) wocheBis
    from p
    group by woche
)
, r as
(
select row_number() over (partition by woche
                          order by c2Cpu desc) rng
       , p.*
    from p
)
, f as
(
    select * from w
    union all select * from r where rng <= 12
)
select  smallInt(rng) rng, plan , woche,
        fosFmtE7(c1Cpu) c1Cpu, fosFmtE7(c2Cpu) c2Cpu,
        fosFmtE7(c1Ela) c1Ela, fosFmtE7(c2Ela) c2Ela,
        fosFmtE7(commit) commit, fosFmtE7(select) select,
        fosFmtE7(open) open,
        fosFmtE7(fetch) fetch, fosFmtE7(insert) insert,
        fosFmtE7(update) update, fosFmtE7(delete) delete,
        fosFmtE7(count) count, fosFmtE7(occ) occ,
        tage, wocheVon, wocheBis
    from f
    order by f.woche desc, f.c2Cpu desc
;x
        wocheVon, c1Cpu, c2Cpu, c1Ela, c2Ela,
        commit, select, open, fetch, insert, update, delete,
        count, occ, tage, wocheBis
select plan_name, corrName, count(*), sum(class2_cpu_total)
    from TACCT_GENERAL g
    where (    plan_name  like 'XB%'
       or      corrName  like 'XB%'
      ) and timestamp >       '2012-07-06-00.00.00'
        and subsystem_id like 'DBP%'
    group by plan_name, corrName
;x;
select plan_name, date(timestamp), group_name,
       count(*) count,
       fosFmte7(sum(class1_elapsed)) c1Ela,
       fosFmte7(sum(class1_cpu_total)) c1Cpu,
       fosFmte7(sum(class2_cpu_total)) c2Cpu,
       fosFmte7(sum(commit)) commit,
       fosFmte7(sum(class3_Sync_IO )) "c3Syn",
       fosFmte7(min(CLASS3_LOCK_LATCH)) "~c3LoLa",
       fosFmte7(min(class2_elapsed)) "c2Ela-",
       fosFmte7(max(class2_elapsed)) "-c2Ela",
       fosFmte7(min(class2_cpu_total)) "c2Cpu-",
       fosFmte7(max(class2_cpu_total)) "-c2Cpu",
       fosFmte7(min(class3_Sync_IO )) "c3Syn-",
       fosFmte7(max(class3_Sync_Io )) "-c3Syn",
       avg(commit) "~commit"
    from TACCT_GENERAL g
    where      plan_name  like 'java%'
        and timestamp >       '2012-06-01-00.00.00'
    group by group_name, plan_name, date(timestamp)
    order by group_name, plan_name
set current path oa1p;
set current schema = RZ2xx;
select *
    from TACCT_GENERAL g
    where      plan_name = 'XBLE86'
        and timestamp >       '2012-06-06-00.00.00'
    order by insert         desc
--  order by class2_elapsed desc
    fetch first 100 rows only
;;
set current schema = RZ2xx;
select substr(strip(group_name) || ' ' || strip(connect_type), 1, 9),
       count(*) count,
       fosFmte7(min(class1_elapsed)) "c1Ela-",
       fosFmte7(max(class1_elapsed)) "-c1Ela",
       fosFmte7(avg(class1_elapsed)) "~c1Ela",
       fosFmte7(avg(class2_elapsed)) "~c2Ela",
       fosFmte7(min(class1_cpu_total)) "~c1Cpu",
       fosFmte7(min(class2_cpu_total)) "~c2Cpu",
       fosFmte7(min(class3_Sync_IO )) "~c3Syn",
       fosFmte7(min(CLASS3_LOCK_LATCH)) "~c3LoLa",
       fosFmte7(min(class2_elapsed)) "c2Ela-",
       fosFmte7(max(class2_elapsed)) "-c2Ela",
       fosFmte7(min(class2_cpu_total)) "c2Cpu-",
       fosFmte7(max(class2_cpu_total)) "-c2Cpu",
       fosFmte7(min(class3_Sync_IO )) "c3Syn-",
       fosFmte7(max(class3_Sync_Io )) "-c3Syn",
       avg(commit) "~commit"
    from TACCT_GENERAL g
    where      plan_name = 'XBLE80'
        and timestamp between '2010-12-03-00.00.00'
                    and '2010-12-04-00.00.00'
    group by group_name, connect_type,
             int(log10(max(class1_elapsed, 0.001)) * 2.)
    order by group_name, connect_type,
             min(class1_elapsed)
;x
set current schema = RZ2xx;
select *
    from TACCT_GENERAL g
    where      plan_name = 'XBLE80'
        and timestamp between '2010-12-03-00.00.00'
                    and '2010-12-04-00.00.00'
        and class3_Sync_IO = 0
        and CLASS3_LOCK_LATCH = 0
    order by class2_elapsed
    fetch first 100 rows only
;;
set current schema = RZ2xx;
select   *
    from TACCT_GENERAL g
    where      plan_name = 'XBLE80'
               and class2_Elapsed > 50
    order by class2_Elapsed desc
;x
select      timestamp ,
       fosFmte7(sum(class2_elapsed)
          / sum(0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_elapsed)
          / sum(0.0+commit)) "c2Ela/c",
       fosFmte7(sum(0.0+ select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(sum(class2_cpu_total)
          / sum(0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(0.0+select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(0+select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del,
       fosFmtE7(sum(commit)) commit
    from  (select g.*, commit coms
               from TACCT_GENERAL g) g
    where      plan_name = 'XBLE80'
    and        timestamp > current timestamp - 5 days
    group by      timestamp
 -- order by  min(timestamp) desc
    order by  real(sum(class2_elapsed)) / sum(coms)    desc
    fetch first 100 rows only
    with ur
;  x
set current schema = RZ2MM;
select timestamp,
       fosFmte7((class2_elapsed)
          / (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7((class2_cpu_total)
          / (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7((CLASS3_LOCK_LATCH)
          / (0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (0.0+select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7((CLASS3_LOG_WRT_IO)
          / (0.0+select+fetch+insert+update+delete)) "logWr/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (SYNC_IO_SUSP)) "synIOTi",
       commit,
       insert,
       (0.0+select+fetch+insert+update+delete)  "sqls",
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'XBLE80' -- and insert/occurrences > 100000
    and        timestamp > current timestamp - 5   days
    order by class2_elapsed
          / (0.0+select+fetch+insert+update+delete)  desc
    fetch first 300 rows only
    with ur
;  x
select timestamp,
       fosFmte7((class2_elapsed)
          / (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7((class2_cpu_total)
          / (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7((CLASS3_LOCK_LATCH)
          / (0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (0.0+select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (SYNC_IO_SUSP)) "synIOTi",
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'XB5000'
 -- and        timestamp > current timestamp - 5   days
    order by class2_elapsed desc
    fetch first 300 rows only
    with ur
;  x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
       fosFmte7(occurrences) occ,
       fosFmtE7(   (select)) sel,
       fosFmtE7(   (insert)) ins,
                    update   upd,
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    order by class2_elapsed desc
    with ur
;
set current schema = RZ2xx;
select      timestamp ,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2xx;
select date(timestamp),
       fosFmte7(sum(class2_elapsed)) "c2ElaSu",
       fosFmte7(max(class2_elapsed)) "c2ElaMa",
       fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by date(timestamp)
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
;;
select timestamp,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
 -- and        timestamp > current timestamp -  10 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 1000 rows only
    with ur
;  x
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 3  days
      and (    corrName like 'MFT15%'
            or corrName like 'MFT18%'
            or corrName like 'MFT56%'
            or connect_id like  'MFT56%'
            or corrName =    'MFT3100P'
          )
    order by timestamp desc
    with ur
;
}¢--- A540769.WK.SQL(PDBGENXC) cre=2010-12-06 mod=2010-12-06-10.50.55 A540769 ---
set current path oa1p;
set current schema = RZ2MM;
select timestamp,
       fosFmte7((class2_elapsed)
          / (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7((class2_cpu_total)
          / (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7((CLASS3_LOCK_LATCH)
          / (0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (0.0+select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7((CLASS3_LOG_WRT_IO)
          / (0.0+select+fetch+insert+update+delete)) "logWr/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (SYNC_IO_SUSP)) "synIOTi",
       commit,
       insert,
       (0.0+select+fetch+insert+update+delete)  "sqls",
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'XB5000' and insert/occurrences > 100000
    and        timestamp > current timestamp - 50  days
    order by class2_elapsed
          / (0.0+select+fetch+insert+update+delete)  desc
    fetch first 300 rows only
    with ur
;  x
set current schema = RZ2DD;
select date(timestamp),
       fosFmte7(sum(class2_elapsed)) "c2ElaSu",
       fosFmte7(max(class2_elapsed)) "c2ElaMa",
       fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 100 days
    group by date(timestamp)
    order by sum(class2_elapsed) desc
 -- fetch first 100 rows only
    with ur
;
select timestamp,
       fosFmte7((class2_elapsed)
          / (0.0+select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7((class2_cpu_total)
          / (0.0+select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7((CLASS3_LOCK_LATCH)
          / (0.0+select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (0.0+select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7((CLASS3_SYNC_IO)
          / (SYNC_IO_SUSP)) "synIOTi",
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'XB5000'
 -- and        timestamp > current timestamp - 5   days
    order by class2_elapsed desc
    fetch first 300 rows only
    with ur
;  x
set current schema = RZ2DD;
select date(timestamp), class1_elapsed, class2_elapsed,
       fosFmte7(occurrences) occ,
       fosFmtE7(   (select)) sel,
       fosFmtE7(   (insert)) ins,
                    update   upd,
       g.*
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    order by class2_elapsed desc
    with ur
;
set current schema = RZ2xx;
select      timestamp ,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2xx;
select date(timestamp),
       fosFmte7(sum(class2_elapsed)) "c2ElaSu",
       fosFmte7(max(class2_elapsed)) "c2ElaMa",
       fosFmte7(sum(select+fetch+insert+update+delete)) "opsSum",
       fosFmte7(max(select+fetch+insert+update+delete)) "opsMax",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
    and        timestamp > current timestamp - 5 days
    group by date(timestamp)
    order by sum(class2_elapsed) desc
    fetch first 100 rows only
    with ur
;
set current schema = RZ2MM;
select min(timestamp), max(timestamp)
    from       TACCT_GENERAL g
;;
select timestamp,
       fosFmte7(sum(class2_elapsed)
          / sum(select+fetch+insert+update+delete)) "c2Ela/o",
       fosFmte7(sum(class2_cpu_total)
          / sum(select+fetch+insert+update+delete)) "c2Cpu/o",
       fosFmte7(sum(CLASS3_LOCK_LATCH)
          / sum(select+fetch+insert+update+delete)) "locLa/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(select+fetch+insert+update+delete)) "synIO/o",
       fosFmte7(sum(CLASS3_SYNC_IO)
          / sum(SYNC_IO_SUSP)) "synIOTi",
       fosFmte7(sum(class1_elapsed)) "c1Ela",
       fosFmte7(sum(class2_elapsed)) "c2Ela",
       fosFmte7(sum(class2_cpu_total)) "c2Cpu",
       fosFmte7(sum(CLASS3_LOCK_LATCH)) "lockLat",
       fosFmte7(sum(CLASS3_SYNC_IO)) "syncIo",
       fosFmte7(sum(occurrences)) occ,
       fosFmtE7(sum(select)) sel,
       fosFmtE7(sum(open)) open,
       fosFmtE7(sum(fetch)) fetch,
       fosFmtE7(sum(insert)) ins,
       fosFmtE7(sum(update)) upd,
       fosFmtE7(sum(delete)) del
    from       TACCT_GENERAL g
    where      plan_name = 'BE5000'
 -- and        timestamp > current timestamp -  10 days
    group by      timestamp
    order by sum(class2_elapsed) desc
    fetch first 1000 rows only
    with ur
;  x
select *
    from       TACCT_GENERAL g
    where      timestamp > current timestamp - 3  days
      and (    corrName like 'MFT15%'
            or corrName like 'MFT18%'
            or corrName like 'MFT56%'
            or connect_id like  'MFT56%'
            or corrName =    'MFT3100P'
          )
    order by timestamp desc
    with ur
;
}¢--- A540769.WK.SQL(PDBGENXW) cre=2011-02-21 mod=2011-02-21-14.08.24 A540769 ---
set current path oa1p;
set current schema = RZ2XX;
select count(*),

dec(avg(float(class1_elapsed)), 10, 6) avg,
                 min(class1_elapsed) "c1ElaMin",
                 max(class1_elapsed) "c1ElaMax",
                 fosFmte7(avg(CLASS3_SYNC_IO)) "syncIo",
                 fosFmte7(avg(CLASS3_Log_wrt_IO)) "logIo",
                 fosFmte7(avg(CLASS3_LOCK_LATCH)) "lockLat",
                 fosFmte7(avg(CLASS3_GLOBAL_CONT)) "gloCon",
                 fosFmtE7(avg(select)) "select",
                 fosFmtE7(avg(open)) "open",
                 fosFmtE7(avg(fetch)) "fetch",
                 fosFmtE7(avg(commit)) "commit",
                 fosFmtE7(avg(rollback)) "rollback",
                 fosFmtE7(avg(insert)) "insert",
                 fosFmtE7(avg(update)) "update",
                 fosFmtE7(avg(delete)) "delete",
                 min(occurrences) "occMin",
                 max(occurrences) "occMax",
                 min(timestamp) "from", max(timestamp) "to"

    from       TACCT_GENERAL g
    where --   timestamp > current timestamp -   4 days
          --   timestamp between '2011-01-23-09.53.00'
          --                 and '2011-01-23-09.54.43'
  --  and    class1_elapsed >  60
  --  and rollback > 0
  --  and (    corrName like 'QR00315%'
  --       or  corrName like 'QR00316%'
  --      )
              plan_name = 'WU0160'
--    and CLASS3_DRAIN_LOCK < 10
--  order by timestamp desc
--  order by class1_elapsed desc
--  group by floor(2*log10(class1_elapsed))
--  order by floor(2*log10(class1_elapsed))
    with ur
;;;
select *
    from RZ2XX.TACCT_GENERAL g
    where plan_name  like 'WU0160%'
         and timestamp >       '2011-02-17-00.00.00'
    order by class2_elapsed desc
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDBGENX1) cre=2012-12-24 mod=2012-12-24-14.27.23 A540769 ---
set current path oa1p;
select  plan_name
      , subsystem_id
      , fosFmte7(sum(OCCURRENCES)) occ
      , fosFmte7(sum(commit)) commit
      , fosFmte7(sum(class1_elapsed))   c1Ela
      , fosFmte7(sum(class1_cpu_total)) c1cpu
      , fosFmte7(sum(class1_su_cpu   )) c1su
      , fosFmte7(sum(class2_elapsed))   c2Ela
      , fosFmte7(sum(class2_cpu_total)) c2cpu
      , fosFmte7(sum(class2_su_cpu   )) c2su
      , group_name
      , CONNECT_TYPE
      , CONNECT_ID
      , CORRNAME
      , PLAN_NAME
      , min(TIMESTAMP)
      , max(TIMESTAMP)
    from RZ2dd.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and timestamp between '2012-12-21-00.00.00'
                        and '2012-12-21-23.59.59'
    group by date(timestamp)
      , plan_name
      , subsystem_id
      , group_name
      , CONNECT_TYPE
      , CONNECT_ID
      , CORRNAME
      , PLAN_NAME
    order by subsystem_id
;;;
with s as(
  select date(timestamp) dt, hour(timestamp) hh, int(sum(commit))commit
    from RZ2hh.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-12-01-00.00.00'
                        and '2012-12-31-00.00.00'
    group by timestamp
)
, d as (
  select dt from s group by dt
)
select d.dt,
       right('    ' || value(strip(char(s00.commit)), ''), 4)
    || right('    ' || value(strip(char(s01.commit)), ''), 4)
    || right('    ' || value(strip(char(s02.commit)), ''), 4)
    || right('    ' || value(strip(char(s03.commit)), ''), 4)
    || right('    ' || value(strip(char(s04.commit)), ''), 4)
    || right('    ' || value(strip(char(s05.commit)), ''), 4)
    || right('    ' || value(strip(char(s06.commit)), ''), 4)
    || right('    ' || value(strip(char(s07.commit)), ''), 4)
    || right('    ' || value(strip(char(s08.commit)), ''), 4)
    || right('    ' || value(strip(char(s09.commit)), ''), 4)
    || right('    ' || value(strip(char(s10.commit)), ''), 4)
    || right('    ' || value(strip(char(s11.commit)), ''), 4)
    || right('    ' || value(strip(char(s12.commit)), ''), 4)
    || right('    ' || value(strip(char(s13.commit)), ''), 4)
    || right('    ' || value(strip(char(s14.commit)), ''), 4)
    || right('    ' || value(strip(char(s15.commit)), ''), 4)
    || right('    ' || value(strip(char(s16.commit)), ''), 4)
    || right('    ' || value(strip(char(s17.commit)), ''), 4)
    || right('    ' || value(strip(char(s18.commit)), ''), 4)
    || right('    ' || value(strip(char(s19.commit)), ''), 4)
    || right('    ' || value(strip(char(s20.commit)), ''), 4)
    || right('    ' || value(strip(char(s21.commit)), ''), 4)
    || right('    ' || value(strip(char(s22.commit)), ''), 4)
    || right('    ' || value(strip(char(s23.commit)), ''), 4)
      from d
      left join s s00  on s00.dt = d.dt and s00.hh = 00
      left join s s01  on s01.dt = d.dt and s01.hh = 01
      left join s s02  on s02.dt = d.dt and s02.hh = 02
      left join s s03  on s03.dt = d.dt and s03.hh = 03
      left join s s04  on s04.dt = d.dt and s04.hh = 04
      left join s s05  on s05.dt = d.dt and s05.hh = 05
      left join s s06  on s06.dt = d.dt and s06.hh = 06
      left join s s07  on s07.dt = d.dt and s07.hh = 07
      left join s s08  on s08.dt = d.dt and s08.hh = 08
      left join s s09  on s09.dt = d.dt and s09.hh = 09
      left join s s10  on s10.dt = d.dt and s10.hh = 10
      left join s s11  on s11.dt = d.dt and s11.hh = 11
      left join s s12  on s12.dt = d.dt and s12.hh = 12
      left join s s13  on s13.dt = d.dt and s13.hh = 13
      left join s s14  on s14.dt = d.dt and s14.hh = 14
      left join s s15  on s15.dt = d.dt and s15.hh = 15
      left join s s16  on s16.dt = d.dt and s16.hh = 16
      left join s s17  on s17.dt = d.dt and s17.hh = 17
      left join s s18  on s18.dt = d.dt and s18.hh = 18
      left join s s19  on s19.dt = d.dt and s19.hh = 19
      left join s s20  on s20.dt = d.dt and s20.hh = 20
      left join s s21  on s21.dt = d.dt and s21.hh = 21
      left join s s22  on s22.dt = d.dt and s22.hh = 22
      left join s s23  on s23.dt = d.dt and s23.hh = 23
    order by d.dt desc
;;;;
select plan_name, timestamp,
      fosFmte7(sum(class1_cpu_total)) "c1cpu",
      fosFmte7(sum(class2_cpu_total)) "c2cpu",
      fosFmte7(sum(sqls)                   ) "sqls",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
          fosFmte7(sum(real(select))) "select",
          fosFmte7(sum(real(open))) "open",
          fosFmte7(sum(real(fetch))) "fetch",
          fosFmte7(sum(real(insert))) "insert",
          fosFmte7(sum(real(update))) "update",
          fosFmte7(sum(real(delete))) "delete",
          fosFmte7(sum(real(PROGRAMS))) "pkgs"
    from s
--  group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
--  order by plan_name, min(class1_elapsed/max(sqls, 1))
    group by plan_name, timestamp
    order by plan_name, timestamp desc
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2hh.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-12-01-00.00.00'
                        and '2012-12-31-00.00.00'
)
select plan_name, timestamp,
      fosFmte7(sum(class1_cpu_total)) "c1cpu",
      fosFmte7(sum(class2_cpu_total)) "c2cpu",
      fosFmte7(sum(sqls)                   ) "sqls",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
          fosFmte7(sum(real(select))) "select",
          fosFmte7(sum(real(open))) "open",
          fosFmte7(sum(real(fetch))) "fetch",
          fosFmte7(sum(real(insert))) "insert",
          fosFmte7(sum(real(update))) "update",
          fosFmte7(sum(real(delete))) "delete",
          fosFmte7(sum(real(PROGRAMS))) "pkgs"
    from s
--  group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
--  order by plan_name, min(class1_elapsed/max(sqls, 1))
    group by plan_name, timestamp
    order by plan_name, timestamp desc
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2HH.TACCT_GENERAL g
    where plan_name in ('PW5200', 'PW5220')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-01-01-00.00.00'
                        and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
      plan_name,
      fosFmte7((class1_elapsed)/(cr)                 ) "c1ela/coR",
      fosFmte7((class2_elapsed)/(cr)                 ) "c2ela/coR",
      fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
      fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
      fosFmte7((CLASS3_ASYNCH_IXL)     /(cr)              ) "c3IXL/coR",
      int((occurrences))     "occ",
      int((commit))     "commit",
      int((rollback))     "rollBack",
      fosFmte7((sqls)/(cr)                 ) "sqls/coR",
          fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
          fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
          fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
          fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
          fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
          fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
          fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
          fosFmte7((real(commit))/(cr)) "commit",
          fosFmte7((real(rollback))/(cr)) "rollback",
          fosFmte7((real(select))/(cr)) "select",
          fosFmte7((real(open) )/(cr)) "open",
          fosFmte7((real(fetch) )/(cr)) "fetch",
          fosFmte7((real(insert))/(cr)) "insert",
          fosFmte7((real(update))/(cr)) "update",
          fosFmte7((real(delete))/(cr)) "delete",
        fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
          fosFmte7((real(PROGRAMS))         /(cr)) "pkgs"
    from s
 -- group by trunc_timestamp(timestamp,'HH'), plan_name
    order by plan_name, (class1_elapsed)/(cr) desc
    fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
    from rz1xx.tacct_program
    where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
    group by plan_name
    with ur
set current path = oa1p;
with i as
(
select plan_name
     , sum(class2_elapsed) ela
     , sum(class2_cpu_total) cpu
     , sum(commit) com
     , sum(select) sel
     , sum(open) op
     , sum(fetch) fet
     , min(timestamp) von
     , max(timestamp) bis
    from rz2mm.tacct_general
    where timestamp > '2011-01-01 00:00:00' and commit > 0
        and plan_name in ('PW0602', 'PW0408')
    group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
     , fosFmte7(ela / com)   "ela/com"
     , fosFmte7(com) commit
     , fosFmtE7(cpu / com)   "cpu/com"
     , fosFmtE7(sel / com)   "sel/Com"
     , fosFmtE7(op  / com)   "ope/Com"
     , fosFmtE7(fet / com)   "fet/Com"
     , von , bis
    from i
    order by plan_name, ela/com desc
    with ur
}¢--- A540769.WK.SQL(PDBGENX2) cre=2013-01-07 mod=2013-01-13-20.17.00 A540769 ---
set current path oa1p;
select  plan_name planName
      , fosFmte7(sum(OCCURRENCES)) occ
      , fosFmte7(sum(commit)) commit
      , fosFmte7(sum(class1_elapsed))   c1Ela
      , fosFmte7(sum(class1_cpu_total)) c1cpu
      , fosFmte7(sum(class1_su_cpu   )) c1su
      , fosFmte7(sum(class2_elapsed))   c2Ela
      , fosFmte7(sum(class2_cpu_total)) c2cpu
      , fosFmte7(sum(class2_su_cpu   )) c2su
      , min(subsystem_id), max(subsystem_id)
      , min(group_name), max(group_name)
 --   , CONNECT_TYPE
 --   , CONNECT_ID
 --   , CORRNAME
      , min(TIMESTAMP)
      , max(TIMESTAMP)
    from RZ2xx.TACCT_GENERAL g
    where 1=1
      and subsystem_id like 'DOF%'
      and timestamp between '2013-01-04-00.00.00'
                        and '2013-01-04-23.59.59'
    group by date(timestamp)
      , plan_name
  --  , subsystem_id
  --  , group_name
 --   , CONNECT_TYPE
 --   , CONNECT_ID
  --  , CORRNAME
    order by sum(class2_cpu_total) desc
     fetch first 100 rows only
;;;
select  *
    from RZ2xx.TACCT_GENERAL g
      where   plan_name like 'java%'
      and subsystem_id like 'DOF%'
      and timestamp between '2013-01-04-09.05.00'
                        and '2013-01-04-09.07.00'
      order by class2_cpu_total  desc
    fetch first 1000 rows only
;x;
set current path oa1p;
select  plan_name planName
      , fosFmte7(sum(OCCURRENCES)) occ
      , fosFmte7(sum(commit)) commit
      , fosFmte7(sum(class1_elapsed))   c1Ela
      , fosFmte7(sum(class1_cpu_total)) c1cpu
      , fosFmte7(sum(class1_su_cpu   )) c1su
      , fosFmte7(sum(class2_elapsed))   c2Ela
      , fosFmte7(sum(class2_cpu_total)) c2cpu
      , fosFmte7(sum(class2_su_cpu   )) c2su
      , min(subsystem_id), max(subsystem_id)
      , min(group_name), max(group_name)
 --   , CONNECT_TYPE
 --   , CONNECT_ID
 --   , CORRNAME
      , min(TIMESTAMP)
      , max(TIMESTAMP)
    from RZ2dd.TACCT_GENERAL g
    where 1=1
    --and plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2013-01-04-00.00.00'
                        and '2013-01-04-23.59.59'
    group by date(timestamp)
      , plan_name
  --  , subsystem_id
  --  , group_name
 --   , CONNECT_TYPE
 --   , CONNECT_ID
  --  , CORRNAME
    order by sum(class2_cpu_total) desc
     fetch first 100 rows only
;;;
?????????????????????????????
 set current path oa1p;
 select  planname
       , fosFmte7(sum(OCCURRENCES)) occ
       , fosFmte7(sum(p2Commits)) commit
       , fosFmte7(sum(ELAPSETOD     ))   c1Ela
       , fosFmte7(sum(ELAPSETCB + ELAPSESRB )) c1cpu
       , fosFmte7(sum((ELAPSETCB + ELAPSESRB)
                 *occurrences*16000000/CPUSUCONV))c1su
       , fosFmte7(sum(EDB2TOD       ))   c2Ela
       , fosFmte7(sum(EDB2TCB + EDB2SRB      )) c2cpu
       , fosFmte7(sum((EDB2TCB + EDB2SRB)
                 *occurrences * 16000000/CPUSUCONV)) c2su
   --  , min(cpusuconv), avg(cpusuconv), max(cpusuconv)
       , min(subsystem_id), max(subsystem_id)
       , min(groupname), max(groupname)
   --  , CONNTYPE
   --  , CONNECTION
   --  , CORRNAME
       , min(datetime)
       , max(datetime)
     from Pbdd.TACCT_GENERAL g
     where 1=1
    -- and planname in ('ER0044')
       and subsystem like 'DOF%'
       and datetime between '2013-01-04-00.00.00'
                        and '2013-01-04-23.59.59'
     group by date(datetime)
       , planname
    -- , subsystem
       , groupname
     --, CONNTYPE
     --, CONNECTion
     --, CORRNAME
       , PLANNAME
 --  order by subsystem
     order by sum(EDB2TCB + EDB2SRB      )  desc
     fetch first 100 rows only
 ;;;
?????????????????????????????
with s as(
  select date(timestamp) dt, hour(timestamp) hh, int(sum(commit))commit
    from RZ2hh.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-12-01-00.00.00'
                        and '2012-12-31-00.00.00'
    group by timestamp
)
, d as (
  select dt from s group by dt
)
select d.dt,
       right('    ' || value(strip(char(s00.commit)), ''), 4)
    || right('    ' || value(strip(char(s01.commit)), ''), 4)
    || right('    ' || value(strip(char(s02.commit)), ''), 4)
    || right('    ' || value(strip(char(s03.commit)), ''), 4)
    || right('    ' || value(strip(char(s04.commit)), ''), 4)
    || right('    ' || value(strip(char(s05.commit)), ''), 4)
    || right('    ' || value(strip(char(s06.commit)), ''), 4)
    || right('    ' || value(strip(char(s07.commit)), ''), 4)
    || right('    ' || value(strip(char(s08.commit)), ''), 4)
    || right('    ' || value(strip(char(s09.commit)), ''), 4)
    || right('    ' || value(strip(char(s10.commit)), ''), 4)
    || right('    ' || value(strip(char(s11.commit)), ''), 4)
    || right('    ' || value(strip(char(s12.commit)), ''), 4)
    || right('    ' || value(strip(char(s13.commit)), ''), 4)
    || right('    ' || value(strip(char(s14.commit)), ''), 4)
    || right('    ' || value(strip(char(s15.commit)), ''), 4)
    || right('    ' || value(strip(char(s16.commit)), ''), 4)
    || right('    ' || value(strip(char(s17.commit)), ''), 4)
    || right('    ' || value(strip(char(s18.commit)), ''), 4)
    || right('    ' || value(strip(char(s19.commit)), ''), 4)
    || right('    ' || value(strip(char(s20.commit)), ''), 4)
    || right('    ' || value(strip(char(s21.commit)), ''), 4)
    || right('    ' || value(strip(char(s22.commit)), ''), 4)
    || right('    ' || value(strip(char(s23.commit)), ''), 4)
      from d
      left join s s00  on s00.dt = d.dt and s00.hh = 00
      left join s s01  on s01.dt = d.dt and s01.hh = 01
      left join s s02  on s02.dt = d.dt and s02.hh = 02
      left join s s03  on s03.dt = d.dt and s03.hh = 03
      left join s s04  on s04.dt = d.dt and s04.hh = 04
      left join s s05  on s05.dt = d.dt and s05.hh = 05
      left join s s06  on s06.dt = d.dt and s06.hh = 06
      left join s s07  on s07.dt = d.dt and s07.hh = 07
      left join s s08  on s08.dt = d.dt and s08.hh = 08
      left join s s09  on s09.dt = d.dt and s09.hh = 09
      left join s s10  on s10.dt = d.dt and s10.hh = 10
      left join s s11  on s11.dt = d.dt and s11.hh = 11
      left join s s12  on s12.dt = d.dt and s12.hh = 12
      left join s s13  on s13.dt = d.dt and s13.hh = 13
      left join s s14  on s14.dt = d.dt and s14.hh = 14
      left join s s15  on s15.dt = d.dt and s15.hh = 15
      left join s s16  on s16.dt = d.dt and s16.hh = 16
      left join s s17  on s17.dt = d.dt and s17.hh = 17
      left join s s18  on s18.dt = d.dt and s18.hh = 18
      left join s s19  on s19.dt = d.dt and s19.hh = 19
      left join s s20  on s20.dt = d.dt and s20.hh = 20
      left join s s21  on s21.dt = d.dt and s21.hh = 21
      left join s s22  on s22.dt = d.dt and s22.hh = 22
      left join s s23  on s23.dt = d.dt and s23.hh = 23
    order by d.dt desc
;;;;
select plan_name, timestamp,
      fosFmte7(sum(class1_cpu_total)) "c1cpu",
      fosFmte7(sum(class2_cpu_total)) "c2cpu",
      fosFmte7(sum(sqls)                   ) "sqls",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
          fosFmte7(sum(real(select))) "select",
          fosFmte7(sum(real(open))) "open",
          fosFmte7(sum(real(fetch))) "fetch",
          fosFmte7(sum(real(insert))) "insert",
          fosFmte7(sum(real(update))) "update",
          fosFmte7(sum(real(delete))) "delete",
          fosFmte7(sum(real(PROGRAMS))) "pkgs"
    from s
--  group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
--  order by plan_name, min(class1_elapsed/max(sqls, 1))
    group by plan_name, timestamp
    order by plan_name, timestamp desc
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2hh.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-12-01-00.00.00'
                        and '2012-12-31-00.00.00'
)
select plan_name, timestamp,
      fosFmte7(sum(class1_cpu_total)) "c1cpu",
      fosFmte7(sum(class2_cpu_total)) "c2cpu",
      fosFmte7(sum(sqls)                   ) "sqls",
      int(sum(commit))  "commit",
      int(sum(rollback))  "rollback",
          fosFmte7(sum(real(select))) "select",
          fosFmte7(sum(real(open))) "open",
          fosFmte7(sum(real(fetch))) "fetch",
          fosFmte7(sum(real(insert))) "insert",
          fosFmte7(sum(real(update))) "update",
          fosFmte7(sum(real(delete))) "delete",
          fosFmte7(sum(real(PROGRAMS))) "pkgs"
    from s
--  group by plan_name, floor(log10(class1_elapsed/max(sqls, 1))*3)
--  order by plan_name, min(class1_elapsed/max(sqls, 1))
    group by plan_name, timestamp
    order by plan_name, timestamp desc
;;;
??????????????
with s as(
  select real(select+open+fetch+insert+update+delete) sqls,
         real(max(1, commit+rollback)) cr,
         g.*
    from RZ2HH.TACCT_GENERAL g
    where plan_name in ('PW5200', 'PW5220')
      and subsystem_id like 'DOF%'
      and timestamp between '2012-01-01-00.00.00'
                        and '2012-12-02-00.00.00'
)
select trunc_timestamp(timestamp,'HH'),
      plan_name,
      fosFmte7((class1_elapsed)/(cr)                 ) "c1ela/coR",
      fosFmte7((class2_elapsed)/(cr)                 ) "c2ela/coR",
      fosFmte7((class1_cpu_total)/(cr)) "c1cpu/coR",
      fosFmte7((class2_cpu_total)/(cr)) "c2cpu/coR",
      fosFmte7((CLASS3_ASYNCH_IXL)     /(cr)              ) "c3IXL/coR",
      int((occurrences))     "occ",
      int((commit))     "commit",
      int((rollback))     "rollBack",
      fosFmte7((sqls)/(cr)                 ) "sqls/coR",
          fosFmte7((class3_global_cont)/(cr)) "c2gloCon",
          fosFmte7((class3_DB_IO)/(cr)) "c3dbIo",
          fosFmte7((class3_LOG_WRT_IO)/(cr)) "c2logIo",
          fosFmte7((real(OPEN_CLOSE_SUSP))/(cr)) "opClo",
          fosFmte7((CLASS3_OPEN_CLOSE)/(cr)) "c3opClo",
          fosFmte7((real(SERV_TASK_SUSP))/(cr)) "serTa",
          fosFmte7((CLASS3_SERV_TASK)/(cr)) "c3serTa",
          fosFmte7((real(commit))/(cr)) "commit",
          fosFmte7((real(rollback))/(cr)) "rollback",
          fosFmte7((real(select))/(cr)) "select",
          fosFmte7((real(open) )/(cr)) "open",
          fosFmte7((real(fetch) )/(cr)) "fetch",
          fosFmte7((real(insert))/(cr)) "insert",
          fosFmte7((real(update))/(cr)) "update",
          fosFmte7((real(delete))/(cr)) "delete",
        fosFmte7((real(INCREMENTAL_BIND))/(cr))"incrBi",
          fosFmte7((real(PROGRAMS))         /(cr)) "pkgs"
    from s
 -- group by trunc_timestamp(timestamp,'HH'), plan_name
    order by plan_name, (class1_elapsed)/(cr) desc
    fetch first 1000 rows only
;;;
;;;
select count(*), plan_name
    from rz1xx.tacct_program
    where pck_id = 'YWPR2PX' and group_Name = 'DE0G'
    group by plan_name
    with ur
set current path = oa1p;
with i as
(
select plan_name
     , sum(class2_elapsed) ela
     , sum(class2_cpu_total) cpu
     , sum(commit) com
     , sum(select) sel
     , sum(open) op
     , sum(fetch) fet
     , min(timestamp) von
     , max(timestamp) bis
    from rz2mm.tacct_general
    where timestamp > '2011-01-01 00:00:00' and commit > 0
        and plan_name in ('PW0602', 'PW0408')
    group by plan_name, floor( 2*log10(class2_elapsed / commit))
)
select plan_name
     , fosFmte7(ela / com)   "ela/com"
     , fosFmte7(com) commit
     , fosFmtE7(cpu / com)   "cpu/com"
     , fosFmtE7(sel / com)   "sel/Com"
     , fosFmtE7(op  / com)   "ope/Com"
     , fosFmtE7(fet / com)   "fet/Com"
     , von , bis
    from i
    order by plan_name, ela/com desc
    with ur
}¢--- A540769.WK.SQL(PDBGENY2) cre=2012-12-24 mod=2013-01-07-13.32.12 A540769 ---
//A540769Z  JOB (CP00,KE50),                                            00010001
//         MSGCLASS=T,TIME=1440,
//         NOTIFY=A540769
//*MAIN CLASS=LOG0 SYSTEM=S12
//SELDD    EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99                       00020001
//SYSTSIN  DD *
    DSN SYSTEM(DBOC)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSIN    DD *
select  timestamp
      , plan_name
      , subsystem_id
      , OCCURRENCES
      , commit
      , class1_elapsed
      , class1_cpu_total
      , class1_su_cpu
      , class2_elapsed
      , class2_cpu_total
      , class2_su_cpu
      , group_name
      , CONNECT_TYPE
      , CONNECT_ID
      , CORRNAME
    from RZ2dd.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and timestamp between '2012-12-21-00.00.00'
                        and '2012-12-21-23.59.59'
    order by subsystem_id
           , timestamp
//SELXX    EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99                       00020001
//SYSTSIN  DD *
    DSN SYSTEM(DBOC)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSIN    DD *
select  timestamp
      , plan_name
      , subsystem_id
      , OCCURRENCES
      , commit
      , class1_elapsed
      , class1_cpu_total
      , class1_su_cpu
      , class2_elapsed
      , class2_cpu_total
      , class2_su_cpu
      , group_name
      , CONNECT_TYPE
      , CONNECT_ID
      , CORRNAME
    from RZ2dd.TACCT_GENERAL g
    where plan_name in ('ER0044')
      and timestamp between '2012-12-21-00.00.00'
                        and '2012-12-21-23.59.59'
    order by subsystem_id
           , timestamp
}¢--- A540769.WK.SQL(PDBGEN4) cre=2010-02-13 mod=2010-02-16-15.51.15 A540769 ---
select plan_name, pck_id
    from RZ2DD.TACCT_program g
    where  -- plan_Name like 'TP500%'
      pck_id in ('TP0900' ,
                 'TP0910' ,
                 'TP0920' ,
                 'YTPFLAG')
      and timestamp > current timestamp - 70 days
 --   and hour(timestamp) between 19 and 21
    group by plan_name, pck_id
    order by 1, 2
    with ur
;
xelect *
    from RZ2XX.TACCT_general g
    where
-- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
--    ere  -- plan_Name like 'TP500%'
      plan_name =   'XBLE80'
--                  'TP5090')
      and timestamp > current timestamp - 24 hours
  --  and hour(timestamp) between 19 and 21
    order by timestamp asc
  --group by plan_name
    with ur
;
select *
    from RZ2XX.TACCT_program g
    where
-- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
--    ere  -- plan_Name like 'TP500%'
      plan_name =   'XBLE80'
--                  'TP5090')
      and timestamp > current timestamp - 24 hours
  --  and hour(timestamp) between 19 and 21
    order by timestamp asc
  --group by plan_name
    with ur
;
xelect *
    from RZ2XX.TACCT_general g
    where  -- plan_Name like 'TP500%'
      plan_name in ('TP0920' ,
                    'TP5090')
      and timestamp > current timestamp - 12 hours
  --  and hour(timestamp) between 19 and 21
    order by timestamp asc
  --group by plan_name
    with ur
;
select *
    from RZ2XX.TACCT_program g
    where  -- plan_Name like 'TP500%'
      pck_id in ('TP0900' ,
                 'TP0910' ,
                 'TP0920' ,
                 'YTPFLAG')
      and timestamp > current timestamp - 12 hours
  --  and hour(timestamp) between 19 and 21
    order by timestamp asc
  --group by plan_name
    with ur
;
xelect sum(occurrences), pck_id, pck_collection_id
    from RZ2DD.TACCT_program g
    where  -- plan_Name like 'TP500%'
      plan_name in ('TP0900' ,
                 'TP0910' ,
                 'TP5000' ,
                 'TP5090')
      and timestamp > current timestamp - 55 days
  --  and hour(timestamp) between 19 and 21
  --order by timestamp desc
    group by pck_id, pck_collection_id
    with ur
;
select plan_name, sum(occurrences)
    from RZ2DD.TACCT_program g
    where  -- plan_Name like 'TP500%'
      pck_id in ('TP0900' ,
                 'TP0910' ,
                 'TP0920' ,
                 'YTPFLAG')
      and timestamp > current timestamp - 55 days
  --  and hour(timestamp) between 19 and 21
  --order by timestamp desc
    group by plan_name
    with ur
;
select *
    from RZ4MM.TACCT_program g
    where  -- plan_Name like 'TP500%'
      pck_id in ('TP0900' ,
                 'TP0910' ,
                 'TP0920' ,
                 'YTPFLAG')
      and timestamp > current timestamp - 20 days
      and hour(timestamp) between 19 and 21
    order by timestamp desc
    with ur
;
xelect count(*), sum(occurrences), plan_name, pck_id, PCK_COLLECTION_ID,
    min(timestamp), max(timestamp)
    from RZ2DD.TACCT_Program g
    where -- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
          PLAN_NAME = 'TP5000'
          and timestamp > current timestamp - 33 days
    group by plan_name, pck_id, PCK_COLLECTION_ID
    order by plan_name, pck_id, PCK_COLLECTION_ID
;
xelect CONNECT_TYPE , plan_name, count(occurrences), count(*)
    from RZ4DD.TACCT_general g
    where CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
          and timestamp > current timestamp - 21 days
    group by CONNECT_TYPE , plan_name
    order by 1, 2
    ;
xelect *
    from RZ4DD.TACCT_general g
    where -- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
          PLAN_NAME = 'TP5000'
          and timestamp > current timestamp - 33 days
    order by timestamp
;
x
select plan_name, count(*)
    from RZ4HH.TACCT_Program g
    where -- CONNECT_TYPE in ('DRDA', 'DB2 PRIV')
      --  PLAN_NAME = 'TP5000'
              timestamp > current timestamp - 33 days
    group by plan_name
    order by 1 -- timestamp
;
x
    group by CONNECT_TYPE
    order by CONNECT_TYPE
;
      pck_id in ('TP5000' ,
select *
    from RZ4HH.TACCT_program g
    where  -- plan_Name like 'TP500%'
      and timestamp > current timestamp - 20 days
      pck_id in ('TP5000' ,
                 'YCDSGET',
                 'YCDUVGE',
                 'YDESTEU',
                 'YDIEURE',
                 'YDIT001',
                 'YDIT002',
                 'YDIT003',
                 'YDIT004',
                 'YTPFLAG',
                 'YTPOBS' ,
                 'YTPTPS' ,
                 'YTREDB2',
                 'YTPFLAG')
      and timestamp > current timestamp - 20 days
    order by timestamp desc
    with ur
;
xelect count(*), pck_id, PCK_COLLECTION_ID
    from RZ2HH.TACCT_program g
    where plan_Name = 'TP5000'
      and timestamp > current timestamp - 20 days
    group by pck_id, PCK_COLLECTION_ID
    order by pck_id, PCK_COLLECTION_ID
    with ur
;
select *
    from RZ2HH.TACCT_program g
    where plan_Name like 'TP500%'
      and timestamp > current timestamp - 20 days
    order by timestamp desc
    with ur
;
xelect *
    from RZ2HH.TACCT_GENERAL g
    where plan_Name like 'TP500%'
      and timestamp > current timestamp - 20 days
    order by timestamp desc
    with ur
;
xelect subsystem_id, count(*), min(timestamp), max(timestamp)
    from RZ2HH.TACCT_GENERAL g
    group by subsystem_id
    order by subsystem_id
    with ur
;
xelect class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RR2HH.TACCT_GENERAL g
    where -- timestamp > current timestamp - 120 DAY
              corrname like 'NI229%'
 --        or corrname like 'NI22922%'
   --     and plan_name like 'DSNUT%'
   --     and insert >= 1
    ORDER BY CLASS1_ELAPSED desc
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
}¢--- A540769.WK.SQL(PDBLOAD) cre=2008-11-14 mod=2008-11-14-09.56.20 F540769 ---
select count(*), utility_type
    from oa1a.tadm11a1
    group by utility_type
}¢--- A540769.WK.SQL(PDBPCKG) cre=2008-08-06 mod=2009-09-01-17.24.25 A540769 ---
SELECT  min(timestamp) ,
        left(SUBSYSTEM_ID, 3),
        SUM(OCCURRENCES) OCCURRENCES,
        SUM(SQL_STMTS_ISSUED)  stmts,
        SUM(CLASS7_ELAPSED )   elaps,
        SUM(CLASS7_CPU_TOTAL ) cpu,
        SUM(CLASS7_ELAPSED )/SUM(SQL_STMTS_ISSUED) "elaps/stmt"     ,
        SUM(CLASS7_CPU_TOTAL )/SUM(SQL_STMTS_ISSUED) "cpu/stmt"
    FROM RZ2DD.TACCT_PROGRAM
    WHERE TIMESTAMP >= '2009-05-01-00.00.00.000000'
      AND TIMESTAMP <= '2099-07-02-00.00.00.000000'
    AND PCK_ID = 'BU021@I'
    AND SUBSYSTEM_ID LIKE 'DOF%'
    GROUP BY trunc_TIMESTAMP(timestamp, 'day'), left(SUBSYSTEM_ID, 3)
    ORDER BY 1 DESC
    with ur
;
x
SELECT      timestamp, count(*),
            sum(case when PCK_ID = 'BU021@I' then 1 else 0 end)
    FROM RZ2DD.TACCT_PROGRAM
    where subsystem_id like 'DOF%'
    group by timestamp
    order by 1 desc
    with ur
    ;
    x
}¢--- A540769.WK.SQL(PDBPEAK) cre=2012-05-25 mod=2012-05-25-13.42.57 A540769 ---
set current path = oa1p;
select trunc_timestamp(timestamp, 'hh'),
       fosFmtE7(sum(CLASS1_CPU_TOTAL/3600 )) "c1cpu",
       fosFmtE7(sum(CLASS2_CPU_TOTAL/3600 )) "c2cpu"
    from rz2hh.tacct_General
    where subsystem_id like 'DOF4%'
       and timestamp > current timestamp -10 days
       and dayofweek_iso(timestamp) <= 5
          AND hour(timestamp) between 9 and 11
    group by trunc_timestamp(timestamp, 'hh')
    order by 1 desc
    with ur
;;;
select trunc_timestamp(timestamp, 'hh'),
       fosFmtE7(sum(CLASS7_CPU_TOTAL/3600 )) "c7cpu"
    from rz2hh.tacct_Program
    where subsystem_id like 'DOF%'
       and timestamp > current timestamp -10 days
       and dayofweek_iso(timestamp) <= 5
          AND hour(timestamp) between 9 and 11
    group by trunc_timestamp(timestamp, 'hh')
    order by 1 desc
    with ur
    ;;;
}¢--- A540769.WK.SQL(PDBPKG) cre=2012-03-29 mod=2012-03-29-15.09.51 A540769 ----
set current path oa1p;
select count(*), group_name,
       min(timestamp), max(timestamp)
    from rz1xx.tacct_program
    group by group_name, trunc_timestamp(timestamp, 'ddd')
    order by min(TIMESTAMP) desc, group_name
    with ur
;
}¢--- A540769.WK.SQL(PDBPKGAV) cre=2012-05-22 mod=2012-06-04-07.29.47 A540769 ---
set current path oa1p;
select
       trunc_timestamp(timestamp, 'hh'),
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
    where pck_id =   'YAVRATE'
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  5  days
    group by pck_id, trunc_timestamp(timestamp, 'hh')
    having sum(SQL_STMTS_ISSUED) >= 1e3
    order by 1 desc
;;;
set current path oa1p;
select
    -- trunc_timestamp(timestamp, 'day'),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       GROUP_NAME grp,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
    where pck_id in ('AV373@I')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
        and dayofweek_iso(timestamp) <= 5
              AND hour(timestamp) between 9 and 11

    group by group_name, plan_name,  PCK_COLLECTION_ID,PCK_id
  --                ,   trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by group_name --                 , PCK_COLLECTION_ID,PCK_id
                 , sum(CLASS7_CPU_TOTAL) desc
                 , plan_name
 --              , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
       date(trunc_timestamp(timestamp, 'ddd')),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('YCDSGET')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timesta p) between 9 and 11

    group by  pck_id, pck_collection_id ,
                        trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGA1) cre=2012-09-05 mod=2012-09-05-14.11.47 A540769 ---
select count(*), sum(occurrences), max(Timestamp),
              strip(plan_name) || '.'
              || strip(PCK_COLLECTION_ID) || '.'
              || strip(PCK_ID) || ' ' group_name
    from rz1dd.tacct_program
    where timestamp > current timestamp - 3 DAY
        and ( PCK_COLLECTION_ID like 'A1%'
           or PCK_COLLECTION_ID like 'A2%'
           or PCK_COLLECTION_ID like 'YY%'
           or PCK_COLLECTION_ID like 'NTA%'
           )
    group by plan_name, PCK_COLLECTION_ID, pck_id, group_name
    with ur
;x
}¢--- A540769.WK.SQL(PDBPKGBV) cre=2012-09-13 mod=2012-09-13-23.56.26 A540769 ---
select *
    from rz2hh.tacct_program
    where pck_id = 'YBVBUCS'
    and timestamp > current timestamp - 20 days
}¢--- A540769.WK.SQL(PDBPKGCD) cre=2012-05-21 mod=2012-05-24-15.33.26 A540769 ---
set current path oa1p;
select
    -- trunc_timestamp(timestamp, 'day'),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       GROUP_NAME grp,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
--  where pck_id in ('YCDSGET')
    where pck_id in ('NZDBM73')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
        and dayofweek_iso(timestamp) <= 5
              AND hour(timestamp) between 9 and 11

    group by group_name, plan_name,  PCK_COLLECTION_ID,PCK_id
  --                ,   trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by group_name --                 , PCK_COLLECTION_ID,PCK_id
                 , sum(CLASS7_CPU_TOTAL) desc
                 , plan_name
 --              , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
       date(trunc_timestamp(timestamp, 'ddd')),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('YCDSGET')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timesta p) between 9 and 11

    group by  pck_id, pck_collection_id ,
                        trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGCK) cre=2011-06-10 mod=2012-05-16-13.06.28 A540769 ---
set current path oa1p;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
    -- PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKCCSI'
        and subsystem_id like 'DOF%'
        and       timestamp > '2012-05-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by                       PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                                 PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGCT) cre=2012-05-22 mod=2012-06-18-16.13.42 A540769 ---
set current path oa1p;
select
       trunc_timestamp(timestamp, 'hh'),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
    -- PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
   --  GROUP_NAME grp,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       substr(min(PCK_COLLECTION_ID), 1, 8) coll,
       substr(max(PCK_COLLECTION_ID), 1, 8) collTo,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
    where pck_id in ('YCTS100')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -   1 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
    --  and dayofweek_iso(timestamp) <= 5
    --        AND hour(timestamp) between 9 and 11

    group by group_name,                               PCK_id
  --group by group_name, plan_name,  PCK_COLLECTION_ID,PCK_id
                    ,   trunc_timestamp(timestamp, 'hh')
    order by 1 desc -- group_name, plan_name , PCK_COLLECTION_ID,PCK_id
 --              , sum(CLASS7_CPU_TOTAL) desc
 --              , plan_name
 --              , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
       date(trunc_timestamp(timestamp, 'ddd')),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('YCDSGET')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timesta p) between 9 and 11

    group by  pck_id, pck_collection_id ,
                        trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGDD) cre=2012-12-18 mod=2012-12-19-16.20.02 A540769 ---
-- db2 package usage aus tacct_package pro Tag
--          1 Tag im Verhältnis zu ganzem  range pro Package
--
set current path = oa1p;
with a as
  (
    SELECT PCK_ID       PK
          ,SUM( CASE WHEN DATE(TIMESTAMP) = '17.12.2012'
                     THEN SQL_STMTS_ISSUED  ELSE 0 END) d1stmts
          ,SUM( CASE WHEN DATE(TIMESTAMP) = '17.12.2012'
                     THEN CLASS7_CPU_TOTAL  ELSE 0 END) d1CPU
          ,SUM( CASE WHEN DATE(TIMESTAMP) = '17.12.2012'
                     THEN CLASS7_SU_CPU  ELSE 0 END) d1Su
          ,SUM(SQL_STMTS_ISSUED) stmts
          ,sum(CLASS7_CPU_TOTAL) as c7cpu
          ,sum(CLASS7_SU_CPU   ) as c7su
      FROM RZ2DD.TACCT_PROGRAM
        WHERE TIMESTAMP between '2012-12-12-00.00.00.000000'
                            and '2012-12-19-23.59.00.000000'
                            and pck_id = 'YERSGRI'
      AND GROUP_NAME = 'DBOF'
      GROUP BY pck_id
  )
SELECT substr(pk, 1, 8) pk
     , smallInt(1000 * d1Stmts / max(1, stmts)) stPrm
     , smallInt(1000 * d1Su / max(1, c7Su)) suPrm
     , fosFmte7(d1Cpu - 0.2 * c7cpu) cpuPlus
     , fosFmte7(d1Stmts)    d1Stmts
     , fosFmte7(d1cpu  )    d1cpu
     , fosFmte7(d1Su   )    d1Su
     , fosFmte7(  Stmts)    stmts
     , fosFmte7(c7cpu  )    c7cpu
     , fosFmte7(c7Su   )    c7Su
  FROM A
    ORDER BY d1Cpu - 0.2 * c7cpu
FETCH FIRST 1000 ROWS ONLY
WITH UR
;
, ad as
(
select date(a.tst)  datum
    , sum(a.c7cpu) / count(*) / 3600 cpu
    , sum(a.stmts) / count(*) / 3600 stmts
    , count(*) hh
    , max(a.c7cpu) / 3600 maxCpu
    from a
    group by date(tst)
)
, pd as
(
select date(a.tst)  datum
    , sum(a.c7cpu) / count(*) / 3600 cpu
    , sum(a.stmts) / count(*) / 3600 stmts
    , count(*) hh
    , max(a.c7cpu) / 3600 maxCpu
    from a
    where dayofweek_iso(TST) <= 5
                AND hour(tst) between 9 and 11
    group by date(tst)
)
select ad.datum
    , substr(fosFmtE7(ad.cpu), 1, 7) "allCpu"
    , substr(fosFmtE7(pd.cpu), 1, 7) "peakCpu"
    , substr(fosFmtE7(ad.maxCpu), 1, 7) "maxCpu"
    , substr(fosFmtE7(ad.stmts), 1, 7) "allStmts"
    , substr(fosFmtE7(pd.stmts), 1, 7) "peakStmts"
    , smallint(ad.hh) "allHH", smallInt(pd.hh) "peakHH"
    from ad left join pd on ad.datum = pd.datum
    order by 1 desc
;
--
-- db2 package usage aus tacct_package total
--          average 7*24h, average peak Hours und max
--
--    vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with p as
  (
    SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
          ,SUM(SQL_STMTS_ISSUED) stmts
          ,SUM(CLASS7_SU_CPU) AS c7su
          ,sum(CLASS7_CPU_TOTAL) as c7cpu
      FROM RZ2HH.TACCT_PROGRAM
        WHERE TIMESTAMP between '2012-02-27-00.00.00.000000'
                            and '2012-04-01-23.59.00.000000'
     --   AND GROUP_NAME = 'DBOF'
      GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
  )
  select substr(fosFmtE7(sum(c7cpu) / count(*) / 3600), 1, 7) avg,
         substr(fosFmtE7(max(c7cpu) /3600            ), 1, 7) max,
         substr(fosFmtE7(sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then c7Cpu else 0 end)
            / sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then 1 else 0 end) /3600 ), 1, 7) avgPeak,
         count(*) hh,
         sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then 1 else 0 end) peakHours
      from p
    order by 1 desc
;
  ;;; order by 1
        ,substr(fosFmte7(C2_CPU), 1, 7) c2_cpu
        ,substr(fosFmte7(CPU_C7), 1, 7) c7_cpu
        ,substr(fosFmte7(C2_SU), 1, 7) c2_su
        ,substr(fosFmte7(SU_CLASS7), 1, 7) c7_su
        ,substr(fosFmte7(mdl), 1, 7) gen_st
        ,substr(fosFmte7(anz_sql), 1, 7) pg_st
        ,substr(fosFmte7(C2_SU/mdl), 1, 7) gen_su_st
        ,substr(fosFmte7(SU_CLASS7/anz_sql), 1, 7) pg_su_st

   from g full join p
     on p.datum = g.datum
    ORDER BY 1 DESC
}¢--- A540769.WK.SQL(PDBPKGER) cre=2012-12-19 mod=2012-12-19-18.28.42 A540769 ---
set current path oa1p;
select date(timestamp) date, plan_name
     , fosFmtE7(sum(CLASS7_CPU_TOTAL)/86400) as avCpu
     , fosFmte7(SUM(SQL_STMTS_ISSUED)) stmts
     , fosFmtE7(sum(CLASS7_CPU_TOTAL)) as c7cpu
     , fosFmtE7(sum(CLASS7_SU_CPU )) as c7su
     , fosFmtE7(sum(CLASS7_CPU_TOTAL)
        / max(SUM(SQL_STMTS_ISSUED), 1)) "cpu/stmt"
 FROM RZ2dd.TACCT_PROGRAM
   WHERE TIMESTAMP between '2012-10-12-00.00.00.000000'
                       and '2012-12-19-23.59.00.000000'
                       and pck_id = 'YERSGRI'
 AND GROUP_NAME = 'DBOF'
   group by date(timestamp), plan_name
 order by date(timestamp) desc
 ;x;
select *
 FROM RZ2DD.TACCT_PROGRAM
   WHERE TIMESTAMP between '2012-10-12-00.00.00.000000'
                       and '2012-12-19-23.59.00.000000'
                       and pck_id = 'YERSGRI'
 AND GROUP_NAME = 'DBOF'
 order by timestamp desc, subsystem_id
;x;
select date(timestamp) date
     , fosFmte7(SUM(SQL_STMTS_ISSUED)) stmts
     , fosFmtE7(sum(CLASS7_CPU_TOTAL)) as c7cpu
     , fosFmtE7(sum(CLASS7_SU_CPU )) as c7su
     , fosFmtE7(sum(CLASS7_CPU_TOTAL)
        / max(SUM(SQL_STMTS_ISSUED), 1)) "cpu/stmt"
 FROM RZ2HH.TACCT_PROGRAM
   WHERE TIMESTAMP between '2012-10-12-00.00.00.000000'
                       and '2012-12-19-23.59.00.000000'
                       and pck_id = 'YERSGRI'
 AND GROUP_NAME = 'DBOF'
 and hour(timestamp) in (10,11,14,15)
   group by date(timestamp)
 order by date(timestamp) desc
 ;x;
}¢--- A540769.WK.SQL(PDBPKGEU) cre=2012-03-07 mod=2012-03-07-13.34.20 A540769 ---
select pck_id, count(*)
    from rz1dd.tacct_program
    where plan_name = 'EU5010'
         and timestamp > current timestamp - 3 month
    group by pck_id
}¢--- A540769.WK.SQL(PDBPKGFA) cre=2012-06-27 mod=2012-06-27-14.02.07 A540769 ---
set current path oa1p;
select
       date(trunc_timestamp(timestamp, 'ddd')),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('FAU100A1')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  32 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timesta p) between 9 and 11

    group by  pck_id, pck_collection_id ,
                        trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
set current path oa1p;
select
    -- trunc_timestamp(timestamp, 'day'),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       GROUP_NAME grp,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
    where pck_id in ('YYWM05E', 'YYWM51E')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
        and dayofweek_iso(timestamp) <= 5
              AND hour(timesta p) between 9 and 11

    group by group_name, plan_name,  PCK_COLLECTION_ID,PCK_id
  --                ,   trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by group_name --                 , PCK_COLLECTION_ID,PCK_id
                 , sum(CLASS7_CPU_TOTAL) desc
                 , plan_name
 --              , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGHH) cre=2012-04-17 mod=2012-05-29-15.08.12 A540769 ---
-- db2 package usage aus tacct_package pro Tag
--          average 24h, average peak Hours und max
--
set current path = oa1p;
with a as
  (
    SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
          ,SUM(SQL_STMTS_ISSUED) stmts
          ,SUM(CLASS7_SU_CPU) AS c7su
          ,sum(CLASS7_CPU_TOTAL) as c7cpu
      FROM RZ2HH.TACCT_PROGRAM
        WHERE TIMESTAMP between '2012-05-01-00.00.00.000000'
                            and '2012-05-31-23.59.00.000000'
       -- AND GROUP_NAME = 'DBOF'
      GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
  )
, ad as
(
select date(a.tst)  datum
    , sum(a.c7cpu) / count(*) / 3600 cpu
    , sum(a.stmts) / count(*) / 3600 stmts
    , count(*) hh
    , max(a.c7cpu) / 3600 maxCpu
    from a
    group by date(tst)
)
, pd as
(
select date(a.tst)  datum
    , sum(a.c7cpu) / count(*) / 3600 cpu
    , sum(a.stmts) / count(*) / 3600 stmts
    , count(*) hh
    , max(a.c7cpu) / 3600 maxCpu
    from a
    where dayofweek_iso(TST) <= 5
                AND hour(tst) between 9 and 11
    group by date(tst)
)
select ad.datum
    , substr(fosFmtE7(ad.cpu), 1, 7) "allCpu"
    , substr(fosFmtE7(pd.cpu), 1, 7) "peakCpu"
    , substr(fosFmtE7(ad.maxCpu), 1, 7) "maxCpu"
    , substr(fosFmtE7(ad.stmts), 1, 7) "allStmts"
    , substr(fosFmtE7(pd.stmts), 1, 7) "peakStmts"
    , smallint(ad.hh) "allHH", smallInt(pd.hh) "peakHH"
    from ad left join pd on ad.datum = pd.datum
    order by 1 desc
;
--
-- db2 package usage aus tacct_package total
--          average 7*24h, average peak Hours und max
--
--    vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with p as
  (
    SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
          ,SUM(SQL_STMTS_ISSUED) stmts
          ,SUM(CLASS7_SU_CPU) AS c7su
          ,sum(CLASS7_CPU_TOTAL) as c7cpu
      FROM RZ2HH.TACCT_PROGRAM
        WHERE TIMESTAMP between '2012-02-27-00.00.00.000000'
                            and '2012-04-01-23.59.00.000000'
     --   AND GROUP_NAME = 'DBOF'
      GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
  )
  select substr(fosFmtE7(sum(c7cpu) / count(*) / 3600), 1, 7) avg,
         substr(fosFmtE7(max(c7cpu) /3600            ), 1, 7) max,
         substr(fosFmtE7(sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then c7Cpu else 0 end)
            / sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then 1 else 0 end) /3600 ), 1, 7) avgPeak,
         count(*) hh,
         sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then 1 else 0 end) peakHours
      from p
    order by 1 desc
;
  ;;; order by 1
        ,substr(fosFmte7(C2_CPU), 1, 7) c2_cpu
        ,substr(fosFmte7(CPU_C7), 1, 7) c7_cpu
        ,substr(fosFmte7(C2_SU), 1, 7) c2_su
        ,substr(fosFmte7(SU_CLASS7), 1, 7) c7_su
        ,substr(fosFmte7(mdl), 1, 7) gen_st
        ,substr(fosFmte7(anz_sql), 1, 7) pg_st
        ,substr(fosFmte7(C2_SU/mdl), 1, 7) gen_su_st
        ,substr(fosFmte7(SU_CLASS7/anz_sql), 1, 7) pg_su_st

   from g full join p
     on p.datum = g.datum
    ORDER BY 1 DESC
}¢--- A540769.WK.SQL(PDBPKGHO) cre=2012-04-12 mod=2012-06-14-13.20.41 A540769 ---
set current path oa1p;
select
       trunc_timestamp(timestamp, 'hh'), subsystem_id,
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED))   "stmts",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )/3600) "c7proc",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)
           /max(1,sum(SQL_STMTS_ISSUED)))  "cpu/stm",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_ELAPSED )
           /max(1, sum(SQL_STMTS_ISSUED)))  "ela/stm",
  --   substr(PCK_COLLECTION_ID, 1, 8) coll,
  --   substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
 --    fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
 --    fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
 --    fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
 --    fosFmtE7(sum(BP_GETPAGES ))       "getPg",
 --    fosFmtE7(sum(SYNC_READ ))         "synRead",
 --    fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
 --    fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
 --    fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
 --    fosFmtE7(sum(ASYNC_READ ))        "asyRead",
 --    fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
 --    fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
 --    fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU"
 --    min(subsystem_id) subV,
 --    max(subsystem_id) subB
    from rz2hh.tacct_program
  --where pck_id = 'YCKSCCA'
    where   subsystem_id like 'DOF%'
        and  timestamp  between '2012-05-29-00.00.00'
                            and '2012-05-29-23.59.00'
   --   and  dayofweek_iso(timestamp) <= 5
   --   and  hour(timestamp) between 9 and 11
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by  trunc_timestamp(timestamp, 'hh'), subsystem_id
  --group by                       PCK_COLLECTION_ID,PCK_id
  --                ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
 -- order by  1 desc
 -- order by                                 PCK_COLLECTION_ID,PCK_id
 --              , min(TIMESTAMP) desc
    order by trunc_timestamp(timestamp, 'hh'), subsystem_id
    fetch first 200 rows only with ur
;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGKC) cre=2011-08-31 mod=2011-08-31-06.29.05 A540769 ---
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YKCLOGS'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
set current path oa1p;
select
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       case when timestamp < '2011-08-23-12.45.00' then 'alt'
                                                   else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-23-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id,
       case when timestamp < '2011-08-23-12.45.00' then 'alt'
                                                   else 'neu' end
 -- order by TIMESTAMP desc, plan_name, PCK_COLLECTION_ID,PCK_id
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
}¢--- A540769.WK.SQL(PDBPKGLA) cre=2010-06-21 mod=2010-06-21-14.05.51 A540769 ---
select count(*), max(lastUsed), min(lastUsed)
    from rz2.TACCT_PKGUSED
;
select count(*), max(lastUsed), min(lastUsed)
    from rz2.TACCT_PKGUSED
    where lastUsed > current date - 1 month
}¢--- A540769.WK.SQL(PDBPKGLI) cre=2012-01-30 mod=2012-02-01-16.33.40 A540769 ---
select plan_name, PCK_COLLECTION_ID
                , count(*), min(timestamp), max(timestamp)
                , min(subsystem_id), max(subsystem_id)
     from rz1dd.tacct_program
     where -- timestamp > current timestamp - 10 days
         PCK_COLLECTION_ID like 'A1%'
      or PCK_COLLECTION_ID like 'A2%'
      or PCK_COLLECTION_ID like 'NTA%'
     group by Plan_Name, PCK_COLLECTION_ID
     order by Plan_Name, PCK_COLLECTION_ID
     with ur
select *
     from rz2dd.tacct_program
     where timestamp > current timestamp - 12 days
     and PCK_COLLECTION_ID like 'NTA1%'
     order by PCK_COLLECTION_ID desc
     with ur
}¢--- A540769.WK.SQL(PDBPKGNZ) cre=2011-08-22 mod=2012-06-12-16.46.36 A540769 ---
set current path oa1p;
SELECT date(trunc_timestamp(timestamp, 'day'))
         , substr(pck_id,1,8), count(*),
         fosFmtE7(sum(class7_cpu_total)) cpu                        ,
   fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm"
  FROM RZ2dd.TACCT_PROGRAM P -- RZ2
  where pck_ID    = 'YCTS100'
      and timestamp between '2012-01-01-00.56.30'
                        and '2012-09-15-23.12.25.53'
  group by pck_id, trunc_timestamp(timestamp, 'day')
  order by 1, 2
--order by class7_elapsed desc
  ;  ;;
SELECT plan_name, count(*)
  FROM RZ2xx.TACCT_PROGRAM P -- RZ2
  where pck_id = 'NZDBM86'
      and timestamp between '2012-06-03-22.56.30'
                        and '2012-06-03-23.12.25.53'
  group by plan_name
--order by class7_elapsed desc
  ;  ;;
SELECT min(timestamp), count(*) cnt,
   fosFmtE7(sum(SQL_STMTS_ISSUED)) stmts,
   fosFmtE7(sum(class7_elapsed) / sum(SQL_STMTS_ISSUED)) "ela/stm",
   fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm",
   fosFmtE7(sum(class7_cpu_total)                        ) "cpu    ",
   fosFmtE7(sum(CLASS8_SYNC_IO) / sum(SQL_STMTS_ISSUED)) "sIO/stm"
  FROM RZ2HH.TACCT_PROGRAM P -- RZ2
  where pck_id = 'NZDBM83'
      and timestamp > current timestamp - 45 days
  group by trunc_timestamp(timestamp, 'ddd')
  order by trunc_timestamp(timestamp, 'ddd') desc
  ;  ;;
SELECT min(timestamp), count(*) cnt,
   fosFmtE7(sum(SQL_STMTS_ISSUED)) stmts,
   fosFmtE7(sum(class7_elapsed) / sum(SQL_STMTS_ISSUED)) "ela/stm",
   fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm",
   fosFmtE7(sum(CLASS8_SYNC_IO) / sum(SQL_STMTS_ISSUED)) "sIO/stm"
  FROM RZ2DD.TACCT_PROGRAM P -- RZ2
  where pck_id = 'NZ6500'
      and timestamp > current timestamp - 125 days
  group by trunc_timestamp(timestamp, 'DAY')
  order by trunc_timestamp(timestamp, 'DAY') desc
;;;
SELECT *
  FROM RR2DD.TACCT_PROGRAM P -- RZ2
  where pck_id = 'NZ5820'
      and timestamp > current timestamp - 5 days
  order by timestamp desc
;
}¢--- A540769.WK.SQL(PDBPKGOE) cre=2011-09-15 mod=2011-09-15-12.22.02 A540769 ---
set current path oa1p;
select           plan_name, pck_id, pck_collection_id, p.*
    from rz1xx.tacct_program p
    where pck_id = 'YOEMAGP' and subsystem_id like 'DTB%'
                             and plan_name = 'XBDF09'
    order by timestamp desc
    fetch first 100 rows only
;;;
select count(*), plan_name, pck_id, pck_collection_id,
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
    -- PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by                       PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                                 PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGPL) cre=2007-05-25 mod=2011-09-22-11.42.18 A540769 ---
set current path = 'OA1P';
select PLAN_NAME plan
     , substr(PCK_COLLECTION_ID, 1, 8) col
     , substr(PCK_ID, 1, 8)            pkg
     , fosFmtE7(sum(occurrences))      occ
     , fosFmtE7(sum(SQL_STMTS_ISSUED)) sqls
     , fosFmtE7(sum(CLASS7_ELAPSED))   ela
     , fosFmtE7(sum(CLASS7_CPU_TOTAL)) cpu
     , count(distinct timestamp)      "days"
     , min(timestamp)                  von
     , max(timestamp)                  bis
    FROM RZ2DD.TACCT_PROGRAM P
    where plan_name = 'PC0680'
       and timestamp > current timestamp - 12 days
    group by plan_name, pck_collection_id, pck_id
    order by plan_name, pck_collection_id, pck_id
    with ur
;
}¢--- A540769.WK.SQL(PDBPKGPW) cre=2012-07-12 mod=2012-08-31-11.12.57 A540769 ---
set current path oa1p;
select class7_elapsed / sql_stmts_issued,
       class7_cpu_total / sql_stmts_issued,
       p.*
    from rr2hh.tacct_program p
    where pck_id =   'YPW2KAB'
         and timestamp between '2012-11-01-12.00.00'
                           and '2012-12-02-12.00.00'
    order by subsystem_id, timestamp
;x;
select
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       date(timestamp),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       sum(SQL_STMTS_ISSUED )  sql,
       sum(CLASS7_CPU_TOTAL) / sum(SQL_STMTS_ISSUED)  cpuSql,
       sum(CLASS7_ELAPSED )  / sum(SQL_STMTS_ISSUED)  elaSql,
       min(CLASS7_CPU_TOTAL  / SQL_STMTS_ISSUED)  cpuSqlMin,
       max(CLASS7_CPU_TOTAL  / SQL_STMTS_ISSUED)  cpuSqlMax,
       sum(CLASS7_CPU_TOTAL) cpu,
       sum(CLASS7_ELAPSED )  ela
    from rr2dd.tacct_program
    where pck_id in ('YPWSIQ6')
        and subsystem_id like 'DOF%'
        and       timestamp >= '2012-07-01-00.00.00'
  --    and       timestamp <= '2012-05-13-00.00.00'
        and       date(timestamp) <> '2012-05-11'

    group by  date(timestamp)
  --       case when timestamp < '2012-05-11-00.00.00'
    order by 1 desc
;;;
select * from s
    order by 1, cpuSqlMin
;;;
select
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
    -- date(trunc_timestamp(timestamp, 'day')),
       case when timestamp < '2012-05-11-00.00.00'
              then 'vor 11.5' else 'nach11.5' end  ,
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       smallint(count(distinct date(timestamp))) "days",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )
               /count(distinct date(timestamp))) "cpu/day",
       fosFmtE7(sum(CLASS7_ELAPSED )
               /count(distinct date(timestamp))) "ela/day",
       fosFmtE7(sum(CLASS7_cpu_total))  "c7cpu",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('WM0010'
                    ,'WM8300'
                    ,'YYWM001'
                    ,'YYWM005'
                    ,'YYWM01E'
                    ,'YYWM05E'
                    ,'YYWM051'
                    ,'YYWM51E'
                    )
--  where pck_id in ('YYWM05E', 'YYWM51E')
        and subsystem_id like 'DOF%'
        and       timestamp >= '2012-03-01-00.00.00'
        and       date(timestamp) <> '2012-05-11'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timesta p) between 9 and 11

    group by  -- pck_id, pck_collection_id ,
           case when timestamp < '2012-05-11-00.00.00'
                  then 'vor 11.5' else 'nach11.5' end
    order by 1 --, 2, 3
--  order by 1 -- pck_id,
         -- trunc_timestamp(timestamp, 'day') desc
;;;
set current path oa1p;
select
    -- trunc_timestamp(timestamp, 'day'),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       GROUP_NAME grp,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
    where pck_id in ('YYWM05E', 'YYWM51E')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
        and dayofweek_iso(timestamp) <= 5
              AND hour(timesta p) between 9 and 11

    group by group_name, plan_name,  PCK_COLLECTION_ID,PCK_id
  --                ,   trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by group_name --                 , PCK_COLLECTION_ID,PCK_id
                 , sum(CLASS7_CPU_TOTAL) desc
                 , plan_name
 --              , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGRI) cre=2012-02-13 mod=2012-02-17-10.59.35 A540769 ---
set current path oa1p;
SELECT min(timestamp), count(*) cnt,
   fosFmtE7(sum(SQL_STMTS_ISSUED)) stmts,
   fosFmtE7(sum(class7_cpu_total) ) "cpu tot",
   fosFmtE7(sum(class7_elapsed) / sum(SQL_STMTS_ISSUED)) "ela/stm",
   fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm",
   fosFmtE7(sum(CLASS8_SYNC_IO) / sum(SQL_STMTS_ISSUED)) "sIO/stm"
  FROM RZ2DD.TACCT_PROGRAM P -- RZ2
  where pck_id = 'RI0810'
      and timestamp > current timestamp - 12 days
  group by trunc_timestamp(timestamp, 'DD')
  order by trunc_timestamp(timestamp, 'DD') desc
  ;
SELECT min(timestamp), count(*) cnt,
   fosFmtE7(sum(SQL_STMTS_ISSUED)) stmts,
   fosFmtE7(sum(class7_elapsed) / sum(SQL_STMTS_ISSUED)) "ela/stm",
   fosFmtE7(sum(class7_cpu_total) / sum(SQL_STMTS_ISSUED)) "cpu/stm",
   fosFmtE7(sum(CLASS8_SYNC_IO) / sum(SQL_STMTS_ISSUED)) "sIO/stm"
  FROM RZ2DD.TACCT_PROGRAM P -- RZ2
  where pck_id = 'NZ6500'
      and timestamp > current timestamp - 125 days
  group by trunc_timestamp(timestamp, 'DAY')
  order by trunc_timestamp(timestamp, 'DAY') desc
;;;
SELECT *
  FROM RR2DD.TACCT_PROGRAM P -- RZ2
  where pck_id = 'NZ5820'
      and timestamp > current timestamp - 5 days
  order by timestamp desc
;
}¢--- A540769.WK.SQL(PDBPKGRM) cre=2012-06-04 mod=2012-06-04-07.29.02 A540769 ---
set current path oa1p;
select
       trunc_timestamp(timestamp, 'hh'),
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
    where pck_id =   'YRMVER'
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  5  days
    group by pck_id, trunc_timestamp(timestamp, 'hh')
    having sum(SQL_STMTS_ISSUED) >= 1e3
    order by 1 desc
;;;
}¢--- A540769.WK.SQL(PDBPKGRX) cre=2012-05-29 mod=2012-05-29-15.01.17 A540769 ---
set current path oa1p;
select
    -- trunc_timestamp(timestamp, 'day'),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       GROUP_NAME grp,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
    where pck_id in ('DSNREXX')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
        and dayofweek_iso(timestamp) <= 5
              AND hour(timestamp) between 9 and 11

    group by group_name, plan_name,  PCK_COLLECTION_ID,PCK_id
  --                ,   trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by group_name --                 , PCK_COLLECTION_ID,PCK_id
                 , sum(CLASS7_CPU_TOTAL) desc
                 , plan_name
 --              , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
       date(trunc_timestamp(timestamp, 'ddd')),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('YCDSGET')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timesta p) between 9 and 11

    group by  pck_id, pck_collection_id ,
                        trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by pck_id, trunc_timestamp(timestamp, 'ddd') desc
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGVV) cre=2012-03-09 mod=2012-03-15-07.55.45 A540769 ---
set current path oa1p;
select
       trunc_timestamp(timestamp, 'ddd'),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
    -- PLAN_NAME ,
       GROUP_NAME grp,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rr2dd.tacct_program
    where pck_id = 'YVVSQLE'
--  where pck_id = 'YVV3250'
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp - 1 MONTHS
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by group_name,           PCK_COLLECTION_ID,PCK_id
                    ,   trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
  --order by group_name,sum(SQL_STMTS_ISSUED ) desc
  --                   , plan_name,          PCK_COLLECTION_ID,PCK_id
    order by  min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select pck_id, count(*)
    from rz1dd.tacct_program
    where plan_name = 'VV6200'
        and timestamp > current timestamp - 1 month
    group by pck_id
    order by pck_id
 ;;;;
select *
    from rr2mm.tacct_program
    where pck_id = 'YVV3250'
        and plan_name = 'VV6200'
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -- 2 MONTHS
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
    order by class7_elapsed   desc
    with ur
 ;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGWA) cre=2012-05-16 mod=2012-05-23-07.16.26 A540769 ---
set current path oa1p;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
    -- PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YWAPCUR'
        and subsystem_id like 'DOF%'
        and       timestamp > '2012-05-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by                       PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                                 PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGWI) cre=2012-05-03 mod=2012-05-03-17.40.24 A540769 ---
set current path oa1p;
select
       trunc_timestamp(timestamp, 'ddd'),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       GROUP_NAME grp,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('YWIPF01')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  111 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timestamp) between 9 and 11

    group by group_name, plan_name,  PCK_COLLECTION_ID,PCK_id
                     ,  trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by group_name, PCK_COLLECTION_ID,PCK_id
            --   , sum(CLASS7_CPU_TOTAL) desc
                 , plan_name
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGWM) cre=2012-03-09 mod=2012-07-09-11.22.29 A540769 ---
set current path oa1p;
with s as
(
select
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
    -- date(trunc_timestamp(timestamp, 'day')),
       case when timestamp < '2012-05-11-00.00.00'
              then 'vor 11.5' else 'nach11.5' end vorNach ,
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       sum(SQL_STMTS_ISSUED )  sql,
       sum(CLASS7_CPU_TOTAL) / sum(SQL_STMTS_ISSUED)  cpuSql,
       sum(CLASS7_ELAPSED )  / sum(SQL_STMTS_ISSUED)  elaSql,
       min(CLASS7_CPU_TOTAL  / SQL_STMTS_ISSUED)  cpuSqlMin,
       max(CLASS7_CPU_TOTAL  / SQL_STMTS_ISSUED)  cpuSqlMax,
       sum(CLASS7_CPU_TOTAL) cpu,
       sum(CLASS7_ELAPSED )  ela
    from rz2mm.tacct_program
    where pck_id in ('WM0010'
                    ,'WM8300'
                    ,'YYWM001'
                    ,'YYWM005'
                    ,'YYWM01E'
                    ,'YYWM05E'
                    ,'YYWM051'
                    ,'YYWM51E'
                    )
        and subsystem_id like 'DOF%'
        and       timestamp >= '2012-03-01-00.00.00'
  --    and       timestamp <= '2012-05-13-00.00.00'
        and       date(timestamp) <> '2012-05-11'

    group by  floor(log10(max(CLASS7_CPU_TOTAL/SQL_STMTS_ISSUED,1e-9))),
           case when timestamp < '2012-05-11-00.00.00'
                  then 'vor 11.5' else 'nach11.5' end
)
select * from s
    order by 1, cpuSqlMin
;;;
select
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
    -- date(trunc_timestamp(timestamp, 'day')),
       case when timestamp < '2012-05-11-00.00.00'
              then 'vor 11.5' else 'nach11.5' end  ,
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       smallint(count(distinct date(timestamp))) "days",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )
               /count(distinct date(timestamp))) "cpu/day",
       fosFmtE7(sum(CLASS7_ELAPSED )
               /count(distinct date(timestamp))) "ela/day",
       fosFmtE7(sum(CLASS7_cpu_total))  "c7cpu",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('WM0010'
                    ,'WM8300'
                    ,'YYWM001'
                    ,'YYWM005'
                    ,'YYWM01E'
                    ,'YYWM05E'
                    ,'YYWM051'
                    ,'YYWM51E'
                    )
--  where pck_id in ('YYWM05E', 'YYWM51E')
        and subsystem_id like 'DOF%'
        and       timestamp >= '2012-03-01-00.00.00'
        and       date(timestamp) <> '2012-05-11'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timesta p) between 9 and 11

    group by  -- pck_id, pck_collection_id ,
           case when timestamp < '2012-05-11-00.00.00'
                  then 'vor 11.5' else 'nach11.5' end
    order by 1 --, 2, 3
--  order by 1 -- pck_id,
         -- trunc_timestamp(timestamp, 'day') desc
;;;
set current path oa1p;
select
    -- trunc_timestamp(timestamp, 'day'),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       GROUP_NAME grp,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
    where pck_id in ('YYWM05E', 'YYWM51E')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
        and dayofweek_iso(timestamp) <= 5
              AND hour(timesta p) between 9 and 11

    group by group_name, plan_name,  PCK_COLLECTION_ID,PCK_id
  --                ,   trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by group_name --                 , PCK_COLLECTION_ID,PCK_id
                 , sum(CLASS7_CPU_TOTAL) desc
                 , plan_name
 --              , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGWN) cre=2012-09-20 mod=2012-09-20-09.44.49 A540769 ---
set current path oa1p;
with s as
(
select date(timestamp) date, substr(pck_id, 1, 8) pck_id,
       sum(class7_elapsed) c7Ela,
       sum(class7_cpu_total) c7cpu,
       sum(sql_stmts_issued) stmts
    from rz2dd.tacct_program p
    where plan_Name = 'WN5100'
         and timestamp between '2012-08-01-00.00.00'
                           and '2012-12-02-12.00.00'
    group by timestamp, pck_id
)
, t as
(
    select s.*,
    row_number() over(partition by date order by c7Ela desc) rn
    from s
)

select * from t
    where rn <= 5
    order by date desc, c7Ela desc
;x;
select
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       date(timestamp),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       sum(SQL_STMTS_ISSUED )  sql,
       sum(CLASS7_CPU_TOTAL) / sum(SQL_STMTS_ISSUED)  cpuSql,
       sum(CLASS7_ELAPSED )  / sum(SQL_STMTS_ISSUED)  elaSql,
       min(CLASS7_CPU_TOTAL  / SQL_STMTS_ISSUED)  cpuSqlMin,
       max(CLASS7_CPU_TOTAL  / SQL_STMTS_ISSUED)  cpuSqlMax,
       sum(CLASS7_CPU_TOTAL) cpu,
       sum(CLASS7_ELAPSED )  ela
    from rr2dd.tacct_program
    where pck_id in ('YPWSIQ6')
        and subsystem_id like 'DOF%'
        and       timestamp >= '2012-07-01-00.00.00'
  --    and       timestamp <= '2012-05-13-00.00.00'
        and       date(timestamp) <> '2012-05-11'

    group by  date(timestamp)
  --       case when timestamp < '2012-05-11-00.00.00'
    order by 1 desc
;;;
select * from s
    order by 1, cpuSqlMin
;;;
select
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
    -- date(trunc_timestamp(timestamp, 'day')),
       case when timestamp < '2012-05-11-00.00.00'
              then 'vor 11.5' else 'nach11.5' end  ,
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       smallint(count(distinct date(timestamp))) "days",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )
               /count(distinct date(timestamp))) "cpu/day",
       fosFmtE7(sum(CLASS7_ELAPSED )
               /count(distinct date(timestamp))) "ela/day",
       fosFmtE7(sum(CLASS7_cpu_total))  "c7cpu",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id in ('WM0010'
                    ,'WM8300'
                    ,'YYWM001'
                    ,'YYWM005'
                    ,'YYWM01E'
                    ,'YYWM05E'
                    ,'YYWM051'
                    ,'YYWM51E'
                    )
--  where pck_id in ('YYWM05E', 'YYWM51E')
        and subsystem_id like 'DOF%'
        and       timestamp >= '2012-03-01-00.00.00'
        and       date(timestamp) <> '2012-05-11'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
  --    and dayofweek_iso(timestamp) <= 5
  --          AND hour(timesta p) between 9 and 11

    group by  -- pck_id, pck_collection_id ,
           case when timestamp < '2012-05-11-00.00.00'
                  then 'vor 11.5' else 'nach11.5' end
    order by 1 --, 2, 3
--  order by 1 -- pck_id,
         -- trunc_timestamp(timestamp, 'day') desc
;;;
set current path oa1p;
select
    -- trunc_timestamp(timestamp, 'day'),
    -- min(date(timestamp)),
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       GROUP_NAME grp,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2hh.tacct_program
    where pck_id in ('YYWM05E', 'YYWM51E')
        and subsystem_id like 'DOF%'
        and       timestamp > current timestamp -  11 days
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'
        and dayofweek_iso(timestamp) <= 5
              AND hour(timesta p) between 9 and 11

    group by group_name, plan_name,  PCK_COLLECTION_ID,PCK_id
  --                ,   trunc_timestamp(timestamp, 'ddd')
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by group_name --                 , PCK_COLLECTION_ID,PCK_id
                 , sum(CLASS7_CPU_TOTAL) desc
                 , plan_name
 --              , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
select *
    from rz2dd.tacct_general
    where plan_name in ('WB0670'
                       ,'WI0180'
                       ,'WQ0030'
                       ,'WC0218'
                       ,'WQ5110'
                       )
        and       timestamp > current timestamp -  3 days
        order by plan_name, timestamp desc
;;;;
select
       date(timestamp),
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
    -- case when timestamp < '2011-08-23-12.45.00' then 'alt'
    --                                             else 'neu' end,
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz2dd.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
        and       timestamp > '2011-08-01-00.00.00'
             -- timestamp between '2011-07-25-01.00.00'
             --               and '2011-07-28-23.00.00'

    group by            plan_name, PCK_COLLECTION_ID,PCK_id
                    ,   date(timestamp)
  --   case when timestamp < '2011-08-23-12.45.00' then 'alt'
  --                                               else 'neu' end
    order by                      plan_name, PCK_COLLECTION_ID,PCK_id
                 , min(TIMESTAMP) desc
 -- order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPKGXB) cre=2012-03-28 mod=2013-01-11-15.04.31 A540769 ---
set current path oa1p;
set current schema = RZ2dd;
with p  as
(
select pck_id pkg,
       date(trunc_timestamp(timestamp - 4 days, 'iw')) + 4 days woche,
               (sum(class7_cpu_total)) c7Cpu,
               (sum(class7_elapsed)) c7Ela,
                sum(SQL_STMTS_ISSUED) sqls,
       count(*) count,
               (sum(occurrences)) occ ,
       count(distinct date(timestamp)) tage,
       date(min(timestamp)) wocheVon,
       date(min(timestamp)) wocheBis
    from TACCT_program
    where   group_name = 'DVBP'
       and  timestamp >       '2012-09-28-00.00.00'
    group by group_name, trunc_timestamp(timestamp - 4 days, 'iw'),
             pck_id
    order by group_name
)
, w as
(
select  0 rng, '*' pkg , woche,
        sum(c7cpu) c7cpu,
        sum(c7Ela) c7Ela,
        sum(sqls) sqls,
        sum(count) count, sum(occ) occ,
        max(tage) tage, min(wocheVon) wocheVon, max(wocheBis) wocheBis
    from p
    group by woche
)
, r as
(
select row_number() over (partition by woche
                          order by c7Cpu desc) rng
       , p.*
    from p
)
, f as
(
    select * from w
    union all select * from r where rng <= 12
)
select  smallInt(rng) rng, pkg , woche,
        smallint(c7cpu * 1000/
             (select c7cpu from w where w.woche = f.woche)) c7Prm,
        fosFmtE7(c7cpu) c7cpu,
        fosFmtE7(c7Ela) c7Ela,
        fosFmtE7(sqls) sqls,
        fosFmtE7(count) count, fosFmtE7(occ) occ,
        tage, wocheVon, wocheBis
    from f
    order by f.pkg, f.woche desc
;x
??????????????????
set current path oa1p;
select
       trunc_timestamp(timestamp, 'ww'),
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       min(subsystem_id) subMin ,
       max(subsystem_id) subMax ,
       min(timestamp) tstMin,
       max(timestamp) tstMax
    from rz2dd.tacct_program
    where pck_id =   'XBIM34'  and plan_name = 'XBIM34'
        and subsystem_id like 'DBP%'
        and       timestamp > current timestamp -  7 months
    group by pck_id, trunc_timestamp(timestamp, 'ww')
    order by 1 desc
;;;
set current path oa1p;
-- elect pck_id, count(*), max(timestamp)--, group_name
select plan_name, date(trunc_timestamp(timestamp, 'iw')) ,
        fosfmte7(sum(class2_cpu_total)) cpu,
        fosfmte7(sum(class2_su_cpu   )) su,
        fosfmte7(sum(commit)) com,
        fosfmte7(sum(select)) sel,
        fosfmte7(sum(open)) open,
        fosfmte7(sum(fetch)) fetch,
        fosfmte7(sum(insert)) insert,
        fosfmte7(sum(update)) update,
        fosfmte7(sum(delete)) delete,
        min(timestamp), max(timestamp),
        count(*) cnt, fosfmte7(sum(occurrences)) occs
    from rz2dd.tacct_general
    where  plan_name in ('XBLE80'
                        ,'XBLE84'
                        ,'XBARR0'
                        ,'XBARR7'
                        ,'XBDP90'
                        ,'XBAP75'
                        ,'XBLE87'
                        )
         and timestamp > '2012-05-17-00.00.00'
         and date(trunc_timestamp(timestamp, 'iw'))
             in ('21.05.2012', '28.05.2012',
                 '18.06.2012', '25.06.2012')
    group by plan_name, trunc_timestamp(timestamp, 'iw')
    order by plan_name, trunc_timestamp(timestamp, 'iw')
;x;
    where (plan_name like 'XBLE8%'
        or plan_name like 'XB8%'
        or plan_name like 'XB8%'
        or plan_name like 'XBR%'
        or plan_name like 'XBR%'
        or plan_name like 'XBARR%'
        or plan_name like 'XB9%'
        or plan_name like 'XBDP9%'
        or plan_name like 'XB7%'
        or plan_name like 'XBAP7%'
        )
         and timestamp > current timestamp - 3 days
    group by plan_name
;x;
XB80 Search Engine
XB84 Retrieve Engine
XBR0 Search Adapter
XBR7 CORBA Interface
XB90 Dispatcher Search from Adapter
XB91 Dispatcher Search from Router
XB92 Dispatcher Search from Engine
XB93 Retrieve from Engine
XB94 Search reply / Retrieve from Router
XB95 Retrieve from Adapter
XB96 Scheduler
XB97 Restarter
XB75 Router
XB87 NDBS Search Engine
}¢--- A540769.WK.SQL(PDBPKGX3) cre=2012-06-01 mod=2012-06-01-09.17.23 A540769 ---
//A540749A JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M                                     00030000
//*MAIN CLASS=LOG0
//STEP1 EXEC PGM=DSNUTILB,TIME=1440,
//   PARM=(DBOC,'A540749A.REORG'),
//   REGION=0M
//DSSPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSTEMPL DD DISP=SHR,DSN=DBOC.DBAA.LISTDEF(TEMPL)
//SYSIN DD *
     LISTDEF LST#REO
       INCLUDE TABLESPACE  -- DA540769.TPKGWEEK PARTLEVEL
                           DSN00678.TPKGWEEK PARTLEVEL
 --  REORG TABLESPACE DA540769.A200A03 PART 16 : 20 , 102 :108,111,88:90
     REORG TABLESPACE  LIST LST#REO
         LOG NO
         SORTDATA
         COPYDDN(TCOPYD)
         SHRLEVEL CHANGE
         MAPPINGTABLE S100447.MAPTAB05
         DRAIN_WAIT 40
           RETRY 20
           RETRY_DELAY 180
           MAXRO 40
           DRAIN WRITERS
           LONGLOG CONTINUE
           DELAY 1200
           TIMEOUT TERM
         UNLDDN TSRECD
         UNLOAD CONTINUE
         PUNCHDDN TPUNCH
         DISCARDDN TDISC
         SORTKEYS
         SORTDEVT DISK
     --  SORTNUM  155
         STATISTICS
           INDEX ALL KEYCARD
           UPDATE ALL
}¢--- A540769.WK.SQL(PDBPKGX4) cre=2012-06-01 mod=2012-06-26-15.42.35 A540769 ---
set current path oa1p;
with a as                             -- programm mit grösster Zunahme
( select
         sum(stmts) / count(*)  stmts,
         sum(dayCnt) / count(*) dayCnt,
         max(1, sum(stmts) / count(*))  stmt1,
         sum(c7cpu) / count(*)  c7cpu,
         sum(c7Ela) / count(*)  c7ela,
         pkg
      from A540769.tPkgWeek
      group by pkg
)
, w as
(
  select w.pkg, w.timestamp,
         a.c7cpu * w.stmts/a.stmt1 c7Avg,
         w.c7cpu - a.c7cpu * w.stmts/a.stmt1 c7Diff,
         w.c7cpu / max(1, a.c7cpu * w.stmts/a.stmt1) c7Pro,
         w.c7ela - a.c7ela * w.stmts/a.stmt1 elaDiff,
         w.stmts wStmts ,
         w.dayCnt wDayCnt ,
         w.c7Cpu wCpu ,
         w.c7Ela wEla   ,
         a.stmts aStmts ,
         a.stmt1 aStmt1 ,
         a.dayCnt aDayCnt ,
         a.c7Cpu aCpu ,
         a.c7Ela aEla
  from a join A540769.tPkgWeek w
    on a.pkg = w.pkg
)
select pkg
     , fosFmtE7(c7Pro) cpuPro
     , fosFmtE7(c7Diff) cpuDiff
     , fosFmtE7(elaDiff) elaDiff
     , w.*
from w
   where w.timestamp > '20.05.2012'
order by c7Diff desc
;;,
set current path oa1p;
with a as                      -- Wochenverteilungen
( select
         sum(stmts) / count(*)  stmts,
         max(1, sum(stmts) / count(*))  stmt1,
         sum(c7cpu) / count(*)  c7cpu,
         sum(c7Ela) / count(*)  c7ela,
         pkg
      from A540769.tPkgWeek
      group by pkg
)
, w as
(
  select w.pkg, w.timestamp,
         a.c7cpu * w.stmts/a.stmt1 c7Avg,
         w.c7cpu - a.c7cpu * w.stmts/a.stmt1 c7Diff,
         w.c7cpu / max(1, a.c7cpu * w.stmts/a.stmt1) c7Pro,
         w.stmts wStmts ,
         w.c7Cpu wCpu ,
         w.c7Ela wEla   ,
         a.stmts aStmts ,
         a.stmt1 aStmt1 ,
         a.c7Cpu aCpu ,
         a.c7Ela aEla
  from a join A540769.tPkgWeek w
    on a.pkg = w.pkg
)
select timestamp
     , fosFmtE7(min(c7Pro)) cpuProMin
     , fosFmtE7(max(c7Pro)) cpuProMax
     , count(*) cnt
     , fosFmte7(sum(  wcpu - acpu * wstmts/ aStmt1)) cpuDiff
     , fosFmte7(sum(  wEla - aEla * wstmts/ aStmt1)) elaDiff
     , fosFmte7(sum(wStmts)) wStmts
     , fosFmte7(sum(wCPu)) wCpu
     , fosFmte7(sum(wEla)) wEla
from w
     group by timestamp, floor(0 * log10(max(0.01, c7Pro)))
     order by timestamp desc, min(c7Pro) desc
;;,
set current path oa1p;
select timestamp, pkg
     , fosFmtE7(c7Cpu) "proc"
     , fosFmtE7(c7Cpu/stmts) "pro/stm"
     , fosFmtE7(c7Ela/stmts) "ela/stm"
     , w.*
from A540769.tPkgWeek w
where pkg = 'YWYU114'
order by timestamp desc
;x;          YRMVER ==> 21.5
set current path oa1p;
select timestamp, pkg
     , fosFmtE7(c7Cpu/stmts) "pro/stm"
     , fosFmtE7(c7Ela/stmts) "ela/stm"
     , w.*
from A540769.tPkgWeek w
where pkg = 'YWAPCUR'
order by timestamp desc
;x;          YRMVER ==> 21.5
set current path oa1p;
select timestamp                      -- veränderung pro woche
    , fosfmte7(sum(c7cpu)/max(1, sum(stmts))) "cpu/stmt"
    , fosfmte7(sum(c7ela)/max(1, sum(stmts))) "ela/stmt"
    , fosFmte7(sum(stmts)) "stmts"
    , fosFmte7(sum(c7Cpu)) "cpu"
    , fosFmte7(sum(c7Ela)) "ela"
    , fosFmte7(sum(occ))   "occ"
    , count(*)             "cnt"
    , count(distinct pkg)  "pkgs"
      from A540769.tPkgWeek w
      group by timestamp
      order by timestamp
;;
select timestamp,
       fosfmte7(c7cpu/max(1, stmts)) "cpu/stmt",
       fosfmte7(c7ela/max(1, stmts)) "ela/stmt",
       w.*
      from A540769.tPkgWeek w
      where pkg = 'YCTS100'
      order by timestamp desc
;;
             DSNTEP2
             YAVRATE  ==> 14. & 21.5
             KC5400   ==> 14.
             YAVRATS  ==> neues Program ??? ab 7.5
  order by w.c7cpu - a.c7cpu * w.stmts/a.stmt1   desc
;x;
with a as
( select
         sum(stmts) / count(*)  stmts,
         max(1, sum(stmts) / count(*))  stmt1,
         sum(c7cpu) / count(*)  c7cpu,
         sum(c7Ela) / count(*)  c7ela,
         pkg
      from A540769.tPkgWeek
      group by pkg
)
  select w.pkg, w.timestamp,
         fosFmtE7(a.c7cpu * w.stmts/a.stmt1) c7Avg,
         fosFmtE7(w.c7cpu - a.c7cpu * w.stmts/a.stmt1) c7Diff,
         fosFmtE7(w.c7cpu / max(1, a.c7cpu * w.stmts/a.stmt1)) c7Pro,
         w.*, a.*
  from a join A540769.tPkgWeek w
    on a.pkg = w.pkg
  order by w.c7cpu - a.c7cpu * w.stmts/a.stmt1   desc
;x;
}¢--- A540769.WK.SQL(PDBPKGX5) cre=2012-06-05 mod=2012-06-05-16.01.11 A540769 ---
select pkg
    from A540769.tPkgWeek
    where pkg = 'YCTS100'
}¢--- A540769.WK.SQL(PDBPKGY2) cre=2012-05-31 mod=2012-05-31-16.35.08 A540769 ---
//A540769E  JOB (CP00,KE50),                                            00010001
//         MSGCLASS=T,TIME=1440,
//         NOTIFY=A540769
//*MAIN CLASS=LOG0 SYSTEM=S12
//S01      EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99                       00020001
//SYSTSIN  DD *
    DSN SYSTEM(DBOC)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//***PRINT DD DISP=SHR,DSN=A540769.WK.TEXW(PDBGENNJ)
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSIN    DD *
-- db2 package usage aus tacct_package pro Tag
--          average 24h, average peak Hours und max
--
set current path = oa1p;
with a as
  (
    SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
          ,SUM(SQL_STMTS_ISSUED) stmts
          ,SUM(CLASS7_SU_CPU) AS c7su
          ,sum(CLASS7_CPU_TOTAL) as c7cpu
      FROM RZ2HH.TACCT_PROGRAM
        WHERE TIMESTAMP between '2012-03-12-00.00.00.000000'
                            and '2012-04-01-23.59.00.000000'
       -- AND GROUP_NAME = 'DBOF'
      GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
  )
, ad as
(
select date(a.tst)  datum
    , sum(a.c7cpu) / count(*) / 3600 cpu
    , sum(a.stmts) / count(*) / 3600 stmts
    , count(*) hh
    , max(a.c7cpu) / 3600 maxCpu
    from a
    group by date(tst)
)
, pd as
(
select date(a.tst)  datum
    , sum(a.c7cpu) / count(*) / 3600 cpu
    , sum(a.stmts) / count(*) / 3600 stmts
    , count(*) hh
    , max(a.c7cpu) / 3600 maxCpu
    from a
    where dayofweek_iso(TST) <= 5
                AND hour(tst) between 9 and 11
    group by date(tst)
)
select ad.datum
    , substr(fosFmtE7(ad.cpu), 1, 7) "allCpu"
    , substr(fosFmtE7(pd.cpu), 1, 7) "peakCpu"
    , substr(fosFmtE7(ad.maxCpu), 1, 7) "maxCpu"
    , substr(fosFmtE7(ad.stmts), 1, 7) "allStmts"
    , substr(fosFmtE7(pd.stmts), 1, 7) "peakStmts"
    , smallint(ad.hh) "allHH", smallInt(pd.hh) "peakHH"
    from ad left join pd on ad.datum = pd.datum
    order by 1 desc
;
--
-- db2 package usage aus tacct_package total
--          average 7*24h, average peak Hours und max
--
--    vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with p as
  (
    SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
          ,SUM(SQL_STMTS_ISSUED) stmts
          ,SUM(CLASS7_SU_CPU) AS c7su
          ,sum(CLASS7_CPU_TOTAL) as c7cpu
      FROM RZ2HH.TACCT_PROGRAM
        WHERE TIMESTAMP between '2012-02-27-00.00.00.000000'
                            and '2012-04-01-23.59.00.000000'
     --   AND GROUP_NAME = 'DBOF'
      GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
  )
  select substr(fosFmtE7(sum(c7cpu) / count(*) / 3600), 1, 7) avg,
         substr(fosFmtE7(max(c7cpu) /3600            ), 1, 7) max,
         substr(fosFmtE7(sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then c7Cpu else 0 end)
            / sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then 1 else 0 end) /3600 ), 1, 7) avgPeak,
         count(*) hh,
         sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then 1 else 0 end) peakHours
      from p
    order by 1 desc
;
}¢--- A540769.WK.SQL(PDBPKGY3) cre=2012-06-14 mod=2012-06-14-13.12.09 A540769 ---
set current path = oa1p;
    SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
          ,sum(CLASS7_CPU_TOTAL)/3600 as c7Proc
          ,SUM(SQL_STMTS_ISSUED) stmts
          ,SUM(CLASS7_SU_CPU) AS c7su
          ,sum(CLASS7_CPU_TOTAL) as c7cpu
      FROM RZ2HH.TACCT_PROGRAM
        WHERE TIMESTAMP between '2012-05-29-00.00.00.000000'
                            and '2012-05-29-23.59.00.000000'
       -- AND GROUP_NAME = 'DBOF'
      GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
      with ur
;X;
//A540769E  JOB (CP00,KE50),                                            00010001
//         MSGCLASS=T,TIME=1440,
//         NOTIFY=A540769
//*MAIN CLASS=LOG0 SYSTEM=S12
//S01      EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99                       00020001
//SYSTSIN  DD *
    DSN SYSTEM(DBOC)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//***PRINT DD DISP=SHR,DSN=A540769.WK.TEXW(PDBGENNJ)
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSIN    DD *
-- db2 package usage aus tacct_package pro Tag
--          average 24h, average peak Hours und max
--
set current path = oa1p;
with a as
  (
    SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
          ,SUM(SQL_STMTS_ISSUED) stmts
          ,SUM(CLASS7_SU_CPU) AS c7su
          ,sum(CLASS7_CPU_TOTAL) as c7cpu
      FROM RZ2HH.TACCT_PROGRAM
        WHERE TIMESTAMP between '2012-05-29-00.00.00.000000'
                            and '2012-05-29-23.59.00.000000'
       -- AND GROUP_NAME = 'DBOF'
      GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
  )
, ad as
(
select date(a.tst)  datum
    , sum(a.c7cpu) / count(*) / 3600 cpu
    , sum(a.stmts) / count(*) / 3600 stmts
    , count(*) hh
    , max(a.c7cpu) / 3600 maxCpu
    from a
    group by date(tst)
)
, pd as
(
select date(a.tst)  datum
    , sum(a.c7cpu) / count(*) / 3600 cpu
    , sum(a.stmts) / count(*) / 3600 stmts
    , count(*) hh
    , max(a.c7cpu) / 3600 maxCpu
    from a
    where dayofweek_iso(TST) <= 5
                AND hour(tst) between 9 and 11
    group by date(tst)
)
select ad.datum
    , substr(fosFmtE7(ad.cpu), 1, 7) "allCpu"
    , substr(fosFmtE7(pd.cpu), 1, 7) "peakCpu"
    , substr(fosFmtE7(ad.maxCpu), 1, 7) "maxCpu"
    , substr(fosFmtE7(ad.stmts), 1, 7) "allStmts"
    , substr(fosFmtE7(pd.stmts), 1, 7) "peakStmts"
    , smallint(ad.hh) "allHH", smallInt(pd.hh) "peakHH"
    from ad left join pd on ad.datum = pd.datum
    order by 1 desc
;
--
-- db2 package usage aus tacct_package total
--          average 7*24h, average peak Hours und max
--
--    vergleich tacct_general und tacct_package total Zahlen
--
--
set current path = oa1p;
with p as
  (
    SELECT trunc_timestamp(TIMESTAMP, 'hh') tst
          ,SUM(SQL_STMTS_ISSUED) stmts
          ,SUM(CLASS7_SU_CPU) AS c7su
          ,sum(CLASS7_CPU_TOTAL) as c7cpu
      FROM RZ2HH.TACCT_PROGRAM
        WHERE TIMESTAMP between '2012-02-27-00.00.00.000000'
                            and '2012-04-01-23.59.00.000000'
     --   AND GROUP_NAME = 'DBOF'
      GROUP BY trunc_timestamp(TIMESTAMP, 'hh')
  )
  select substr(fosFmtE7(sum(c7cpu) / count(*) / 3600), 1, 7) avg,
         substr(fosFmtE7(max(c7cpu) /3600            ), 1, 7) max,
         substr(fosFmtE7(sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then c7Cpu else 0 end)
            / sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then 1 else 0 end) /3600 ), 1, 7) avgPeak,
         count(*) hh,
         sum(case when dayofweek_iso(TST) <= 5
                      AND hour(tst) between 9 and 11
                  then 1 else 0 end) peakHours
      from p
    order by 1 desc
;
}¢--- A540769.WK.SQL(PDBPKG2) cre=2007-06-12 mod=2007-06-12-09.43.29 F540769 ---
  SELECT
      'RZ2'                              AS SSID
     ,LASTUSED                           AS LASTUSED
     ,PCK_ID                             AS PACKAGE
     ,PCK_CONSIST_TOKEN                  AS CONSISTENCY_TOKEN
    FROM RZ2.TACCT_PKGUSED -- RZ2
   WHERE
      (PCK_ID = 'YKSMODU'                                            )
   OR (PCK_ID = 'AADLTP'                                             )
   OR (PCK_ID = 'YKSMODU'                                            )
   OR (PCK_ID = 'YKSMODU'                                            )
   OR (PCK_ID = 'SA5140'                                             )
   OR (PCK_ID = 'YSA0231'                                            )
   OR (PCK_ID = 'YSA0232'                                            )
   OR (PCK_ID = 'YSA0233'                                            )
   OR (PCK_ID = 'YSA0234'                                            )
   OR (PCK_ID = 'YSA0235'                                            )
   OR (PCK_ID = 'YSA0236'                                            )
   OR (PCK_ID = 'YSX0610'                                            )
   OR (PCK_ID = 'YSXRELK'                                            )
   OR (PCK_ID = 'YSXRELK'                                            )
   ;
   X
   ;
                     'YBTMOR1',
                     'YBTMOR2',
                     'YBTMOR3',
                     'YNFCGO',
  SELECT
      'RZ2'                              AS SSID
     ,LASTUSED                           AS LASTUSED
     ,PCK_ID                             AS PACKAGE
     ,PCK_CONSIST_TOKEN                  AS CONSISTENCY_TOKEN
    FROM RZ2.TACCT_PKGUSED -- RZ2
   WHERE PCK_ID LIKE 'YBTM%'
   ;
                     'YBTMOR1',
                     'YBTMOR2',
                     'YBTMOR3',
                     'YNFCGO',
                     'YNFVMG',
                     'YYBTMMS')
      ;
      X
-- ZWECK:        WANN WURDE EIN PACKAGE ZULETZT BENUTZT
-- VERDICHTUNG:  PRO PACKAGE
-- ZEITRAUM:     AKTUELL
-- UNIQUE INDEX: PCK_ID, PCK_CONSIST_TOKEN
--
  SELECT
      'RZ1'                              AS SSID
     ,LASTUSED                           AS LASTUSED
     ,PCK_ID                             AS PACKAGE
     ,PCK_CONSIST_TOKEN                  AS CONSISTENCY_TOKEN
    FROM RZ1.TACCT_PKGUSED -- RZ1
   WHERE PCK_ID    = 'YBWAAJ9'
--   AND PCK_ID LIKE 'YNF%'
--   AND PCK_CONSIST_TOKEN    = '                   '
--   AND PCK_CONSIST_TOKEN LIKE '                   '

UNION

  SELECT
      'RZ2'                              AS SSID
     ,LASTUSED                           AS LASTUSED
     ,PCK_ID                             AS PACKAGE
     ,PCK_CONSIST_TOKEN                  AS CONSISTENCY_TOKEN
    FROM RZ2.TACCT_PKGUSED -- RZ2
   WHERE PCK_ID    = 'YBWAAJ9'
--   AND PCK_ID LIKE 'YNF%'
--   AND PCK_CONSIST_TOKEN    = '                   '
--   AND PCK_CONSIST_TOKEN LIKE '                   '

UNION

  SELECT
      'RR2'                              AS SSID
     ,LASTUSED                           AS LASTUSED
     ,PCK_ID                             AS PACKAGE
     ,PCK_CONSIST_TOKEN                  AS CONSISTENCY_TOKEN
    FROM RR2.TACCT_PKGUSED -- RR2 (PTA)
   WHERE PCK_ID    = 'YBWAAJ9'
--   AND PCK_ID LIKE 'YNF%'
--   AND PCK_CONSIST_TOKEN    = '                   '
--   AND PCK_CONSIST_TOKEN LIKE '                   '

UNION

  SELECT
      'RZ4'                              AS SSID
     ,LASTUSED                           AS LASTUSED
     ,PCK_ID                             AS PACKAGE
     ,PCK_CONSIST_TOKEN                  AS CONSISTENCY_TOKEN
    FROM RZ4.TACCT_PKGUSED -- RZ4
   WHERE PCK_ID    = 'YBWAAJ9'
--   AND PCK_ID LIKE 'YNF%'
--   AND PCK_CONSIST_TOKEN    = '                   '
--   AND PCK_CONSIST_TOKEN LIKE '                   '

UNION

  SELECT
      'RR4'                              AS SSID
     ,LASTUSED                           AS LASTUSED
     ,PCK_ID                             AS PACKAGE
     ,PCK_CONSIST_TOKEN                  AS CONSISTENCY_TOKEN
    FROM RR4.TACCT_PKGUSED -- RR4 (PTA)
   WHERE PCK_ID    = 'YBWAAJ9'
--   AND PCK_ID LIKE 'YNF%'
--   AND PCK_CONSIST_TOKEN    = '                   '
--   AND PCK_CONSIST_TOKEN LIKE '                   '
}¢--- A540769.WK.SQL(PDBPRGCT) cre=2011-06-20 mod=2011-06-20-15.12.54 A540769 ---
set current path oa1p;
select
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
       PLAN_NAME plan,
       date(min(TIMESTAMP)) "von", -- date(max(TIMESTAMP)),
 --    substr(PCK_COLLECTION_ID, 1, 8) coll,
 --    substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU"
    from rz2dd.tacct_program
    where pck_id = 'YCTS250'
        and subsystem_id like 'DOF%'
        and     timestamp > current timestamp - 20 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by                plan_name, PCK_COLLECTION_ID,PCK_id,
             case when TIMESTAMP > '2011-06-10-24.00.00'
                  then 2 else 1 end
    having sum(CLASS7_CPU_TOTAL) >= 10
    order by                       plan_name, PCK_COLLECTION_ID,PCK_id
      , min(TIMESTAMP) desc -- , plan_name, PCK_COLLECTION_ID,PCK_id
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBPRGEU) cre=2011-01-27 mod=2011-01-27-15.01.04 A540769 ---
set current path oa1p;
select
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
           TIMESTAMP,
       case when PLAN_NAME='EU5000' then plan_name else 'oth' END pla ,
    -- fosFmtE7(sum(PCK_COLLECTION_ID )),
           substr(PCK_ID, 1, 8) pkg           ,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU"
    from rz2dd.tacct_program
    where pck_id = 'YBPSTOE'
        and subsystem_id like 'DOF%'
        and  -- timestamp > current timestamp - 7 day
                timestamp between '2010-01-10-00.00.00'
                              and '2010-02-20-00.00.00'

    group by timestamp, pck_id,
       case when PLAN_NAME='EU5000' then plan_name else 'oth' END
--  having sum(SQL_STMTS_ISSUED ) > 1e6
    order by timestamp  desc
}¢--- A540769.WK.SQL(PDBPRGWI) cre=2011-07-25 mod=2011-07-25-11.16.43 A540769 ---
set current path oa1p;
select
       fosFmtE7(sum(OCCURRENCES ))   "occ",
    -- max(SUBSYSTEM_ID   )),
       date(TIMESTAMP),
       PLAN_NAME ,
       substr(PCK_COLLECTION_ID, 1, 8) coll,
       substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED ) /sum(SQL_STMTS_ISSUED))  "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       min(left(subsystem_id, 3)) sub
    from rz1dd.tacct_program
    where pck_id = 'YITMETA'
        and subsystem_id like 'DTF%'
        and     timestamp > current timestamp - 1  month
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by TIMESTAMP, plan_name, PCK_COLLECTION_ID,PCK_id
 -- order by TIMESTAMP desc, plan_name, PCK_COLLECTION_ID,PCK_id
    order by sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED)
;;;
set current path oa1p;
select
    -- max(SUBSYSTEM_ID   )),
    -- date(TIMESTAMP),
       PLAN_NAME ,
    -- substr(PCK_COLLECTION_ID, 1, 8) coll,
    -- substr(PCK_ID, 1, 8) pkg,
       fosFmtE7(sum(CLASS7_ELAPSED)/sum(SQL_STMTS_ISSUED))    "ela/stm",
       fosFmtE7(sum(CLASS7_CPU_TOTAL)/sum(SQL_STMTS_ISSUED))  "cpu/stm",
       fosFmtE7(sum(OCCURRENCES ))   "occ",
       fosFmtE7(sum(SQL_STMTS_ISSUED )) "sqls",
       fosFmtE7(sum(CLASS7_ELAPSED ))   "c7ela",
       fosFmtE7(sum(CLASS7_CPU_TOTAL )) "c7cpu",
    -- fosFmtE7(sum(CLASS8 )),
       fosFmtE7(sum(CLASS8_LOCK_LATCH )) "c8loLa" ,
       fosFmtE7(sum(CLASS8_SYNC_IO ))    "c8synIO",
       fosFmtE7(sum(CLASS8_OTHER_READ )) "c8othRe",
       fosFmtE7(sum(CLASS8_OTHER_WRITE)) "c8othWr",
       fosFmtE7(sum(CLASS8_SERV_TASK ))  "c8SrvTa",
       fosFmtE7(sum(BP_GETPAGES ))       "getPg",
       fosFmtE7(sum(SYNC_READ ))         "synRead",
       fosFmtE7(sum(SEQ_PREFETCH ))      "seqPref",
       fosFmtE7(sum(LIST_PREFETCH ))     "listPre",
       fosFmtE7(sum(DYN_PREFETCH ))      "dynPref",
       fosFmtE7(sum(ASYNC_READ ))        "asyRead",
       fosFmtE7(sum(BUFFER_UPDATE ))     "bufUpd",
       fosFmtE7(sum(SYNC_WRITE ))        "synWrit",
       fosFmtE7(sum(PAR_GETPAGES_FAIL )) "gePgFai",
   --  fosFmtE7(sum(GROUP_NAME ))
       fosFmtE7(sum(CLASS7_SU_CPU  ))        "c7SU",
       fosFmtE7(min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st<",
       fosFmtE7(max(CLASS7_ELAPSED / SQL_STMTS_ISSUED)) "ela/st>"
    from rz2xx.tacct_program
    where pck_id = 'YCKSCCA'
        and subsystem_id like 'DOF%'
    --  and     timestamp > current timestamp - 7 day
            --  timestamp between '2010-01-10-00.00.00'
            --                and '2010-02-20-00.00.00'

    group by plan_name ,
              floor(3. * log10(
                   max(1e-9, CLASS7_ELAPSED / SQL_STMTS_ISSUED)))
    order by plan_name, min(CLASS7_ELAPSED / SQL_STMTS_ISSUED)
    with ur
;;;
}¢--- A540769.WK.SQL(PDBSPACE) cre=2007-08-31 mod=2007-08-31-17.28.43 F540769 ---
with sDay as                                      -- Gruppierung pro Tag
  ( select -- db_name db, ts_name ts,
           datum, sum(hi_u_rba) b
        from OA1P.TADM09A1
                              --->>> DB und oder TS selektieren
        where DB_NAME = 'DWB03' -- and TS_NAME = 'A704A'
                              --->>> Zeitraum selektieren
            and datum >= '01.01.2007'
        group by datum -- ,db_name, ts_name
  ),
sInt as                                      -- Gruppierung pro Interval
  ( select -- db, ts,
           max(datum) datum, max(b) b
      from sDay
      group by -- db, ts
                              --->>> Tages Interval selektieren
            floor(days(datum) / 7)
                              --->>> oder Monats Interval selektieren
         -- year(datum), floor((month(datum)-1) / 2)
  ),
sMax as                                  -- Maximum Wert für Darstellung
  ( select max(b) b from sDay)
select -- char(strip(sInt.db)||'.'||strip(sInt.ts),21) "db.ts",
       sInt.b "bytes",
       datum "datum",
       repeat('*', int(round(sInt.b * 40 / sMax.b, 0)))
    from sInt, sMax
    order by datum desc
}¢--- A540769.WK.SQL(PDBSQLOP) cre=2009-09-10 mod=2009-09-10-11.48.32 A540769 ---
set current path oa1x;
with p as
(
SELECT  CLASS7_ELAPSED / SQL_STMTS_ISSUED c7St,
        int(trunc(log10(CLASS7_ELAPSED / SQL_STMTS_ISSUED), 0))  log,
        p.*
    FROM RZ2DD.TACCT_PROGRAM p
    where SQL_STMTS_ISSUED > 0
)
SELECT  fmte8(min(c7St)) "elaFrom", fmte8(max(c7St)) "elaTo"
      , fmte8(sum(SQL_STMTS_ISSUED)) "totStmts"
      , fmte8(sum(CLASS7_ELAPSED))  "totEla"
      , fmte8(sum(CLASS7_ELAPSED)/24/3600/31)  "totEla/mon"
     --    fmte8(sum(CLASS7_ELAPSED) / sum(SQL_STMTS_ISSUED)) "avgTime",
     -- log
    from p
    WHERE TIMESTAMP >= '2009-08-01-00.00.00.000000'
      AND TIMESTAMP <  '2009-09-01-00.00.00.000000'
    group by log
    order by log
    with ur
    fetch first 100 rows only
;
        left(SUBSYSTEM_ID, 3),
        SUM(OCCURRENCES) OCCURRENCES,
        SUM(SQL_STMTS_ISSUED)  stmts,
        SUM(CLASS7_ELAPSED )   elaps,
        SUM(CLASS7_CPU_TOTAL ) cpu,
        SUM(CLASS7_ELAPSED )/SUM(SQL_STMTS_ISSUED) "elaps/stmt"     ,
        SUM(CLASS7_CPU_TOTAL )/SUM(SQL_STMTS_ISSUED) "cpu/stmt"
    FROM RZ2DD.TACCT_PROGRAM p
    WHERE TIMESTAMP >= '2009-09-09-00.00.00.000000'
      AND TIMESTAMP <= '2099-09-10-00.00.00.000000'
    AND PCK_ID = 'BU021@I'
    AND SUBSYSTEM_ID LIKE 'DOF%'
    GROUP BY trunc_TIMESTAMP(timestamp, 'day'), left(SUBSYSTEM_ID, 3)
    ORDER BY 1 DESC
    with ur
;
SELECT * from p
    with ur
    fetch first 100 rows only
;
x
SELECT      timestamp, count(*),
            sum(case when PCK_ID = 'BU021@I' then 1 else 0 end)
    FROM RZ2DD.TACCT_PROGRAM
    where subsystem_id like 'DOF%'
    group by timestamp
    order by 1 desc
    with ur
    ;
    x
}¢--- A540769.WK.SQL(PDBSUB) cre=2012-01-23 mod=2012-01-23-21.27.24 A540769 ----
select 'rz1dd', count(*), left(subsystem_id, 3)                         00010000
     , min(subsystem_id), max(subsystem_id)                             00020001
     , min(group_name), max(group_name)                                 00030001
     , min(timestamp), max(timestamp)                                   00040000
    from rz1dd.TACCT_GENERAL                                            00050000
    group by left(subsystem_id, 3)                                      00060000
    order by 3                                                          00070000
    with ur                                                             00080000
;                                                                       00090000
$#@                                                                     00100002
$<=¢                                                                    00110002
R2DD                                                                    00120002
RR2DD                                                                   00130002
RR4DD                                                                   00140002
RZ1DD                                                                   00150002
RZ2DD                                                                   00160002
RZ4DD                                                                   00170002
Z1DD                                                                    00180002
$! $@for c $@=¢                                                         00190002
    $=c=-strip($c)                                                      00200002
select                                                                  00210004
       '$c' || right('          ' || strip(char(count(*))), 10)         00220003
     || '  ' || left(subsystem_id, 3)                                   00230003
     || '  ' || min(subsystem_id) || '  ' || max(subsystem_id)          00240003
     || '  ' || min(group_name) || '  ' || max(group_name)              00250003
     || '  ' || char(min(timestamp)) || '  ' || char(max(timestamp))    00260003
    from $c.TACCT_GENERAL                                               00270002
    group by left(subsystem_id, 3)                                      00280002
    order by left(subsystem_id, 3)                                      00290003
    with ur                                                             00300002
;                                                                       00310002
$!                                                                      00320002
$#out                                              20120123 21:27:20    00330004
select                                                                  00340004
       'R2DD' || right('          ' || strip(char(count(*))), 10)       00350004
     || '  ' || left(subsystem_id, 3)                                   00360004
     || '  ' || min(subsystem_id) || '  ' || max(subsystem_id)          00370004
     || '  ' || min(group_name) || '  ' || max(group_name)              00380004
     || '  ' || char(min(timestamp)) || '  ' || char(max(timestamp))    00390004
    from R2DD.TACCT_GENERAL                                             00400004
    group by left(subsystem_id, 3)                                      00410004
    order by left(subsystem_id, 3)                                      00420004
    with ur                                                             00430004
;                                                                       00440004
select                                                                  00450004
       'RR2DD' || right('          ' || strip(char(count(*))), 10)      00460004
     || '  ' || left(subsystem_id, 3)                                   00470004
     || '  ' || min(subsystem_id) || '  ' || max(subsystem_id)          00480004
     || '  ' || min(group_name) || '  ' || max(group_name)              00490004
     || '  ' || char(min(timestamp)) || '  ' || char(max(timestamp))    00500004
    from RR2DD.TACCT_GENERAL                                            00510004
    group by left(subsystem_id, 3)                                      00520004
    order by left(subsystem_id, 3)                                      00530004
    with ur                                                             00540004
;                                                                       00550004
select                                                                  00560004
       'RR4DD' || right('          ' || strip(char(count(*))), 10)      00570004
     || '  ' || left(subsystem_id, 3)                                   00580004
     || '  ' || min(subsystem_id) || '  ' || max(subsystem_id)          00590004
     || '  ' || min(group_name) || '  ' || max(group_name)              00600004
     || '  ' || char(min(timestamp)) || '  ' || char(max(timestamp))    00610004
    from RR4DD.TACCT_GENERAL                                            00620004
    group by left(subsystem_id, 3)                                      00630004
    order by left(subsystem_id, 3)                                      00640004
    with ur                                                             00650004
;                                                                       00660004
select                                                                  00670004
       'RZ1DD' || right('          ' || strip(char(count(*))), 10)      00680004
     || '  ' || left(subsystem_id, 3)                                   00690004
     || '  ' || min(subsystem_id) || '  ' || max(subsystem_id)          00700004
     || '  ' || min(group_name) || '  ' || max(group_name)              00710004
     || '  ' || char(min(timestamp)) || '  ' || char(max(timestamp))    00720004
    from RZ1DD.TACCT_GENERAL                                            00730004
    group by left(subsystem_id, 3)                                      00740004
    order by left(subsystem_id, 3)                                      00750004
    with ur                                                             00760004
;                                                                       00770004
select                                                                  00780004
       'RZ2DD' || right('          ' || strip(char(count(*))), 10)      00790004
     || '  ' || left(subsystem_id, 3)                                   00800004
     || '  ' || min(subsystem_id) || '  ' || max(subsystem_id)          00810004
     || '  ' || min(group_name) || '  ' || max(group_name)              00820004
     || '  ' || char(min(timestamp)) || '  ' || char(max(timestamp))    00830004
    from RZ2DD.TACCT_GENERAL                                            00840004
    group by left(subsystem_id, 3)                                      00850004
    order by left(subsystem_id, 3)                                      00860004
    with ur                                                             00870004
;                                                                       00880004
select                                                                  00890004
       'RZ4DD' || right('          ' || strip(char(count(*))), 10)      00900004
     || '  ' || left(subsystem_id, 3)                                   00910004
     || '  ' || min(subsystem_id) || '  ' || max(subsystem_id)          00920004
     || '  ' || min(group_name) || '  ' || max(group_name)              00930004
     || '  ' || char(min(timestamp)) || '  ' || char(max(timestamp))    00940004
    from RZ4DD.TACCT_GENERAL                                            00950004
    group by left(subsystem_id, 3)                                      00960004
    order by left(subsystem_id, 3)                                      00970004
    with ur                                                             00980004
;                                                                       00990004
select                                                                  01000004
       'Z1DD' || right('          ' || strip(char(count(*))), 10)       01010004
     || '  ' || left(subsystem_id, 3)                                   01020004
     || '  ' || min(subsystem_id) || '  ' || max(subsystem_id)          01030004
     || '  ' || min(group_name) || '  ' || max(group_name)              01040004
     || '  ' || char(min(timestamp)) || '  ' || char(max(timestamp))    01050004
    from Z1DD.TACCT_GENERAL                                             01060004
    group by left(subsystem_id, 3)                                      01070004
    order by left(subsystem_id, 3)                                      01080004
    with ur                                                             01090004
;                                                                       01100004
$#out                                              20120123 21:21:06    01110003
}¢--- A540769.WK.SQL(PDGBENWL) cre=2012-05-10 mod=2012-05-10-16.48.38 A540769 ---
select *
    from rz1xx.tacct_general
    where plan_name = 'WL5170' and subsystem_id like 'DTF%'
    order by timestamp desc
;
select *
    from rz2xx.tacct_general
    where plan_name = 'WL5170'
    order by timestamp desc
}¢--- A540769.WK.SQL(PDGGENPV) cre=2012-03-28 mod=2012-03-28-13.58.27 A540769 ---
select *
    from RZ2XX.TACCT_GENERAL g
    join RZ2XX.TACCT_program p
      on g.plan_name = p.plan_name and g.timestamp = p.timestamp
    where g.plan_name =   'PVPOSY' and g.corrName like 'PVIC%'
         and g.timestamp >       '2012-02-27-00.00.00'
    order by g.timestamp desc
    with ur
;x;
select class2_elapsed,
    smallInt(1000* class2_cpu_total     /class2_elapsed) cpu,
    smallInt(1000* class3_global_cont  /class2_elapsed) "gloCon",
    smallInt(1000* class3_DB_IO        /class2_elapsed) "db io",
    smallInt(1000* class3_LOG_WRT_IO   /class2_elapsed) "logIO",
    smallInt(1000* (class2_cpu_total
                 + class3_global_cont
                 + class3_DB_IO
                 + class3_LOG_WRT_IO ) /class2_elapsed) "sum",
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > trunc_timestamp(current timestamp - 1 DAY, 'DD')
   --     and connect_id like 'MFT5614P%'
          and connect_id like 'TNT780%'
          and plan_name in ('TN7080')
   --     and insert >= 1
    ORDER BY timestamp      desc
  --ORDER BY CLASS1_ELAPSED desc
    with ur
;
X
select insert, class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 9 DAY
          and plan_name = 'RB5000'
          and insert >= 1
    ORDER BY Timestamp asc
;
X
select class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
--  where timestamp > current timestamp - 1 month
    where timestamp IN ('2010-02-02-01.05.50.881483'
                       ,'2010-01-30-06.38.00.929757')
          and plan_name = 'BE5020'
          and  insert > 500000 -- class2_elapsed >= 1000
    order by 1 desc, class2_elapsed desc
;
select -- class2_elapsed / insert , class2_su_cpu / insert,
        g.*
    from RZ2XX.TACCT_GENERAL g
    where timestamp > current timestamp - 5 DAY
          and plan_name = 'RB5000'
    ORDER BY Timestamp asc
;
X
select min(timestamp), max(timestamp)
    from RZ2XX.TACCT_GENERAL g
    with ur
;
}¢--- A540769.WK.SQL(PDGPKGMF) cre=2012-03-08 mod=2012-03-08-12.41.09 A540769 ---
select max(timestamp)
    from rz2dd.tacct_program
    where pck_id = 'MF9999'
--  and timestamp > current timestamp - 3 months
    with ur
}¢--- A540769.WK.SQL(PKGCLEAC) cre=2016-10-26 mod=2016-10-31-09.30.41 A540769 ---
$#@ $*( ***************************************************************
    report packages for clenaup process for all rz/dbsys
        use: wsh >v

    28.10.16 Walter neu
******************************************************************* $*)
m.csm_timeout = 90
$**--- over all rz/dbSys ----------------------------------------------
$do ix=1 while iiIxPut(ix) $@¢
    say ix $rz '/' $dbSys  ii2rzdb($rz'/'$dbSys, 1)
 $**if wordPos($rz, 'RQ2 -Q2') < 1 then iterate
    call sqlConnect ii2rzDb($rz'/'$dbSys, 1)
    $<>
    $@sql $| call sqlStmts ,'' , , ,'o'
          $| call pipeWriteNow jTalkRdr()
    $<>
    call sqlDisconnect
    $!
$| call fTabAuto fTabReset(ft)

$**--- sql to find and cound packages for cleanup ---------------------
$proc $@=/sql/
set current application compatibility 'V11R1';
with p0 as
( ---  ignore packages created in last two weeks ----------------------
  select case when timestamp < current timestamp - 15 days
              then 0 else 1 end creNew
      , 20 win, p.*
    from sysibm.syspackage p
)
, p1 as
( --- end of first window before creNew=1
  select max(case when creNew = 0 then timestamp end)
             over(partition by location, collid, name) cre1
       , max(case when creNew = 0 then pcTimestamp end)
             over(partition by location, collid, name) pcT1
       , max(case when creNew = 0 then lastUsed    end)
             over(partition by location, collid, name) use1
       , p0.*
    from p0
)
, p2 as
( --- end of second window before begin of first window ---------------
  select max(case when cre1 < '1000-01-01-00.00.00' then null
                  when creNew = 0 and timestamp   < cre1 - win days
                  then timestamp end)
             over(partition by location, collid, name) cre2
       , max(case when pcT1 < '1000-01-01-00.00.00' then null
                  when creNew = 0 and pcTimestamp < pcT1 - win days
                      then pcTimestamp end)
             over(partition by location, collid, name) pcT2
       , max(case when use1 < '01.01.1000' then null
                  when creNew = 0 and lastUsed    < use1 - win days
                      then lastUsed end)
             over(partition by location, collid, name) use2
       , p1.*
    from p1
)
, pS as
( --- seqNumber of each window ----------------------------------------
  select
        case when creNew = 1 then 0
             when cre1 is null or cre1 < '1000-01-01-00.00.00' then 1
             when timestamp >= cre1 - win days then 1
             when cre2 is null or cre2 < '1000-01-01-00.00.00' then 2
             when timestamp >= cre2 - win days then 2
             else 9 end creSeq
      , case when creNew = 1 then 0
             when pcT1 is null or pcT1 < '1000-01-01-00.00.00' then 1
             when pcTimestamp >= pcT1 - win days then 1
             when pcT2 is null or pcT2 < '1000-01-01-00.00.00' then 2
             when pcTimestamp >= pcT2 - win days then 2
             else 9 end pcTSeq
      , case when creNew = 1 then 0
             -- ignore PKGs never used, not after Db2V9, not in 3 years
             when lastUsed < current date - 3 years then 9
             when use1 is null or use1 < '01.01.1000' then 1
             when lastUsed >= use1 - win days then 1
             when use2 is null or use2 < '01.01.1000' then 2
             when lastUsed >= use2 - win days then 2
             else 9 end useSeq
      , p2.*
    from p2
)
, pR as
( --- reason why to keep or deactivate a package ----------------------
  select case
           when sysentries > 0 then 'k1sysEnt>0' -- already deact
           when sysentries < 0 then 'k2sysEnt<0' -- should not exist
           when creNew  = 1    then 'k3cre>15d'  -- newly created
           when pctSeq <= 2    then 'k4pcT<=2'   -- last 2 compile
           when creSeq <= 2    then 'k5cre<=2'   -- last 2 compile
           when useSeq <= 2    then 'k6use<=2'   -- last 2 lastUsed
           when lastUsed > current date - 4 month
                               then 'k7use<4Mo'   -- wait until next zuegelschub
                               else 'd0deact' end dsr
      , pS.*
    from pS
)
, p as
( --- decode dsr ------------------------------------------------------
  select left(dsr, 1) deact, substr(dsr, 3) reason, pR.*
     from pR
)
select '$rz/$dbSys' rzDb
     , deact
     , reason
     , count(*) pkgVers
     , count(distinct strip(collid) || '.' || strip(name)) pkg
     , sum(case when pctSeq=1 then 1 else 0 end) pcT1
     , sum(case when pctSeq=2 then 1 else 0 end) pcT2
     , sum(case when useSeq=1 and lastUsed > current date - 3 year
                then 1 else 0 end) use1
     , sum(case when useSeq=2 and lastUsed > current date - 3 year
                then 1 else 0 end) use2
     , sum(case when valid = 'N' then 1 else 0 end) validNo
     , sum(case when operative = 'N' then 1 else 0 end) operativeNo
  from p
  group by grouping sets((deact, dsr, reason), (deact), ())
  having deact is null or reason is not null
         or (reason is null and count(distinct reason) <> 1)
  order by value(deact, ' '), value(substr(dsr, 2, 1), '')
  with ur
  ;
$/sql/
}¢--- A540769.WK.SQL(PKGCLEAN) cre=2016-10-24 mod=2016-10-31-10.11.01 A540769 ---
//A540769P JOB (CP00,KE50),'DB2 REO',
//         MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M,
//         SCHENV=DB2ALL,CLASS=M1
//*
//S1       EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,
//             PARM='%WSH'
//SYSPROC   DD DSN=DSN.DB2.EXEC,DISP=SHR
//SYSPRINT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//SYSTSPRT  DD SYSOUT=*
//SYSTSIN   DD DUMMY
//WSH       DD *
$#:
dbSys = DE0G
sqlFree = -117 -204 -206
$*( *******************************************************************

job to deactivate outdated packages

    * this job can be killed and restarted anytime ****************

    usage: check/correct dbSys
           sub
           verify output, if necessary adapt wsh and resubmit job

    function
        1) select outdated packageVersions by sql below
             that are NOT deactivated yet
        2) deactived by rebind enable (cics) cics(loeschen)
           if package is inValid and rebind is not possible
               (has (only) sqlCodes from sqlFree above)
               then free package
        3) sleep 1 second after 10 rebinds
              to avoid monopolisation of the catalog
********************************************************************$*)
rCnt = 0
@selPk
| forWith @rebindPk

proc $@/selPk/
call sqlConnect $dbSys
call sqlStmts , , , , 'o'
$| $@. jTalkRdr()
$<=¢
set current application compatibility 'V11R1';
with p0 as
( ---  ignore packages created in last two weeks ----------------------
  select case when timestamp < current timestamp - 15 days
              then 0 else 1 end creNew
      , 20 win, p.*
    from sysibm.syspackage p
)
, p1 as
( --- end of first window before creNew=1
  select max(case when creNew = 0 then timestamp end)
             over(partition by location, collid, name) cre1
       , max(case when creNew = 0 then pcTimestamp end)
             over(partition by location, collid, name) pcT1
       , max(case when creNew = 0 then lastUsed    end)
             over(partition by location, collid, name) use1
       , p0.*
    from p0
)
, p2 as
( --- end of second window before begin of first window ---------------
  select max(case when cre1 < '1000-01-01-00.00.00' then null
                  when creNew = 0 and timestamp   < cre1 - win days
                  then timestamp end)
             over(partition by location, collid, name) cre2
       , max(case when pcT1 < '1000-01-01-00.00.00' then null
                  when creNew = 0 and pcTimestamp < pcT1 - win days
                      then pcTimestamp end)
             over(partition by location, collid, name) pcT2
       , max(case when use1 < '01.01.1000' then null
                  when creNew = 0 and lastUsed    < use1 - win days
                      then lastUsed end)
             over(partition by location, collid, name) use2
       , p1.*
    from p1
)
, pS as
( --- seqNumber of each window ----------------------------------------
  select
        case when creNew = 1 then 0
             when cre1 is null or cre1 < '1000-01-01-00.00.00' then 1
             when timestamp >= cre1 - win days then 1
             when cre2 is null or cre2 < '1000-01-01-00.00.00' then 2
             when timestamp >= cre2 - win days then 2
             else 9 end creSeq
      , case when creNew = 1 then 0
             when pcT1 is null or pcT1 < '1000-01-01-00.00.00' then 1
             when pcTimestamp >= pcT1 - win days then 1
             when pcT2 is null or pcT2 < '1000-01-01-00.00.00' then 2
             when pcTimestamp >= pcT2 - win days then 2
             else 9 end pcTSeq
      , case when creNew = 1 then 0
             -- ignore PKGs never used, not after Db2V9, not in 3 years
             when lastUsed < current date - 3 years then 9
             when use1 is null or use1 < '01.01.1000' then 1
             when lastUsed >= use1 - win days then 1
             when use2 is null or use2 < '01.01.1000' then 2
             when lastUsed >= use2 - win days then 2
             else 9 end useSeq
      , p2.*
    from p2
)
, pR as
( --- reason why to keep or deactivate a package ----------------------
  select case
           when sysentries > 0 then 'k1sysEnt>0' -- already deact
           when sysentries < 0 then 'k2sysEnt<0' -- should not exist
           when creNew  = 1    then 'k3cre>15d'  -- newly created
           when pctSeq <= 2    then 'k4pcT<=2'   -- last 2 compile
           when creSeq <= 2    then 'k5cre<=2'   -- last 2 compile
           when useSeq <= 2    then 'k6use<=2'   -- last 2 lastUsed
           when lastUsed > current date - 123 days
                               then 'k7use<4Mo'   -- wait zuegelschub
                               else 'd0deact' end dsr
      , pS.*
    from pS
)
, p as
( --- decode dsr ------------------------------------------------------
  select left(dsr, 1) deact, substr(dsr, 3) reason, pR.*
     from pR
)
select strip(collid) collid, strip(name) pk, strip(version) vers
, valid, operative, creSeq, useSeq, pctSeq, lastUsed
    from p
    where deact = 'd'
    fetch first 100 rows only
    with ur
$!
$/selPk/

proc $@/rebindPk/
say 'rebindPk' $COLLID'.'$PK'('$VERS')' $*+
              'cre='$CRESEQ 'pct='$PCTSEQ 'use='$USESEQ $LASTUSED
    rb = 'rebind package('$COLLID'.'$PK'.('$VERS'))',
       'enable (cics ) cics(loeschen) planmgmt(extended)'
    rr = sqlDsn(bo, $dbSys, rb, '*')
    cd = ''
    sqlFree = 0
    sqlOth  = 0
    msg = ''
    if rr <> 0 then $@¢
        do bx=1 to m.bo.0
           sx = pos('SQLCODE=', m.bo.bx)
           if sx > 0 then do
               c1 = word(substr(m.bo.bx, sx+8), 1)
               if wordPos(c1, $sqlFree) > 0 then
                   sqlFree = sqlFree + 1
               else
                   sqlOth  = sqlOth + 1
               if wordPos(c1, cd) < 1 then
                   cd = cd c1
               end
           if word(m.bo.bx, 1) = 'DSNT219I' then
               if $VALID = 'N' then
                   msg = msg 'warn(DSNT219I: ok, but current invalid)'
               else
                   say '  ##dsnt219I but valid='$VALID
           end
       $!
    doFree = (sqlFree > 0) & (sqlOth == 0)
    $= rCnt =- $rCnt + 1
    say '#rc='rr 'doFree='doFree msg 'sqlCodes='cd 'rb='rb
    if rr = 0 then $@¢
    $! else if rr=4 & cd = '' & msg <> '' then $@¢
    $! else $@¢
        do bx=1 to m.bo.0
            say ' ' strip(m.bo.bx, 't')
            end
        if doFree then $@¢
            fr = 'free package('$COLLID'.'$PK'.('$VERS'))'
            say '  trying to' fr
            rr = sqlDsn(fo, $dbSys, fr, '*')
            say '  rc='rr 'for' fr
            if rr <> 0 then do
                do fx=1 to m.fo.0
                    say '   ' strip(m.fo.fx, 't')
                    end
                end
            $!
    $!
    if $rCnt // 10 = 0 then $@¢
        say 'after' $rCnt 'rebinds sleeping 1 second' time()
        call sleep 1, 0
        $!
$/rebindPk/
}¢--- A540769.WK.SQL(PKGCLEAS) cre=2016-10-28 mod=2016-10-31-08.58.22 A540769 ---
set current application compatibility 'V11R1';
with p0 as
( ---  ignore packages created in last two weeks ----------------------
  select case when timestamp < current timestamp - 15 days
              then 0 else 1 end creNew
      , 20 win, p.*
    from sysibm.syspackage p
)
, p1 as
( --- end of first window before creNew=1
  select max(case when creNew = 0 then timestamp end)
             over(partition by location, collid, name) cre1
       , max(case when creNew = 0 then pcTimestamp end)
             over(partition by location, collid, name) pcT1
       , max(case when creNew = 0 then lastUsed    end)
             over(partition by location, collid, name) use1
       , p0.*
    from p0
)
, p2 as
( --- end of second window before begin of first window ---------------
  select max(case when cre1 < '1000-01-01-00.00.00' then null
                  when creNew = 0 and timestamp   < cre1 - win days
                  then timestamp end)
             over(partition by location, collid, name) cre2
       , max(case when pcT1 < '1000-01-01-00.00.00' then null
                  when creNew = 0 and pcTimestamp < pcT1 - win days
                      then pcTimestamp end)
             over(partition by location, collid, name) pcT2
       , max(case when use1 < '01.01.1000' then null
                  when creNew = 0 and lastUsed    < use1 - win days
                      then lastUsed end)
             over(partition by location, collid, name) use2
       , p1.*
    from p1
)
, pS as
( --- seqNumber of each window ----------------------------------------
  select
        case when creNew = 1 then 0
             when cre1 is null or cre1 < '1000-01-01-00.00.00' then 1
             when timestamp >= cre1 - win days then 1
             when cre2 is null or cre2 < '1000-01-01-00.00.00' then 2
             when timestamp >= cre2 - win days then 2
             else 9 end creSeq
      , case when creNew = 1 then 0
             when pcT1 is null or pcT1 < '1000-01-01-00.00.00' then 1
             when pcTimestamp >= pcT1 - win days then 1
             when pcT2 is null or pcT2 < '1000-01-01-00.00.00' then 2
             when pcTimestamp >= pcT2 - win days then 2
             else 9 end pcTSeq
      , case when creNew = 1 then 0
             -- ignore PKGs never used, not after Db2V9, not in 3 years
             when lastUsed < current date - 3 years then 9
             when use1 is null or use1 < '01.01.1000' then 1
             when lastUsed >= use1 - win days then 1
             when use2 is null or use2 < '01.01.1000' then 2
             when lastUsed >= use2 - win days then 2
             else 9 end useSeq
      , p2.*
    from p2
)
, pR as
( --- reason why to keep or deactivate a package ----------------------
  select case
           when sysentries > 0 then 'k1sysEnt>0' -- already deact
           when sysentries < 0 then 'k2sysEnt<0' -- should not exist
           when creNew  = 1    then 'k3cre>15d'  -- newly created
           when pctSeq <= 2    then 'k4pcT<=2'   -- last 2 compile
           when creSeq <= 2    then 'k5cre<=2'   -- last 2 compile
           when useSeq <= 2    then 'k6use<=2'   -- last 2 lastUsed
           when lastUsed > current date - 4 month
                               then 'k7use<4Mo'   -- wait until next zuegelschub
                               else 'd0deact' end dsr
      , pS.*
    from pS
)
, p as
( --- decode dsr ------------------------------------------------------
  select left(dsr, 1) deact, substr(dsr, 3) reason, pR.*
     from pR
)
$** select * from p order by cnt desc fetch first 100 rows only
select '?rz/?dbSys' rzDb
     , deact
     , reason
     , count(*) pkgVers
     , count(distinct strip(collid) || '.' || strip(name)) pkg
     , sum(case when pctSeq=1 then 1 else 0 end) pcT1
     , sum(case when pctSeq=2 then 1 else 0 end) pcT2
     , sum(case when useSeq=1 and lastUsed > current date - 3 year
                then 1 else 0 end) use1
     , sum(case when useSeq=2 and lastUsed > current date - 3 year
                then 1 else 0 end) use2
     , sum(case when valid = 'N' then 1 else 0 end) validNo
     , sum(case when operative = 'N' then 1 else 0 end) operativeNo
  from p
  group by grouping sets((deact, dsr, reason), (deact), ())
  having deact is null or reason is not null
         or (reason is null and count(distinct reason) <> 1)
  order by value(deact, ' '), value(substr(dsr, 2, 1), '')
  with ur
  ;
}¢--- A540769.WK.SQL(PKGDEP) cre=2006-09-29 mod=2006-10-19-12.50.53 F540769 ----
select char(bname,12), char(bqualifier,12), btype
    from sysibm.syspackdep
    where dname = 'DBWK2'
;
x
select distinct p.collid, p.Name, p.version, p.type from
sysibm.syspackdep d join sysibm.syspackage p on p.location =
d.dLocation and p.collid = d.dCollid and p.name = d.dName
and  p.conToken = d.dConToken where ( bQualifier = 'OA1A03'
and bName in ('TAV408A1'))
;
 x
select distinct p.collid, p.Name, p.version, p.type from
sysibm.syspackdep d join sysibm.syspackage p on p.location =
d.dLocation and p.collid = d.dCollid and p.name = d.dName
and  p.conToken = d.dConToken where ( bQualifier = 'VDPS2'
and bName in ('DTUNDERFIXCOMQ', 'DTUNDERFIXCOMP', 'IIXDU',
'IIXDUZWEI')) or ( bQualifier = 'VDPS3 ' and bName in ('vdps
table drei ')) or ( bQualifier = 'EFG' and bName in ('HIK'))
or ( (bQualifier, bName) in ( select tbcreator, tbname from
sysibm.sysindexes where ( creator = 'VDPS2' and name in
('IIXDU', 'IIXDUZWEI')) ) )
;
select distinct p.collid, p.Name, p.version, p.type from sysibm.syspackd
in sysibm.syspackage p on p.location = d.dLocation and p.collid = d.dCol
 p.name = d.dName and  p.conToken = d.dConToken where ( bQualifier = 'VD
d bName in ('DTUNDERFIXCOMQ', 'DTUNDERFIXCOMP', 'IIXDU', 'IIXDUZWEI')) o
alifier = 'VDPS3 ' and bName in ('vdps table drei ')) or ( bQualifier =
nd bName in ('HIK')) or ( (bQualifier, bName) in ( select tbcreator, tbn
m sysibm.sysindexes where ( creator = 'VDPS2' and name in ('IIXDU', 'IIX
)) ) )
;
select char(bname,12), char(bqualifier,12), btype
    from sysibm.syspackdep
    where dname = 'DBWK2'
    ;
select distinct char(p.collid, 8), char(p.Name,12), char(p.version, 30),
                p.type
    from sysibm.syspackdep d join sysibm.syspackage p
        on p.location = d.dLocation and p.collid = d.dCollid
           and p.name = d.dName and  p.conToken = d.dConToken
    where
    --  ( bType in ('A', 'M', 'S', 'T', 'V') and
             (   ( bQualifier = 'gDB9998' and
                   bName in ('TWK003A', 'TWK001A')
                 ) or
                 ( bQualifier = 'dGDB9998' and
                   bName in ('TWK003A', 'TWK001A')
                 ) or
                 ( (bQualifier, bName) in
                     ( select tbcreator, tbname
                         from sysibm.sysindexes
                         where creator = 'GDB9998' and
                               name = 'IQQ051A0'
                     )
                 )
             )
    --  )
;
x
}¢--- A540769.WK.SQL(PKGLAST) cre=2010-06-23 mod=2010-06-23-14.25.38 A540769 ---
select translate( '789A4512', char(lastUsed), '123456789A')
           , lastUsed
from RZ2.TACCT_PKGUSED
fetch first row only
}¢--- A540769.WK.SQL(PKGUSAV) cre=2012-01-26 mod=2012-01-26-08.23.26 A540769 ---
select *
    from rr2.tacct_pkgused
    where PCK_ID = 'YAVX005'
                     and PCK_CONSIST_TOKEN = '1908BFB6056DCDD6'
}¢--- A540769.WK.SQL(PLANCLEA) cre=2015-01-05 mod=2015-01-09-15.06.37 A540769 ---
$#:
dbSys = DP4G
cre   = cmnBatch
keyTb = tPlanClea
keyCr = A540769
$@ call sqlConnect $dbSys
$@creKeyTb
$@cleanPlan

$*************** clean plan table
$@proc $@/cleanPlan/
$*(  stCol = sql2One('select col from' $-keyCr'.'$-keyTb' ,
                          order by col fetch first 1 row only', , ,,'-')
     say 'start collection=' stCol
     call sql2St 'select collid, count(*) cnt from' $-cre'.plan_table' ,
               "where collid >= '"stCol"'",
               'group by collid order by collid', cc
     say m.cc.0 'collections in' $-cre".plan_table >= '"stCol"'"
     $do cx=1 to m.cc.0 $@/doCol/
         say 'col' m.cc.cx.collid m.cc.cx.cnt
         $$- 'col'  m.cc.cx.collid m.cc.cx.cnt '*********' time()
         $@% insKeys - m.cc.cx.collid, m.cc.cx.cnt
         $@% delPlan - m.cc.cx.collid, m.cc.cx.cnt
         $<>
         $<=¢
            delete from $keyCr.$keyTb ;
            commit ;
         $!
         call sqlStmts
         $<>
         $/doCol/
$*)  $@% delDsn DSN_PREDICAT_TABLE
$/cleanPlan/

$*************** delete rows from dsn_*, that are not in plan_table
$@proc $@/delDsn/
    parse arg , tb
    $= crTb =- $cre'.'tb
    say 'delDsn' tb 'crTb='$crTb
    call sql2St 'select queryNo, count(*) cnt from' $crTb ,
               'group by queryNo', qq
    say 'delDsn' $crTb':' m.qq.0 'queryNo'
    $do qx=1 to m.qq.0 $@¢
        $=qNo =- m.qq.qx.queryNo
        $=cnt=- m.qq.qx.cnt
        say 'queryNo' $qNo 'count' $cnt
        $<>
        $<=¢
              select  'toDelete ' ||  count(*) || ' from $cnt: '
                   || count(distinct explain_time)
                   || value('*' || char(min(explain_time))
                         || '-'  || char(max(explain_time)), '---')
                from $crTb d
                where queryNo = $qNo
                    and explain_time < current timestamp - 20 days
                    and not exists (select 1
                        from $cre.plan_table p
                        where p.queryNo      = d.queryNo
                          and p.explain_time = d.explain_time
                        )
        $!
        call sqlStmts
        $!
    call err 'tstEnd'
$= col =- col
$= cnt =- cnt
$<>
$<=/delSql/
  select  'toDelete ' ||  count(*) || ' from $cnt: '
       || count(distinct explain_time)
       || value('*' || char(min(explain_time))
             || '-'  || char(max(explain_time)), '---')
    from $cre.plan_table t
    where collid = '$col'
        and explain_time < current timestamp - 20 days
        and not exists (select 1
            from $keyCr.$keyTb k
            where t.collid = k.col
                and t.progName = k.pkg
                and t.version  = k.vers
                and t.explain_Time  = k.exTi
            )
$/delSql/
call sqlStmts
$/delDsn/

$*************** delete rows from plan table, that are not in keys
$@proc $@/delPlan/
parse arg , col, cnt
say 'del' col 'cnt' cnt
$= col =- col
$= cnt =- cnt
$<>
$<=/delSql/
  select  'toDelete ' ||  count(*) || ' from $cnt: '
       || count(distinct explain_time)
       || value('*' || char(min(explain_time))
             || '-'  || char(max(explain_time)), '---')
    from $cre.plan_table t
    where collid = '$col'
        and explain_time < current timestamp - 20 days
        and not exists (select 1
            from $keyCr.$keyTb k
            where t.collid = k.col
                and t.progName = k.pkg
                and t.version  = k.vers
                and t.explain_Time  = k.exTi
            )
$/delSql/
call sqlStmts
$/delPlan/

$*************** insert keys for explains to keep
$@proc $@/insKeys/
parse arg , col, cnt
$= col =- col
say 'ins' $-col 'cnt' cnt
$<>
$<=/insSql/
insert into $keyCr.$keyTb
with p as
(
  select collid col, name pkg, version vers, timestamp cre
    , max(timestamp(lastUsed)
      , value(( select min(n.timestamp)
          from sysibm.sysPackage n
          where n.location = p.location
            and n.collid = p.collid
            and n.name   = p.name
            and n.timestamp > p.timestamp
      ), current timestamp)) pNxt
    from sysibm.sysPackage p
    where collid = '$col'
)
, e (col, pkg, vers, cre, pNxt, exTi, exCnt, optHi, exNxt
    , keep, keLa, l) as
(
  select col, pkg, vers, cre, pNxt
      , ( select min(e.explain_time)
             from $cre.plan_table e
             where  p.col = e.collid and p.pkg = e.progName
           and p.vers = e.version )
      , cast( null as int)
      , cast( ''   as char(8))
      , cast( null as timestamp)
      , -9
      , cast( null as timestamp)
      , 0
    from p
  union all select col, pkg, vers, cre, pNxt, exTi
      , ( select count(*)
            from $cre.plan_table t
            where  e.col = t.collid and e.pkg = t.progName
                and e.vers = t.version and e.exTi = t.explain_time )
      , ( select max(case when optHint is not null and optHint<> ''
                              then optHint
                          when hint_Used is not null and hint_used <> ''
                              and hint_used <> 'APREUSE' then hint_used
                               else '' end)
            from $cre.plan_table t
            where  e.col = t.collid and e.pkg = t.progName
                and e.vers = t.version and e.exTi = t.explain_time )
      , ( select min(explain_time)
            from $cre.plan_table t
            where  e.col = t.collid and e.pkg = t.progName
                and e.vers = t.version and e.exTi < t.explain_time )
      , -8
      , keLa
      , l+1
    from e
    where e.l < 9999 and keep = -9
  union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
      , exNxt
      , case when keLa is null and pNxt <= exNxt then -1
             when pNxt <= exTi then -2
             when optHi <> ''              then -1
             when exNxt is null or exNxt > exTi + 10 days then -1
             when keLa is null and cre < exTi - 10 days then -1
             when keLa < exTi - 20 days then -1
             else -2 end
      , keLa
      , l+1
    from e
    where l < 9999 and keep = -8
  union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
      , exNxt
      , keep + 2
      , case when keep = -2 then keLa
             when optHi <> '' then keLa
             else exTi end
      , l+1
    from e
    where e.l < 9999 and keep in (-1, -2)
  union all select col, pkg, vers, cre, pNxt, exNxt
      , cast(null as int), ''
      , cast(null as timestamp)
      , -9
      , keLa
      , l+1
    from e
    where l < 9999 and keep in (1, 0) and exNxt < pNxt
)
select col, pkg, vers, exTi
    from e
    where keep = 1 and exTi is not null
$*(
select substr(strip(col) || '.' || strip(pkg) || '#' || vers, 1, 30)
      , exTi, keep, l, exCnt, optHi, exNxt, keLa, cre, pNxt
    from e
    where keep >= 0
    order by col, pkg, cre, l
$*)
$/insSql/
call sqlStmts
$/insKeys/

$*************** create keyTb, if it does not exist
$@proc $@/creKeyTb/
    if catTbLastCol($-keyCr, $-keyTb) == '4 EXTI' then
        return
    $<>
    $<=/ddl/
drop TABLESPACE dA540769.PLANCLEA;
commit;
CREATE TABLESPACE PLANCLEA
   IN DA540769
   USING STOGROUP GSMS PRIQTY -1 SECQTY -1 ERASE NO
   LOCKSIZE PAGE LOCKMAX SYSTEM
   BUFFERPOOL BP8K0
   SEGSIZE 64
   COMPRESS YES CLOSE YES
   CCSID UNICODE;
CREATE TABLE $keyCr.$keyTb
     (   COL                 VARCHAR(128) NOT NULL WITH DEFAULT
     ,   pkg                 VARCHAR(128) NOT NULL with default
     ,   VERS                VARCHAR(122) NOT NULL WITH DEFAULT
     ,   exTi                TIMESTAMP    NOT NULL WITH DEFAULT
     )   IN DA540769.PLANCLEA
         VOLATILE
         DATA CAPTURE CHANGES
         CCSID UNICODE;
 CREATE INDEX $keyCr.$-¢overlay('i', $keyTb, 1)$!
           ON $keyCr.$keyTb
       ( COL
       , pkg
       , VERS
       , exTi
       )  -- no other fields allowed ||||
   USING STOGROUP GSMS PRIQTY -1 SECQTY -1 ERASE  NO
   FREEPAGE 0 PCTFREE 10
   GBPCACHE CHANGED
   NOT PADDED
   COMPRESS NO
   BUFFERPOOL BP1
   CLOSE YES
   COPY NO
   DEFINE YES
   PIECESIZE 2 G;
   commit;
    $/ddl/
   call sqlStmts
$/creKeyTb/
$#out                                              20150109 15:05:42
COL1
toDelete 0 from 4: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 4: ' || count(dis...
COL1
toDelete 0 from 4: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 4: ' || count(dis...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 264: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 264: ' || count(d...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 264: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 264: ' || count(d...
COL1
toDelete 0 from 44: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 44: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 264: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 264: ' || count(d...
COL1
toDelete 0 from 49: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 49: ' || count(di...
COL1
toDelete 0 from 5: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 5: ' || count(dis...
COL1
toDelete 0 from 24: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 24: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 45: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 45: ' || count(di...
COL1
toDelete 0 from 7: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 7: ' || count(dis...
COL1
toDelete 0 from 56: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 56: ' || count(di...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 120: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 120: ' || count(d...
COL1
toDelete 0 from 134: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 134: ' || count(d...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 50: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 50: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 7: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 7: ' || count(dis...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 49: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 49: ' || count(di...
COL1
toDelete 0 from 40: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 40: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 25: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 25: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 30: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 30: ' || count(di...
COL1
toDelete 0 from 5: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 5: ' || count(dis...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 102: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 102: ' || count(d...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 5: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 5: ' || count(dis...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 21: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 21: ' || count(di...
COL1
toDelete 0 from 64: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 64: ' || count(di...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 48: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 48: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 16: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 16: ' || count(di...
COL1
toDelete 0 from 28: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 28: ' || count(di...
COL1
toDelete 0 from 36: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 36: ' || count(di...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 35: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 35: ' || count(di...
COL1
toDelete 0 from 5: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 5: ' || count(dis...
COL1
toDelete 0 from 64: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 64: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 22: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 22: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 12: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 12: ' || count(di...
COL1
toDelete 0 from 15: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 15: ' || count(di...
COL1
toDelete 0 from 30: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 30: ' || count(di...
COL1
toDelete 0 from 30: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 30: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 64: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 64: ' || count(di...
COL1
toDelete 0 from 25: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 25: ' || count(di...
COL1
toDelete 0 from 20: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 20: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 15: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 15: ' || count(di...
COL1
toDelete 0 from 18: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 18: ' || count(di...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 6: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 6: ' || count(dis...
COL1
toDelete 0 from 24: 0---
1 rows fetched: select 'toDelete ' || count(*) || ' from 24: ' || count(di...
*** run error ***
tstEnd
$#out                                              20150109 15:04:49
}¢--- A540769.WK.SQL(PLANCLES) cre=2015-01-06 mod=2015-02-18-11.49.11 A540769 ---
-- plan table cleanup
-- query um zu behaltende Explains zu bestimmen
--
with p2 as   -- welche Package Version ist wann gültig
             -- von CRE bis pkNx
(
  select collid col, name pkg, version vers, timestamp cre
    , max(timestamp(lastUsed)
      , value(( select min(n.timestamp)
          from sysibm.sysPackage n
          where n.location = p.location
            and n.collid = p.collid
            and n.name   = p.name
            and n.timestamp > p.timestamp
      ), current timestamp)) pkNx
    from sysibm.sysPackage p
    where location = '' and collid = 'NI' -- and name = 'PC5120'
)
, e2 as      -- welche explain_time joinen, rows zählen
(
  select col, pkg, vers, cre, pkNx
      , e.explain_time exTi
      , count(*) exCnt
      , max(case when optHint is not null and optHint<>'' then optHint
                 when hint_Used is not null and hint_used <> ''
                              and hint_used <> 'APREUSE' then hint_used
                 else '' end) optHi
    from p2 p join cmnBatch.plan_table e
      on p.col = e.collid and p.pkg = e.progName
          and p.vers = e.version
    group by col, pkg, vers, cre, pkNx, explain_time
)
, e3 as      -- nächste explain_time suchen
(
  select e2.*
      , ( select min(explain_time)
            from cmnBatch.plan_table n
            where e2.col = n.collid and e2.pkg = n.progName
                and e2.vers = n.version and e2.exTi < n.explain_time
         ) exNx
  from e2
)
, e4 as      -- herausfinden ob behalten oder löschen
(
  select
      case when exTi > pkNx then '0 pNx'
           when exTi < cre then '0 cre'
           when optHi <> '' then '1 optHi'
           when exNx is Null then '1 nxNull'
           when exNx >= pkNx then '1 nx>pNx'
           when days(exNx) - days(exTi) > 30 then '1 >30day'
           when trunc_timestamp(exTi, 'mon')
             <> trunc_timestamp(exNx, 'mon') then '1 mon'
           else '0 else'
      end keep
    , days(exTi) exTID
    , days(exNx) exNxD
    , e3.*
    from e3
)
, eq as      -- queryNo joinen
(
  select exTi, queryNo, count(*) eCnt, keep
    from e4 p join cmnBatch.plan_table e
      on p.col = e.collid and p.pkg = e.progName
          and p.vers = e.version
 -- where keep like '1%'
    group by exTi, queryNo, keep
)
select count(*), sum(eCnt) eCnt, keep
    from eq
    group by keep
;x;
select exTi, exNx, e4.* from e4
    order by col, pkg, vers, cre, pkNx, exTi
;x;
, e (col, pkg, vers, cre, pkNx, exTi, exCnt, optHi, exNxt
    , keep, keLa, l) as
;x;
select count(distinct explain_time), count(*), collid, progName
    from cmnBatch.plan_table
    group by collid, progName
    order by 1 desc
    fetch first 1000 rows only
    with ur
;x;
with p as
(
  select collid col, name pkg, version vers, timestamp cre
    , max(timestamp(lastUsed)
      , value(( select min(n.timestamp)
          from sysibm.sysPackage n
          where n.location = p.location
            and n.collid = p.collid
            and n.name   = p.name
            and n.timestamp > p.timestamp
      ), current timestamp)) pNxt
    from sysibm.sysPackage p
 -- where collid = '$col'
)
, e (col, pkg, vers, cre, pNxt, exTi, exCnt, optHi, exNxt
    , keep, keLa, l) as
(
  select col, pkg, vers, cre, pNxt
      , ( select min(e.explain_time)
             from cmnBatch.plan_table e
             where  p.col = e.collid and p.pkg = e.progName
           and p.vers = e.version )
      , cast( null as int)
      , cast( ''   as char(8))
      , cast( null as timestamp)
      , -9
      , cast( null as timestamp)
      , 0
    from p
  union all select col, pkg, vers, cre, pNxt, exTi
      , ( select count(*)
            from cmnBatch.plan_table t
            where  e.col = t.collid and e.pkg = t.progName
                and e.vers = t.version and e.exTi = t.explain_time )
      , ( select max(case when optHint is not null and optHint<> ''
                              then optHint
                          when hint_Used is not null and hint_used <> ''
                              and hint_used <> 'APREUSE' then hint_used
                               else '' end)
            from cmnBatch.plan_table t
            where  e.col = t.collid and e.pkg = t.progName
                and e.vers = t.version and e.exTi = t.explain_time )
      , ( select min(explain_time)
            from cmnBatch.plan_table t
            where  e.col = t.collid and e.pkg = t.progName
                and e.vers = t.version and e.exTi < t.explain_time )
      , -8
      , keLa
      , l+1
    from e
    where e.l < 9999 and keep = -9
  union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
      , exNxt
      , case when keLa is null and pNxt <= exNxt then -1
             when pNxt <= exTi then -2
             when optHi <> ''              then -1
             when exNxt is null or exNxt > exTi + 10 days then -1
             when keLa is null and cre < exTi - 10 days then -1
             when keLa < exTi - 20 days then -1
             else -2 end
      , keLa
      , l+1
    from e
    where l < 9999 and keep = -8
  union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
      , exNxt
      , keep + 2
      , case when keep = -2 then keLa
             when optHi <> '' then keLa
             else exTi end
      , l+1
    from e
    where e.l < 9999 and keep in (-1, -2)
  union all select col, pkg, vers, cre, pNxt, exNxt
      , cast(null as int), ''
      , cast(null as timestamp)
      , -9
      , keLa
      , l+1
    from e
    where l < 9999 and keep in (1, 0) and exNxt < pNxt
)
select substr(strip(col) || '.' || strip(pkg) || '#' || vers, 1, 30)
      , exTi, keep, l, exCnt, optHi, exNxt, keLa, cre, pNxt
    from e
    where keep >= 0 and exTi is not null
    order by col, pkg, cre, l
}¢--- A540769.WK.SQL(PLANCNT) cre=2012-01-23 mod=2015-01-05-16.31.25 A540769 ---
with c as
(
select collid, count(*) cnt
    from cmnbatch.plan_table
    group by collid
)
select count(*), sum(cnt), max(cnt), avg(cnt)
    from c
    with ur
;x;
with p as
(
  select collid col, name pkg, version vers, timestamp cre
    , max(timestamp(lastUsed)
      , value(( select min(n.timestamp)
          from sysibm.sysPackage n
          where n.location = p.location
            and n.collid = p.collid
            and n.name   = p.name
            and n.timestamp > p.timestamp
      ), current timestamp)) pNxt
    from sysibm.sysPackage p
--  where name = 'NZERR90' and collid = 'NZ'
    where name like '%' and collid = 'MF'
)
, e (col, pkg, vers, cre, pNxt, exTi, exCnt, optHi, exNxt
    , keep, keLa, l) as
(
  select col, pkg, vers, cre, pNxt
      , ( select min(e.explain_time)
             from cmnBatch.plan_table e
             where  p.col = e.collid and p.pkg = e.progName
           and p.vers = e.version )
      , cast( null as int)
      , cast( ''   as char(8))
      , cast( null as timestamp)
      , -9
      , cast( null as timestamp)
      , 0
    from p
  union all select col, pkg, vers, cre, pNxt, exTi
      , ( select count(*)
            from cmnBatch.plan_table t
            where  e.col = t.collid and e.pkg = t.progName
                and e.vers = t.version and e.exTi = t.explain_time )
      , ( select max(case when optHint is not null and optHint<> ''
                              then optHint
                          when hint_Used is not null and hint_used <> ''
                              and hint_used <> 'APREUSE' then hint_used
                               else '' end)
            from cmnBatch.plan_table t
            where  e.col = t.collid and e.pkg = t.progName
                and e.vers = t.version and e.exTi = t.explain_time )
      , ( select min(explain_time)
            from cmnBatch.plan_table t
            where  e.col = t.collid and e.pkg = t.progName
                and e.vers = t.version and e.exTi < t.explain_time )
      , -8
      , keLa
      , l+1
    from e
    where e.l < 9999 and keep = -9
  union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
      , exNxt
      , case when keLa is null and pNxt <= exNxt then -1
             when pNxt <= exTi then -2
             when optHi <> ''              then -1
             when exNxt is null or exNxt > exTi + 10 days then -1
             when keLa is null and cre < exTi - 10 days then -1
             when keLa < exTi - 20 days then -1
             else -2 end
      , keLa
      , l+1
    from e
    where l < 9999 and keep = -8
  union all select col, pkg, vers, cre, pNxt, exTi, exCnt, optHi
      , exNxt
      , keep + 2
      , case when keep = -2 then keLa
             when optHi <> '' then keLa
             else exTi end
      , l+1
    from e
    where e.l < 9999 and keep in (-1, -2)
  union all select col, pkg, vers, cre, pNxt, exNxt
      , cast(null as int), ''
      , cast(null as timestamp)
      , -9
      , keLa
      , l+1
    from e
    where l < 9999 and keep in (1, 0) and exNxt < pNxt
)
select substr(strip(col) || '.' || strip(pkg) || '#' || vers, 1, 30)
      , exTi, keep, l, exCnt, optHi, exNxt, keLa, cre, pNxt
    from e
    where keep >= 0
    order by col, pkg, cre, l
;x;
;x;
with p as
(
  select collid col, name pkg, version vers, timestamp cre, max(lastUsed
    , value(( select min(date(n.timestamp))
          from sysibm.sysPackage n
          where n.location = p.location
            and n.collid = p.collid
            and n.name   = p.name
            and n.timestamp > p.timestamp
      ), current date)) pNxt
    from sysibm.sysPackage p
    where name = 'NZERR90' and collid = 'NZ'
)
, e (col, pkg, vers, cre, pNxt, exTi, exCnt, optHi, l) as
(
  select col, pkg, vers, cre, pNxt
    ,  select(min(e.explain_time) exTi
    ,  count(*) exCnt
    ,  max(case when optHint is not null and optHint<> '' then optHint
                when hint_Used is not null and hint_used <> ''
                            and hint_used <> 'APREUSE' then hint_used
                else '' end) optHint
  from p join cmnBatch.plan_table e
      on p.col = e.collid and p.pkg = e.progName
         and p.vers = e.version and e.explain_time < timestamp(pNxt)
    group by  col, pkg, vers, cre, pNxt, e.explain_time
)
select * from e
;x;
          from cmnbatch.plan_table n
          where
                n.collid = e.collid
            and n.progname   = e.progname
            and n.version    = e.version
            and n.explain_time > e.explain_time
      ), current date)  eNxt
  from  cmnBatch.plan_table e
  where progName = 'NZERR90' and collid = 'NZ'
  group by collid, progName, version, explain_time
)
select  value(p.col, e.col) col
      , value(p.pkg, e.pkg) pkg
      , value(p.vers, e.vers) vers
      , case when
      , cre, pNxt
      , exTi, exCnt, optHint, eNxt
    from p
      full outer join e
        on p.col = e.col and p.pkg = e.pkg and p.vers = e.vers
    order by 1, 2, value (cre, exTi) desc, exTi desc
;x;
with p as
(
  select collid col, name pkg, version vers, timestamp cre, max(lastUsed
    , value(( select min(date(n.timestamp))
          from sysibm.sysPackage n
          where n.location = p.location
            and n.collid = p.collid
            and n.name   = p.name
            and n.timestamp > p.timestamp
      ), current date)) pNxt
    from sysibm.sysPackage p
    where name = 'NZERR90' and collid = 'NZ'
)
, e as
(
  select collid col, progName pkg, version vers
    ,  explain_time exTi
    ,  count(*) exCnt
    ,  max(strip(optHint)) optHint
    , value(( select min(date(n.explain_time))
          from cmnbatch.plan_table n
          where
                n.collid = e.collid
            and n.progname   = e.progname
            and n.version    = e.version
            and n.explain_time > e.explain_time
      ), current date)  eNxt
  from  cmnBatch.plan_table e
  where progName = 'NZERR90' and collid = 'NZ'
  group by collid, progName, version, explain_time
)
select  value(p.col, e.col) col
      , value(p.pkg, e.pkg) pkg
      , value(p.vers, e.vers) vers
      , case when
      , cre, pNxt
      , exTi, exCnt, optHint, eNxt
    from p
      full outer join e
        on p.col = e.col and p.pkg = e.pkg and p.vers = e.vers
    order by 1, 2, value (cre, exTi) desc, exTi desc
;x;
select progname, collid, version, explain_time, count(*) cnt
     , count(distinct explain_time) exTiS
  from  cmnBatch.plan_table
  where progName = 'NZERR90' and collid = 'NZ'
  and version = 'NZV0000216'
  group by progname, collid, version, explain_time
with d as
(
   select days(timestamp) - days(pcTimestamp) d
    from sysibm.sysPackage
)
select count(*), d
    from d
    group by d
    order by 1 desc
;x;
   -- search duplicate explain times per program/version
with e as
(
  select explain_time,
    strip(collid) || '.' || strip(progName) || '.'
                || strip(version) cpv
  from  cmnBatch.plan_table
)
select explain_time, count(distinct cpv) cntCpv
    ,  substr(min(cpv), 1, 30) cpvF
    ,  substr(max(cpv), 1, 30) cpvT
  from  e
  group by explain_time
  order by 2 desc
  fetch first 1000 rows only
  with ur
;x;
with e as
(
select progname, collid, version, explain_time, count(*) cnt
     , count(distinct explain_time) exTiS
  from  cmnBatch.plan_table
  where progName = 'NZERR90' and collid = 'NZ'
  and version = 'NZV0000216'
  group by progname, collid, version, explain_time
)
select e.*, p.pcTimestamp
  from e
    left join sysibm.sysPackage p
      on e.collid = p.collid and e.progName = p.name
          and e.version = p.version
  order by p.pcTimestamp desc, explain_time desc
  with ur
;x;
select
with c (prg, col, cnt, cPr) as
(
  select progname, collid, count(*), 1
  from  cmnBatch.plan_table
  group by progname, collid
)
, t (prg, col, cnt, cPr) as
(
  select '*', '*', sum(cnt), count(*) progs
    from c
)
select * from t
union all select c.* from c
order by cnt desc
fetch first 10  rows only
with ur
select count(*), max(p.bind_time)
    , substr(strip(p.collid) || '.' || p.progname, 1, 20)
    , (select k.pcTimestamp
         from sysibm.sysPackage k
         where k.collid = p.collid
           and k.name = p.progname
           and k.version = p.version
           and k.location = '' )
    , p.version
    from DB2XML.plan_table p
 -- where bind_time >= '2011-01-01-00.00.00'
    group by            collid, progname, version
    order by  4 desc,   collid, progname, version desc
    with ur
;;;
select count(*), max(pctimestamp) "maxPcTimestamp", owner
    from sysibm.sysPackage
    group by owner
    order by 2 desc
    with ur
;;
select year(bind_time), count(*) cnt
    , sum(case when opthint <> '' then 1 else 0 end) cntHint
    , sum(case when hint_used <> '' then 1 else 0 end) cntUseHi
    from S100447.plan_table
    group by year(bind_time)
    order by 1 desc
    with ur
;;;
select *
    from S100447.plan_table
    where  opthint <> '' or hint_used <> ''
;;;;
insert into s100447.tOptHint
          select * from cmnbatch.plan_table where opthint <> ''
    union select * from cmnbatch.plan_table where opthint <> ''
    union select * from S100006.plan_table where opthint <> ''
    union select * from S100447.plan_table where opthint <> ''
    union select * from S103931.plan_table where opthint <> ''
}¢--- A540769.WK.SQL(PLANCOMP) cre=2015-02-11 mod=2015-02-23-08.15.11 A540769 ---
$#s DBOL
-- compare all plan_tables in a db2 Subsystem to a model set
with m as           -- select model table set
(
  select t.creator mCr, t.name mTb
      , t.encoding_scheme mEnc
      , t.recLength mRecL, t.colCount mCols, c.name mCol
    from sysibm.sysTables t
      left join sysibm.sysColumns c
        on t.creator = c.tbCreator and t.name = c.tbName
            and t.colCount = c.colNo
    where type = 'T'
         and creator = 'A540769' and dbName = 'DB2PLAN'
)
, c as              -- select all other creators of plan_tables
(
   select creator cCr
     from sysibm.systables t
      join m
        on t.name = m.mTb and t.creator <> m.mCr and t.type = 'T'
     group by creator
)
, j1 as              -- join creators (to avoid sql error)
(
  select c.cCr, m.*
    from m, c
)
, j2 as              -- left join infos of other tables
(
select t.name tb
      , t.encoding_scheme enc
      , t.recLength recL, t.colCount cols , k.name col
      , j1.*
    from j1
       left join sysibm.sysTables t
        on t.name = mTb and t.creator = cCr and t.type = 'T'
        left join sysibm.sysColumns k
          on t.creator = k.tbCreator and t.name = k.tbName
              and t.colCount = k.colNo
)
, j3 as              -- select changed or missing tables only
(
  select * from j2
    where (tb  is null and mtb not in ( 'DSN_USERQUERY_TABLE'
                                      , 'DSN_STATEMENT_CACHE_TABLE'
                                      , 'DSN_VIRTUAL_INDEXES'
                                      , 'DSN_VIRTUAL_KEYTARGETS'
                                      , 'DSN_PREDICATE_SELECTIVITY'
                                      , 'F2PLAN_TABLE'
          )                           )
         or mRecL <> recL or mCols <> cols or mCol <> col or mEnc <>enc
)                    -- join unchanged creators
select value(c.cCr, j3.cCr) cr, mTb tb
      , enc, recL, cols, col, mRecL, mEnc, mCols, mCol, mCr
    from c left join j3 on c.cCr = j3.cCr
    order by 1, tb
$#out                                              20150223 08:12:37
CR                            ENC      COLS              MRECL    MCOLS
         TB                       RECL     COL                MENC    MCOL
CR       TB                   ENC RECL COL COL           MREC MEN MCO MCOL
CMNBATCH ---                  ---  --- --- ---            --- --- --- ---
DSN8BQRY DSN_COLDIST_TABLE    ---  --- --- ---           7345 U    21 EXPANSION_
DSN8BQRY DSN_DETCOST_TABLE    ---  --- --- ---           1007 U   136 EXPANSION_
DSN8BQRY DSN_FILTER_TABLE     ---  --- --- ---            493 U    18 EXPANSION_
DSN8BQRY DSN_FUNCTION_TABLE   ---  --- --- ---           4797 U    20 EXPANSION_
DSN8BQRY DSN_KEYTGTDIST_TABLE ---  --- --- ---           7345 U    21 EXPANSION_
DSN8BQRY DSN_PGRANGE_TABLE    ---  --- --- ---            476 U    15 EXPANSION_
DSN8BQRY DSN_PGROUP_TABLE     ---  --- --- ---            739 U    42 EXPANSION_
DSN8BQRY DSN_PREDICAT_TABLE   ---  --- --- ---           2930 U    42 EXPANSION_
DSN8BQRY DSN_PTASK_TABLE      ---  --- --- ---            595 U    25 EXPANSION_
DSN8BQRY DSN_QUERYINFO_TABLE  ---  --- --- ---            771 U    18 EXPANSION_
DSN8BQRY DSN_QUERY_TABLE      ---  --- --- ---            514 U    16 EXPANSION_
DSN8BQRY DSN_SORTKEY_TABLE    ---  --- --- ---            639 U    21 EXPANSION_
DSN8BQRY DSN_SORT_TABLE       ---  --- --- ---            486 U    16 EXPANSION_
DSN8BQRY DSN_STATEMNT_TABLE   ---  --- --- ---            744 U    16 EXPANSION_
DSN8BQRY DSN_STAT_FEEDBACK    ---  --- --- ---           1687 U    20 REMARKS
DSN8BQRY DSN_STRUCT_TABLE     ---  --- --- ---            510 U    20 EXPANSION_
DSN8BQRY DSN_USERQUERY_TABLE  U    846  17 OTHER_PARMS    849 U    20 OPTION_OVE
DSN8BQRY DSN_VIEWREF_TABLE    ---  --- --- ---            727 U    13 EXPANSION_
DSN8BQRY PLAN_TABLE           U   2745  64 MERGN         2749 U    66 EXPANSION_
S100006  ---                  ---  --- --- ---            --- --- --- ---
S100447  ---                  ---  --- --- ---            --- --- --- ---
S103931  ---                  ---  --- --- ---            --- --- --- ---
SYSIBM   DSN_COLDIST_TABLE    U   7343  20 HIGHVALUE     7345 U    21 EXPANSION_
SYSIBM   DSN_DETCOST_TABLE    U   1002 132 CRED          1007 U   136 EXPANSION_
SYSIBM   DSN_FILTER_TABLE     U    491  17 PUSHDOWN       493 U    18 EXPANSION_
SYSIBM   DSN_FUNCTION_TABLE   U   4795  19 VERSION       4797 U    20 EXPANSION_
SYSIBM   DSN_KEYTGTDIST_TABLE U   7343  20 HIGHVALUE     7345 U    21 EXPANSION_
SYSIBM   DSN_PGRANGE_TABLE    U    474  14 VERSION        476 U    15 EXPANSION_
SYSIBM   DSN_PGROUP_TABLE     U    737  41 STRAW_MODEL    739 U    42 EXPANSION_
SYSIBM   DSN_PREDICAT_TABLE   U   2928  41 VERSION       2930 U    42 EXPANSION_
SYSIBM   DSN_PTASK_TABLE      U    593  24 VERSION        595 U    25 EXPANSION_
SYSIBM   DSN_QUERYINFO_TABLE  U    769  17 QB_INFO_ROWID  771 U    18 EXPANSION_
SYSIBM   DSN_QUERY_TABLE      U    512  15 VERSION        514 U    16 EXPANSION_
SYSIBM   DSN_SORTKEY_TABLE    U    637  20 VERSION        639 U    21 EXPANSION_
SYSIBM   DSN_SORT_TABLE       U    484  15 VERSION        486 U    16 EXPANSION_
SYSIBM   DSN_STATEMNT_TABLE   U    742  15 VERSION        744 U    16 EXPANSION_
SYSIBM   DSN_STAT_FEEDBACK    ---  --- --- ---           1687 U    20 REMARKS
SYSIBM   DSN_STRUCT_TABLE     U    508  19 VERSION        510 U    20 EXPANSION_
SYSIBM   DSN_VIEWREF_TABLE    U    725  12 SECTNOI        727 U    13 EXPANSION_
SYSIBM   PLAN_TABLE           U   2745  64 MERGN         2749 U    66 EXPANSION_
41 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding...
$#out                                              20150223 08:03:59
CR                            ENC      COLS              MRECL    MCOLS
         TB                       RECL     COL                MENC    MCOL
CR       TB                   ENC RECL COL COL           MREC MEN MCO MCOL
A168658  ---                  ---  --- --- ---            --- --- --- ---
A422686  ---                  ---  --- --- ---            --- --- --- ---
A559315  ---                  ---  --- --- ---            --- --- --- ---
A662172  ---                  ---  --- --- ---            --- --- --- ---
A754048  ---                  ---  --- --- ---            --- --- --- ---
A790472  ---                  ---  --- --- ---            --- --- --- ---
CMNBATCH ---                  ---  --- --- ---            --- --- --- ---
DSN8BQRY DSN_COLDIST_TABLE    ---  --- --- ---           7345 U    21 EXPANSION_
DSN8BQRY DSN_DETCOST_TABLE    ---  --- --- ---           1007 U   136 EXPANSION_
DSN8BQRY DSN_FILTER_TABLE     ---  --- --- ---            493 U    18 EXPANSION_
DSN8BQRY DSN_FUNCTION_TABLE   ---  --- --- ---           4797 U    20 EXPANSION_
DSN8BQRY DSN_KEYTGTDIST_TABLE ---  --- --- ---           7345 U    21 EXPANSION_
DSN8BQRY DSN_PGRANGE_TABLE    ---  --- --- ---            476 U    15 EXPANSION_
DSN8BQRY DSN_PGROUP_TABLE     ---  --- --- ---            739 U    42 EXPANSION_
DSN8BQRY DSN_PREDICAT_TABLE   ---  --- --- ---           2930 U    42 EXPANSION_
DSN8BQRY DSN_PTASK_TABLE      ---  --- --- ---            595 U    25 EXPANSION_
DSN8BQRY DSN_QUERYINFO_TABLE  ---  --- --- ---            771 U    18 EXPANSION_
DSN8BQRY DSN_QUERY_TABLE      ---  --- --- ---            514 U    16 EXPANSION_
DSN8BQRY DSN_SORTKEY_TABLE    ---  --- --- ---            639 U    21 EXPANSION_
DSN8BQRY DSN_SORT_TABLE       ---  --- --- ---            486 U    16 EXPANSION_
DSN8BQRY DSN_STATEMNT_TABLE   ---  --- --- ---            744 U    16 EXPANSION_
DSN8BQRY DSN_STAT_FEEDBACK    ---  --- --- ---           1687 U    20 REMARKS
DSN8BQRY DSN_STRUCT_TABLE     ---  --- --- ---            510 U    20 EXPANSION_
DSN8BQRY DSN_USERQUERY_TABLE  U    846  17 OTHER_PARMS    849 U    20 OPTION_OVE
DSN8BQRY DSN_VIEWREF_TABLE    ---  --- --- ---            727 U    13 EXPANSION_
DSN8BQRY PLAN_TABLE           U   2745  64 MERGN         2749 U    66 EXPANSION_
S100447  ---                  ---  --- --- ---            --- --- --- ---
SYSIBM   DSN_COLDIST_TABLE    U   7343  20 HIGHVALUE     7345 U    21 EXPANSION_
SYSIBM   DSN_DETCOST_TABLE    U   1002 132 CRED          1007 U   136 EXPANSION_
SYSIBM   DSN_FILTER_TABLE     U    491  17 PUSHDOWN       493 U    18 EXPANSION_
SYSIBM   DSN_FUNCTION_TABLE   U   4795  19 VERSION       4797 U    20 EXPANSION_
SYSIBM   DSN_KEYTGTDIST_TABLE U   7343  20 HIGHVALUE     7345 U    21 EXPANSION_
SYSIBM   DSN_PGRANGE_TABLE    U    474  14 VERSION        476 U    15 EXPANSION_
SYSIBM   DSN_PGROUP_TABLE     U    737  41 STRAW_MODEL    739 U    42 EXPANSION_
SYSIBM   DSN_PREDICAT_TABLE   U   2928  41 VERSION       2930 U    42 EXPANSION_
SYSIBM   DSN_PTASK_TABLE      U    593  24 VERSION        595 U    25 EXPANSION_
SYSIBM   DSN_QUERYINFO_TABLE  U    769  17 QB_INFO_ROWID  771 U    18 EXPANSION_
SYSIBM   DSN_QUERY_TABLE      U    512  15 VERSION        514 U    16 EXPANSION_
SYSIBM   DSN_SORTKEY_TABLE    U    637  20 VERSION        639 U    21 EXPANSION_
SYSIBM   DSN_SORT_TABLE       U    484  15 VERSION        486 U    16 EXPANSION_
SYSIBM   DSN_STATEMNT_TABLE   U    742  15 VERSION        744 U    16 EXPANSION_
SYSIBM   DSN_STAT_FEEDBACK    ---  --- --- ---           1687 U    20 REMARKS
SYSIBM   DSN_STRUCT_TABLE     U    508  19 VERSION        510 U    20 EXPANSION_
SYSIBM   DSN_VIEWREF_TABLE    U    725  12 SECTNOI        727 U    13 EXPANSION_
SYSIBM   PLAN_TABLE           U   2745  64 MERGN         2749 U    66 EXPANSION_
45 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding...
$#out                                              20150216 15:54:05
}¢--- A540769.WK.SQL(PLANCOUN) cre=2015-02-16 mod=2015-03-12-06.37.48 A540769 ---
$#@   $*(    show all plan_table in a dbSystem
             including number of columns / number of rows
             plus facultativ tables
      $*)
call sqlConnect dbol
$<>
$<=¢
     select strip(value(p.creator, v.creator, d.creator, u.creator)) cr
          , p.name pTb, p.colcount pCols, v.name vTb, d.name dTb
          , u.name uTb
       from (select * from sysibm.sysTables q
               where q.type = 'T' and q.name = 'PLAN_TABLE') p
       left outer join (select * from sysibm.sysTables q
               where q.type = 'T' and q.name = 'DSN_VIRTUAL_INDEXES') v
         on p.creator = v.creator
       left outer join (select * from sysibm.sysTables q
           where q.type = 'T' and q.name='DSN_STATEMENT_CACHE_TABLE') d
         on p.creator = d.creator
       left outer join (select * from sysibm.sysTables q
           where q.type = 'T' and q.name='DSN_USERQUERY_TABLE') u
         on p.creator = u.creator
       order by 1
$! call sqlSel
$|
st = ''
$forWith i $@=¢
$-¢st$! select '$CR', $PCOLS pCols, count(*) planCnt
    , max(date(explain_time)) planMax
$@¢ if $VTB == m.sqlNull then $@=¢
    , cast( null as int) virtInd
$! else $@=¢
    , ( select count(*) from $CR.$VTB ) virtInd
$!
  if $DTB == m.sqlNull then $@=¢
    , cast( null as int) dynCac
$! else $@=¢
    , ( select count(*) from $CR.$DTB ) dynCac
$!
  if $UTB == m.sqlNull then $@=¢
    , cast( null as int) usQuer
$! else $@=¢
    , ( select count(*) from $CR.$UTB ) usQuer
$! $!
    from $CR.PLAN_TABLE
$@ st = 'union all'
$! $|
call sqlStmts
$#out                                              20150223 08:12:23
COL1        PLANCNT         VIRTIND USQUER
         PCOLS   PLANMAX        DYNCAC
COL1     PC PLAN PLANMAX    VIR DYN USQ
A540769  66 2701 09.12.2014   0   0   0
CMNBATCH 66 2701 09.12.2014 --- --- ---
DSN8BQRY 64    0 ---        --- ---   0
S100006  66    0 ---        --- --- ---
S100447  66  540 22.03.2012 --- --- ---
S103931  66    0 ---        --- --- ---
SYSIBM   64    0 ---        --- --- ---
7 rows fetched: select 'A540769', 66 pCols, count(*) planCnt , max(date(ex...
$#out                                              20150223 08:04:30
COL1        PLANCNT         VIRTIND USQUER
         PCOLS   PLANMAX        DYNCAC
COL1     PC PLAN PLANMAX    VIR DYN USQ
DSN8BQRY 64    0 ---        --- ---   0
A540769  64    0 ---        --- --- ---
S100006  64    0 ---        --- --- ---
S103931  64    0 ---        --- --- ---
SYSIBM   64    0 ---        --- --- ---
S100447  64  540 22.03.2012 --- --- ---
CMNBATCH 64 2701 09.12.2014 --- --- ---
7 rows fetched: select 'A540769', 64 pCols, count(*) planCnt , max(date(ex...
$#out                                              20150223 08:03:39
COL1        PLANCNT         VIRTIND USQUER
         PCOLS   PLANMAX        DYNCAC
COL1     PC PLAN PLANMAX    VIR DYN USQ
A168658  66    0 ---        --- --- ---
A422686  66    0 ---        --- --- ---
A540769  66 1604 22.09.2014   0   0   0
A559315  66    0 ---        --- --- ---
A662172  66    0 ---        --- --- ---
A754048  66    0 ---        --- --- ---
A790472  66    0 ---        --- --- ---
CMNBATCH 66 1604 22.09.2014 --- --- ---
DSN8BQRY 64    0 ---        --- ---   0
S100447  66  213 06.02.2015 --- --- ---
SYSIBM   64    0 ---        --- --- ---
11 rows fetched: select 'A168658', 66 pCols, count(*) planCnt , max(date(e...
$#out                                              20150223 07:33:29
COL1        PLANCNT         VIRTIND USQUER
         PCOLS   PLANMAX        DYNCAC
COL1     PC PLAN PLANMAX    VIR DYN USQ
A540769  66    0 ---          0   0   0
A754048  64    0 ---          0   0 ---
DSN8BQRY 64    0 ---        --- ---   0
A662172  64    0 ---        --- --- ---
SYSIBM   64    0 ---        --- --- ---
A422686  64    4 20.07.2012 --- --- ---
A790472  64   33 02.12.2014   0   0 ---
A559315  64   51 02.09.2014   0   0   0
A168658  64  113 20.03.2014   0   0   0
S100447  64  213 06.02.2015   0   0 ---
CMNBATCH 64 1604 22.09.2014 --- --- ---
11 rows fetched: select 'A168658', 64 pCols, count(*) planCnt , max(date(e...
$#out                                              20150223 07:27:06
COL1        PLANCNT         VIRTIND USQUER
         PCOLS   PLANMAX        DYNCAC
COL1     PC PLAN PLANMAX    VIR DYN USQ
A540768  66    0 ---          0   0   0
A754048  64    0 ---          0   0 ---
DSN8BQRY 64    0 ---        --- ---   0
A540769B 66    0 ---        --- --- ---
A662172  64    0 ---        --- --- ---
A422686  64    4 20.07.2012 --- --- ---
A790472  64   33 02.12.2014   0   0 ---
A559315  64   51 02.09.2014   0   0   0
A168658  64  113 20.03.2014   0   0   0
S100447  64  213 06.02.2015   0   0 ---
A540769  66 1604 22.09.2014   0   0   0
CMNBATCH 64 1604 22.09.2014 --- --- ---
$#out                                              20150223 07:26:53
SYSIBM   64    0 ---        --- --- ---
13 rows fetched: select 'A168658', 64 pCols, count(*) planCnt , max(date(e...
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
    0000000C, 00F30006
sql = connect DPXG
$#out                                              20150216 15:46:30
}¢--- A540769.WK.SQL(PLANDACO) cre=2015-02-12 mod=2015-02-23-08.58.23 A540769 ---
$#@
call sqlConnect DBOL
$*( generate sql to compare the data two set of explain tables
         for LOBs only length is compared
$*)
$=qFr = -9e99
$=qTo = +9e99
$<>
$>. fEdit('~tmp.sql(planDaCo)')
$<=¢
with t (tb, crL, crR) as
(
   select l.name, l.creator, r.creator
      from sysibm.sysTables l
        join sysibm.sysTables r
          on l.name = r.name
      where l.creator = 'CMNBATCH'
         and r.creator = 'A540769'
         and r.dbName = 'DB2PLAN'
         and r.type   = 'T'
)
, c as
(
   select c.name col, colType ct, tb, crL, crR, c.*
     from t
      join sysibm.sysColumns c
        on c.tbCreator = crL and c.tbName = t.tb
)
select * from c order by tb, colNo
$! call sqlSel
$|
tb = ''
$forWith i $@¢
     if tb <> $TB & tb \== '' then
         $@tbEnd
     if tb <> $TB then $@¢
         tb = $TB
         $@tbBegin
         $!
     if $COLTYPE = 'ROWID' then
         iterate
     else if pos('LOB', $COLTYPE) > 0 then
         t1 = 'l'
     else if $NULLS = 'Y' then
         t1 = 'n'
     else
         t1 = '='
     call mAdd col, t1 $COL
     if t1 \== '=' then $@=¢
        || case when l.$COL is null
                 and r.$COL is null then ' '
                when l.$COL is null then 'r'
                when r.$COL is null then 'l'
        $@ if t1 \== 'l' then $@=¢
                when l.$COL
                  <> r.$COL then '|'
        $!
        $@ if t1 == 'l' then $@=¢
                when length(l.$COL)
                  <> length(r.$COL) then '|'
        $!
                else ' '
           end
         $!
     $!
$@tbEnd
$proc $@=/tbBegin/
    $@ m.col.0 = 0
    $= crL = $CRL
    $= crR = $CRR
    $= tb  = $TB
with l as
(
  select * from $crL.$tb
$@ if $COL = 'QUERYNO' then $@=¢
           where queryNo between $qFr and $qTo
     $!
)
, r as
(
  select * from $crR.$tb
$@ if $COL = 'QUERYNO' then $@=¢
           where queryNo between $qFr and $qTo
     $!
)
, j as
(
  select case when l.$COL is null
             and r.$COL is null then 'null'
            when l.$COL is null then 'righ'
            when r.$COL is null then 'left'
            else 'both' end  lr
      , ''
$/tbBegin/
$proc $@=/tbEnd/
                cmp
     $do cx=1 to m.col.0 $@=¢
         $@ parse var m.col.cx n1    c1
         $=col =- c1
         , value(l.$col
                ,r.$col
                )  $col
         $!
     from l
       full outer join r
     $= op = on
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx t1    c1
         $=col =- c1
         if t1 == '=' then $@=¢
      $op l.$col
        = r.$col
      $=op=and
         $!
         $!
)
, lu as
(
  select count(*) cnt
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx n1    c1
         if n1 == '=' then
           $$- '      ,' c1
         $!
    from l
    group by 0
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx n1    c1
         if n1 == '=' then
           $$- '      ,' c1
         $!
)
, ru as
(
  select count(*) cnt
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx n1    c1
         if n1 == '=' then
           $$- '      ,' c1
         $!
    from r
    group by 0
     $do cx=1 to m.col.0 $@¢
         parse var m.col.cx n1    c1
         if n1 == '=' then
           $$- '      ,' c1
         $!
)
--lect 'left', '$crL.$tb'
--      , count(*), cast(null as int)
--  from l
--ion all select 'left', '$crR.$tb'
--      , count(*), cast(null as int)
--  from r
select 'left', '$crL.$tb'
      , sum(cnt*cnt), sum(cnt), count(*)
    from lu
union all  select 'right', '$crR.$tb'
      , sum(cnt*cnt), sum(cnt), count(*)
    from ru
union all select lr, cmp, count(*), cast(null as int), cast(null as int)
    from j
    group by lr, cmp
;
-- select *
--  from j
--  where not (lr = 'both' and cmp = '')
--  order by 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 ;
$/tbEnd/
$#out                                              20150223 08:11:44
$#out                                              20150223 08:09:14
$#out                                              20150223 07:46:57
$#out                                              20150223 07:37:16
$#out                                              20150223 07:37:05
*** run error ***
SQLCODE = -924: DB2 CONNECTION INTERNAL ERROR, 00000002,
    0000000C, 00F30006
sql = connect DE0G
$#out                                              20150216 15:23:02
}¢--- A540769.WK.SQL(PLANDAQU) cre=2015-03-12 mod=2015-02-16-16.31.59 A540769 ---
with q as
(
   select min(queryNo) queryFr, max(queryNo)queryTo, count(*) cnt
     from cmnBatch.plan_Table
     group by floor(log10(max(0.1, queryNo)) * 9)
)
select queryFr, queryTo, cnt, sum(cnt) over(order by queryFr
              RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
  from q
  order by queryFr
;X;
with q0 as
(
   select queryNo
     from CMNBATCH.plan_Table
     where queryNo >= 47
     order by queryNo
     fetch first 100000 rows only
)
, q as
(
   select min(queryNo) qFr, max(queryNo) qTo
     from q0
)
select * from q
;x;

}¢--- A540769.WK.SQL(PLANDAQ2) cre=2015-02-12 mod=2015-02-12-17.50.15 A540769 ---
with g (quFr, quTo, cnt, quNx, coNx, l) as
(
  select min(queryNo), min(queryNo), 0, min(queryNo), -9, 0
    from cmnBatch.plan_table
  union all select quFr, quTo, cnt, quNx
       , ( select count(*) from cmnBatch.plan_table
                         where queryNo = quNx )
       , l+1
    from g where coNx=-9 and l < 999e3
  union all select quFr, quNx, cnt, -6, -6, l+1
    from g where coNx = 0 and l < 999e3
  union all select quFr, quNx, cnt+coNx, -8, -8, l+1
    from g where coNx >  0 and cnt+coNx < 1e3 and l < 999e3
  union all select quFr, quTo, cnt, -7, -7, l+1
    from g where coNx >  0 and cnt+coNx >= 1e3 and l < 999e3
  union all select quNx, quNx, coNx, -8, -8, l+1
    from g where coNx >  0 and cnt+coNx >= 1e3 and l < 999e3
  union all select quFr, quTo, cnt
       , ( select min(queryNo) from cmnBatch.plan_table
                               where queryNo > quTo )
       , -9
       , l+1
    from g where coNx=-8 and l < 999e3
)
select *
  from g
  where coNx in ( -7, -6)
}¢--- A540769.WK.SQL(PLANFIX) cre=2015-02-16 mod=2015-02-23-09.38.15 A540769 ---
$#@
$=fun = l   $*( l = alter log yes
                0 = drop TS with nTables = 0
                e = drop TS in EBCDIC
            $*)
$=dbSys = DP4G
$=db = DB2PLAN
call sqlConnect $dbSys
if $fun == 'l' then $@¢
    $<=¢
    select 'alter tableSpace $db.' || name || ' LOG YES;'
      from sysibm.sysTablespace
      where dbName = '$db' and type = 'O' and log = 'N'
    $! call sqlStmts
$! else if $fun == 0 then $@¢
    $<=¢
    select 'drop tableSpace $db.' || name || '; commit;'
      from sysibm.sysTablespace
      where dbName = '$db' and nTables = 0
    $! call sqlStmts
$! else if $fun == 'e' then $@¢
    $<=¢
-- drop all plan_tables in a db2 Subsystem with ebcdic encoding
with m as           -- select model table set
(
  select t.creator mCr, t.name mTb
      , t.encoding_scheme mEnc
      , t.recLength mRecL, t.colCount mCols, c.name mCol
    from sysibm.sysTables t
      left join sysibm.sysColumns c
        on t.creator = c.tbCreator and t.name = c.tbName
            and t.colCount = c.colNo
    where type = 'T'
         and creator = 'A540769' and dbName = 'DB2PLAN'
)
select 'drop tablespace ' || strip(dbName)
       || '.' || strip(tsName) || ';commit;'
       ||  ' -- ' || min(strip(t.creator) || '.' || t.name) mTb
     from sysibm.systables t
      join m
        on t.name = m.mTb and t.encoding_scheme <> 'U'
  group by dbName, tsName
  order by min(creator), min(name)
$! call sqlStmts
$!
$#out                                              20150223 08:44:28
C
0 rows fetched: select 'alter tableSpace DB2PLAN.' || name || ' LOG YES;' ...
$#out                                              20150223 08:44:20
C
0 rows fetched: select 'drop tableSpace DB2PLAN.' || name || '; commit;' f...
$#out                                              20150223 08:44:14
sqlCode 0: drop tableSpace DB2PLAN.AOCULS01
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.AOCULS02
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.AOCULS03
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.AOCUTS11
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.AOCUTS19
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.EPTS1012
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.EPTS1014
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.EPTS1015
sqlCode 0: commit
sqlCode 0: drop tableSpace DB2PLAN.EPTS1016
sqlCode 0: commit
$#out                                              20150223 08:44:01
COL1
drop tableSpace DB2PLAN.AOCULS01; commit;
drop tableSpace DB2PLAN.AOCULS02; commit;
drop tableSpace DB2PLAN.AOCULS03; commit;
drop tableSpace DB2PLAN.AOCUTS11; commit;
drop tableSpace DB2PLAN.AOCUTS19; commit;
drop tableSpace DB2PLAN.EPTS1012; commit;
drop tableSpace DB2PLAN.EPTS1014; commit;
drop tableSpace DB2PLAN.EPTS1015; commit;
drop tableSpace DB2PLAN.EPTS1016; commit;
9 rows fetched: select 'drop tableSpace DB2PLAN.' || name || '; commit;' f...
$#out                                              20150223 08:43:53
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out                                              20150223 08:43:43
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out                                              20150223 08:43:35
C
0 rows fetched: select 'drop tableSpace DB2PLAN.' || name || '; commit;' f...
$#out                                              20150223 08:43:28
C
0 rows fetched: select 'alter tableSpace DB2PLAN.' || name || ' LOG YES;' ...
$#out                                              20150216 16:42:41
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out                                              20150216 16:42:03
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out                                              20150216 16:41:59
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$#out                                              20150216 16:41:49
$#out                                              20150211 11:43:31
M
0 rows fetched: with m as ( select t.creator mCr, t.name mTb , t.encoding_...
$!
$#out                                              20150216 16:18:
}¢--- A540769.WK.SQL(PLANINS) cre=2011-11-06 mod=2011-11-06-18.06.26 A540769 ---
select rownumber() over(), queryno, bind_time, count(*)
    from cmnbatch.plan_table_old
    where bind_time >= '2011-06-11-00.00.00'
    group by queryno, bind_time
    with ur
}¢--- A540769.WK.SQL(PLANOPT) cre=2008-11-14 mod=2008-11-14-11.45.38 F540769 ---
SELECT LENGTH(opthint), count(*)
    from cmnbatch.plan_table
    group by length(opthint)
}¢--- A540769.WK.SQL(PLANPRED) cre=2014-06-05 mod=2014-06-05-10.52.08 A540769 ---
select a."Queryn B PM" "Queryn_B_PM"
     , smallint(p.PREDNO) predno
     , f.stage
 --  , substr(fosFmte7(p.filter_factor), 1, 7) ff
           -- optimizer otherwise choose bad path|||
     , real(p.FILTER_FACTOR) FILTER_FACTOR
     , p.type prTy
     , p.boolean_term || ' ' || p.negation "BoN"
     , p.text
     , p.LEFT_HAND_SIDE
     , p.LEFT_HAND_PNO
     , p.LHS_TABNO
     , p.LHS_QBNO
     , p.RIGHT_HAND_SIDE
     , p.RIGHT_HAND_PNO
     , p.RHS_TABNO
     , p.RHS_QBNO
     , p.BOOLEAN_TERM
     , p.SEARCHARG
     , p.JOIN
     , p.AFTER_JOIN
     , p.ADDED_PRED
     , p.REDUNDANT_PRED
     , p.DIRECT_ACCESS
     , p.KEYFIELD
     , p.CATEGORY
     , p.CATEGORY_B
     , p.PRED_ENCODE
     , p.PRED_CCSID
     , p.PRED_MCCSID
     , p.MARKER
     , p.PARENT_PNO
     , p.NEGATION
     , p.LITERALS
     , p.CLAUSE
     , f.reEval
     , f.ORDERNO
     , a.*
from $cr.plan_view1 a
    left join $cr.dsn_filter_Table f
        on  f.applName     = a.applName
        and f.collid       = a.collid
        and f.progName     = a.progName
        and f.explain_time = a.bind_time
        and f.QUERYNO      = a.QUERYNO
        and f.QBLOCKNO     = a.QBLOCKNO
        and f.PLANNO       = a.PLANNO
        and f.mixOpSeqNo   = a.mixOpSeq
        and a.accessType not in ('MX', 'MI', 'MU')
    left join $cr.dsn_predicat_table p
      on  --p.applName     = a.applName     ??? ist manchmal x'0000
            p.progName     = a.progName
        and p.explain_time = a.bind_time
        and p.queryNo      = a.queryNo
        and p.qBlockNo     = a.qBlockNo
        and p.predNo       = f.predNo
;
--  sortierung --------------------------------------
--  order by applName, collid, progName, bind_time,
--           queryNo, qBlockNo, planno, mixOpSeq,
--           stage, predNo
;
}¢--- A540769.WK.SQL(PLANQUER) cre=2011-05-13 mod=2016-11-03-09.23.23 A540769 ---
$#@
call sqlConnect dbtf
call sqlPrepare 1,
   ,'select explain_time, queryNo, type, query_Stage, seqNo,',
             'length(node_data), node_data',
        'from A540769.dsn_query_table'    ,
        'order by explain_time, queryNo, type, query_Stage, seqNo'
  /*    "where queryno = 110" ,
           "and explain_time ='2010-03-15-16.03.26.767284'" */
call sqlOpen 1
$=o1 = $''
do cn=1 while sqlFetchInto(1, ':et, :qNo, :ty, :qs, :sq, :le, :no')
    $@grChg-{et qNo, ty qs ,sq}
$*( $$- cn ml 'le' le if(le=length(no), '=', '<>') $*+
            'length' length(no)':'left(no,50)
    $$- '  1='substr(no, 1, 70)
    $$- ' 51='substr(no, 51, 70)
    $$- '101='substr(no,101, 70)
    $$- '151='substr(no,151, 70)
    $$- '201='substr(no,201, 70)
    $$- '251='substr(no,251, 70)
$*) cx = 0
    wm = 60
    do while cx < length(no)
        we = min(cx+wm, length(no))
        w2 = lastPos('<', no, we)
        if w2 > cx+10 then
            w2 = w2 - 1
        else
            w2 = we
        $$- ' ' substr(no, cx+1, w2-cx)
        cx = w2
        end
    end
    $@grChg{}
call sqlDisconnect
$@proc grChg $@¢
parse arg , et qNo, ty qs, sq
    say 'grpChg et qNo' $o1 '=>' et qNo ty qs 'seq' sq
    if $o1 \== '' then $@¢
        if $o1 \== et qNo | $o2 \== ty qs then
            $$- ' </qGr2>'
        if $o1 \== et qNo then
            $$- '</qGr1>'
        if et == '' then
            $$- "</qGr>"
        $!
    if et \== '' then $@¢
        if sq \== 1 then
            call err 'implement sq' sq
        if $o1 \== et qNo then $@¢
            if $o1 == '' then
                $$- "<qGr>"
            $$- "<qGr1 et='"et"' qno='"qNo"'>"
            $=o1 =- et qNo
            $=o2 =- ''
            $!
        if $o2 \== ty qs then $@¢
            $$- " <qGr2 ty='"ty"' qs='"qs"'>"
            $=o2 =- ty qs
            $!
        $!
$!
$#out                                              20110514 00:09:55
<qGr>
<qGr1 et='2011-05-13-22.13.44.390000' qno='300'>
 <qGr2 ty='SELECT' qs='  AFTER   '>
  <QUERY><SUBQUERY QBNO='1' PRUNED='N'>(<SEL-CLAUSE>SELECT
  <SEL-LIST STAR='N'><LIST-ITEM TYPE='COLM'>
}¢--- A540769.WK.SQL(PLANTB) cre=2015-02-02 mod=2016-08-10-12.58.37 A540769 ----
$#:  $*(******** create plan tables and views db2v11 ********** 10. 7.16

                 1) Parameter eingeben
                 2) wsh
                 3) job kontrollieren und sub
                         braucht update und drop/create auf plan_table|

                       v11 plan_table 66 Kolonnen bis expansion_reason
                       v10 plan_table 64 Kolonnen und Unicode
                        v9 plan_table 59 Kolonnen
                        v8 plan_table 58 Kolonnen
*********************** v7 plan_table 51 Kolonnen ******************$*)
dbSys  = DP4G     $** db2 subsystem
cr     = A540769  $** creator
fun    = v        $*( funktion
                      c= create plan tables and views
                      u=update tables for v10 or v11 and recreate views
                             must already be UniCode ||||
                      r=drop Tablespaces and recreate everything
                      d=drop Tablespaces only
                      v=drop/recreate views only
                      vfD=drop all views using functions
                      vfC=create all views using functions       $*)
job    = Y4PLANTB $** jobName
vers   = 11
queryT = 0        $** 1: mit userQuery tb, 0: ohne
queryV = 0        $** 1: mit VirtualIndexes und dynStmtCache, 0: ohne
f2P    = 1        $** 1: FileAid f2Plan table
ul     = $''      $** creator for unload before r and reload after r

stoGr = GSMS
db = DB2PLAN
schenv = SCHENV=DB2ALL,
$@ if $fun \== 'c' then $@¢ call sqlConnect $dbSys $!

$<>
$>. fEdit()
$@% work $cr
$*( *** history *******************************************************
10. 7.16 sort info und accesstype angepasst
 9. 3.16 cmnViews deaktiviert
 9. 2.16 vfD und vfC funktion fuer Funktionen drop/recreate
 5. 2.15 mit PBG und db2 v11 oder v10 tables
 6.11.14 neue Version F2Plan_table für FileAid mit fun=u
 6. 6.14 achtung bind_time --> explain_time
29. 3.12 neu fun=d: drop Only, r= drop and recreate
21. 3.12 drop only necessary TS and Views ==> JobCondCode <=4
21. 3.12 create v10 views or migrate to v10
 3. 2.12 allow v10 views (but do not change v9 to v10 yet|)
****************************************************************** $*)
$proc $@/work/
parse arg , cr
$= cr =- cr
$= cmnViews = 0 $**  $cr = 'CMNBATCH' & sysvar(sysnode) == 'RZ2'
$= ts=- strip(left($cr, 7))
$= defer =- if($fun == 'u', 'YES', 'NO')
c7 = substr($ts, 7, 1)
if dataType(c7, 'n') then $@¢
   $= tl =- left($ts, 6)substr('ABCDEFGHIJ', 1 + c7, 1)
   $= tm =- left($ts, 6)substr('KLMNOPQRST', 1 + c7, 1)
$! else if c7 = ' ' then $@¢
   $= tl = ${ts}L
   $= tm = ${ts}M
$! else $@¢
   r7 = substr(m.ut_alfUC, pos(c7, ut_alfUC))
   $= tl =- left($ts, 6)substr(r7, 2, 1)
   $= tm =- left($ts, 6)substr(r7, 3, 1)
$!
$= doReo = 0
if $fun \== 'c' then $@¢
    if $fun \== 'v' then $@¢
        $@getDdlInfo
        $@getCatInfo
        if $fun == 'u' then $@¢
            px = m.itb.plan_table
            if symbol('m.itb.px.ts') == 'VAR'  ,
                   & m.itb.px.ts \== ${ts}'A' then
                $=ts = $tm
            $!
        $!
    $!
$@jobHead
if $fun == 'r' & $ul <> '' then
    $@% load 0
$@ddlStep
if $fun == 'vfD' then
    $@viewFunDrop
else if $fun == 'vfC' then
    $@viewFunCre
else $@¢
    if $fun == 'd' | $fun == 'r' then
        $@tsDrop
    if $fun == 'u' | $fun = 'v' then
        $@dropViews
    if $fun == 'c' | $fun == 'r' then
        $@creDdl
    if $fun == 'u' then
        $@updDdl
    if $fun \== 'd' then $@¢
        $@ddlPlus
        $@creViews
    $!
    if $fun == 'r' & $ul <> '' then
        $@% load 1
    if $doReo then
        $@tsReo
    $!
$/work/

$proc $@/load/
parse arg , lFu
    say 'load' lFu
    if \ lFu then $@=¢
        $= crF = $cr
        $= crT = $ul
        $= stp = UNLO
    $! else $@=¢
        $= crF = $ul
        $= crT = $cr
        $= stp = LOAD
//        IF RC <= 4 THEN
    $!
    $@=¢
//$stp     EXEC PGM=DSNUTILB,PARM='$dbSys,$job.UNLO'
//SYSMAP   DD SYSOUT=*
//UTPRINT  DD SYSOUT=*
//SYSERR   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTEMPL  DD DSN=$dbSys.DBAA.LISTDEF(TEMPL),DISP=SHR
//SYSIN    DD *
    $do tx=1 to m.iTb.0 $@=¢
        $@ if m.itb.tx.tbTy <> 'T' then iterate
        $@ if \ ( abbrev(m.itb.tx.tb, 'PLAN_')    $*+
                | abbrev(m.itb.tx.tb, 'DSN_')    $*+
                | abbrev(m.itb.tx.tb, 'F2PLAN_') ) then $@¢
             say 'not un/loading' m.itb.tx.tb
             iterate
            $!
        $@ if \ $queryT & wordPos(m.itb.tx.tb, m.tbsT) > 0 then $@¢
             say 'not queryT not un/loading' m.itb.tx.tb
             iterate
            $!
        $@ if \ $queryV & wordPos(m.itb.tx.tb, m.tbsV) > 0 then $@¢
             say 'not queryV not un/loading' m.itb.tx.tb
             iterate
            $!
        $@ if symbol('m.cols.tx.0') \== 'VAR' then $@¢
            call sql2St 'select name col from sysibm.sysColumns' ,
               "where tbCreator = '"$cr"' and tbName = '"m.iTb.tx.tb"'",
                   "and colType <> 'ROWID'",
               "order by colNo", 'COLS.'tx
            $!
EXEC SQL
  DECLARE CUR$tx CURSOR FOR
  SELECT
            $do cx = 1 to m.cols.tx.0 $@¢
                $$- '     ' copies(',', cx > 1) m.cols.tx.cx.col '--' cx
                $!
      FROM $crF.$-¢m.iTb.tx.tb$!
ENDEXEC
LOAD DATA INCURSOR CUR$tx LOG NO RESUME NO REPLACE
     COPYDDN TCOPYS STATISTICS INDEX ALL KEYCARD
 SORTDEVT DISK
 WORKDDN(TSYUTS,TSOUTS)
 IDENTITYOVERRIDE
 INTO TABLE  $crT.$-¢m.iTb.tx.tb$!
  -- IGNOREFIELDS YES
    $!
LISTDEF CLST INCLUDE TABLESPACE $db.* PARTLEVEL LOB
COPY LIST CLST COPYDDN TCOPYS
     FULL YES SHRLEVEL CHANGE PARALLEL SCOPE PENDING
$!
    if lFu then $@=¢
//        ENDIF
//        ENDIF
    $! else $@=¢
//        IF RC <= 4 THEN
    $!
$/load/
$proc $@/jobHead/
$@=¢
//$job JOB (CP00,KE50),
//         MSGCLASS=T,CLASS=M1,$schenv
//         NOTIFY=&SYSUID,TIME=1440
//*
//*    dbSys       = $dbSys
//*    tableSpaces = $db.$ts* und $tl* für LOBs
//*    creator     = $cr
//*    for version = v$vers
//*
$!
if $fun == 'c' then  $@=¢
//*    create plan tables only
$! else if $fun == 'r' then $@=¢
//*    drop recreate plan tables and views
       $@¢ if $ul = '' then $@=¢
//*         all data lost ||||||||||||||||||||||||||||||||||||
       $! else $@=¢
//*         unload before to $ul
//*         all data lost in $ul.*
//*         reload after from $ul
       $! $!
$! else if $fun == 'd' then $@=¢
//*    drop tablespaces, tables and views
//*         all data lost ||||||||||||||||||||||||||||||||||||
$! else if $fun == 'u' then $@=¢
//*    update plantables for v$vers and recreate views
$! else if $fun == 'v' then $@=¢
//*    drop recreate plan views only
$! else if $fun == 'vfD' then $@=¢
//*    drop function dependent views
$! else if $fun == 'vfC' then $@=¢
//*    create function dependent views
$! else $@¢
    call err 'bad fun='$fun
$! if $cmnViews then $@=¢
//*    with changeman views
$!
$/jobHead/
$proc $@=/ddlStep/
//*
//*                 execute ddl: drop/alter/create
//DDL      EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99
//SYSTSIN  DD *
    DSN SYSTEM($dbSys)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSIN    DD *
  --#SET MAXERRORS 0
  set current sqlid = 'S100447';
$/ddlStep/

$proc $@/tsDrop/
  done = ''
  $do tt=0 to 1 $@¢
      $do ix=1 to m.iTb.0 $@¢
          dbts = strip(m.iTb.ix.db)'.'strip(m.iTb.ix.ts)
          if (m.iTb.ix.tbTy \== 'T') == tt & done.dbTs <> 1 then $@¢
              $$- 'drop tablespace' dbTs '; commit;'
              done.dbTs = 1
              $!
          $!
      $!
  $<>
  $<=¢
      select dbName, name from sysibm.sysTableSpace
        where dbName = '$db' and nTables = 0
             and (name like '${ts}%' or name like '${tl}%'
                   or name like '${tm}%')
        order by translate(type, 'ZZ', 'OP'), name
$! call sqlSel
$| $forWith d $@=¢
drop tablespace $DBNAME.$NAME; commit;
$!
$/tsDrop/

$proc $@/tsReo/
$@=¢
//       IF DDL.RC LE 4 THEN
//REO      EXEC PGM=DSNUTILB,TIME=1440,
//             PARM=($dbSys,'$job.REORG'),
//             REGION=0M
//DSSPRINT   DD SYSOUT=*
//SYSPRINT   DD SYSOUT=*
//SYSUDUMP   DD SYSOUT=*
//UTPRINT    DD SYSOUT=*
//SYSTEMPL   DD DISP=SHR,DSN=$dbSys.DBAA.LISTDEF(TEMPL)
//SYSIN      DD *
$!
  done.0 = 0
  done.1 = 0
  $do tt=0 to 1 $@¢
      $do ix=1 to m.iTb.0 $@¢
          dbts = strip(m.iTb.ix.db)'.'strip(m.iTb.ix.ts)
          if (m.iTb.ix.tbTy \== 'T') == tt & done.dbTs <> 1 then $@¢
              if \ done.tt then $@¢
                  done.tt = 1
                  $$- 'LISTDEF' if(tt==0, 'TS', 'LOB')'LST'
                  $!
              $$- '    INCLUDE TABLESPACE' dbTs 'PARTLEVEL'
              done.dbTs = 1
              $!
          $!
      $!
if done.0 then $@=¢
REORG TABLESPACE LIST TSLST
     LOG NO
     SORTDATA
     COPYDDN(TCOPYD)
     SHRLEVEL CHANGE
     MAPPINGTABLE S100447.MAPTAB03
     MAXRO 30
     DRAIN ALL
     DELAY 150
     TIMEOUT TERM
     UNLDDN TSRECO
     UNLOAD CONTINUE
     PUNCHDDN TPUNCHO
     DISCARDDN TDISCA
     SORTKEYS
     SORTDEVT DISK
     STATISTICS
       INDEX ALL KEYCARD
       REPORT NO UPDATE ALL
$!
if done.1 then $@=¢
REORG TABLESPACE LIST LOBLST
    SHRLEVEL REFERENCE
    COPYDDN(TCOPYD)
    UNLOAD CONTINUE
$!
$$ //        ENDIF
$/tsReo/

$proc $@/creDdl/
  $@ddl
$/creDdl/

$proc $@/updDdl/
  $@ddl
  $|
  $do while $ddlTy \== 'e' $@/ddlEachLine/
      if $ddlTy == 's' then $@¢
          cc = substr(strip($ddlC1), 3)
          if word(cc, 1) \== 'CREATE' then
              cc = substr(strip($ddlC2), 3) cc
          if word(cc, 1) \== 'CREATE' | (pos('TABLESPACE', cc) = 0 ,
                         & pos('TABLE SPACE', cc) = 0) then
              call err 'bad comment before create ts' $ddlTs':' cc
          tn = word(cc, words(cc))
          if symbol('m.iTb.tn') == 'VAR' then $@¢
              $@ddlRead
          $! else $@¢
              $$- '-- tablespace for' tn
              $do forever $@¢
                  $$ $ddlLi
                  if pos(';', $ddlLi) > 0 then
                      leave
                  if $-^ddlRead \== 'l' then
                      call err 'eof in create tablespace for' tn
                  $!
              $!
      $! else if $ddlTy == 't' then $@¢
          if \ ${?ITB>$ddlTb} then
              $@creDdlTb
          else if $ddlW2 == 'TABLE' then
              $@updDdlTb
          else
              $@ddlRead
      $! else $@¢
          $@ddlRead
      $!
      $/ddlEachLine/
$/updDdl/

$proc $@/creDdlTb/
    $do forever $@¢
        $$ $ddlLi
        if pos($-^ddlRead, 'ste') > 0 then
            return
        $!
$/creDdlTb/

$proc $@/updDdlTb/
    tx = ${ITB>$ddlTb}
    cols = m.itb.tx.colCount
    col  = m.itb.tx.col
    first = 1
    if $-^ddlRead  \== 'l' | word($ddlLi, 1) \== '(' then
         call err 'bad first line after create tb' $ddlLi
    cc = 1
    doAdd = 0
    $do while $-^ddlRead  == 'l' $@¢
        w1 = word($ddlLi, 1)
        if abbrev(w1, ')') then $@¢
            if doAdd == 2 then $@¢
                $$ ;
                $= doReo = 1
            $! else if cc < cols then
                call err 'table' $cr'.'m.iTb.tx.tb ,
                     'has only' cc 'columns not >=' cols
            return
        $! else if abbrev(w1, ',') | abbrev(w1, '"') then $@¢
            cc = cc+ 1
            if cc = cols then $@¢
                nm = word(substr(strip($ddlLi), 1 + abbrev(w1,',')), 1)
                if nm \== col & nm \==  '"'col'"' then
                    call err 'col' cols 'should be' col 'not' nm ,
                         'in table' $cr'.'m.iTb.tx.tb
                doAdd = 1
            $! else if doAdd > 0 then $@¢
                if doAdd == 1 then $@¢
                    doAdd = 2
                    $$ alter table $cr.$-¢m.iTb.tx.tb$!
                    $!
                $$- '    add' strip(substr(strip($ddlLi), 2))
            $!
        $! else if doAdd == 2 then $@¢
            $$ $ddlLi
        $!
    $!
$/updDdlTb/

$proc $@/getDdlInfo/
  m.tbsT = 'DSN_PREDICATE_SELECTIVITY DSN_USERQUERY_TABLE' ,
           'DSN_USERQUERY_TABLE_AUX'
  m.tbsV = 'DSN_STATEMENT_CACHE_TABLE DSN_STATEMENT_CACHE_AUX' ,
           'DSN_VIRTUAL_INDEXES DSN_VIRTUAL_KEYTARGETS'
  tbs =  m.tbsT m.tbsV 'COST_TABLE',
        'EEEAUTH EEEDBRM EEEHINT EEEPATH EEEPLAN EEEWORK',
        'OBJECT_DATA OBJECT_DIRECTORY F2PLAN_TABLE',
        'PREDICATE_TABLE STRUCTURE_TABLE',
        'DSN_STAT_FEEDBACK'
  tbs = "'"repAll(space(tbs, 1), ' ', "', '")"'"
  $@ddl
  $|
  $do while $-^ddlRead  \== 'e' $@¢
      if $ddlTy == 't' then
          tbs = tbs", '"$ddlTb"'"
      $!
  m.itb.tbLst = tbs
$/getDdlInfo/

$proc $@/getCatInfo/
  call sql2St 'select t.name tb, t.dbName db, tsName ts,t.Type tbTy' ,
           ', colCount, c.name col, s.nTables' ,
       'from sysibm.sysTables t join sysibm.sysColumns c' ,
         'on t.creator = c.tbCreator and t.name = c.tbName' ,
            'and t.colCount = c.colNo',
         'join sysibm.sysTableSpace s' ,
            'on t.dbName = s.dbName and t.tsName = s.name',
       "where t.creator = '"$cr"' and t.name in ("m.itb.tbLst")" ,
       , iTb
  do qx=1 to m.iTb.0
  $*( say qx m.iTb.qx.tb m.iTb.qx.db m.iTb.qx.ts m.iTb.qx.tbTy ,
          m.iTb.qx.colCount m.iTb.qx.col
  $*) t1 = strip(m.iTb.qx.tb)
      m.itb.t1 = qx
      end
$/getCatInfo/

$proc $@/ddlRead/
    if \ $-{>ddlLi} then $@¢
        $=ddlTy = e
        return $ddlTy
        $!
    parse value $ddlLi with w1 w2 w3 .
    $= ddlW2 =- w2
    if abbrev(w1, '--') then $@¢
        $=ddlC2 = $ddlC1
        $=ddlC1 = $ddlLi
        $=ddlTy = l
    $! else if w1 \== 'CREATE' then $@¢
        $=ddlTy = l
    $! else if w2 == 'TABLESPACE' then $@¢
        $=ddlTy = s
        $=ddlTs = w3
    $! else if w2 == 'LOB' & w3 == 'TABLESPACE' then $@¢
        $=ddlTy = s
        $=ddlTs = word($ddlLi, 4)
    $! else if w2 == 'TABLE' ,
            | (w2 == 'AUX' & w3 == 'TABLE') then $@¢
        if w2 == 'TABLE' then
            parse value subWord($ddlLi, 3) with cr '.' tb .
        else
            parse value subWord($ddlLi, 4) with cr '.' tb .
        if cr <> $cr then
           call err 'creator should be' $cr 'but' $ddlLi
        $=ddlTb =- strip(tb)
        $=ddlTy = t
    $! else $@¢
        $=ddlTy = l
    $!
    return $ddlTy
$/ddlRead/

$@proc $@/ixKeys/
    parse arg ., vKy vDr ix
    if $fun == 'c' | $fun == 'r' then
        $={$-¢vKy$!}=- ''
    else
        $={$-¢vKy$!}=- catIxKeys($cr, ix)
    if ${$-¢vKy$!} == '' then
        $={$-¢vDr$!}=- ''
    else
        $={$-¢vDr$!}=- 'drop index' $cr'.'ix';commit;'
$/ixKeys/

$proc $@=/tsAtt/
     USING STOGROUP $stoGr
       ERASE NO
     GBPCACHE CHANGED
     LOCKSIZE PAGE LOCKMAX SYSTEM
     BUFFERPOOL BP8K0
     SEGSIZE 16
     CLOSE NO
     maxpartitions 16
     dsSize 4G
     CCSID UNICODE
$/tsAtt/

$proc $@=/lobAtt/
        BUFFERPOOL BP32K
        LOG YES
        GBPCACHE CHANGED
        USING STOGROUP GSMS PRIQTY -1 SECQTY -1 ERASE NO
        CLOSE YES
$/lobAtt/

$proc $@=/tbAtt/
  AUDIT NONE
  VOLATILE
  DATA CAPTURE CHANGES
  CCSID UNICODE
  APPEND NO
$/tbAtt/

$proc $@=/ixAtt/
      USING STOGROUP GSMS PRIQTY -1 SECQTY -1 ERASE  NO
      FREEPAGE 0 PCTFREE 10
      GBPCACHE CHANGED
 $@ if pos('l', arg(2)) < 1 then $@=¢
      NOT PADDED
      DEFER $defer
 $!
      COMPRESS NO
      BUFFERPOOL BP1
      CLOSE YES
      COPY NO
      DEFINE YES
      PIECESIZE 2 G
$/ixAtt/

$@proc $@/dropViews/
    $<=¢ select (select strip(d.bcreator) || '.' || strip(d.bname)
                 from sysibm.sysViewDep d
                 where bType = 'V'
                     and d.dcreator = v.creator and dName = v.name
                     and d.bcreator = v.creator and bName like 'PLAN%'
                 fetch first row only
                ) dep, v.creator cr, v.name na
             from sysibm.sysTables v
                 where type = 'V' and name like 'PLAN%'
                     and creator = '$cr'
      $!
    call sqlSel
    $| $@forWith v $@¢
        if $DEP == m.sqlNull then
            $$   drop view $CR.$NA;
        else
            $$ $'  --' view $CR.$NA depends on $DEP
        $!
$/dropViews/


$proc $@/ddl/
    $=ddlTy = $''
    $= ddlC1 = $''
    $= ddlC2 = $''
    $@expDdl
    if $queryT then
        $@uQuDdl
$/ddl/
$proc $@=/expDdl/
-----------------------------------------------------------------------
--  NAME = DSNTESC aus SDSNSAMP(DSNTESC)
--
--  DESCRIPTIVE NAME = SAMPLE EXPLAIN TABLES
--
--     LICENSED MATERIALS - PROPERTY OF IBM
--     5615-DB2
--     (C) COPYRIGHT 1982, 2013 IBM CORP.  ALL RIGHTS RESERVED.
--
--     STATUS = VERSION 11
--

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE PLAN_TABLE

  CREATE TABLESPACE ${ts}A
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_FUNCTION_TABLE

  CREATE TABLESPACE ${ts}B
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_STATEMNT_TABLE

  CREATE TABLESPACE ${ts}C
     IN $db
     $@tsAtt
;
$@ if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE
--DSN_STATEMENT_CACHE_TABLE

  CREATE TABLESPACE ${ts}D
     IN $db
     $@tsAtt
     ;

-----------------------------------------------------------------------
--CREATE THE LOB TABLE SPACE FOR THE SAMPLE DSN_STATEMENT_CACHE_TABLE

  CREATE LOB TABLESPACE ${tl}D
     IN $db
     $@lobAtt
;
$!
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_PREDICAT_TABLE

  CREATE TABLESPACE ${ts}E
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_STRUCT_TABLE

  CREATE TABLESPACE ${ts}F
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_PGROUP_TABLE

  CREATE TABLESPACE ${ts}G
         IN $db
     $@%¢tsAtt bp16K0 $!
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_PTASK_TABLE

  CREATE TABLESPACE ${ts}H
         IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_FILTER_TABLE

  CREATE TABLESPACE ${ts}K
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_DETCOST_TABLE

  CREATE TABLESPACE ${ts}L
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_SORT_TABLE

  CREATE TABLESPACE ${ts}M
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_SORTKEY_TABLE

  CREATE TABLESPACE ${ts}N
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_PGRANGE_TABLE

  CREATE TABLESPACE ${ts}O
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_VIEWREF_TABLE

  CREATE TABLESPACE ${ts}P
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_QUERY_TABLE

  CREATE TABLESPACE ${ts}I
         IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE LOB TABLE SPACE FOR THE SAMPLE DSN_QUERY_TABLE

  CREATE LOB TABLESPACE ${tl}I
         IN $db
     $@lobAtt
;
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_QUERYINFO_TABLE

  CREATE TABLESPACE ${ts}Q
         IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE LOB TABLE SPACE FOR THE SAMPLE DSN_QUERYINFO_TABLE

  CREATE LOB TABLESPACE ${tl}Q
         IN $db
     $@lobAtt
;

-----------------------------------------------------------------------
--CREATE THE LOB TABLE SPACE FOR THE SAMPLE DSN_QUERYINFO_TABLE

  CREATE LOB TABLESPACE ${tl}R
         IN $db
     $@lobAtt
;

$@  if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_VIRTUAL_INDEXES

  CREATE TABLESPACE ${ts}J
         IN $db
     $@tsAtt
;
$!

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_COLDIST_TABLE

  CREATE TABLESPACE ${ts}S
     IN $db
     $@tsAtt
;

-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_KEYTGTDIST_TABLE

  CREATE TABLESPACE ${ts}T
     IN $db
     $@tsAtt
;

$@ if $vers >= 11 then $@=¢
$@  if $queryT then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE
--DSN_PREDICATE_SELECTIVITY

  CREATE TABLESPACE ${ts}U
     IN $db
     $@tsAtt
;
$!
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_STAT_FEEDBACK

  CREATE TABLESPACE ${ts}W
     IN $db
     $@tsAtt
;

$@  if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACE FOR THE V11 SAMPLE DSN_VIRTUAL_KEYTARGETS

  CREATE TABLESPACE ${ts}X
     IN $db
     $@tsAtt
;
$!
$!
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE PLAN_TABLE AND ITS INDEX
  CREATE TABLE $cr.PLAN_TABLE
        ( "QUERYNO"            INTEGER      NOT NULL,
          "QBLOCKNO"           SMALLINT     NOT NULL,
          "APPLNAME"           VARCHAR(24)  NOT NULL,
          "PROGNAME"           VARCHAR(128) NOT NULL,
          "PLANNO"             SMALLINT     NOT NULL,
          "METHOD"             SMALLINT     NOT NULL,
          "CREATOR"            VARCHAR(128) NOT NULL,
          "TNAME"              VARCHAR(128) NOT NULL,
          "TABNO"              SMALLINT     NOT NULL,
          "ACCESSTYPE"         CHAR(2)      NOT NULL,
          "MATCHCOLS"          SMALLINT     NOT NULL,
          "ACCESSCREATOR"      VARCHAR(128)      NOT NULL,
          "ACCESSNAME"         VARCHAR(128)     NOT NULL,
          "INDEXONLY"          CHAR(1)      NOT NULL,
          "SORTN_UNIQ"         CHAR(1)      NOT NULL,
          "SORTN_JOIN"         CHAR(1)      NOT NULL,
          "SORTN_ORDERBY"      CHAR(1)      NOT NULL,
          "SORTN_GROUPBY"      CHAR(1)      NOT NULL,
          "SORTC_UNIQ"         CHAR(1)      NOT NULL,
          "SORTC_JOIN"         CHAR(1)      NOT NULL,
          "SORTC_ORDERBY"      CHAR(1)      NOT NULL,
          "SORTC_GROUPBY"      CHAR(1)      NOT NULL,
          "TSLOCKMODE"         CHAR(3)      NOT NULL,
          "TIMESTAMP"          CHAR(16)     NOT NULL,
          "REMARKS"            VARCHAR(762) NOT NULL,
          "PREFETCH"           CHAR(1)      NOT NULL WITH DEFAULT,
          "COLUMN_FN_EVAL"     CHAR(1)      NOT NULL WITH DEFAULT,
          "MIXOPSEQ"           SMALLINT     NOT NULL WITH DEFAULT,
          "VERSION"            VARCHAR(122) NOT NULL WITH DEFAULT,
          "COLLID"             VARCHAR(128) NOT NULL WITH DEFAULT,
          "ACCESS_DEGREE"      SMALLINT,
          "ACCESS_PGROUP_ID"   SMALLINT,
          "JOIN_DEGREE"        SMALLINT,
          "JOIN_PGROUP_ID"     SMALLINT,
          "SORTC_PGROUP_ID"    SMALLINT,
          "SORTN_PGROUP_ID"    SMALLINT,
          "PARALLELISM_MODE"   CHAR(1),
          "MERGE_JOIN_COLS"    SMALLINT,
          "CORRELATION_NAME"   VARCHAR(128),
          "PAGE_RANGE"         CHAR(1)      NOT NULL WITH DEFAULT,
          "JOIN_TYPE"          CHAR(1)      NOT NULL WITH DEFAULT,
          "GROUP_MEMBER"       VARCHAR(24)  NOT NULL WITH DEFAULT,
          "IBM_SERVICE_DATA"   VARCHAR(254) FOR BIT DATA
                                            NOT NULL WITH DEFAULT,
          "WHEN_OPTIMIZE"      CHAR(1)      NOT NULL WITH DEFAULT,
          "QBLOCK_TYPE"        CHAR(6)      NOT NULL WITH DEFAULT,
          "BIND_TIME"          TIMESTAMP    NOT NULL WITH DEFAULT,
          "OPTHINT"            VARCHAR(128) NOT NULL WITH DEFAULT,
          "HINT_USED"          VARCHAR(128) NOT NULL WITH DEFAULT,
          "PRIMARY_ACCESSTYPE" CHAR(1)      NOT NULL WITH DEFAULT,
          "PARENT_QBLOCKNO"    SMALLINT     NOT NULL WITH DEFAULT,
          "TABLE_TYPE"         CHAR(1),
          "TABLE_ENCODE"       CHAR(1)      NOT NULL WITH DEFAULT,
          "TABLE_SCCSID"       SMALLINT     NOT NULL WITH DEFAULT,
          "TABLE_MCCSID"       SMALLINT     NOT NULL WITH DEFAULT,
          "TABLE_DCCSID"       SMALLINT     NOT NULL WITH DEFAULT,
          "ROUTINE_ID"         INTEGER      NOT NULL WITH DEFAULT,
          "CTEREF"             SMALLINT     NOT NULL WITH DEFAULT,
          "STMTTOKEN"          VARCHAR(240),
          "PARENT_PLANNO"      SMALLINT     NOT NULL WITH DEFAULT,
          "BIND_EXPLAIN_ONLY"  CHAR(1)      NOT NULL WITH DEFAULT,
          "SECTNOI"            INTEGER      NOT NULL WITH DEFAULT,
          "EXPLAIN_TIME"       TIMESTAMP    NOT NULL WITH DEFAULT,
          "MERGC"              CHAR(1)      NOT NULL WITH DEFAULT,
          "MERGN"              CHAR(1)      NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
        , "SCAN_DIRECTION"     CHAR(1)
        , "EXPANSION_REASON"   CHAR(2)      NOT NULL WITH DEFAULT
$!
        )
      IN $db.${ts}A
   $@tbAtt;

  CREATE INDEX $cr.PLAN_TABLE_HINT_IX
            ON $cr.PLAN_TABLE
        ( "QUERYNO",
          "APPLNAME",
          "PROGNAME",
          "VERSION",
          "COLLID",
          "OPTHINT" )
     $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_FUNCTION_TABLE.

  CREATE TABLE $cr.DSN_FUNCTION_TABLE
        ( "QUERYNO"            INTEGER      NOT NULL WITH DEFAULT,
          "QBLOCKNO"           INTEGER      NOT NULL WITH DEFAULT,
          "APPLNAME"           VARCHAR(24)  NOT NULL WITH DEFAULT,
          "PROGNAME"           VARCHAR(128) NOT NULL WITH DEFAULT,
          "COLLID"             VARCHAR(128) NOT NULL WITH DEFAULT,
          "GROUP_MEMBER"       VARCHAR(24)  NOT NULL WITH DEFAULT,
          "EXPLAIN_TIME"       TIMESTAMP    NOT NULL WITH DEFAULT,
          "SCHEMA_NAME"        VARCHAR(128) NOT NULL WITH DEFAULT,
          "FUNCTION_NAME"      VARCHAR(128) NOT NULL WITH DEFAULT,
          "SPEC_FUNC_NAME"     VARCHAR(128) NOT NULL WITH DEFAULT,
          "FUNCTION_TYPE"      CHAR(2)      NOT NULL WITH DEFAULT,
          "VIEW_CREATOR"       VARCHAR(128) NOT NULL WITH DEFAULT,
          "VIEW_NAME"          VARCHAR(128) NOT NULL WITH DEFAULT,
          "PATH"               VARCHAR(2048) NOT NULL WITH DEFAULT,
          "FUNCTION_TEXT"      VARCHAR(1500) NOT NULL WITH DEFAULT,
          "FUNC_VERSION"       VARCHAR(122) NOT NULL WITH DEFAULT,
          "SECURE"             CHAR(1)      NOT NULL WITH DEFAULT,
          "SECTNOI"            INTEGER      NOT NULL WITH DEFAULT,
          "VERSION"            VARCHAR(122) NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
        , "EXPANSION_REASON"   CHAR(2)      NOT NULL WITH DEFAULT
$!
        )
      IN $db.${ts}B
   $@tbAtt;


-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_STATEMNT_TABLE.

  CREATE TABLE $cr.DSN_STATEMNT_TABLE
        ( "QUERYNO"            INTEGER      NOT NULL WITH DEFAULT,
          "APPLNAME"           VARCHAR(24)  NOT NULL WITH DEFAULT,
          "PROGNAME"           VARCHAR(128) NOT NULL WITH DEFAULT,
          "COLLID"             VARCHAR(128) NOT NULL WITH DEFAULT,
          "GROUP_MEMBER"       VARCHAR(24)  NOT NULL WITH DEFAULT,
          "EXPLAIN_TIME"       TIMESTAMP    NOT NULL WITH DEFAULT,
          "STMT_TYPE"          CHAR(6)      NOT NULL WITH DEFAULT,
          "COST_CATEGORY"      CHAR(1)      NOT NULL WITH DEFAULT,
          "PROCMS"             INTEGER      NOT NULL WITH DEFAULT,
          "PROCSU"             INTEGER      NOT NULL WITH DEFAULT,
          "REASON"             VARCHAR(254) NOT NULL WITH DEFAULT,
          "STMT_ENCODE"        CHAR(1)      NOT NULL WITH DEFAULT,
          "TOTAL_COST"         FLOAT        NOT NULL WITH DEFAULT,
          "SECTNOI"            INTEGER      NOT NULL WITH DEFAULT,
          "VERSION"            VARCHAR(122) NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
        , "EXPANSION_REASON"   CHAR(2)      NOT NULL WITH DEFAULT
$!
        )
      IN $db.${ts}C
   $@tbAtt;

  CREATE INDEX $cr.DSN_STATEMNT_TABLE_idx1
         ON $cr.DSN_STATEMNT_Table
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
      $@ixAtt
;
$@ if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_STATEMENT_CACHE_TABLE AND ITS INDEXES

  CREATE TABLE $cr.DSN_STATEMENT_CACHE_TABLE
        ( "STMT_ID"            INTEGER      NOT NULL,
          "STMT_TOKEN"         VARCHAR(240)         ,
          "COLLID"             VARCHAR(128) NOT NULL,
          "PROGRAM_NAME"       VARCHAR(128) NOT NULL,
          "INV_DROPALT"        CHAR(1)      NOT NULL,
          "INV_REVOKE"         CHAR(1)      NOT NULL,
          "INV_LRU"            CHAR(1)      NOT NULL,
          "INV_RUNSTATS"       CHAR(1)      NOT NULL,
          "CACHED_TS"          TIMESTAMP    NOT NULL,
          "USERS"              INTEGER      NOT NULL,
          "COPIES"             INTEGER      NOT NULL,
          "LINES"              INTEGER      NOT NULL,
          "PRIMAUTH"           VARCHAR(128) NOT NULL,
          "CURSQLID"           VARCHAR(128) NOT NULL,
          "BIND_QUALIFIER"     VARCHAR(128) NOT NULL,
          "BIND_ISO"           CHAR(2)      NOT NULL,
          "BIND_CDATA"         CHAR(1)      NOT NULL,
          "BIND_DYNRL"         CHAR(1)      NOT NULL,
          "BIND_DEGRE"         CHAR(1)      NOT NULL,
          "BIND_SQLRL"         CHAR(1)      NOT NULL,
          "BIND_CHOLD"         CHAR(1)      NOT NULL,
          "STAT_TS"            TIMESTAMP    NOT NULL,
          "STAT_EXEC"          INTEGER      NOT NULL,
          "STAT_GPAG"          INTEGER      NOT NULL,
          "STAT_SYNR"          INTEGER      NOT NULL,
          "STAT_WRIT"          INTEGER      NOT NULL,
          "STAT_EROW"          INTEGER      NOT NULL,
          "STAT_PROW"          INTEGER      NOT NULL,
          "STAT_SORT"          INTEGER      NOT NULL,
          "STAT_INDX"          INTEGER      NOT NULL,
          "STAT_RSCN"          INTEGER      NOT NULL,
          "STAT_PGRP"          INTEGER      NOT NULL,
          "STAT_ELAP"          FLOAT        NOT NULL,
          "STAT_CPU"           FLOAT        NOT NULL,
          "STAT_SUS_SYNIO"     FLOAT        NOT NULL,
          "STAT_SUS_LOCK"      FLOAT        NOT NULL,
          "STAT_SUS_SWIT"      FLOAT        NOT NULL,
          "STAT_SUS_GLCK"      FLOAT        NOT NULL,
          "STAT_SUS_OTHR"      FLOAT        NOT NULL,
          "STAT_SUS_OTHW"      FLOAT        NOT NULL,
          "STAT_RIDLIMT"       INTEGER      NOT NULL,
          "STAT_RIDSTOR"       INTEGER      NOT NULL,
          "EXPLAIN_TS"         TIMESTAMP    NOT NULL,
          "SCHEMA"             VARCHAR(128) NOT NULL,
          "STMT_TEXT"          CLOB(2M)     NOT NULL,
          "STMT_ROWID"         ROWID        NOT NULL GENERATED ALWAYS,
          "BIND_RO_TYPE"       CHAR(1)      NOT NULL WITH DEFAULT,
          "BIND_RA_TOT"        INTEGER      NOT NULL WITH DEFAULT,
          "GROUP_MEMBER"       VARCHAR(24)  NOT NULL WITH DEFAULT,
          "STAT_EXECB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_GPAGB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_SYNRB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_WRITB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_EROWB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_PROWB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_SORTB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_INDXB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_RSCNB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_PGRPB"         BIGINT       NOT NULL WITH DEFAULT,
          "STAT_RIDLIMTB"      BIGINT       NOT NULL WITH DEFAULT,
          "STAT_RIDSTORB"      BIGINT       NOT NULL WITH DEFAULT,
          "LITERAL_REPL"       CHAR(1)      NOT NULL WITH DEFAULT,
          "STAT_SUS_LATCH"     FLOAT        NOT NULL WITH DEFAULT,
          "STAT_SUS_PLATCH"    FLOAT        NOT NULL WITH DEFAULT,
          "STAT_SUS_DRAIN"     FLOAT        NOT NULL WITH DEFAULT,
          "STAT_SUS_CLAIM"     FLOAT        NOT NULL WITH DEFAULT,
          "STAT_SUS_LOG"       FLOAT        NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
        , "EXPANSION_REASON"   CHAR(2)      NOT NULL WITH DEFAULT
$!
        )
      IN $db.${ts}D
   $@tbAtt;

  CREATE AUX TABLE $cr.DSN_STATEMENT_CACHE_AUX
      IN $db.${tl}D
  STORES $cr.DSN_STATEMENT_CACHE_TABLE
  COLUMN STMT_TEXT
  PART 1;

  CREATE INDEX $cr.DSN_STATEMENT_CACHE_IDX1
            ON $cr.DSN_STATEMENT_CACHE_TABLE
        ( "STMT_ID" ASC )
    $@ixAtt
;

  CREATE INDEX $cr.DSN_STATEMENT_CACHE_IDX2
            ON $cr.DSN_STATEMENT_CACHE_TABLE
        ( "STMT_TOKEN" ASC )
        CLUSTER
    $@ixAtt
;

  CREATE INDEX $cr.DSN_STATEMENT_CACHE_IDX3
            ON $cr.DSN_STATEMENT_CACHE_TABLE
        ( "EXPLAIN_TS" DESC )
    $@ixAtt
;

  CREATE INDEX $cr.DSN_STATEMENT_CACHE_AUXINX
            ON $cr.DSN_STATEMENT_CACHE_AUX
    $@%¢ixAtt l $!
;
$!

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PREDICAT_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_PREDICAT_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"QBLOCKNO"              SMALLINT      NOT NULL
          ,"APPLNAME"              VARCHAR(24)   NOT NULL
          ,"PROGNAME"              VARCHAR(128)  NOT NULL
          ,"PREDNO"                INTEGER       NOT NULL
          ,"TYPE"                  CHAR(8)       NOT NULL
          ,"LEFT_HAND_SIDE"        VARCHAR(128)  NOT NULL
          ,"LEFT_HAND_PNO"         INTEGER       NOT NULL
          ,"LHS_TABNO"             SMALLINT      NOT NULL
          ,"LHS_QBNO"              SMALLINT      NOT NULL
          ,"RIGHT_HAND_SIDE"       VARCHAR(128)  NOT NULL
          ,"RIGHT_HAND_PNO"        INTEGER       NOT NULL
          ,"RHS_TABNO"             SMALLINT      NOT NULL
          ,"RHS_QBNO"              SMALLINT      NOT NULL
          ,"FILTER_FACTOR"         FLOAT         NOT NULL
          ,"BOOLEAN_TERM"          CHAR(1)       NOT NULL
          ,"SEARCHARG"             CHAR(1)       NOT NULL
          ,"JOIN"                  CHAR(1)       NOT NULL
          ,"AFTER_JOIN"            CHAR(1)       NOT NULL
          ,"ADDED_PRED"            CHAR(1)       NOT NULL
          ,"REDUNDANT_PRED"        CHAR(1)       NOT NULL
          ,"DIRECT_ACCESS"         CHAR(1)       NOT NULL
          ,"KEYFIELD"              CHAR(1)       NOT NULL
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"CATEGORY"              SMALLINT      NOT NULL
          ,"CATEGORY_B"            SMALLINT      NOT NULL
          ,"TEXT"                  VARCHAR(2000) NOT NULL
          ,"PRED_ENCODE"           CHAR(1)       NOT NULL WITH DEFAULT
          ,"PRED_CCSID"            SMALLINT      NOT NULL WITH DEFAULT
          ,"PRED_MCCSID"           SMALLINT      NOT NULL WITH DEFAULT
          ,"MARKER"                CHAR(1)       NOT NULL WITH DEFAULT
          ,"PARENT_PNO"            INTEGER       NOT NULL
          ,"NEGATION"              CHAR(1)       NOT NULL
          ,"LITERALS"              VARCHAR(128)  NOT NULL
          ,"CLAUSE"                CHAR(8)       NOT NULL
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"ORIGIN"                CHAR(1)       NOT NULL WITH DEFAULT
          ,"UNCERTAINTY"           FLOAT(4)      NOT NULL WITH DEFAULT
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}E
         $@tbAtt;
  CREATE INDEX $cr.DSN_PREDICAT_TABLE_IDX1
         ON $cr.DSN_PREDICAT_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;
  CREATE INDEX $cr.DSN_PREDICAT_TABLE_IDX2
         ON $cr.DSN_PREDICAT_TABLE
         ( "QUERYNO"
         , "PREDNO"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_STRUCT_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_STRUCT_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"QBLOCKNO"              SMALLINT      NOT NULL
          ,"APPLNAME"              VARCHAR(24)   NOT NULL
          ,"PROGNAME"              VARCHAR(128)  NOT NULL
          ,"PARENT"                SMALLINT      NOT NULL
          ,"TIMES"                 FLOAT         NOT NULL
          ,"ROWCOUNT"              INTEGER       NOT NULL
          ,"ATOPEN"                CHAR(1)       NOT NULL
          ,"CONTEXT"               CHAR(10)      NOT NULL
          ,"ORDERNO"               SMALLINT      NOT NULL
          ,"DOATOPEN_PARENT"       SMALLINT      NOT NULL
          ,"QBLOCK_TYPE"           CHAR(6)       NOT NULL WITH DEFAULT
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"QUERY_STAGE"           CHAR(8)       NOT NULL
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"ORIGIN"                CHAR(1)       NOT NULL WITH DEFAULT
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}F
         $@tbAtt;
  CREATE INDEX $cr.DSN_STRUCT_TABLE_IDX1
         ON $cr.DSN_STRUCT_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PGROUP_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_PGROUP_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"QBLOCKNO"              SMALLINT      NOT NULL
          ,"PLANNAME"              VARCHAR(24)   NOT NULL
          ,"COLLID"                VARCHAR(128)  NOT NULL
          ,"PROGNAME"              VARCHAR(128)  NOT NULL
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"VERSION"               VARCHAR(122)  NOT NULL
          ,"GROUPID"               SMALLINT      NOT NULL
          ,"FIRSTPLAN"             SMALLINT      NOT NULL
          ,"LASTPLAN"              SMALLINT      NOT NULL
          ,"CPUCOST"               REAL          NOT NULL
          ,"IOCOST"                REAL          NOT NULL
          ,"BESTTIME"              REAL          NOT NULL
          ,"DEGREE"                SMALLINT      NOT NULL
          ,"MODE"                  CHAR(1)       NOT NULL
          ,"REASON"                SMALLINT      NOT NULL
          ,"LOCALCPU"              SMALLINT      NOT NULL
          ,"TOTALCPU"              SMALLINT      NOT NULL
          ,"FIRSTBASE"             SMALLINT
          ,"LARGETS"               CHAR(1)
          ,"PARTKIND"              CHAR(1)
          ,"GROUPTYPE"             CHAR(3)
          ,"ORDER"                 CHAR(1)
          ,"STYLE"                 CHAR(4)
          ,"RANGEKIND"             CHAR(1)
          ,"NKEYCOLS"              SMALLINT
          ,"LOWBOUND"              VARCHAR(40)   FOR BIT DATA
          ,"HIGHBOUND"             VARCHAR(40)   FOR BIT DATA
          ,"LOWKEY"                VARCHAR(40)   FOR BIT DATA
          ,"HIGHKEY"               VARCHAR(40)   FOR BIT DATA
          ,"FIRSTPAGE"             CHAR(4)       FOR BIT DATA
          ,"LASTPAGE"              CHAR(4)       FOR BIT DATA
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"HOST_REASON"           SMALLINT
          ,"PARA_TYPE"             CHAR(4)
          ,"PART_INNER"            CHAR(1)
          ,"GRNU_KEYRNG"           CHAR(1)
          ,"OPEN_KEYRNG"           CHAR(1)
          ,"APPLNAME"              VARCHAR(24)   NOT NULL WITH DEFAULT
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"STRAW_MODEL"           CHAR(1)       NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}G
         $@tbAtt;
  CREATE INDEX $cr.DSN_PGROUP_TABLE_IDX1
         ON $cr.DSN_PGROUP_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PTASK_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_PTASK_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"QBLOCKNO"              SMALLINT      NOT NULL
          ,"PGDNO"                 SMALLINT      NOT NULL
          ,"APPLNAME"              VARCHAR(24)   NOT NULL
          ,"PROGNAME"              VARCHAR(128)  NOT NULL
          ,"LPTNO"                 SMALLINT      NOT NULL
          ,"KEYCOLID"              SMALLINT
          ,"DPSI"                  CHAR(1)       NOT NULL
          ,"LPTLOKEY"              VARCHAR(40)   FOR BIT DATA
          ,"LPTHIKEY"              VARCHAR(40)   FOR BIT DATA
          ,"LPTLOPAG"              CHAR(4)       FOR BIT DATA
          ,"LPTHIPAG"              CHAR(4)       FOR BIT DATA
          ,"LPTLOPG"               CHAR(4)       FOR BIT DATA
          ,"LPTHIPG"               CHAR(4)       FOR BIT DATA
          ,"LPTLOPT"               SMALLINT
          ,"LPTHIPT"               SMALLINT
          ,"KEYCOLDT"              SMALLINT
          ,"KEYCOLPREC"            SMALLINT
          ,"KEYCOLSCAL"            SMALLINT
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}H
         $@tbAtt;
  CREATE INDEX $cr.DSN_PTASK_TABLE_IDX1
         ON $cr.DSN_PTASK_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_FILTER_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_FILTER_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"QBLOCKNO"              SMALLINT      NOT NULL
          ,"PLANNO"                SMALLINT      NOT NULL
          ,"APPLNAME"              VARCHAR(24)   NOT NULL
          ,"PROGNAME"              VARCHAR(128)  NOT NULL
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"ORDERNO"               INTEGER       NOT NULL
          ,"PREDNO"                INTEGER       NOT NULL
          ,"STAGE"                 CHAR(9)       NOT NULL
          ,"ORDERCLASS"            INTEGER       NOT NULL
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"MIXOPSEQNO"            SMALLINT      NOT NULL
          ,"REEVAL"                CHAR(1)       NOT NULL
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
          ,"PUSHDOWN"              CHAR(1)       NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}K
         $@tbAtt;
  CREATE INDEX $cr.DSN_FILTER_TABLE_IDX1
         ON $cr.DSN_FILTER_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_DETCOST_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_DETCOST_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"QBLOCKNO"              SMALLINT      NOT NULL
          ,"APPLNAME"              VARCHAR(24)   NOT NULL
          ,"PROGNAME"              VARCHAR(128)  NOT NULL
          ,"PLANNO"                SMALLINT      NOT NULL
          ,"OPENIO"                FLOAT(4)      NOT NULL
          ,"OPENCPU"               FLOAT(4)      NOT NULL
          ,"OPENCOST"              FLOAT(4)      NOT NULL
          ,"DMIO"                  FLOAT(4)      NOT NULL
          ,"DMCPU"                 FLOAT(4)      NOT NULL
          ,"DMTOT"                 FLOAT(4)      NOT NULL
          ,"SUBQIO"                FLOAT(4)      NOT NULL
          ,"SUBQCPU"               FLOAT(4)      NOT NULL
          ,"SUBQCOST"              FLOAT(4)      NOT NULL
          ,"BASEIO"                FLOAT(4)      NOT NULL
          ,"BASECPU"               FLOAT(4)      NOT NULL
          ,"BASETOT"               FLOAT(4)      NOT NULL
          ,"ONECOMPROWS"           FLOAT(4)      NOT NULL
          ,"IMLEAF"                FLOAT(4)      NOT NULL
          ,"IMIO"                  FLOAT(4)      NOT NULL
          ,"IMPREFH"               CHAR(2)       NOT NULL
          ,"IMMPRED"               INTEGER       NOT NULL
          ,"IMFF"                  FLOAT(4)      NOT NULL
          ,"IMSRPRED"              INTEGER       NOT NULL
          ,"IMFFADJ"               FLOAT(4)      NOT NULL
          ,"IMSCANCST"             FLOAT(4)      NOT NULL
          ,"IMROWCST"              FLOAT(4)      NOT NULL
          ,"IMPAGECST"             FLOAT(4)      NOT NULL
          ,"IMRIDSORT"             FLOAT(4)      NOT NULL
          ,"IMMERGCST"             FLOAT(4)      NOT NULL
          ,"IMCPU"                 FLOAT(4)      NOT NULL
          ,"IMTOT"                 FLOAT(4)      NOT NULL
          ,"IMSEQNO"               SMALLINT      NOT NULL
          ,"DMPREFH"               CHAR(2)       NOT NULL
          ,"DMCLUDIO"              FLOAT(4)      NOT NULL
          ,"DMNCLUDIO"             FLOAT(4)      NOT NULL
          ,"DMPREDS"               INTEGER       NOT NULL
          ,"DMSROWS"               FLOAT(4)      NOT NULL
          ,"DMSCANCST"             FLOAT(4)      NOT NULL
          ,"DMCOLS"                SMALLINT      NOT NULL
          ,"DMROWS"                FLOAT(4)      NOT NULL
          ,"RDSROWCST"             FLOAT(4)      NOT NULL
          ,"DMPAGECST"             FLOAT(4)      NOT NULL
          ,"DMDATAIO"              FLOAT(4)      NOT NULL
          ,"DMDATACPU"             FLOAT(4)      NOT NULL
          ,"DMDATATOT"             FLOAT(4)      NOT NULL
          ,"RDSROW"                FLOAT(4)      NOT NULL
          ,"SNCOLS"                SMALLINT      NOT NULL
          ,"SNROWS"                FLOAT(4)      NOT NULL
          ,"SNRECSZ"               INTEGER       NOT NULL
          ,"SNPAGES"               FLOAT(4)      NOT NULL
          ,"SNRUNS"                FLOAT(4)      NOT NULL
          ,"SNMERGES"              FLOAT(4)      NOT NULL
          ,"SNIOCOST"              FLOAT(4)      NOT NULL
          ,"SNCPUCOST"             FLOAT(4)      NOT NULL
          ,"SNCOST"                FLOAT(4)      NOT NULL
          ,"SNSCANIO"              FLOAT(4)      NOT NULL
          ,"SNSCANCPU"             FLOAT(4)      NOT NULL
          ,"SNSCANCOST"            FLOAT(4)      NOT NULL
          ,"SCCOLS"                SMALLINT      NOT NULL
          ,"SCROWS"                FLOAT(4)      NOT NULL
          ,"SCRECSZ"               INTEGER       NOT NULL
          ,"SCPAGES"               FLOAT(4)      NOT NULL
          ,"SCRUNS"                FLOAT(4)      NOT NULL
          ,"SCMERGES"              FLOAT(4)      NOT NULL
          ,"SCIOCOST"              FLOAT(4)      NOT NULL
          ,"SCCPUCOST"             FLOAT(4)      NOT NULL
          ,"SCCOST"                FLOAT(4)      NOT NULL
          ,"SCSCANIO"              FLOAT(4)      NOT NULL
          ,"SCSCANCPU"             FLOAT(4)      NOT NULL
          ,"SCSCANCOST"            FLOAT(4)      NOT NULL
          ,"COMPCARD"              FLOAT(4)      NOT NULL
          ,"COMPIOCOST"            FLOAT(4)      NOT NULL
          ,"COMPCPUCOST"           FLOAT(4)      NOT NULL
          ,"COMPCOST"              FLOAT(4)      NOT NULL
          ,"JOINCOLS"              SMALLINT      NOT NULL
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"COSTBLK"               INTEGER       NOT NULL
          ,"COSTSTOR"              INTEGER       NOT NULL
          ,"MPBLK"                 INTEGER       NOT NULL
          ,"MPSTOR"                INTEGER       NOT NULL
          ,"COMPOSITES"            INTEGER       NOT NULL
          ,"CLIPPED"               INTEGER       NOT NULL
          ,"PARTITION"             INTEGER       NOT NULL
          ,"TABREF"                VARCHAR(64)   NOT NULL FOR BIT DATA
          ,"MAX_COMPOSITES"        INTEGER       NOT NULL
          ,"MAX_STOR"              INTEGER       NOT NULL
          ,"MAX_CPU"               INTEGER       NOT NULL
          ,"MAX_ELAP"              INTEGER       NOT NULL
          ,"TBL_JOINED_THRESH"     INTEGER       NOT NULL
          ,"STOR_USED"             INTEGER       NOT NULL
          ,"CPU_USED"              INTEGER       NOT NULL
          ,"ELAPSED"               INTEGER       NOT NULL
          ,"MIN_CARD_KEEP"         FLOAT(4)      NOT NULL
          ,"MAX_CARD_KEEP"         FLOAT(4)      NOT NULL
          ,"MIN_COST_KEEP"         FLOAT(4)      NOT NULL
          ,"MAX_COST_KEEP"         FLOAT(4)      NOT NULL
          ,"MIN_VALUE_KEEP"        FLOAT(4)      NOT NULL
          ,"MIN_VALUE_CARD_KEEP"   FLOAT(4)      NOT NULL
          ,"MIN_VALUE_COST_KEEP"   FLOAT(4)      NOT NULL
          ,"MAX_VALUE_KEEP"        FLOAT(4)      NOT NULL
          ,"MAX_VALUE_CARD_KEEP"   FLOAT(4)      NOT NULL
          ,"MAX_VALUE_COST_KEEP"   FLOAT(4)      NOT NULL
          ,"MIN_CARD_CLIP"         FLOAT(4)      NOT NULL
          ,"MAX_CARD_CLIP"         FLOAT(4)      NOT NULL
          ,"MIN_COST_CLIP"         FLOAT(4)      NOT NULL
          ,"MAX_COST_CLIP"         FLOAT(4)      NOT NULL
          ,"MIN_VALUE_CLIP"        FLOAT(4)      NOT NULL
          ,"MIN_VALUE_CARD_CLIP"   FLOAT(4)      NOT NULL
          ,"MIN_VALUE_COST_CLIP"   FLOAT(4)      NOT NULL
          ,"MAX_VALUE_CLIP"        FLOAT(4)      NOT NULL
          ,"MAX_VALUE_CARD_CLIP"   FLOAT(4)      NOT NULL
          ,"MAX_VALUE_COST_CLIP"   FLOAT(4)      NOT NULL
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"PSEQIOCOST"            FLOAT(4)      NOT NULL
          ,"PSEQCPUCOST"           FLOAT(4)      NOT NULL
          ,"PSEQCOST"              FLOAT(4)      NOT NULL
          ,"PADJIOCOST"            FLOAT(4)      NOT NULL
          ,"PADJCPUCOST"           FLOAT(4)      NOT NULL
          ,"PADJCOST"              FLOAT(4)      NOT NULL
          ,"UNCERTAINTY"           FLOAT(4)      NOT NULL WITH DEFAULT
          ,"UNCERTAINTY_1T"        FLOAT(4)      NOT NULL WITH DEFAULT
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
          ,"IMNP"                  FLOAT(4)      NOT NULL WITH DEFAULT
          ,"DMNP"                  FLOAT(4)      NOT NULL WITH DEFAULT
          ,"IMJC"                  FLOAT(4)      NOT NULL WITH DEFAULT
          ,"IMFC"                  FLOAT(4)      NOT NULL WITH DEFAULT
          ,"IMJBC"                 FLOAT(4)      NOT NULL WITH DEFAULT
          ,"IMJFC"                 FLOAT(4)      NOT NULL WITH DEFAULT
          ,"CRED"                  INTEGER       NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"IXSCAN_SKIP_DUPS"      CHAR(1)       NOT NULL
                                                 WITH DEFAULT 'N'
          ,"IXSCAN_SKIP_SCREEN"    CHAR(1)       NOT NULL
                                                 WITH DEFAULT 'N'
          ,"EARLY_OUT"             CHAR(1)       NOT NULL
                                                 WITH DEFAULT ' '
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}L
         $@tbAtt;
  CREATE INDEX $cr.DSN_DETCOST_TABLE_IDX1
         ON $cr.DSN_DETCOST_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_SORT_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_SORT_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"QBLOCKNO"              SMALLINT      NOT NULL
          ,"PLANNO"                SMALLINT      NOT NULL
          ,"APPLNAME"              VARCHAR(24)   NOT NULL
          ,"PROGNAME"              VARCHAR(128)  NOT NULL
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"SORTC"                 CHAR(5)       NOT NULL WITH DEFAULT
          ,"SORTN"                 CHAR(5)       NOT NULL WITH DEFAULT
          ,"SORTNO"                SMALLINT      NOT NULL
          ,"KEYSIZE"               SMALLINT      NOT NULL
          ,"ORDERCLASS"            INTEGER       NOT NULL
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}M
         $@tbAtt;
  CREATE INDEX $cr.DSN_SORT_TABLE_IDX1
         ON $cr.DSN_SORT_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_SORTKEY_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_SORTKEY_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"QBLOCKNO"              SMALLINT      NOT NULL
          ,"PLANNO"                SMALLINT      NOT NULL
          ,"APPLNAME"              VARCHAR(24)   NOT NULL
          ,"PROGNAME"              VARCHAR(128)  NOT NULL
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"SORTNO"                SMALLINT      NOT NULL
          ,"ORDERNO"               SMALLINT      NOT NULL
          ,"EXPTYPE"               CHAR(3)       NOT NULL
          ,"TEXT"                  VARCHAR(128)  NOT NULL
          ,"TABNO"                 SMALLINT      NOT NULL
          ,"COLNO"                 SMALLINT      NOT NULL
          ,"DATATYPE"              CHAR(18)      NOT NULL
          ,"LENGTH"                INTEGER       NOT NULL
          ,"CCSID"                 INTEGER       NOT NULL
          ,"ORDERCLASS"            INTEGER       NOT NULL
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}N
         $@tbAtt;
  CREATE INDEX $cr.DSN_SORTKEY_TABLE_IDX1
         ON $cr.DSN_SORTKEY_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PGRANGE_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_PGRANGE_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"QBLOCKNO"              SMALLINT      NOT NULL
          ,"TABNO"                 SMALLINT      NOT NULL
          ,"RANGE"                 SMALLINT      NOT NULL
          ,"FIRSTPART"             SMALLINT      NOT NULL
          ,"LASTPART"              SMALLINT      NOT NULL
          ,"NUMPARTS"              SMALLINT      NOT NULL
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"APPLNAME"              VARCHAR(24)   NOT NULL WITH DEFAULT
          ,"PROGNAME"              VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}O
         $@tbAtt;
  CREATE INDEX $cr.DSN_PGRANGE_TABLE_IDX1
         ON $cr.DSN_PGRANGE_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_VIEWREF_TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_VIEWREF_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL WITH DEFAULT
          ,"APPLNAME"              VARCHAR(24)   NOT NULL WITH DEFAULT
          ,"PROGNAME"              VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"CREATOR"               VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"NAME"                  VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"TYPE"                  CHAR(1)       NOT NULL WITH DEFAULT
          ,"MQTUSE"                SMALLINT      NOT NULL WITH DEFAULT
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL WITH DEFAULT
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}P
         $@tbAtt;
  CREATE INDEX $cr.DSN_VIEWREF_TABLE_IDX1
         ON $cr.DSN_VIEWREF_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_QUERY_TABLE AND ITS INDEXES

  CREATE TABLE $cr.DSN_QUERY_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL
          ,"TYPE"                  CHAR(8)       NOT NULL
          ,"QUERY_STAGE"           CHAR(8)       NOT NULL
          ,"SEQNO"                 INTEGER       NOT NULL
          ,"NODE_DATA"             CLOB(2M)      NOT NULL
          ,"EXPLAIN_TIME"          TIMESTAMP     NOT NULL
          ,"QUERY_ROWID"           ROWID         NOT NULL
                                                 GENERATED BY DEFAULT
          ,"GROUP_MEMBER"          VARCHAR(24)   NOT NULL
          ,"HASHKEY"               INTEGER       NOT NULL
          ,"HAS_PRED"              CHAR(1)       NOT NULL
          ,"SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
          ,"APPLNAME"              VARCHAR(24)   NOT NULL WITH DEFAULT
          ,"PROGNAME"              VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
          ,"VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
$@  if $vers >= 11 then $@=¢
          ,"EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}I
         $@tbAtt;
  CREATE INDEX $cr.DSN_QUERY_TABLE_IDX1
         ON $cr.DSN_QUERY_TABLE
         ( "QUERYNO"
          ,"EXPLAIN_TIME"
         )
    $@ixAtt
;
  CREATE INDEX $cr.DSN_QUERY_TABLE_IDX2
         ON $cr.DSN_QUERY_TABLE
         ( "QUERYNO"
          ,"TYPE"
          ,"QUERY_STAGE"
          ,"EXPLAIN_TIME"
          ,"SEQNO"
         )
    $@ixAtt
;
  CREATE UNIQUE INDEX $cr.DSN_QUERY_TABLE_IDX3
         ON $cr.DSN_QUERY_TABLE
         ( "QUERY_ROWID"
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE AUXILIARY TABLE FOR THE V11 SAMPLE DSN_QUERY_TABLE
--AND ITS INDEX

  CREATE AUX TABLE $cr.DSN_QUERY_AUX
         IN $db.${tl}I
         STORES $cr.DSN_QUERY_TABLE
         COLUMN "NODE_DATA"
         PART 1;
  CREATE INDEX $cr.DSN_QUERY_AUXINX
         ON $cr.DSN_QUERY_AUX
    $@%¢ixAtt l $!
;

----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_QUERYINFO_TABLE AND ITS AUXILIARY TABLES
--AND INDEXES

  CREATE TABLE $cr.DSN_QUERYINFO_TABLE
         ( "QUERYNO"               INTEGER       NOT NULL WITH DEFAULT
         , "QBLOCKNO"              SMALLINT      NOT NULL WITH DEFAULT
         , "QINAME1"               VARCHAR(128)  NOT NULL WITH DEFAULT
         , "QINAME2"               VARCHAR(128)  NOT NULL WITH DEFAULT
         , "APPLNAME"              VARCHAR(24)   NOT NULL WITH DEFAULT
         , "PROGNAME"              VARCHAR(128)  NOT NULL WITH DEFAULT
         , "VERSION"               VARCHAR(122)  NOT NULL WITH DEFAULT
         , "COLLID"                VARCHAR(128)  NOT NULL WITH DEFAULT
         , "GROUP_MEMBER"          VARCHAR(24)   NOT NULL WITH DEFAULT
         , "SECTNOI"               INTEGER       NOT NULL WITH DEFAULT
         , "SEQNO"                 INTEGER       NOT NULL WITH DEFAULT
         , "EXPLAIN_TIME"          TIMESTAMP     NOT NULL WITH DEFAULT
         , "TYPE"                  CHAR(8)       NOT NULL WITH DEFAULT
         , "REASON_CODE"           SMALLINT      NOT NULL WITH DEFAULT
         , "QI_DATA"               CLOB(2M)      NOT NULL WITH DEFAULT
         , "SERVICE_INFO"          BLOB(2M)      NOT NULL WITH DEFAULT
         , "QB_INFO_ROWID"         ROWID         NOT NULL
                                                 GENERATED ALWAYS
$@  if $vers >= 11 then $@=¢
         , "EXPANSION_REASON"      CHAR(2)       NOT NULL WITH DEFAULT
$!
         )
         IN $db.${ts}Q
         $@tbAtt;
  CREATE AUX TABLE $cr.DSN_QUERYINFO_AUX
         IN $db.${tl}Q
         STORES $cr.DSN_QUERYINFO_TABLE
         COLUMN "QI_DATA"
         PART 1;
  CREATE INDEX $cr.DSN_QUERYINFO_AUXINX
         ON $cr.DSN_QUERYINFO_AUX
    $@%¢ixAtt l $!
;
  CREATE AUX TABLE $cr.DSN_QUERYINFO_AUX2
         IN $db.${tl}R
         STORES $cr.DSN_QUERYINFO_TABLE
         COLUMN "SERVICE_INFO"
         PART 1
;
  CREATE INDEX $cr.DSN_QUERYINFO_AUXINX2
         ON $cr.DSN_QUERYINFO_AUX2
    $@%¢ixAtt l $!
;

$@  if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_VIRTUAL_INDEXES TABLE AND ITS INDEX

  CREATE TABLE $cr.DSN_VIRTUAL_INDEXES
         ( "TBCREATOR"             VARCHAR(128)  NOT NULL
          ,"TBNAME"                VARCHAR(128)  NOT NULL
          ,"IXCREATOR"             VARCHAR(128)  NOT NULL
          ,"IXNAME"                VARCHAR(128)  NOT NULL
          ,"ENABLE"                CHAR(1)       NOT NULL
                                     CHECK("ENABLE" IN('Y','N'))
          ,"MODE"                  CHAR(1)       NOT NULL
                                     CHECK("MODE" IN('C','D'))
          ,"UNIQUERULE"            CHAR(1)       NOT NULL
                                     CHECK("UNIQUERULE" IN('D','U'))
          ,"COLCOUNT"              SMALLINT      NOT NULL
                                     CHECK("COLCOUNT" > 0)
          ,"CLUSTERING"            CHAR(1)       NOT NULL
                                     CHECK("CLUSTERING" IN('Y','N'))
          ,"NLEAF"                 INTEGER       NOT NULL
                                     CHECK("NLEAF" >= -1)
          ,"NLEVELS"               SMALLINT      NOT NULL
                                     CHECK("NLEVELS" >= -1)
          ,"INDEXTYPE"             CHAR(1)       NOT NULL WITH DEFAULT
                                     CHECK("INDEXTYPE" IN('D','2'))
          ,"PGSIZE"                SMALLINT      NOT NULL
                                     CHECK("PGSIZE" IN(4, 8, 16, 32))
          ,"FIRSTKEYCARDF"         FLOAT        NOT NULL WITH DEFAULT -1
                                     CHECK("FIRSTKEYCARDF" = -1
                                        OR "FIRSTKEYCARDF" >= 0)
          ,"FULLKEYCARDF"          FLOAT        NOT NULL WITH DEFAULT -1
                                     CHECK("FULLKEYCARDF" = -1
                                        OR "FULLKEYCARDF" >= 0)
          ,"CLUSTERRATIOF"         FLOAT        NOT NULL WITH DEFAULT -1
                                     CHECK("CLUSTERRATIOF" = -1
                                        OR "CLUSTERRATIOF" >= 0)
          ,"PADDED"                CHAR(1)       NOT NULL WITH DEFAULT
                                     CHECK("PADDED" IN(' ','Y','N'))
          ,"COLNO1"                SMALLINT
                                     CHECK("COLNO1" IS NULL
                                        OR "COLNO1" > 0)
          ,"ORDERING1"             CHAR(1)
                                     CHECK("ORDERING1" IS NULL
                                        OR "ORDERING1" IN('A','D'))
          ,"COLNO2"                SMALLINT
                                     CHECK("COLNO2" IS NULL
                                        OR "COLNO2" > 0)
          ,"ORDERING2"             CHAR(1)
                                     CHECK("ORDERING2" IS NULL
                                        OR "ORDERING2" IN('A','D'))
          ,"COLNO3"                SMALLINT
                                     CHECK("COLNO3" IS NULL
                                        OR "COLNO3" > 0)
          ,"ORDERING3"             CHAR(1)
                                     CHECK("ORDERING3" IS NULL
                                        OR "ORDERING3" IN('A','D'))
          ,"COLNO4"                SMALLINT
                                     CHECK("COLNO4" IS NULL
                                        OR "COLNO4" > 0)
          ,"ORDERING4"             CHAR(1)
                                     CHECK("ORDERING4" IS NULL
                                        OR "ORDERING4" IN('A','D'))
          ,"COLNO5"                SMALLINT
                                     CHECK("COLNO5" IS NULL
                                        OR "COLNO5" > 0)
          ,"ORDERING5"             CHAR(1)
                                     CHECK("ORDERING5" IS NULL
                                        OR "ORDERING5" IN('A','D'))
          ,"COLNO6"                SMALLINT
                                     CHECK("COLNO6" IS NULL
                                        OR "COLNO6" > 0)
          ,"ORDERING6"             CHAR(1)
                                     CHECK("ORDERING6" IS NULL
                                        OR "ORDERING6" IN('A','D'))
          ,"COLNO7"                SMALLINT
                                     CHECK("COLNO7" IS NULL
                                        OR "COLNO7" > 0)
          ,"ORDERING7"             CHAR(1)
                                     CHECK("ORDERING7" IS NULL
                                        OR "ORDERING7" IN('A','D'))
          ,"COLNO8"                SMALLINT
                                     CHECK("COLNO8" IS NULL
                                        OR "COLNO8" > 0)
          ,"ORDERING8"             CHAR(1)
                                     CHECK("ORDERING8" IS NULL
                                        OR "ORDERING8" IN('A','D'))
          ,"COLNO9"                SMALLINT
                                     CHECK("COLNO9" IS NULL
                                        OR "COLNO9" > 0)
          ,"ORDERING9"             CHAR(1)
                                     CHECK("ORDERING9" IS NULL
                                        OR "ORDERING9" IN('A','D'))
          ,"COLNO10"               SMALLINT
                                     CHECK("COLNO10" IS NULL
                                        OR "COLNO10" > 0)
          ,"ORDERING10"            CHAR(1)
                                     CHECK("ORDERING10" IS NULL
                                        OR "ORDERING10" IN('A','D'))
          ,"COLNO11"               SMALLINT
                                     CHECK("COLNO11" IS NULL
                                        OR "COLNO11" > 0)
          ,"ORDERING11"            CHAR(1)
                                     CHECK("ORDERING11" IS NULL
                                        OR "ORDERING11" IN('A','D'))
          ,"COLNO12"               SMALLINT
                                     CHECK("COLNO12" IS NULL
                                        OR "COLNO12" > 0)
          ,"ORDERING12"            CHAR(1)
                                     CHECK("ORDERING12" IS NULL
                                        OR "ORDERING12" IN('A','D'))
          ,"COLNO13"               SMALLINT
                                     CHECK("COLNO13" IS NULL
                                        OR "COLNO13" > 0)
          ,"ORDERING13"            CHAR(1)
                                     CHECK("ORDERING13" IS NULL
                                        OR "ORDERING13" IN('A','D'))
          ,"COLNO14"               SMALLINT
                                     CHECK("COLNO14" IS NULL
                                        OR "COLNO14" > 0)
          ,"ORDERING14"            CHAR(1)
                                     CHECK("ORDERING14" IS NULL
                                        OR "ORDERING14" IN('A','D'))
          ,"COLNO15"               SMALLINT
                                     CHECK("COLNO15" IS NULL
                                        OR "COLNO15" > 0)
          ,"ORDERING15"            CHAR(1)
                                     CHECK("ORDERING15" IS NULL
                                        OR "ORDERING15" IN('A','D'))
          ,"COLNO16"               SMALLINT
                                     CHECK("COLNO16" IS NULL
                                        OR "COLNO16" > 0)
          ,"ORDERING16"            CHAR(1)
                                     CHECK("ORDERING16" IS NULL
                                        OR "ORDERING16" IN('A','D'))
          ,"COLNO17"               SMALLINT
                                     CHECK("COLNO17" IS NULL
                                        OR "COLNO17" > 0)
          ,"ORDERING17"            CHAR(1)
                                     CHECK("ORDERING17" IS NULL
                                        OR "ORDERING17" IN('A','D'))
          ,"COLNO18"               SMALLINT
                                     CHECK("COLNO18" IS NULL
                                        OR "COLNO18" > 0)
          ,"ORDERING18"            CHAR(1)
                                     CHECK("ORDERING18" IS NULL
                                        OR "ORDERING18" IN('A','D'))
          ,"COLNO19"               SMALLINT
                                     CHECK("COLNO19" IS NULL
                                        OR "COLNO19" > 0)
          ,"ORDERING19"            CHAR(1)
                                     CHECK("ORDERING19" IS NULL
                                        OR "ORDERING19" IN('A','D'))
          ,"COLNO20"               SMALLINT
                                     CHECK("COLNO20" IS NULL
                                        OR "COLNO20" > 0)
          ,"ORDERING20"            CHAR(1)
                                     CHECK("ORDERING20" IS NULL
                                        OR "ORDERING20" IN('A','D'))
          ,"COLNO21"               SMALLINT
                                     CHECK("COLNO21" IS NULL
                                        OR "COLNO21" > 0)
          ,"ORDERING21"            CHAR(1)
                                     CHECK("ORDERING21" IS NULL
                                        OR "ORDERING21" IN('A','D'))
          ,"COLNO22"               SMALLINT
                                     CHECK("COLNO22" IS NULL
                                        OR "COLNO22" > 0)
          ,"ORDERING22"            CHAR(1)
                                     CHECK("ORDERING22" IS NULL
                                        OR "ORDERING22" IN('A','D'))
          ,"COLNO23"               SMALLINT
                                     CHECK("COLNO23" IS NULL
                                        OR "COLNO23" > 0)
          ,"ORDERING23"            CHAR(1)
                                     CHECK("ORDERING23" IS NULL
                                        OR "ORDERING23" IN('A','D'))
          ,"COLNO24"               SMALLINT
                                     CHECK("COLNO24" IS NULL
                                        OR "COLNO24" > 0)
          ,"ORDERING24"            CHAR(1)
                                     CHECK("ORDERING24" IS NULL
                                        OR "ORDERING24" IN('A','D'))
          ,"COLNO25"               SMALLINT
                                     CHECK("COLNO25" IS NULL
                                        OR "COLNO25" > 0)
          ,"ORDERING25"            CHAR(1)
                                     CHECK("ORDERING25" IS NULL
                                        OR "ORDERING25" IN('A','D'))
          ,"COLNO26"               SMALLINT
                                     CHECK("COLNO26" IS NULL
                                        OR "COLNO26" > 0)
          ,"ORDERING26"            CHAR(1)
                                     CHECK("ORDERING26" IS NULL
                                        OR "ORDERING26" IN('A','D'))
          ,"COLNO27"               SMALLINT
                                     CHECK("COLNO27" IS NULL
                                        OR "COLNO27" > 0)
          ,"ORDERING27"            CHAR(1)
                                     CHECK("ORDERING27" IS NULL
                                        OR "ORDERING27" IN('A','D'))
          ,"COLNO28"               SMALLINT
                                     CHECK("COLNO28" IS NULL
                                        OR "COLNO28" > 0)
          ,"ORDERING28"            CHAR(1)
                                     CHECK("ORDERING28" IS NULL
                                        OR "ORDERING28" IN('A','D'))
          ,"COLNO29"               SMALLINT
                                     CHECK("COLNO29" IS NULL
                                        OR "COLNO29" > 0)
          ,"ORDERING29"            CHAR(1)
                                     CHECK("ORDERING29" IS NULL
                                        OR "ORDERING29" IN('A','D'))
          ,"COLNO30"               SMALLINT
                                     CHECK("COLNO30" IS NULL
                                        OR "COLNO30" > 0)
          ,"ORDERING30"            CHAR(1)
                                     CHECK("ORDERING30" IS NULL
                                        OR "ORDERING30" IN('A','D'))
          ,"COLNO31"               SMALLINT
                                     CHECK("COLNO31" IS NULL
                                        OR "COLNO31" > 0)
          ,"ORDERING31"            CHAR(1)
                                     CHECK("ORDERING31" IS NULL
                                        OR "ORDERING31" IN('A','D'))
          ,"COLNO32"               SMALLINT
                                     CHECK("COLNO32" IS NULL
                                        OR "COLNO32" > 0)
          ,"ORDERING32"            CHAR(1)
                                     CHECK("ORDERING32" IS NULL
                                        OR "ORDERING32" IN('A','D'))
          ,"COLNO33"               SMALLINT
                                     CHECK("COLNO33" IS NULL
                                        OR "COLNO33" > 0)
          ,"ORDERING33"            CHAR(1)
                                     CHECK("ORDERING33" IS NULL
                                        OR "ORDERING33" IN('A','D'))
          ,"COLNO34"               SMALLINT
                                     CHECK("COLNO34" IS NULL
                                        OR "COLNO34" > 0)
          ,"ORDERING34"            CHAR(1)
                                     CHECK("ORDERING34" IS NULL
                                        OR "ORDERING34" IN('A','D'))
          ,"COLNO35"               SMALLINT
                                     CHECK("COLNO35" IS NULL
                                        OR "COLNO35" > 0)
          ,"ORDERING35"            CHAR(1)
                                     CHECK("ORDERING35" IS NULL
                                        OR "ORDERING35" IN('A','D'))
          ,"COLNO36"               SMALLINT
                                     CHECK("COLNO36" IS NULL
                                        OR "COLNO36" > 0)
          ,"ORDERING36"            CHAR(1)
                                     CHECK("ORDERING36" IS NULL
                                        OR "ORDERING36" IN('A','D'))
          ,"COLNO37"               SMALLINT
                                     CHECK("COLNO37" IS NULL
                                        OR "COLNO37" > 0)
          ,"ORDERING37"            CHAR(1)
                                     CHECK("ORDERING37" IS NULL
                                        OR "ORDERING37" IN('A','D'))
          ,"COLNO38"               SMALLINT
                                     CHECK("COLNO38" IS NULL
                                        OR "COLNO38" > 0)
          ,"ORDERING38"            CHAR(1)
                                     CHECK("ORDERING38" IS NULL
                                        OR "ORDERING38" IN('A','D'))
          ,"COLNO39"               SMALLINT
                                     CHECK("COLNO39" IS NULL
                                        OR "COLNO39" > 0)
          ,"ORDERING39"            CHAR(1)
                                     CHECK("ORDERING39" IS NULL
                                        OR "ORDERING39" IN('A','D'))
          ,"COLNO40"               SMALLINT
                                     CHECK("COLNO40" IS NULL
                                        OR "COLNO40" > 0)
          ,"ORDERING40"            CHAR(1)
                                     CHECK("ORDERING40" IS NULL
                                        OR "ORDERING40" IN('A','D'))
          ,"COLNO41"               SMALLINT
                                     CHECK("COLNO41" IS NULL
                                        OR "COLNO41" > 0)
          ,"ORDERING41"            CHAR(1)
                                     CHECK("ORDERING41" IS NULL
                                        OR "ORDERING41" IN('A','D'))
          ,"COLNO42"               SMALLINT
                                     CHECK("COLNO42" IS NULL
                                        OR "COLNO42" > 0)
          ,"ORDERING42"            CHAR(1)
                                     CHECK("ORDERING42" IS NULL
                                        OR "ORDERING42" IN('A','D'))
          ,"COLNO43"               SMALLINT
                                     CHECK("COLNO43" IS NULL
                                        OR "COLNO43" > 0)
          ,"ORDERING43"            CHAR(1)
                                     CHECK("ORDERING43" IS NULL
                                        OR "ORDERING43" IN('A','D'))
          ,"COLNO44"               SMALLINT
                                     CHECK("COLNO44" IS NULL
                                        OR "COLNO44" > 0)
          ,"ORDERING44"            CHAR(1)
                                     CHECK("ORDERING44" IS NULL
                                        OR "ORDERING44" IN('A','D'))
          ,"COLNO45"               SMALLINT
                                     CHECK("COLNO45" IS NULL
                                        OR "COLNO45" > 0)
          ,"ORDERING45"            CHAR(1)
                                     CHECK("ORDERING45" IS NULL
                                        OR "ORDERING45" IN('A','D'))
          ,"COLNO46"               SMALLINT
                                     CHECK("COLNO46" IS NULL
                                        OR "COLNO46" > 0)
          ,"ORDERING46"            CHAR(1)
                                     CHECK("ORDERING46" IS NULL
                                        OR "ORDERING46" IN('A','D'))
          ,"COLNO47"               SMALLINT
                                     CHECK("COLNO47" IS NULL
                                        OR "COLNO47" > 0)
          ,"ORDERING47"            CHAR(1)
                                     CHECK("ORDERING47" IS NULL
                                        OR "ORDERING47" IN('A','D'))
          ,"COLNO48"               SMALLINT
                                     CHECK("COLNO48" IS NULL
                                        OR "COLNO48" > 0)
          ,"ORDERING48"            CHAR(1)
                                     CHECK("ORDERING48" IS NULL
                                        OR "ORDERING48" IN('A','D'))
          ,"COLNO49"               SMALLINT
                                     CHECK("COLNO49" IS NULL
                                        OR "COLNO49" > 0)
          ,"ORDERING49"            CHAR(1)
                                     CHECK("ORDERING49" IS NULL
                                        OR "ORDERING49" IN('A','D'))
          ,"COLNO50"               SMALLINT
                                     CHECK("COLNO50" IS NULL
                                        OR "COLNO50" > 0)
          ,"ORDERING50"            CHAR(1)
                                     CHECK("ORDERING50" IS NULL
                                        OR "ORDERING50" IN('A','D'))
          ,"COLNO51"               SMALLINT
                                     CHECK("COLNO51" IS NULL
                                        OR "COLNO51" > 0)
          ,"ORDERING51"            CHAR(1)
                                     CHECK("ORDERING51" IS NULL
                                        OR "ORDERING51" IN('A','D'))
          ,"COLNO52"               SMALLINT
                                     CHECK("COLNO52" IS NULL
                                        OR "COLNO52" > 0)
          ,"ORDERING52"            CHAR(1)
                                     CHECK("ORDERING52" IS NULL
                                        OR "ORDERING52" IN('A','D'))
          ,"COLNO53"               SMALLINT
                                     CHECK("COLNO53" IS NULL
                                        OR "COLNO53" > 0)
          ,"ORDERING53"            CHAR(1)
                                     CHECK("ORDERING53" IS NULL
                                        OR "ORDERING53" IN('A','D'))
          ,"COLNO54"               SMALLINT
                                     CHECK("COLNO54" IS NULL
                                        OR "COLNO54" > 0)
          ,"ORDERING54"            CHAR(1)
                                     CHECK("ORDERING54" IS NULL
                                        OR "ORDERING54" IN('A','D'))
          ,"COLNO55"               SMALLINT
                                     CHECK("COLNO55" IS NULL
                                        OR "COLNO55" > 0)
          ,"ORDERING55"            CHAR(1)
                                     CHECK("ORDERING55" IS NULL
                                        OR "ORDERING55" IN('A','D'))
          ,"COLNO56"               SMALLINT
                                     CHECK("COLNO56" IS NULL
                                        OR "COLNO56" > 0)
          ,"ORDERING56"            CHAR(1)
                                     CHECK("ORDERING56" IS NULL
                                        OR "ORDERING56" IN('A','D'))
          ,"COLNO57"               SMALLINT
                                     CHECK("COLNO57" IS NULL
                                        OR "COLNO57" > 0)
          ,"ORDERING57"            CHAR(1)
                                     CHECK("ORDERING57" IS NULL
                                        OR "ORDERING57" IN('A','D'))
          ,"COLNO58"               SMALLINT
                                     CHECK("COLNO58" IS NULL
                                        OR "COLNO58" > 0)
          ,"ORDERING58"            CHAR(1)
                                     CHECK("ORDERING58" IS NULL
                                        OR "ORDERING58" IN('A','D'))
          ,"COLNO59"               SMALLINT
                                     CHECK("COLNO59" IS NULL
                                        OR "COLNO59" > 0)
          ,"ORDERING59"            CHAR(1)
                                     CHECK("ORDERING59" IS NULL
                                        OR "ORDERING59" IN('A','D'))
          ,"COLNO60"               SMALLINT
                                     CHECK("COLNO60" IS NULL
                                        OR "COLNO60" > 0)
          ,"ORDERING60"            CHAR(1)
                                     CHECK("ORDERING60" IS NULL
                                        OR "ORDERING60" IN('A','D'))
          ,"COLNO61"               SMALLINT
                                     CHECK("COLNO61" IS NULL
                                        OR "COLNO61" > 0)
          ,"ORDERING61"            CHAR(1)
                                     CHECK("ORDERING61" IS NULL
                                        OR "ORDERING61" IN('A','D'))
          ,"COLNO62"               SMALLINT
                                     CHECK("COLNO62" IS NULL
                                        OR "COLNO62" > 0)
          ,"ORDERING62"            CHAR(1)
                                     CHECK("ORDERING62" IS NULL
                                        OR "ORDERING62" IN('A','D'))
          ,"COLNO63"               SMALLINT
                                     CHECK("COLNO63" IS NULL
                                        OR "COLNO63" > 0)
          ,"ORDERING63"            CHAR(1)
                                     CHECK("ORDERING63" IS NULL
                                        OR "ORDERING63" IN('A','D'))
          ,"COLNO64"               SMALLINT
                                     CHECK("COLNO64" IS NULL
                                        OR "COLNO64" > 0)
          ,"ORDERING64"            CHAR(1)
                                     CHECK("ORDERING64" IS NULL
                                        OR "ORDERING64" IN('A','D'))
$@  if $vers >= 11 then $@=¢
          ,"KEYTARGET_COUNT"       SMALLINT     NOT NULL WITH DEFAULT
                                     CHECK("KEYTARGET_COUNT" >= 0)
          ,"UNIQUE_COUNT"          SMALLINT     NOT NULL WITH DEFAULT
                                     CHECK("UNIQUE_COUNT" >= 0)
          ,"IX_EXTENSION_TYPE"     CHAR(1)      NOT NULL WITH DEFAULT
                                     CHECK("IX_EXTENSION_TYPE"
                                        IN (' ','S','V'))
          ,"DATAREPEATFACTORF"     FLOAT        NOT NULL WITH DEFAULT -1
                                     CHECK("DATAREPEATFACTORF" = -1
                                        OR "DATAREPEATFACTORF" >= 1)
          ,"SPARSE"                CHAR(1)      NOT NULL
                                                WITH DEFAULT 'N'
                                     CHECK("SPARSE" IN ('N','Y','X'))
$!
         )
         IN $db.${ts}J
         $@tbAtt;
  CREATE INDEX $cr.DSN_VIRTUAL_INDEXES_IDX1
         ON $cr.DSN_VIRTUAL_INDEXES
         ( "TBCREATOR"
          ,"TBNAME"
         )
    $@ixAtt
;

$!
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_COLDIST_TABLE

  CREATE TABLE $cr.DSN_COLDIST_TABLE
        ( "QUERYNO"                INTEGER       NOT NULL
         ,"APPLNAME"               VARCHAR(128)  NOT NULL
         ,"PROGNAME"               VARCHAR(128)  NOT NULL
         ,"COLLID"                 VARCHAR(128)  NOT NULL
         ,"GROUP_MEMBER"           VARCHAR(128)  NOT NULL
         ,"SECTNOI"                INTEGER       NOT NULL
         ,"VERSION"                VARCHAR(122)  NOT NULL
         ,"EXPLAIN_TIME"           TIMESTAMP     NOT NULL
         ,"SCHEMA"                 VARCHAR(128)  NOT NULL
         ,"TBNAME"                 VARCHAR(128)  NOT NULL
         ,"NAME"                   VARCHAR(128)  NOT NULL
         ,"COLVALUE"               VARCHAR(2000) NOT NULL FOR BIT DATA
         ,"TYPE"                   CHAR(1)       NOT NULL
         ,"CARDF"                  FLOAT         NOT NULL
         ,"COLGROUPCOLNO"          VARCHAR(254)  NOT NULL FOR BIT DATA
         ,"NUMCOLUMNS"             SMALLINT      NOT NULL
         ,"FREQUENCYF"             FLOAT         NOT NULL
         ,"QUANTILENO"             SMALLINT      NOT NULL
         ,"LOWVALUE"               VARCHAR(2000) NOT NULL FOR BIT DATA
         ,"HIGHVALUE"              VARCHAR(2000) NOT NULL FOR BIT DATA
$@  if $vers >= 11 then $@=¢
         ,"EXPANSION_REASON"       CHAR(2)       NOT NULL WITH DEFAULT
$!
        )
      IN $db.${ts}S
   $@tbAtt;


-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_KEYTGTDIST_TABLE

  CREATE TABLE $cr.DSN_KEYTGTDIST_TABLE
        ( "QUERYNO"                INTEGER       NOT NULL
         ,"APPLNAME"               VARCHAR(128)  NOT NULL
         ,"PROGNAME"               VARCHAR(128)  NOT NULL
         ,"COLLID"                 VARCHAR(128)  NOT NULL
         ,"GROUP_MEMBER"           VARCHAR(128)  NOT NULL
         ,"SECTNOI"                INTEGER       NOT NULL
         ,"VERSION"                VARCHAR(122)  NOT NULL
         ,"EXPLAIN_TIME"           TIMESTAMP     NOT NULL
         ,"IXSCHEMA"               VARCHAR(128)  NOT NULL
         ,"IXNAME"                 VARCHAR(128)  NOT NULL
         ,"KEYSEQ"                 VARCHAR(128)  NOT NULL
         ,"KEYVALUE"               VARCHAR(2000) NOT NULL FOR BIT DATA
         ,"TYPE"                   CHAR(1)       NOT NULL
         ,"CARDF"                  FLOAT         NOT NULL
         ,"KEYGROUPKEYNO"          VARCHAR(254)  NOT NULL FOR BIT DATA
         ,"NUMKEYS"                SMALLINT      NOT NULL
         ,"FREQUENCYF"             FLOAT         NOT NULL
         ,"QUANTILENO"             SMALLINT      NOT NULL
         ,"LOWVALUE"               VARCHAR(2000) NOT NULL FOR BIT DATA
         ,"HIGHVALUE"              VARCHAR(2000) NOT NULL FOR BIT DATA
$@  if $vers >= 11 then $@=¢
         ,"EXPANSION_REASON"       CHAR(2)       NOT NULL WITH DEFAULT
$!
        )
      IN $db.${ts}T
   $@tbAtt;


$@  if $vers >= 11 then $@=¢
$@  if $queryT then $@=¢
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_PREDICATE_SELECTIVITY TABLE

  CREATE TABLE $cr.DSN_PREDICATE_SELECTIVITY
        ( "QUERYNO"                INTEGER       NOT NULL
        , "QBLOCKNO"               SMALLINT      NOT NULL
        , "APPLNAME"               VARCHAR(24)   NOT NULL
        , "PROGNAME"               VARCHAR(128)  NOT NULL
        , "SECTNOI"                INTEGER       NOT NULL WITH DEFAULT
        , "COLLID"                 VARCHAR(128)  NOT NULL WITH DEFAULT
        , "VERSION"                VARCHAR(122)  NOT NULL WITH DEFAULT
        , "PREDNO"                 INTEGER       NOT NULL
        , "INSTANCE"               SMALLINT      NOT NULL
        , "SELECTIVITY"            FLOAT         NOT NULL
        , "WEIGHT"                 FLOAT(4)      NOT NULL
        , "ASSUMPTION"             VARCHAR(128)  NOT NULL
        , "INSERT_TIME"            TIMESTAMP     NOT NULL
                                                 GENERATED ALWAYS
                                                 FOR EACH ROW ON UPDATE
                                                 AS ROW CHANGE TIMESTAMP
        , "EXPLAIN_TIME"           TIMESTAMP
        , "REMARKS"                VARCHAR(762)
        , "EXPANSION_REASON"       CHAR(2)       NOT NULL WITH DEFAULT
        )
      IN $db.${ts}U
   $@tbAtt;

  CREATE INDEX $cr.DSN_PREDSEL_IX1
         ON $cr.DSN_PREDICATE_SELECTIVITY
         ( "QUERYNO"
         )
    $@ixAtt
;
$!
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_STAT_FEEDBACK TABLE

  CREATE TABLE $cr.DSN_STAT_FEEDBACK
        ( "QUERYNO"                INTEGER       NOT NULL
        , "APPLNAME"               VARCHAR(24)   NOT NULL
        , "PROGNAME"               VARCHAR(128)  NOT NULL
        , "COLLID"                 VARCHAR(128)  NOT NULL
        , "GROUP_MEMBER"           VARCHAR(24)   NOT NULL
        , "EXPLAIN_TIME"           TIMESTAMP     NOT NULL
        , "SECTNOI"                INTEGER       NOT NULL WITH DEFAULT
        , "VERSION"                VARCHAR(122)  NOT NULL WITH DEFAULT
        , "TBCREATOR"              VARCHAR(128)  NOT NULL
        , "TBNAME"                 VARCHAR(128)  NOT NULL
        , "IXCREATOR"              VARCHAR(128)  NOT NULL
        , "IXNAME"                 VARCHAR(128)  NOT NULL
        , "COLNAME"                VARCHAR(128)  NOT NULL
        , "NUMCOLUMNS"             SMALLINT      NOT NULL
        , "COLGROUPCOLNO"          VARCHAR(254)  NOT NULL FOR BIT DATA
        , "TYPE"                   CHAR(1)       NOT NULL
        , "DBNAME"                 VARCHAR(24)   NOT NULL
        , "TSNAME"                 VARCHAR(24)   NOT NULL
        , "REASON"                 CHAR(8)       NOT NULL
        , "REMARKS"                VARCHAR(254)  NOT NULL
        )
      IN $db.${ts}W
   $@tbAtt;

$@  if $queryV then $@=¢
-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_VIRTUAL_KEYTARGETS TABLE

  CREATE TABLE $cr.DSN_VIRTUAL_KEYTARGETS
        ( "ENABLE"                 CHAR(1)       NOT NULL
                                     CHECK("ENABLE" IN ('Y','N'))
        , "IXNAME"                 VARCHAR(128)  NOT NULL
        , "IXSCHEMA"               VARCHAR(128)  NOT NULL
        , "KEYSEQ"                 SMALLINT      NOT NULL WITH DEFAULT
                                     CHECK("KEYSEQ" >= 0)
        , "COLNO"                  SMALLINT      NOT NULL WITH DEFAULT
                                     CHECK("COLNO" >= 0)
        , "ORDERING"               CHAR(1)       NOT NULL
                                     CHECK("ORDERING" IN ('A'))
        , "TYPESCHEMA"             VARCHAR(128)  NOT NULL
        , "TYPENAME"               VARCHAR(128)  NOT NULL
        , "LENGTH"                 SMALLINT      NOT NULL
                                     CHECK("LENGTH" > 0)
        , "LENGTH2"                INTEGER       NOT NULL
                                     CHECK("LENGTH2" >= 0)
        , "SCALE"                  SMALLINT      NOT NULL WITH DEFAULT
                                     CHECK("SCALE" >= 0)
        , "NULLS"                  CHAR(1)       NOT NULL
                                                 WITH DEFAULT 'N'
                                     CHECK("NULLS" IN ('Y','N'))
        , "CCSID"                  INTEGER       NOT NULL
                                     CHECK("CCSID" >= 0)
        , "SUBTYPE"                CHAR(1)       NOT NULL
                                     CHECK("SUBTYPE"
                                        IN ('B','M','S',' '))
        , "DERIVED_FROM"           VARCHAR(4000) NOT NULL
        , "CARDF"                  FLOAT         NOT NULL
                                                 WITH DEFAULT -1
                                     CHECK("CARDF" >= 0
                                        OR "CARDF" = -1
                                        OR "CARDF" = -2)
        )
      IN $db.${ts}X
   $@tbAtt;
$!
$!

$/expDdl/

$proc $@=/uQuDdl/
-----------------------------------------------------------------------
--  NAME = DSNTESH  aus SDSNSAMP(DSNTESH)
--
--  DESCRIPTIVE NAME = CREATE THE DB2 V11 SAMPLE DSN_USERQUERY_TABLE
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACES FOR THE V11 SAMPLE DSN_USERQUERY_TABLE

  CREATE TABLESPACE ${ts}V
     IN $db
     $@tsAtt
;

--CREATE THE SAMPLE TABLESPACES FOR THE V11 DSN_USERQUERY_TABLE_AUX

  CREATE LOB TABLESPACE ${tl}V
     IN $db
     $@lobAtt
;

-----------------------------------------------------------------------
--CREATE THE V11 SAMPLE DSN_USERQUERY_TABLE
-----------------------------------------------------------------------
  CREATE TABLE $cr.DSN_USERQUERY_TABLE
         ( "QUERYNO"            INTEGER      NOT NULL PRIMARY KEY
         , "SCHEMA"             VARCHAR(128) NOT NULL DEFAULT ' '
         , "HINT_SCOPE"         SMALLINT     NOT NULL DEFAULT 0
         , "QUERY_TEXT"         CLOB(2M)     NOT NULL
         , "QUERY_ROWID"        ROWID        NOT NULL GENERATED ALWAYS
         , "QUERYID"            BIGINT       NOT NULL DEFAULT 0
         , "USERFILTER"         CHAR(8)      NOT NULL DEFAULT ' '
         , "OTHER_OPTIONS"      CHAR(128)    NOT NULL DEFAULT ' '
         , "COLLECTION"         VARCHAR(128) NOT NULL DEFAULT ' '
         , "PACKAGE"            VARCHAR(128) NOT NULL DEFAULT ' '
         , "VERSION"            VARCHAR(128) NOT NULL DEFAULT ' '
         , "REOPT"              CHAR(1)      NOT NULL DEFAULT ' '
         , "STARJOIN"           CHAR(1)      NOT NULL DEFAULT ' '
         , "MAX_PAR_DEGREE"     INTEGER      NOT NULL DEFAULT -1
         , "DEF_CURR_DEGREE"    CHAR(3)      NOT NULL DEFAULT ' '
         , "SJTABLES"           INTEGER      NOT NULL DEFAULT -1
         , "OTHER_PARMS"        VARCHAR(128) NOT NULL DEFAULT ' '
$@ if $vers >= 11 then $@=¢
         , "SELECTVTY_OVERRIDE" CHAR(1)      NOT NULL DEFAULT 'N'
         , "ACCESSPATH_HINT"    CHAR(1)      NOT NULL DEFAULT ' '
         , "OPTION_OVERRIDE"    CHAR(1)      NOT NULL DEFAULT ' '
$!
         )
         IN $db.${ts}V
;

  CREATE AUX TABLE $cr.DSN_USERQUERY_TABLE_AUX
         IN $db.${tl}V
         STORES $cr.DSN_USERQUERY_TABLE
         COLUMN QUERY_TEXT
         PART 1
;

-----------------------------------------------------------------------
--CREATE THE PRIMARY KEY INDEX ON THE V11 SAMPLE DSN_USERQUERY_TABLE
-----------------------------------------------------------------------
  CREATE UNIQUE INDEX $cr.DSN_USERQUERY_TABLE_IX1
         ON $cr.DSN_USERQUERY_TABLE
         ( "QUERYNO"            ASC
         )
    $@ixAtt
;

-----------------------------------------------------------------------
--CREATE THE INDEX ON THE V11 SAMPLE DSN_USERQUERY_TABLE AUXILIARY TBL
-----------------------------------------------------------------------
  CREATE INDEX $cr.DSN_USERQUERY_TABLE_AUX_IX
         ON $cr.DSN_USERQUERY_TABLE_AUX
    $@%¢ixAtt l $!
;
$/uQuDdl/

$proc $@/ddlPlus/
    if $f2P & ($fun == 'u' | $fun == 'v') then $@¢
        if symbol('m.iTb.F2PLAN_TABLE') == 'VAR' then $@¢
            tx = m.iTb.F2PLAN_TABLE
            if m.iTb.tx.colCount <> 6 | m.iTb.tx.col <> 'IDNO' then $@¢
              if $fun == 'v' then $@¢
                say 'warning f2Plan_table bad format buf fun = v'
              $! else $@¢
                if m.iTb.tx.nTables = 1 then
                    d = 'drop tablespace' m.iTb.tx.db'.'m.iTb.tx.ts
                else
                    d = 'drop table' $cr'.F2PLAN_TABLE'
                $$- d'; commit;'
                drop m.iTb.F2PLAN_TABLE
              $!
            $!
            $!
        $!
    if $f2P & ($fun == 'c' | $fun == 'r' ,
       | ($fun = 'u' & symbol('m.iTb.F2PLAN_TABLE')<>'VAR')) then $@=¢
-----------------------------------------------------------------------
--CREATE THE SAMPLE TABLESPACES FOR fileAid F2PLAN_TABLE
  CREATE TABLESPACE ${ts}0
     IN $db
     $@tsAtt
;

----fileAid plan table -----------------------------------------
CREATE TABLE $cr.F2PLAN_TABLE
  ( TIMESTAMP            CHAR(16) FOR SBCS DATA NOT NULL
      WITH DEFAULT
  , STMTNO               INTEGER NOT NULL WITH DEFAULT
  , SEQNO                INTEGER NOT NULL WITH DEFAULT
  , TEXT                 VARCHAR(3800) FOR SBCS DATA NOT NULL
      WITH DEFAULT
  , REMARKS              CHAR(64) FOR Bit DATA NOT NULL
      WITH DEFAULT
  , IDNO Integer not null with default
  )
  IN ${db}.${ts}0
  $@tbAtt
;
$!
$@/planIx/
$@%¢ixKeys keys drop PLAN_TABLE_idx1 $!
if $keys == 'QUERYNO<EXPLAIN_TIME<' then $@¢
$! else if $fun == 'v' then $@¢
    say 'warning fun=v but index PLAN_TABLE_idx1:' $keys
$! else $@=¢
$=doReo=- $doReo | ($defer == 'YES')
  $drop
  CREATE INDEX $cr.PLAN_TABLE_idx1
         ON $cr.PLAN_Table
         ( "QUERYNO"
          ,explain_time
         )
      CLUSTER
      $@ixAtt
;
$!
$@%¢ixKeys keys drop PLAN_TABLE_PROG_IX $!
if $keys == 'PROGNAME<COLLID<VERSION<EXPLAIN_TIME<QUERYNO<' ,
     then $@¢
$! else if $fun == 'v' then $@¢
    say 'warning fun=v but index PLAN_TABLE_PROG_IX:' $keys
$! else $@=¢
$=doReo=- $doReo | ($defer == 'YES')
  $drop
  CREATE INDEX $cr.PLAN_TABLE_PROG_ix
    ON $cr.PLAN_Table
     (PROGNAME              ASC,
      COLLID                ASC,
      VERSION               ASC,
      explain_time          ASC,
      QUERYNO               ASC)
    $@ixAtt
;
$!
$/planIx/
$/ddlPlus/

$proc $@=/creViews/
--- versionen, compiles und explains eines packages -------------------
             -- does not work if plan_table ebcdic ||
create view $cr.plan_view0 as
with e as (
select p.collid
     , p.name    prog
     , p.version
     , count(e.collid) expCnt
     , e.explain_time
     , case when e.explain_time is null then 'p'
            when e.explain_time > min(p.bindTime) then '>'
            when e.explain_time = min(p.bindTime) then '='
                                     else '<' end c
     , min(p.pcTimeStamp) pcTimestamp
     , min(p.lastUsed) lastUsed
     , min(p.conToken) conToken
     , sum(case when e.hint_Used = '' or e.hint_Used is null
         then 0 else 1 end) hiUse
     , sum(case when e.optHint = '' or e.optHint is null
         then 0 else 1 end) optHi
     , max(max(e.optHint, hint_Used)) hint
    from sysIbm.sysPackage p
      left join $cr.plan_table e
      on e.collid = p.collid and e.progName = p.name
        and e.version = p.version
    where p.location = ''
    group by p.collid, p.name, p.version, e.explain_time
union all select collid
     , progName prog
     , version
     , count(e.collid) expCnt
     , e.explain_time
     , 'e' c
     , cast(null as timestamp) pcTimestamp
     , cast(null as date) lastUsed
     , cast(null as char(8)) conToken
     , sum(case when hint_Used = '' then 0 else 1 end) hiUse
     , sum(case when e.optHint = '' then 0 else 1 end) optHi
     , max(max(e.optHint, hint_Used)) hint
    from $cr.plan_table e
    where not exists (select 1 from sysibm.sysPackage p
             where e.collid = p.collid and e.progName = p.name
                 and e.version = p.version and p.location = '' )
    group by e.collid, e.progName, e.version, e.explain_time
)
select substr(collid, 1, 6) "collid"
     , substr(prog, 1, 8) "prog"
     , substr(version, 1, 21) "version"
     , smallint(expCnt) "expCnt"
     , explain_time, c, pcTimestamp, lastUsed
     , smallint(hiUse) "hiUse"
     , smallint(optHi) "optHi"
     , substr(hint, 1, 8) "hint"
     , hex(conToken) conToken, collid, prog, version
     , coalesce(pcTimestamp, explain_time) pcEx
    from e
;
CREATE VIEW $cr.PLAN_VIEW1 AS
select  substr(right('     ' || strip(char(queryNo))   , 6)
            || right('  '    || strip(char(qBlockNo))  , 2)
            || right('  '    || strip(char(planNo))    , 2)
            || right('  '    || strip(char(mixOpSeq)), 1)
            ,1 ,11) "Queryn B PM",
  /*    CASE WHEN ACCESSTYPE = 'R  ' THEN '       '
             when PRIMARY_ACCESSTYPE = 'D' THEN '       '
             ELSE SUBSTR(ACCESSNAME, 1, 12) END AS "INDEX",   */
        SUBSTR(ACCESSNAME, 1, 12)  "index",
        CASE ACCESSTYPE when '  ' THEN '      '
                        when 'E ' THEN 'dirRow'
                        WHEN 'H ' THEN 'hash'
                        WHEN 'I ' THEN 'ixScan'
                        WHEN 'IN' THEN 'ixInMe'
                        WHEN 'I1' THEN 'ixOne '
                        WHEN 'N ' THEN 'ixScIn'
                        WHEN 'NR' THEN 'raLiAc'
                        WHEN 'M ' THEN 'ixMult'
                        WHEN 'MX' THEN 'ixMSca'
                        WHEN 'MI' THEN 'ixMInt'
                        WHEN 'MU' THEN 'ixMUni'
                        WHEN 'R ' THEN 'tsScan'
                        WHEN 'RW' THEN 'woScan'
                        WHEN 'T ' THEN 'ixSPRS'
                        WHEN 'V ' THEN 'insBuf'
                        ELSE '??' || primary_accessType || '??'
        end
        || CASE PRIMARY_ACCESSTYPE when ' ' then ''
                                   when 'D' then ' dirR'
                                   when 'P' then ' part'
                                   when 'T' then ' spar'
                                   else  ' p??'||primary_accessType
        END AS ACCESS,
        substr(CASE WHEN METHOD = 3 THEN ''
             WHEN ACCESSTYPE = 'R ' THEN ''
             ELSE right(' ' || MATCHCOLS, 2) || indexOnly
             END, 1, 3) AS "mcO",
        SUBSTR(TNAME, 1, 12) AS "TABLE",
        substr(CASE WHEN A.TABLE_TYPE IS NULL THEN '   '
           WHEN   A.TABLE_TYPE = 'B' THEN 'buf'
           WHEN   A.TABLE_TYPE = 'C' THEN 'cte'
           WHEN   A.TABLE_TYPE = 'F' THEN 'fun'
           WHEN   A.TABLE_TYPE = 'I' THEN 'inL'
           WHEN   A.TABLE_TYPE = 'M' THEN 'mqt'
           WHEN   A.TABLE_TYPE = 'Q' THEN 'vqt'
           WHEN   A.TABLE_TYPE = 'R' THEN 'rte'
           WHEN   A.TABLE_TYPE = 'S' THEN 'sub'
           WHEN   A.TABLE_TYPE = 'T' THEN 'tb '
           WHEN   A.TABLE_TYPE = 'W' THEN 'wrk'
           ELSE   A.TABLE_TYPE || '??' END
          || right('   ' || tabNo, 3)
          || ' ' || coalesce(CORRELATION_NAME, '')
         , 1, 10) as "tTy no cor",
        substr(
          CASE JOIN_TYPE WHEN '' THEN ''
                         WHEN 'F' THEN 'full '
                         WHEN 'L' THEN 'left '
                         WHEN 'S' THEN 'star '
                         ELSE '??' || join_type || ' ' END
          || CASE METHOD when 0    THEN ''
                         WHEN 1 THEN 'nlJoin'
                         when 2 THEN 'smJoin'
                         WHEN 3 THEN 'sort  '
                         WHEN 4 THEN 'hyJoin'
                         ELSE '' || method END, 1, 8) AS "join/met",
        SORTC_UNIQ || SORTC_JOIN || SORTC_ORDERBY ||  SORTC_GROUPBY
        || ' ' ||
        SORTN_UNIQ || SORTN_JOIN || SORTN_ORDERBY ||  SORTN_GROUPBY
            "ujog>ujog",
        QBLOCK_TYPE AS "TYPE",
        TSLOCKMODE AS LCK,
        CASE PARALLELISM_MODE WHEN 'C' THEN 'CPU'
            WHEN 'I' THEN 'I-O'
            WHEN 'X' THEN 'SYSPLEX'
            ELSE NULL END AS PARAL,
        STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') || ' '
            || STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG,
        STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0')|| ' '
            || STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') PG_DEG,
        STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC,
        PREFETCH AS PRE,
        page_range as pgRa,
        substr(opthint, 1, 10) optHint,
        substr(hint_used, 1, 10) hint_used,
            -- full length names
        TNAME, ACCESSNAME, accessType, method,
            -- package identifikation
        collid, progName, applName, version, explain_time,
            -- query node identificaten
        queryno, qBlockNo, planno, mixopSeq, timestamp,
            PARENT_QBLOCKNO
     FROM $cr.PLAN_TABLE A
;
------------------------------------------------------------------------
   CREATE VIEW $cr.PLAN_VIEW2 AS

   SELECT CASE WHEN METHOD = 3 THEN '  '
               ELSE substr(right('         '
                    || strip(CHAR(S.PROCMS)),9), 1, 9) END AS MSEC,
        a.*,
        S.COST_CATEGORY,
        S.PROCMS, S.PROCSU, S.REASON
     FROM $cr.PLAN_VIEW1 A
     LEFT OUTER JOIN
          $cr.DSN_STATEMNT_TABLE S
       ON    S."COLLID"     = A."COLLID"
         AND S.APPLNAME     = A.APPLNAME
         AND S.PROGNAME     = A.PROGNAME
         AND S.EXPLAIN_TIME = A.explain_time
         AND S.QUERYNO      = A.QUERYNO
;
------------------------------------------------------------------------
$@creViewsFun
          -- use of view1 instead of view2 directly
          --       because otherwise optimizer makes TS Scan ||||
CREATE VIEW $cr.PLAN_VIEW5 AS
   with l as
   ( select collid, progName, max(r.explain_time) explain_time
             FROM $cr.PLAN_TABLE r
             group by collid, progName
   )
   select CASE WHEN METHOD = 3 THEN '  '
               ELSE substr(right('         '
                    || strip(CHAR(S.PROCMS)),9), 1, 9) END AS MSEC
         , a.*
         ,    S.COST_CATEGORY,
              S.PROCMS, S.PROCSU, S.REASON
     FROM l
       join $cr.PLAN_VIEW1 a
       on      A.collid    = l.collid
           AND A.PROGNAME  = l.PROGNAME
           AND A.explain_time = l.explain_time
           LEFT OUTER JOIN
                $cr.DSN_STATEMNT_TABLE S
             ON    S."COLLID"     = A."COLLID"
               AND S.APPLNAME     = A.APPLNAME
               AND S.PROGNAME     = A.PROGNAME
               AND S.EXPLAIN_TIME = A.explain_time
               AND S.QUERYNO      = A.QUERYNO
;
------------ Ende user Views ----- cmnViews = $cmnViews----------------
$@ if $cmnViews then $@=/cmnViews/
$@ call err 'cmnViews are deImplemented'
------------ diese views braucht es nur für changeman -----------------
------------------------------------------------------------------------
CREATE VIEW      $cr.PLAN_VIEW3
( QN,QB,AP,PG, PN,ME,CR,TN,TO, AT,JT,MC,AN,IO, SP,SU,SJ, SO, SG,ZP,ZU,
ZJ, ZO,ZG,TL,TS,PR,EV, CO,VR,MO, AD,AI, JD,JI, PA,MJ,CN, PF,GM,WO,QT,
 BT,RM,SD, OH,HU,PAC )
 AS SELECT QUERYNO, QBLOCKNO, APPLNAME, PROGNAME, PLANNO, METHOD,
 CREATOR, TNAME, TABNO, ACCESSTYPE, JOIN_TYPE, MATCHCOLS, ACCESSNAME,
 INDEXONLY, SORTN_PGROUP_ID, SORTN_UNIQ, SORTN_JOIN, SORTN_ORDERBY,
 SORTN_GROUPBY, SORTC_PGROUP_ID, SORTC_UNIQ, SORTC_JOIN, SORTC_ORDERBY,
 SORTC_GROUPBY, TSLOCKMODE, TIMESTAMP, PREFETCH, COLUMN_FN_EVAL, COLLID,
 VERSION, MIXOPSEQ, ACCESS_DEGREE, ACCESS_PGROUP_ID, JOIN_DEGREE,
 JOIN_PGROUP_ID, PARALLELISM_MODE, MERGE_JOIN_COLS, CORRELATION_NAME,
 PAGE_RANGE, GROUP_MEMBER, WHEN_OPTIMIZE, QBLOCK_TYPE, explain_time,
 REMARKS, IBM_SERVICE_DATA, OPTHINT, HINT_USED, PRIMARY_ACCESSTYPE
 FROM $cr.PLAN_TABLE
;
------------------------------------------------------------------------
CREATE VIEW $cr.PLAN_VIEW6 AS
  SELECT SUBSTR(A.PROGNAME, 1, 8) AS PROGNAME,
         SUBSTR(DIGITS(A."QUERYNO"), 5) AS STMT,

         CASE WHEN A.METHOD = 3
              THEN '       '
--            ELSE SUBSTR(CHAR(S.PROCSU), 1, 7) END AS SUNITS,
              ELSE '1      '
                                                      END AS SUNITS,

         CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
              WHEN A.ACCESSTYPE = 'I ' THEN 'IX-SCAN'
              WHEN A.ACCESSTYPE = 'I1' THEN 'IX-ONEF'
              WHEN A.ACCESSTYPE = 'M ' THEN 'MULT-IX'
              WHEN A.ACCESSTYPE = 'MX' THEN 'IX-SC.X'
              WHEN A.ACCESSTYPE = 'MI' THEN 'IX-SC.I'
              WHEN A.ACCESSTYPE = 'MU' THEN 'IX-SC.U'
              WHEN A.ACCESSTYPE = 'N ' THEN 'IX-INLI'
              WHEN A.ACCESSTYPE = 'R ' THEN 'TS-SCAN'
              WHEN A.ACCESSTYPE = 'RW' THEN 'WF-SCAN'
              WHEN A.ACCESSTYPE = 'T ' THEN 'IX-SPRS'
              WHEN A.ACCESSTYPE = 'V ' THEN 'BUFFERS'
              WHEN A.ACCESSTYPE = '  ' THEN '       '
                                       ELSE '       ' END AS ACCESS,

         CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN '            '
           WHEN A.ACCESSTYPE = 'R  ' THEN '            '
           ELSE SUBSTR(A.ACCESSNAME, 1, 12)           END AS "INDEX",

         CASE WHEN A.TNAME = ' ' THEN '            '
              ELSE SUBSTR(A.TNAME, 1, 12)             END AS "TABLE",

         SUBSTR(A.CORRELATION_NAME, 1, 5)                 AS CORR,
         CASE WHEN A.METHOD = 3         THEN '  '
              WHEN A.ACCESSTYPE = 'R '  THEN '  '
              WHEN A.QBLOCK_TYPE = 'INSERT' THEN '  '
              ELSE SUBSTR(DIGITS(A.MATCHCOLS), 5, 1)  END AS MC,

         CASE WHEN A.INDEXONLY = 'Y' THEN 'XO'
              ELSE '  '                               END AS XO,

         CASE A.METHOD
              WHEN 0 THEN '0     '
              WHEN 1 THEN 'NLJOIN'
              WHEN 2 THEN 'SMJOIN'
              WHEN 3 THEN 'SORT  '
              WHEN 4 THEN 'HYJOIN'
              ELSE CHAR(A.METHOD)                     END AS METHOD,

         CASE A.JOIN_TYPE
              WHEN 'F' THEN 'FULL '
              WHEN 'L' THEN 'LEFT '
              WHEN 'S' THEN 'STAR '
              ELSE          '     '                   END AS "JOIN",

         A.SORTN_UNIQ CONCAT A.SORTN_JOIN CONCAT A.SORTN_ORDERBY
           CONCAT A.SORTN_GROUPBY                         AS UJOG,
         A.SORTC_UNIQ CONCAT A.SORTC_JOIN CONCAT A.SORTC_ORDERBY
           CONCAT A.SORTC_GROUPBY                          AS UJOC,

         A.QBLOCK_TYPE AS QBTYPE,

         CASE WHEN A.TABLE_TYPE IS NULL THEN '      '
           WHEN A.TABLE_TYPE = 'B' THEN 'BUFFER'
           WHEN A.TABLE_TYPE = 'C' THEN 'CTE   '
           WHEN A.TABLE_TYPE = 'F' THEN 'TBLFNC'
           WHEN A.TABLE_TYPE = 'M' THEN 'MQT   '
           WHEN A.TABLE_TYPE = 'Q' THEN 'VMQT  '
           WHEN A.TABLE_TYPE = 'R' THEN 'RC#CTE'
           WHEN A.TABLE_TYPE = 'T' THEN 'TABLE/'
           WHEN A.TABLE_TYPE = 'W' THEN 'WRKFIL'
           ELSE A.TABLE_TYPE                          END AS TTYP,

         A.TSLOCKMODE                                     AS LCK,

         CASE A.PARALLELISM_MODE
           WHEN 'C' THEN 'CPU '
           WHEN 'I' THEN 'I-O '
           WHEN 'X' THEN 'PLEX'
           ELSE          '    '                       END AS PARAL,

         STRIP(DIGITS(A.ACCESS_DEGREE), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(A.JOIN_DEGREE), LEADING, '0')
                                                          AS AJ_DEG,

         STRIP(DIGITS(A.ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(A.JOIN_PGROUP_ID), LEADING, '0')
                                                          AS PG_DEG,

         STRIP(DIGITS(A.MERGE_JOIN_COLS), LEADING, '0') AS MJC,

         CASE A.PREFETCH
           WHEN 'S' THEN 'SEQ '
           WHEN 'L' THEN 'LIST'
           WHEN 'D' THEN 'DYN '
           ELSE          '    '                       END AS PREFETCH,

         STRIP(DIGITS(A."QUERYNO"), LEADING, '0')         AS QNO,
         SUBSTR(DIGITS(A.QBLOCKNO), 4, 2) CONCAT ' '
           CONCAT SUBSTR(DIGITS(A.PLANNO), 4, 2)
                                                          AS BL_PL,
         A.PARENT_QBLOCKNO,
         A.QBLOCKNO, A.PLANNO, A.TNAME, A.ACCESSNAME, A.OPTHINT,
         A.HINT_USED, A.APPLNAME, A."COLLID", A.VERSION,
         A.TIMESTAMP, A.explain_time, A."QUERYNO", A.MIXOPSEQ, A.TABNO,
         A.CORRELATION_NAME, A.COLUMN_FN_EVAL, A.SORTC_PGROUP_ID,
         A.SORTN_PGROUP_ID, A.PAGE_RANGE, A.WHEN_OPTIMIZE,
         A.TABLE_ENCODE, A.TABLE_SCCSID, A.ROUTINE_ID, A.CTEREF,
         A.STMTTOKEN,
--       S.COST_CATEGORY, S.PROCMS, S.PROCSU, S.REASON
         'A' AS COST_CATEGORY, 1 AS PROCMS, 1 AS PROCSU, ' ' AS REASON

      FROM $cr.PLAN_TABLE A
--    JOIN
--         (SELECT B.PROGNAME AS BPROGNAME,
--                 B.COLLID AS BCOLLID,
--                 MAX(B.explain_time) Bexplain_time
--            FROM $cr.PLAN_TABLE B
--            GROUP BY B.PROGNAME, B.COLLID) AS N1
--      ON A.PROGNAME = N1.BPROGNAME
--     AND A.explain_time = N1.Bexplain_time
--     AND A.COLLID    = N1.BCOLLID
--    LEFT OUTER JOIN $cr.DSN_STATEMNT_TABLE S
--      ON S."COLLID" = A."COLLID"
--     AND S.APPLNAME = A.APPLNAME
--     AND S.PROGNAME = A.PROGNAME
--     AND S."QUERYNO" = A."QUERYNO"
--     AND S.EXPLAIN_TIME = A.explain_time
;
------------------------------------------------------------------------
CREATE VIEW $cr.PLAN_VIEW6_CMN AS
  SELECT SUBSTR(A.PROGNAME, 1, 8) AS PROGNAME,
         SUBSTR(DIGITS(A."QUERYNO"), 5) AS STMT,

         CASE WHEN A.METHOD = 3
              THEN '       '
--            ELSE SUBSTR(CHAR(S.PROCSU), 1, 7) END AS SUNITS,
              ELSE '1      '
                                                      END AS SUNITS,

         CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
              WHEN A.ACCESSTYPE = 'I ' THEN 'IX-SCAN'
              WHEN A.ACCESSTYPE = 'I1' THEN 'IX-ONEF'
              WHEN A.ACCESSTYPE = 'M ' THEN 'MULT-IX'
              WHEN A.ACCESSTYPE = 'MX' THEN 'IX-SC.X'
              WHEN A.ACCESSTYPE = 'MI' THEN 'IX-SC.I'
              WHEN A.ACCESSTYPE = 'MU' THEN 'IX-SC.U'
              WHEN A.ACCESSTYPE = 'N ' THEN 'IX-INLI'
              WHEN A.ACCESSTYPE = 'R ' THEN 'TS-SCAN'
              WHEN A.ACCESSTYPE = 'RW' THEN 'WF-SCAN'
              WHEN A.ACCESSTYPE = 'T ' THEN 'IX-SPRS'
              WHEN A.ACCESSTYPE = 'V ' THEN 'BUFFERS'
              WHEN A.ACCESSTYPE = '  ' THEN '       '
                                       ELSE '       ' END AS ACCESS,

         CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN '            '
           WHEN A.ACCESSTYPE = 'R  ' THEN '            '
           ELSE SUBSTR(A.ACCESSNAME, 1, 12)           END AS "INDEX",

         CASE WHEN A.TNAME = ' ' THEN '            '
              ELSE SUBSTR(A.TNAME, 1, 12)             END AS "TABLE",

         SUBSTR(A.CORRELATION_NAME, 1, 5)                 AS CORR,
         CASE WHEN A.METHOD = 3         THEN '  '
              WHEN A.ACCESSTYPE = 'R '  THEN '  '
              WHEN A.QBLOCK_TYPE = 'INSERT' THEN '  '
              ELSE SUBSTR(DIGITS(A.MATCHCOLS), 5, 1)  END AS MC,

         CASE WHEN A.INDEXONLY = 'Y' THEN 'XO'
              ELSE '  '                               END AS XO,

         CASE A.METHOD
              WHEN 0 THEN '0     '
              WHEN 1 THEN 'NLJOIN'
              WHEN 2 THEN 'SMJOIN'
              WHEN 3 THEN 'SORT  '
              WHEN 4 THEN 'HYJOIN'
              ELSE CHAR(A.METHOD)                     END AS METHOD,

         CASE A.JOIN_TYPE
              WHEN 'F' THEN 'FULL '
              WHEN 'L' THEN 'LEFT '
              WHEN 'S' THEN 'STAR '
              ELSE          '     '                   END AS "JOIN",

         A.SORTN_UNIQ CONCAT A.SORTN_JOIN CONCAT A.SORTN_ORDERBY
           CONCAT A.SORTN_GROUPBY                         AS UJOG,
         A.SORTC_UNIQ CONCAT A.SORTC_JOIN CONCAT A.SORTC_ORDERBY
           CONCAT A.SORTC_GROUPBY                          AS UJOC,

         A.QBLOCK_TYPE AS QBTYPE,

         CASE WHEN A.TABLE_TYPE IS NULL THEN '      '
           WHEN A.TABLE_TYPE = 'B' THEN 'BUFFER'
           WHEN A.TABLE_TYPE = 'C' THEN 'CTE   '
           WHEN A.TABLE_TYPE = 'F' THEN 'TBLFNC'
           WHEN A.TABLE_TYPE = 'M' THEN 'MQT   '
           WHEN A.TABLE_TYPE = 'Q' THEN 'VMQT  '
           WHEN A.TABLE_TYPE = 'R' THEN 'RC#CTE'
           WHEN A.TABLE_TYPE = 'T' THEN 'TABLE/'
           WHEN A.TABLE_TYPE = 'W' THEN 'WRKFIL'
           ELSE A.TABLE_TYPE                          END AS TTYP,

         A.TSLOCKMODE                                     AS LCK,

         CASE A.PARALLELISM_MODE
           WHEN 'C' THEN 'CPU '
           WHEN 'I' THEN 'I-O '
           WHEN 'X' THEN 'PLEX'
           ELSE          '    '                       END AS PARAL,

         STRIP(DIGITS(A.ACCESS_DEGREE), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(A.JOIN_DEGREE), LEADING, '0')
                                                          AS AJ_DEG,

         STRIP(DIGITS(A.ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(A.JOIN_PGROUP_ID), LEADING, '0')
                                                          AS PG_DEG,

         STRIP(DIGITS(A.MERGE_JOIN_COLS), LEADING, '0') AS MJC,

         CASE A.PREFETCH
           WHEN 'S' THEN 'SEQ '
           WHEN 'L' THEN 'LIST'
           WHEN 'D' THEN 'DYN '
           ELSE          '    '                       END AS PREFETCH,

         STRIP(DIGITS(A."QUERYNO"), LEADING, '0')         AS QNO,
         SUBSTR(DIGITS(A.QBLOCKNO), 4, 2) CONCAT ' '
           CONCAT SUBSTR(DIGITS(A.PLANNO), 4, 2)
                                                          AS BL_PL,
         A.PARENT_QBLOCKNO,
         A.QBLOCKNO, A.PLANNO, A.TNAME, A.ACCESSNAME, A.OPTHINT,
         A.HINT_USED, A.APPLNAME, A."COLLID", A.VERSION,
         A.TIMESTAMP, A.explain_time, A."QUERYNO", A.MIXOPSEQ, A.TABNO,
         A.CORRELATION_NAME, A.COLUMN_FN_EVAL, A.SORTC_PGROUP_ID,
         A.SORTN_PGROUP_ID, A.PAGE_RANGE, A.WHEN_OPTIMIZE,
         A.TABLE_ENCODE, A.TABLE_SCCSID, A.ROUTINE_ID, A.CTEREF,
         A.STMTTOKEN,
--       S.COST_CATEGORY, S.PROCMS, S.PROCSU, S.REASON
         'A' AS COST_CATEGORY, 1 AS PROCMS, 1 AS PROCSU, ' ' AS REASON

      FROM $cr.PLAN_TABLE A
--    JOIN
--         (SELECT B.PROGNAME AS BPROGNAME,
--                 B.COLLID AS BCOLLID,
--                 MAX(B.explain_time) Bexplain_time
--            FROM $cr.PLAN_TABLE B
--            GROUP BY B.PROGNAME, B.COLLID) AS N1
--      ON A.PROGNAME = N1.BPROGNAME
--     AND A.explain_time = N1.Bexplain_time
--     AND A.COLLID    = N1.BCOLLID
--    LEFT OUTER JOIN $cr.DSN_STATEMNT_TABLE S
--      ON S."COLLID" = A."COLLID"
--     AND S.APPLNAME = A.APPLNAME
--     AND S.PROGNAME = A.PROGNAME
--     AND S."QUERYNO" = A."QUERYNO"
--     AND S.EXPLAIN_TIME = A.explain_time
;
------------------------------------------------------------------------
  CREATE VIEW  $cr.PLAN_VIEW7 AS
    SELECT (
             SUBSTR(DIGITS(A."QUERYNO"),5) || ' ' || -- STMT

             QBLOCK_TYPE                   || ' ' || -- TYPE

             CASE WHEN METHOD = 3 THEN '      '
                  ELSE CHAR(S.PROCMS) END  ||        -- MSEC

             CASE WHEN PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
                  WHEN ACCESSTYPE = 'I '        THEN 'IX-SCAN'
                  WHEN ACCESSTYPE = 'I1'        THEN 'IX-ONE '
                  WHEN ACCESSTYPE = 'R '        THEN 'TS-SCAN'
                  WHEN ACCESSTYPE = 'N '        THEN 'IX-ACC '
                  WHEN ACCESSTYPE = 'M '        THEN 'IX-SC.M'
                  WHEN ACCESSTYPE = 'MX'        THEN 'IX-SC.X'
                  WHEN ACCESSTYPE = 'MI'        THEN 'IX-SC.I'
                  WHEN ACCESSTYPE = 'MU'        THEN 'IX-SC.U'
                  WHEN ACCESSTYPE = 'T'         THEN 'IX-SPRS'
                  WHEN ACCESSTYPE = ' '         THEN '       '
                  ELSE NULL END            || ' ' || -- ACCESS

             CASE WHEN ACCESSTYPE = 'R'         THEN '            '
                  WHEN PRIMARY_ACCESSTYPE = 'D' THEN '            '
                  ELSE SUBSTR(ACCESSNAME,1,12) END || ' ' ||
                                                     -- "INDEX"

             SUBSTR(TNAME,1,18)        || ' ' ||     -- TABLE

             CASE WHEN TABLE_TYPE IS NULL THEN '      '
                  ELSE TABLE_TYPE END  || ' ' ||     -- TTYP


             CASE WHEN METHOD = 3         THEN '  '
                  WHEN ACCESSTYPE = 'R '  THEN '  '
                  ELSE SUBSTR(DIGITS(MATCHCOLS), 4, 2)
                                   END || ' ' ||     -- MC_O

             CASE WHEN INDEXONLY='Y'      THEN 'Y  '
                  ELSE                         '   '
                                   END || ' ' ||     -- IXO

             CASE WHEN OPTHINT<>' '       THEN '*'
                  ELSE                         ' '
                                   END ||            -- HINT

             CASE WHEN HINT_USED<>' '     THEN '*'
                  ELSE                         ' '
                                   END               -- HINT_USED
           ) AS TEXT,

           CASE METHOD
             WHEN 0 THEN '      '
             WHEN 1 THEN 'NLJOIN'
             WHEN 2 THEN 'SMJOIN'
             WHEN 3 THEN 'SORT  '
             WHEN 4 THEN 'HYJOIN'
             ELSE NULL
             END AS METHOD,

           CASE JOIN_TYPE WHEN 'F' THEN 'FULL ' WHEN 'L' THEN 'LEFT '
           WHEN 'S' THEN 'STAR ' ELSE ' ' END AS "JOIN",
           SORTN_UNIQ CONCAT SORTN_JOIN CONCAT SORTN_ORDERBY CONCAT
           SORTN_GROUPBY AS UJOG,
           SORTC_UNIQ CONCAT SORTC_JOIN CONCAT SORTC_ORDERBY CONCAT
           SORTC_GROUPBY AS UJOC, TSLOCKMODE AS LCK,
           SUBSTR(CORRELATION_NAME, 1, 4) AS CORR,

           CASE PARALLELISM_MODE
             WHEN 'C' THEN 'CPU'
             WHEN 'I' THEN 'I-O'
             WHEN 'X' THEN 'SYSPLEX'
             ELSE NULL
             END  AS PARAL,

           STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG,

           STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') AS
           PG_DEG,
           STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC,

           PREFETCH AS PRE,

           STRIP(DIGITS(A."QUERYNO"), LEADING, '0') AS QNO,

           SUBSTR(DIGITS(QBLOCKNO), 4, 2) CONCAT ' ' CONCAT SUBSTR(
           DIGITS(PLANNO), 4, 2) AS BL_PL,

           A.PARENT_QBLOCKNO,
           A.QBLOCKNO,
           A.PLANNO,
           A.TNAME,
           A.ACCESSNAME,
           A.OPTHINT,
           A.HINT_USED,
           A.APPLNAME,
           A."COLLID",
           A.PROGNAME,
           A.VERSION,

           A.explain_time,
           A.TIMESTAMP,
           A."QUERYNO",
           A.MIXOPSEQ,
           S.COST_CATEGORY,
           S.PROCMS,
           S.PROCSU,
           S.REASON

      FROM $cr.PLAN_TABLE A
      JOIN $cr.DSN_STATEMNT_TABLE S
        ON S."COLLID"     = A."COLLID"
       AND S.APPLNAME     = A.APPLNAME
       AND S.PROGNAME     = A.PROGNAME
       AND S."QUERYNO"    = A."QUERYNO"
       AND S.EXPLAIN_TIME = A.explain_time
;
------------------------------------------------------------------------
CREATE VIEW $cr.PLAN_VIEW9 AS
  SELECT A.PROGNAME, A.VERSION, S.PROCMS
    FROM $cr.PLAN_TABLE A
    LEFT OUTER JOIN $cr.DSN_STATEMNT_TABLE S
      ON S."COLLID" = A."COLLID"
     AND S.APPLNAME = A.APPLNAME
     AND S.PROGNAME = A.PROGNAME
     AND S.QUERYNO  = A.QUERYNO
     AND S.EXPLAIN_TIME = A.explain_time
;
$/cmnViews/
$/creViews/

$proc $@=/creViewsFun/
   CREATE VIEW $cr.PLAN_VIEW2Det AS

   SELECT oa1p.fqzFmtE7(dmRows)   dmRows,
          oa1p.fqzFmtE7(rdsRow) rdsRow,
          oa1p.fqzFmtE7(snRows) snRows,
          oa1p.fqzFmtE7(compCost) compCost,
          oa1p.fqzFmtE7(openCost) openCost,
        a.*
     FROM $cr.PLAN_VIEW1 A
     LEFT OUTER JOIN
          $cr.DSN_DetCost_TABLE d
       on  --d.APPLNAME = A.APPLNAME  ???  ist manchmal x'0000'
             d.PROGNAME = A.PROGNAME
         AND d.EXPLAIN_TIME = A.explain_time
         AND d.QueryNO = A.QueryNO
         AND d.QBlockNO = A.QBlockNO
         AND d.PlanNo   = A.PlanNo
;     $*(
CREATE VIEW $cr.plan_ViewPred as          old old
select a."Queryn B PM" "Queryn_B_PM"
     , smallint(p.PREDNO) predno
     , f.stage
 --  , oa1p.fqzFmte7(p.filter_factor) ff
           -- optimizer otherwise choose bad path|||
     , real(p.FILTER_FACTOR) FILTER_FACTOR
     , p.type prTy
     , p.boolean_term || ' ' || p.negation "BoN"
     , p.text
     , p.LEFT_HAND_SIDE
     , p.LEFT_HAND_PNO
     , p.LHS_TABNO
     , p.LHS_QBNO
     , p.RIGHT_HAND_SIDE
     , p.RIGHT_HAND_PNO
     , p.RHS_TABNO
     , p.RHS_QBNO
     , p.BOOLEAN_TERM
     , p.SEARCHARG
     , p.JOIN
     , p.AFTER_JOIN
     , p.ADDED_PRED
     , p.REDUNDANT_PRED
     , p.DIRECT_ACCESS
     , p.KEYFIELD
     , p.CATEGORY
     , p.CATEGORY_B
     , p.PRED_ENCODE
     , p.PRED_CCSID
     , p.PRED_MCCSID
     , p.MARKER
     , p.PARENT_PNO
     , p.NEGATION
     , p.LITERALS
     , p.CLAUSE
     , f.reEval
     , f.ORDERNO
     , a.*
from $cr.plan_view1 a
    left join $cr.dsn_filter_Table f
        on  f.applName     = a.applName
        and f.collid       = a.collid
        and f.progName     = a.progName
        and f.explain_time = a.explain_time
        and f.QUERYNO      = a.QUERYNO
        and f.QBLOCKNO     = a.QBLOCKNO
        and f.PLANNO       = a.PLANNO
        and f.mixOpSeqNo   = a.mixOpSeq
        and a.accessType not in ('MX', 'MI', 'MU')
    left join $cr.dsn_predicat_table p
      on  --p.applName     = a.applName     ??? ist manchmal x'0000'
            p.progName     = a.progName
        and p.explain_time = a.explain_time
        and p.queryNo      = a.queryNo
        and p.qBlockNo     = a.qBlockNo
        and p.predNo       = f.predNo
;
--  sortierung --------------------------------------
--  order by applName, collid, progName, explain_time,
--           queryNo, qBlockNo, planno, mixOpSeq,
--           stage, predNo
                                $*)
CREATE VIEW $cr.plan_ViewPred as
select  substr(right('     ' || strip(char(p.queryNo))   , 6)
            || right('  '    || strip(char(p.qBlockNo))  , 2)
            || right('  '    || strip(value(char(f.planNo), '')) , 2)
            || right('  '    || strip(value(char(f.mixOpSeqNo),'')),1)
            ,1 ,11) "Queryn B PM"
     , smallint(p.PREDNO)  prediN
     , smallint(f.orderNO) orderN
     , f.stage
     , oa1p.fqzFmte7(p.filter_factor) ff
     , p.type prTy
     , p.boolean_term || ' ' || p.negation "BoN"
     , p.text
     , p.LEFT_HAND_SIDE
     , p.LEFT_HAND_PNO
     , p.LHS_TABNO
     , p.LHS_QBNO
     , p.RIGHT_HAND_SIDE
     , p.RIGHT_HAND_PNO
     , p.RHS_TABNO
     , p.RHS_QBNO
     , p.BOOLEAN_TERM
     , p.SEARCHARG
     , p.JOIN
     , p.AFTER_JOIN
     , p.ADDED_PRED
     , p.REDUNDANT_PRED
     , p.DIRECT_ACCESS
     , p.KEYFIELD
     , p.CATEGORY
     , p.CATEGORY_B
     , p.PRED_ENCODE
     , p.PRED_CCSID
     , p.PRED_MCCSID
     , p.MARKER
     , p.PARENT_PNO
     , p.NEGATION
     , p.LITERALS
     , p.CLAUSE
     , p.ORIGIN
     , p.UNCERTAINTY
     , p.QUERYNO, p.QBLOCKNO, p.APPLNAME, p.PROGNAME, p.group_member
     , p.SECTNOI, p.COLLID, p.VERSION, p.explain_time, p.predNo
     , f.ORDERCLASS
     , f.MIXOPSEQNO
     , f.REEVAL
     , f.PUSHDOWN
     , f.planNo
     , f.orderNO
 from $cr.dsn_predicat_table p
   left join $cr.dsn_filter_Table f
        on  f.progName     = p.progName
        and f.applName     = p.applName  -- ??? ist manchmal x'0000'
        and f.collid       = p.collid
        and f.version      = p.version
        and f.group_member = p.group_member
        and f.sectNoi      = p.sectNoi
        and f.explain_time = p.explain_time
        and f.QUERYNO      = p.QUERYNO
        and f.QBLOCKNO     = p.QBLOCKNO
        and f.predNo       = p.predNo
;
--  sortierung --------------------------------------
--  order by applName, collid, progName, explain_time,
--           queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
------------------------------------------------------------------------
$/creViewsFun/

$proc $@/viewFunDrop/
    call sql2St "select strip(creator) || '.' || strip(name) vw" ,
               "from sysibm.sysTables where type = 'V'",
                   "and name in ('PLAN_VIEW2DET', 'PLAN_VIEWPRED')", vw
    $do vx=1 to m.vw.0 $@¢
        $$- 'drop view' m.vw.vx.vw';'
        $!
    $$ commit;
$/viewFunDrop/

$proc $@/viewFunCre/
    call sql2St "select strip(creator) cr" ,
               "from sysibm.sysTables where type = 'V'",
                   "and name in ('PLAN_VIEW1')", vw
    $do vx=1 to m.vw.0 $@¢
        $= cr =- m.vw.vx.cr
        $@creViewsFun
        $$ commit;
        $!
$/viewFunCre/
}¢--- A540769.WK.SQL(PLANTBCN) cre=2015-10-23 mod=2015-10-23-22.07.25 A540769 ---
//A540769Z JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M,                                    00030000
//         SCHENV=DB2,CLASS=M1                                          00040000
//JOBLIB   DD DISP=SHR,DSN=PCL.U0000.P0.RZ4AKT.PERM.@008.LLB
//*
//S1       EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,                      00020001
//             PARM='%WSH'
//SYSPROC   DD DSN=A540769.WK.REXX,DISP=SHR
//SYSPRINT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//SYSTSPRT  DD SYSOUT=*
//SYSTSIN   DD DUMMY
//WSH       DD *
$#@
$=cr=CMNBATCH
call sqlConnect DP4G
$<>
$<=¢
select strip(creator) || '.' || strip(name) TB
    from sysibm.sysTables
    where type = 'T' and creator = '$cr'
        and (name like 'PLAN%' or name like 'DSN%')
    order by 1
$! call sqlSel
$|
$forWith i $@¢
cn = sql2One('select count(*) from' $TB)
$$- right(cn, 12) $TB
$!
}¢--- A540769.WK.SQL(PLANTBIX) cre=2011-05-16 mod=2011-05-16-09.37.19 A540769 ---
  CREATE INDEX DB2OSC.DSN_QUERY_TABLE_IDX1                              01245200
         ON DB2OSC.DSN_QUERY_TABLE                                      01245240
         ( "QUERYNO"                                                    01245280
          ,"EXPLAIN_TIME"                                               01245320
         );                                                             01245360
  CREATE INDEX DB2OSC.DSN_QUERY_TABLE_IDX2                              01245400
         ON DB2OSC.DSN_QUERY_TABLE                                      01245440
         ( "QUERYNO"                                                    01245480
          ,"TYPE"                                                       01245520
          ,"QUERY_STAGE"                                                01245560
          ,"EXPLAIN_TIME"                                               01245600
          ,"SEQNO"                                                      01245640
         );                                                             01245680
  CREATE UNIQUE INDEX DB2OSC.DSN_QUERY_TABLE_IDX3                       01245720
         ON DB2OSC.DSN_QUERY_TABLE                                      01245760
         ( "QUERY_ROWID"                                                01245800
         );                                                             01245840
  CREATE AUX TABLE DB2OSC.DSN_QUERY_AUX                                 01245880
         IN DB2OSC.DSNLOBT2                                             01245920
         STORES DB2OSC.DSN_QUERY_TABLE                                  01245960
         COLUMN "NODE_DATA";                                            01246000
  CREATE INDEX DB2OSC.DSN_QUERY_AUXINX                                  01246040
         ON DB2OSC.DSN_QUERY_AUX;                                       01246080
  CREATE UNIQUE INDEX SYSIBM.DSN_PROFILE_TABLE_IX_ALL                   01810000
         ON SYSIBM.DSN_PROFILE_TABLE                                    01820000
         ( "PROFILEID"                                                  01830000
         );                                                             01840000
  CREATE INDEX SYSIBM.DSN_PROFILE_TABLE_IX2_ALL                         01850000
         ON SYSIBM.DSN_PROFILE_TABLE                                    01860000
         ( "PROFILE_ENABLED"                                            01870000
          ,"AUTHID"                                                     01880000
          ,"PLANNAME"                                                   01890000
          ,"COLLID"                                                     01900000
          ,"PKGNAME"                                                    01910000
          ,"IPADDR"                                                     01920000
          ,"PROFILE_TIMESTAMP" DESC                                     01930000
         );                                                             01940000
  CREATE UNIQUE INDEX SYSIBM.DSN_PROFILE_ATTRIBUTES_IX_ALL              02220000
         ON SYSIBM.DSN_PROFILE_ATTRIBUTES                               02230000
         ( "PROFILEID"                                                  02240000
          ,"ATTRIBUTE_TIMESTAMP"   DESC                                 02250000
          ,"KEYWORDS"                                                   02260000
          ,"ATTRIBUTE1"                                                 02270000
          ,"ATTRIBUTE2"                                                 02280000
          ,"ATTRIBUTE3"                                                 02290000
         )                                                              02300000
         USING STOGROUP DSNOSCSG;                                       02310000
  CREATE UNIQUE INDEX SYSIBM.DSN_STATEMENT_RUNTIME_INFO_IDX1            03160000
         ON SYSIBM.DSN_STATEMENT_RUNTIME_INFO                           03170000
         ( "STMT_RUNTIME_INFO_ID"                                       03180000
         )                                                              03190000
         USING STOGROUP DSNOSCSG;                                       03200000
  CREATE INDEX SYSIBM.DSN_STATEMENT_RUNTIME_INFO_AUXINX                 03280000
         ON SYSIBM.DSN_STATEMENT_RUNTIME_INFO_AUX                       03290000
         USING STOGROUP DSNOSCSG;                                       03300000
  CREATE INDEX SYSIBM.PLAN_TABLE_IDX1                                   04380000
         ON SYSIBM.PLAN_TABLE                                           04390000
         ( "QUERYNO"                                                    04400000
          ,"BIND_TIME"                                                  04410000
         );                                                             04420000
  CREATE INDEX SYSIBM.DSN_STATEMNT_TABLE_IDX1                           04600000
         ON SYSIBM.DSN_STATEMNT_TABLE                                   04610000
         ( "QUERYNO"                                                    04620000
          ,"EXPLAIN_TIME"                                               04630000
         );                                                             04640000
  CREATE INDEX SYSIBM.FUNC_EXPIDX1                                      04930000
      ON SYSIBM.DSN_FUNCTION_TABLE                                      04940000
         ( "QUERYNO"                                                    04950000
          ,"EXPLAIN_TIME"                                               04960000
         );                                                             04970000
  CREATE INDEX SYSIBM.DSN_PREDICAT_TABLE_IDX1                           05500000
         ON SYSIBM.DSN_PREDICAT_TABLE                                   05510000
         ( "QUERYNO"                                                    05520000
          ,"EXPLAIN_TIME"                                               05530000
         );                                                             05540000
  CREATE INDEX SYSIBM.DSN_STRUCT_TABLE_IDX1                             05740000
         ON SYSIBM.DSN_STRUCT_TABLE                                     05750000
         ( "QUERYNO"                                                    05760000
          ,"EXPLAIN_TIME"                                               05770000
         );                                                             05780000
  CREATE INDEX SYSIBM.DSN_PTASK_TABLE_IDX1                              06510000
         ON SYSIBM.DSN_PTASK_TABLE                                      06520000
         ( "QUERYNO"                                                    06530000
          ,"EXPLAIN_TIME"                                               06540000
         );                                                             06550000
  CREATE INDEX SYSIBM.DSN_FILTER_TABLE_IDX1                             06740000
         ON SYSIBM.DSN_FILTER_TABLE                                     06750000
         ( "QUERYNO"                                                    06760000
          ,"EXPLAIN_TIME"                                               06770000
         );                                                             06780000
  CREATE INDEX SYSIBM.DSN_DETCOST_TABLE_IDX1                            08040000
         ON SYSIBM.DSN_DETCOST_TABLE                                    08050000
         ( "QUERYNO"                                                    08060000
          ,"EXPLAIN_TIME"                                               08070000
         );                                                             08080000
  CREATE INDEX SYSIBM.DSN_SORT_TABLE_IDX1                               08260000
         ON SYSIBM.DSN_SORT_TABLE                                       08270000
         ( "QUERYNO"                                                    08280000
          ,"EXPLAIN_TIME"                                               08290000
         );                                                             08300000
  CREATE INDEX SYSIBM.DSN_SORTKEY_TABLE_IDX1                            08530000
         ON SYSIBM.DSN_SORTKEY_TABLE                                    08540000
         ( "QUERYNO"                                                    08550000
          ,"EXPLAIN_TIME"                                               08560000
         );                                                             08570000
  CREATE INDEX SYSIBM.DSN_PGRANGE_TABLE_IDX1                            08710000
          ON SYSIBM.DSN_PGRANGE_TABLE                                   08720000
         ( "QUERYNO"                                                    08730000
          ,"EXPLAIN_TIME"                                               08740000
         );                                                             08750000
  CREATE INDEX SYSIBM.DSN_VIEWREF_TABLE_IDX1                            08910000
         ON SYSIBM.DSN_VIEWREF_TABLE                                    08920000
         ( "QUERYNO"                                                    08930000
          ,"EXPLAIN_TIME"                                               08940000
         );                                                             08950000
  CREATE INDEX SYSIBM.DSN_QUERY_TABLE_IDX1                              09110000
         ON SYSIBM.DSN_QUERY_TABLE                                      09120000
         ( "QUERYNO"                                                    09130000
          ,"EXPLAIN_TIME"                                               09140000
         );                                                             09150000
  CREATE INDEX SYSIBM.DSN_QUERY_TABLE_IDX2                              09160000
         ON SYSIBM.DSN_QUERY_TABLE                                      09170000
         ("QUERYNO"                                                     09180000
         ,"TYPE"                                                        09190000
         ,"QUERY_STAGE"                                                 09200000
         ,"EXPLAIN_TIME"                                                09210000
         ,"SEQNO"                                                       09220000
         );                                                             09230000
  CREATE INDEX SYSIBM.DSN_QUERY_AUXINX                                  09280000
         ON SYSIBM.DSN_QUERY_AUX;                                       09290000
}¢--- A540769.WK.SQL(PLANTBST) cre=2011-05-16 mod=2011-05-16-09.12.18 A540769 ---
select count(*), explain_time, queryno
    from cmnbatch.dsn_statemnt_table
    group by explain_time, queryno
    order by 1 desc
    with ur
}¢--- A540769.WK.SQL(PLANTS) cre=2012-03-20 mod=2012-03-21-13.55.55 A540769 ----
WITH pt AS
( select *
    from sysibm.sysTables o
    where type = 'T' and name in ('COST_TABLE'
                          ,'DSN_COLDIST_TABLE'
                          ,'DSN_DETCOST_TABLE'
                          ,'DSN_FILTER_TABLE'
                          ,'DSN_FUNCTION_TABLE'
                          ,'DSN_KEYTGTDIST_TABLE'
                          ,'DSN_PGRANGE_TABLE'
                          ,'DSN_PGROUP_TABLE'
                          ,'DSN_PREDICAT_TABLE'
                          ,'DSN_PTASK_TABLE'
                          ,'DSN_QUERY_AUX'
                          ,'DSN_QUERY_TABLE'
                          ,'DSN_SORTKEY_TABLE'
                          ,'DSN_SORT_TABLE'
                          ,'DSN_STATEMENT_CACHE_AUX'
                          ,'DSN_STATEMENT_CACHE_TABLE'
                          ,'DSN_STATEMNT_TABLE'
                          ,'DSN_STRUCT_TABLE'
                          ,'DSN_VIEWREF_TABLE'
                          ,'DSN_VIRTUAL_INDEXES'
                          ,'EEEAUTH'
                          ,'EEEDBRM'
                          ,'EEEHINT'
                          ,'EEEPATH'
                          ,'EEEPLAN'
                          ,'EEEWORK'
                          ,'OBJECT_DATA'
                          ,'OBJECT_DIRECTORY'
                          ,'F2PLAN_TABLE'
                          ,'PLAN_TABLE'
                          ,'PREDICATE_TABLE'
                          ,'STRUCTURE_TABLE'
                          )
)
, ts as
( select creator cr, dbName db, tsName ts, count(*) cnt
    from pt
    group by creator, dbName, tsName
)
select ts.*
    ,  (select strip(o.creator) || '.' || strip(o.name)
            from sysibm.sysTables o
            where o.dbName = ts.db and o.tsName = ts.ts
                and o.type = 'T'
                and not exists (select 1
                     from pt
                     where pt.creator = o.creator and pt.name = o.name)
       )
    from ts where cr      = 'A540769'
;;;
select * -- bCreator, bName, bType, 1
    from sysibm.sysViewDep
    where bType = 'V'
          and dcreator = 'A540769' and dName like 'PLAN%'
;;;
WITH S AS
(
select (select strip(o.creator) || '.' || strip(o.name)
            from sysibm.sysTables o
            where o.dbName = t.dbName and o.tsName = t.tsName
                and o.type = 'T'
                and not (o.creator = t.creator
            and o.name in ('COST_TABLE'
                          ,'DSN_COLDIST_TABLE'
                          ,'DSN_DETCOST_TABLE'
                          ,'DSN_FILTER_TABLE'
                          ,'DSN_FUNCTION_TABLE'
                          ,'DSN_KEYTGTDIST_TABLE'
                          ,'DSN_PGRANGE_TABLE'
                          ,'DSN_PGROUP_TABLE'
                          ,'DSN_PREDICAT_TABLE'
                          ,'DSN_PTASK_TABLE'
                          ,'DSN_QUERY_AUX'
                          ,'DSN_QUERY_TABLE'
                          ,'DSN_SORTKEY_TABLE'
                          ,'DSN_SORT_TABLE'
                          ,'DSN_STATEMENT_CACHE_AUX'
                          ,'DSN_STATEMENT_CACHE_TABLE'
                          ,'DSN_STATEMNT_TABLE'
                          ,'DSN_STRUCT_TABLE'
                          ,'DSN_VIEWREF_TABLE'
                          ,'DSN_VIRTUAL_INDEXES'
                          ,'EEEAUTH'
                          ,'EEEDBRM'
                          ,'EEEHINT'
                          ,'EEEPATH'
                          ,'EEEPLAN'
                          ,'EEEWORK'
                          ,'OBJECT_DATA'
                          ,'OBJECT_DIRECTORY'
                          ,'F2PLAN_TABLE'
                          ,'PLAN_TABLE'
                          ,'PREDICATE_TABLE'
                          ,'STRUCTURE_TABLE'
                       )  )
            fetch first 1 row only
       ) otTb, t.*
    from sysibm.sysTables t
    where creator like '%' and type = 'T'
    and name in ('COST_TABLE'
                ,'DSN_COLDIST_TABLE'
                ,'DSN_DETCOST_TABLE'
                ,'DSN_FILTER_TABLE'
                ,'DSN_FUNCTION_TABLE'
                ,'DSN_KEYTGTDIST_TABLE'
                ,'DSN_PGRANGE_TABLE'
                ,'DSN_PGROUP_TABLE'
                ,'DSN_PREDICAT_TABLE'
                ,'DSN_PTASK_TABLE'
                ,'DSN_QUERY_AUX'
                ,'DSN_QUERY_TABLE'
                ,'DSN_SORTKEY_TABLE'
                ,'DSN_SORT_TABLE'
                ,'DSN_STATEMENT_CACHE_AUX'
                ,'DSN_STATEMENT_CACHE_TABLE'
                ,'DSN_STATEMNT_TABLE'
                ,'DSN_STRUCT_TABLE'
                ,'DSN_VIEWREF_TABLE'
                ,'DSN_VIRTUAL_INDEXES'
                ,'EEEAUTH'
                ,'EEEDBRM'
                ,'EEEHINT'
                ,'EEEPATH'
                ,'EEEPLAN'
                ,'EEEWORK'
                ,'OBJECT_DATA'
                ,'OBJECT_DIRECTORY'
                ,'F2PLAN_TABLE'
                ,'PLAN_TABLE'
                ,'PREDICATE_TABLE'
                ,'STRUCTURE_TABLE'
                )
)
select distinct otTb from s
  --     where otTb is not null
}¢--- A540769.WK.SQL(PLANVW) cre=2010-11-25 mod=2011-09-21-11.36.12 A540769 ----
//A540769W JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M                                     00030000
   ===> nach planTable geMoved
//*MAIN CLASS=LOG                                                       00040000
//*
//* PLAN_VIEW1 - 8  VIEWs auf Explain tables
//*
//* 11.02.11 W.Keller ix Multi renamed
//* 23.09.2010 accessTypen Anzeige, user Views am Anfang
//* 25.01.10 W.Keller view5 geflickt (bind_time fehlte im on)
//* 17.12.09 W.Keller kopiert aus cPlanVi*
//*
//STEP01  EXEC PGM=IKJEFT01,COND=(4,LT)
//SYSTSPRT  DD SYSOUT=*
//SYSPRINT  DD SYSOUT=*
//SYSUDUMP  DD SYSOUT=*
//PLIDUMP   DD SYSOUT=*
//SYSTSIN   DD *
 DSN SYSTEM(DBAF)
  RUN  PROGRAM(DSNTEP2) PLAN(DSNTEP2) -
         PARMS('/ALIGN(LHS) MIXED')
 END
//SYSIN     DD *
   SET CURRENT SQLID = 'S100447';
   set current path 'OA1A';
   drop   VIEW A540769.PLAN_VIEW5 ;
   DROP   VIEW A540769.PLAN_Filt ;
   DROP   VIEW A540769.PLAN_ViewPred ;
   DROP   VIEW A540769.PLAN_VIEW1 ;
   DROP   VIEW A540769.PLAN_VIEW0 ;
   DROP   VIEW A540769.PLAN_VIEW3 ;
   drop   VIEW A540769.PLAN_VIEW6 ;
   drop   VIEW A540769.PLAN_VIEW6_CMN ;
   drop   VIEW A540769.PLAN_VIEW7 ;
   drop   VIEW A540769.PLAN_VIEW9 ;
------- -----------------------------------------------------------------
create view A540769.plan_view0 as
select count(*) eCnt,
       substr(coalesce(e.collid, p.collid), 1, 8) co,
       substr(coalesce(e.progName, p.name), 1, 8) pg,
       substr(coalesce(e.version, p.version), 1, 16) ve,
       p.pcTimeStamp,
       case when p.bindtime > e.bind_time then '>'
            when p.bindtime = e.bind_time then '='
                                          else '<' end c,
       e.bind_time,
       p.collid,
       p.name,
       p.version,
       p.contoken,
       p.bindtime lastBind,
       e.collid eCo,
       e.progName ePg,
       e.applName eAp,
       e.version  eVe
    from sysIbm.sysPackage p
    left join A540769.plan_table e
      on e.collid = p.collid and e.progName = p.name
        and e.version = p.version
    group by p.collid,
             p.name,
             p.version,
             p.pcTimeStamp,
             p.contoken,
             p.bindtime,
             e.collid    ,
             e.progName    ,
             e.applName    ,
             e.version,
             e.bind_time
;
CREATE VIEW A540769.PLAN_VIEW1 AS
select  substr(right('     ' || strip(char(queryNo))   , 6)
            || right('  '    || strip(char(qBlockNo))  , 2)
            || right('  '    || strip(char(planNo))    , 2)
            || right('  '    || strip(char(mixOpSeq)), 1)
            ,1 ,11) "Queryn B PM",
        QBLOCK_TYPE AS "TYPE",
        CASE WHEN PRIMARY_ACCESSTYPE = 'D' then 'dirRow'
             WHEN ACCESSTYPE = 'I ' THEN 'ixScan'
             WHEN ACCESSTYPE = 'I1' THEN 'ixOne '
             WHEN ACCESSTYPE = 'R ' THEN 'tsScan'
             WHEN ACCESSTYPE = 'RW' THEN 'woScan'
             WHEN ACCESSTYPE = 'N ' THEN 'ixSPin'
             WHEN ACCESSTYPE = 'M ' THEN 'ixMult'
             WHEN ACCESSTYPE = 'MX' THEN 'ixMSca'
             WHEN ACCESSTYPE = 'MI' THEN 'ixMInt'
             WHEN ACCESSTYPE = 'MU' THEN 'ixMUni'
             WHEN ACCESSTYPE = 'T ' THEN 'ixSPRS'
             WHEN ACCESSTYPE = 'V ' THEN 'insBuf'
             WHEN ACCESSTYPE = '  ' THEN '      '
             ELSE                        '??' || accessType
        END AS ACCESS,
        CASE WHEN ACCESSTYPE = 'R  ' THEN '       '
             when PRIMARY_ACCESSTYPE = 'D' THEN '       '
             ELSE SUBSTR(ACCESSNAME, 1, 12) END AS "INDEX",
        SUBSTR(TNAME, 1, 12) AS "TABLE",
        CASE WHEN TABLE_TYPE IS NULL THEN '      '
             ELSE TABLE_TYPE END AS TTYP,
        CASE WHEN METHOD = 3 THEN '      '
             WHEN ACCESSTYPE = 'R ' THEN '      '
             ELSE SUBSTR(DIGITS(MATCHCOLS), 5, 1) || '  ' || indexOnly
        END AS MC_O,
        CASE METHOD WHEN 0 THEN '      '
            WHEN 1 THEN 'NLJOIN'
            when 2 THEN 'SMJOIN'
            WHEN 3 THEN 'SORT  '
            WHEN 4 THEN 'HYJOIN'
            ELSE NULL END AS METHOD,
        CASE JOIN_TYPE WHEN 'F' THEN 'full'
            WHEN 'L' THEN 'left'
            WHEN 'S' THEN 'star'
            ELSE ' ' END AS "joiT",
        SORTN_UNIQ CONCAT SORTN_JOIN CONCAT SORTN_ORDERBY CONCAT
            SORTN_GROUPBY AS UJOG,
        SORTC_UNIQ CONCAT SORTC_JOIN CONCAT SORTC_ORDERBY CONCAT
            SORTC_GROUPBY AS UJOC,
        TSLOCKMODE AS LCK,
        SUBSTR(CORRELATION_NAME, 1, 4) AS CORR,
        CASE PARALLELISM_MODE WHEN 'C' THEN 'CPU'
            WHEN 'I' THEN 'I-O'
            WHEN 'X' THEN 'SYSPLEX'
            ELSE NULL END AS PARAL,
        STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') || ' '
            || STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG,
        STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0')|| ' '
            || STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') PG_DEG,
        STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC,
        PREFETCH AS PRE,
        substr(opthint, 1, 10) optHint,
        substr(hint_used, 1, 10) hint_used,
            -- full length names
        TNAME, ACCESSNAME,
            -- package identifikation
        collid, progName, applName, version, bind_time,
            -- query node identificaten
        queryno, qBlockNo, planno, mixopSeq, timestamp,
            PARENT_QBLOCKNO
     FROM A540769.PLAN_TABLE A
;
-------------------------------------------------------------------------
   CREATE VIEW A540769.PLAN_VIEW2 AS

   SELECT CASE WHEN METHOD = 'SORT  ' THEN '  '
               ELSE substr(right('         '
                    || strip(CHAR(S.PROCMS)),9), 1, 9) END AS MSEC,
        a.*,
        S.COST_CATEGORY,
        S.PROCMS, S.PROCSU, S.REASON
     FROM A540769.PLAN_VIEW1 A
     LEFT OUTER JOIN
          A540769.DSN_STATEMNT_TABLE S
       ON    S."COLLID"     = A."COLLID"
         AND S.APPLNAME     = A.APPLNAME
         AND S.PROGNAME     = A.PROGNAME
         AND S.EXPLAIN_TIME = A.BIND_TIME
         AND S.QUERYNO      = A.QUERYNO
;
-------------------------------------------------------------------------
   CREATE VIEW A540769.PLAN_VIEW2Det AS

   SELECT substr(fosFmtE7(dmRows), 1, 7) dmRows,
          substr(fosFmtE7(rdsRow), 1, 7) rdsRow,
          substr(fosFmtE7(snRows), 1, 7) snRows,
          substr(fosFmtE7(compCost), 1, 7) compCost,
          substr(fosFmtE7(openCost), 1, 7) openCost,
        a.*
     FROM A540769.PLAN_VIEW1 A
     LEFT OUTER JOIN
          A540769.DSN_DetCost_TABLE d
       on    d.APPLNAME = A.APPLNAME
         AND d.PROGNAME = A.PROGNAME
         AND d.EXPLAIN_TIME = A.BIND_TIME
         AND d.QBlockNO = A.QBlockNO
         AND d.PlanNo   = A.PlanNo
;
CREATE VIEW A540769.plan_ViewPred as
select  substr(right('     ' || strip(char(f.queryNo))   , 6)
            || right('  '    || strip(char(f.qBlockNo))  , 2)
            || right('  '    || strip(char(f.planNo))    , 2)
            || right('  '    || strip(char(f.mixOpSeqNo)), 1)
            ,1 ,11) "Queryn B PM"
     , stage
     , substr(fosFmte7(p.filter_factor), 1, 7) ff
     , p.type
     , p.text
     , f.COLLID
     , f.PROGNAME
     , f.APPLNAME
     , f.EXPLAIN_TIME
     , f.QUERYNO
     , f.QBLOCKNO
     , f.PLANNO
     , f.ORDERNO
     , f.PREDNO
     , f.MIXOPSEQNO
     , p.LEFT_HAND_SIDE
     , p.LEFT_HAND_PNO
     , p.LHS_TABNO
     , p.LHS_QBNO
     , p.RIGHT_HAND_SIDE
     , p.RIGHT_HAND_PNO
     , p.RHS_TABNO
     , p.RHS_QBNO
     , p.FILTER_FACTOR
     , p.BOOLEAN_TERM
     , p.SEARCHARG
     , p.JOIN
     , p.AFTER_JOIN
     , p.ADDED_PRED
     , p.REDUNDANT_PRED
     , p.DIRECT_ACCESS
     , p.KEYFIELD
     , p.CATEGORY
     , p.CATEGORY_B
     , p.PRED_ENCODE
     , p.PRED_CCSID
     , p.PRED_MCCSID
     , p.MARKER
     , p.PARENT_PNO
     , p.NEGATION
     , p.LITERALS
     , p.CLAUSE
from A540769.dsn_filter_Table f
    left join A540769.dsn_predicat_table p
      on    f.progName     = p.progName
        and f.applName     = p.applName
        and f.applName     = p.applName
        and f.explain_time = p.explain_time
        and f.queryNo      = p.queryNo
        and f.qBlockNo     = p.qBlockNo
        and f.predNo       = p.predNo
;
--  sortierung --------------------------------------
--  order by collid, progName, applName, explain_time,
--           queryNo, qBlockNo, planno,
--           stage, orderNo
;
-------------------------------------------------------------------------
   CREATE VIEW A540769.PLAN_VIEW5 AS
   SELECT *

     FROM A540769.PLAN_VIEW2 A
     JOIN
          (SELECT B."COLLID" AS BCOLLID,
                  B.APPLNAME AS BAPPLNAME, B.PROGNAME AS BPROGNAME,
                  MAX(B.BIND_TIME) AS BBIND_TIME
             FROM A540769.PLAN_TABLE B
             GROUP BY B."COLLID",
                      B.APPLNAME,
                      B.PROGNAME) AS N1
            ON A."COLLID" = N1."BCOLLID"
           AND A.PROGNAME = N1.BPROGNAME
           AND A.APPLNAME = N1.BAPPLNAME
           AND A.bind_time = N1.BBind_time
;
commit;
commit;
------------ Ende user Views ------------------------------------------
-- //CMNONLY     DD *
------------ Rest brauchts nur für changeMan ||| ----------------------
commit;
-- ;x;
-------------------------------------------------------------------------
CREATE VIEW      A540769.PLAN_VIEW3
( QN,QB,AP,PG, PN,ME,CR,TN,TO, AT,JT,MC,AN,IO, SP,SU,SJ, SO, SG,ZP,ZU,
ZJ, ZO,ZG,TL,TS,PR,EV, CO,VR,MO, AD,AI, JD,JI, PA,MJ,CN, PF,GM,WO,QT,
 BT,RM,SD, OH,HU,PAC )
 AS SELECT QUERYNO, QBLOCKNO, APPLNAME, PROGNAME, PLANNO, METHOD,
 CREATOR, TNAME, TABNO, ACCESSTYPE, JOIN_TYPE, MATCHCOLS, ACCESSNAME,
 INDEXONLY, SORTN_PGROUP_ID, SORTN_UNIQ, SORTN_JOIN, SORTN_ORDERBY,
 SORTN_GROUPBY, SORTC_PGROUP_ID, SORTC_UNIQ, SORTC_JOIN, SORTC_ORDERBY,
 SORTC_GROUPBY, TSLOCKMODE, TIMESTAMP, PREFETCH, COLUMN_FN_EVAL, COLLID,
 VERSION, MIXOPSEQ, ACCESS_DEGREE, ACCESS_PGROUP_ID, JOIN_DEGREE,
 JOIN_PGROUP_ID, PARALLELISM_MODE, MERGE_JOIN_COLS, CORRELATION_NAME,
 PAGE_RANGE, GROUP_MEMBER, WHEN_OPTIMIZE, QBLOCK_TYPE, BIND_TIME,
 REMARKS, IBM_SERVICE_DATA, OPTHINT, HINT_USED, PRIMARY_ACCESSTYPE
 FROM A540769.PLAN_TABLE
;
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW6 AS
  SELECT SUBSTR(A.PROGNAME, 1, 8) AS PROGNAME,
         SUBSTR(DIGITS(A."QUERYNO"), 5) AS STMT,

         CASE WHEN A.METHOD = 3
              THEN '       '
--            ELSE SUBSTR(CHAR(S.PROCSU), 1, 7) END AS SUNITS,
              ELSE '1      '
                                                      END AS SUNITS,

         CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
              WHEN A.ACCESSTYPE = 'I ' THEN 'IX-SCAN'
              WHEN A.ACCESSTYPE = 'I1' THEN 'IX-ONEF'
              WHEN A.ACCESSTYPE = 'M ' THEN 'MULT-IX'
              WHEN A.ACCESSTYPE = 'MX' THEN 'IX-SC.X'
              WHEN A.ACCESSTYPE = 'MI' THEN 'IX-SC.I'
              WHEN A.ACCESSTYPE = 'MU' THEN 'IX-SC.U'
              WHEN A.ACCESSTYPE = 'N ' THEN 'IX-INLI'
              WHEN A.ACCESSTYPE = 'R ' THEN 'TS-SCAN'
              WHEN A.ACCESSTYPE = 'RW' THEN 'WF-SCAN'
              WHEN A.ACCESSTYPE = 'T ' THEN 'IX-SPRS'
              WHEN A.ACCESSTYPE = 'V ' THEN 'BUFFERS'
              WHEN A.ACCESSTYPE = '  ' THEN '       '
                                       ELSE '       ' END AS ACCESS,

         CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN '            '
           WHEN A.ACCESSTYPE = 'R  ' THEN '            '
           ELSE SUBSTR(A.ACCESSNAME, 1, 12)           END AS "INDEX",

         CASE WHEN A.TNAME = ' ' THEN '            '
              ELSE SUBSTR(A.TNAME, 1, 12)             END AS "TABLE",

         SUBSTR(A.CORRELATION_NAME, 1, 5)                 AS CORR,
         CASE WHEN A.METHOD = 3         THEN '  '
              WHEN A.ACCESSTYPE = 'R '  THEN '  '
              WHEN A.QBLOCK_TYPE = 'INSERT' THEN '  '
              ELSE SUBSTR(DIGITS(A.MATCHCOLS), 5, 1)  END AS MC,

         CASE WHEN A.INDEXONLY = 'Y' THEN 'XO'
              ELSE '  '                               END AS XO,

         CASE A.METHOD
              WHEN 0 THEN '0     '
              WHEN 1 THEN 'NLJOIN'
              WHEN 2 THEN 'SMJOIN'
              WHEN 3 THEN 'SORT  '
              WHEN 4 THEN 'HYJOIN'
              ELSE CHAR(A.METHOD)                     END AS METHOD,

         CASE A.JOIN_TYPE
              WHEN 'F' THEN 'FULL '
              WHEN 'L' THEN 'LEFT '
              WHEN 'S' THEN 'STAR '
              ELSE          '     '                   END AS "JOIN",

         A.SORTN_UNIQ CONCAT A.SORTN_JOIN CONCAT A.SORTN_ORDERBY
           CONCAT A.SORTN_GROUPBY                         AS UJOG,
         A.SORTC_UNIQ CONCAT A.SORTC_JOIN CONCAT A.SORTC_ORDERBY
           CONCAT A.SORTC_GROUPBY                          AS UJOC,

         A.QBLOCK_TYPE AS QBTYPE,

         CASE WHEN A.TABLE_TYPE IS NULL THEN '      '
           WHEN A.TABLE_TYPE = 'B' THEN 'BUFFER'
           WHEN A.TABLE_TYPE = 'C' THEN 'CTE   '
           WHEN A.TABLE_TYPE = 'F' THEN 'TBLFNC'
           WHEN A.TABLE_TYPE = 'M' THEN 'MQT   '
           WHEN A.TABLE_TYPE = 'Q' THEN 'VMQT  '
           WHEN A.TABLE_TYPE = 'R' THEN 'RC#CTE'
           WHEN A.TABLE_TYPE = 'T' THEN 'TABLE/'
           WHEN A.TABLE_TYPE = 'W' THEN 'WRKFIL'
           ELSE A.TABLE_TYPE                          END AS TTYP,

         A.TSLOCKMODE                                     AS LCK,

         CASE A.PARALLELISM_MODE
           WHEN 'C' THEN 'CPU '
           WHEN 'I' THEN 'I-O '
           WHEN 'X' THEN 'PLEX'
           ELSE          '    '                       END AS PARAL,

         STRIP(DIGITS(A.ACCESS_DEGREE), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(A.JOIN_DEGREE), LEADING, '0')
                                                          AS AJ_DEG,

         STRIP(DIGITS(A.ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(A.JOIN_PGROUP_ID), LEADING, '0')
                                                          AS PG_DEG,

         STRIP(DIGITS(A.MERGE_JOIN_COLS), LEADING, '0') AS MJC,

         CASE A.PREFETCH
           WHEN 'S' THEN 'SEQ '
           WHEN 'L' THEN 'LIST'
           WHEN 'D' THEN 'DYN '
           ELSE          '    '                       END AS PREFETCH,

         STRIP(DIGITS(A."QUERYNO"), LEADING, '0')         AS QNO,
         SUBSTR(DIGITS(A.QBLOCKNO), 4, 2) CONCAT ' '
           CONCAT SUBSTR(DIGITS(A.PLANNO), 4, 2)
                                                          AS BL_PL,
         A.PARENT_QBLOCKNO,
         A.QBLOCKNO, A.PLANNO, A.TNAME, A.ACCESSNAME, A.OPTHINT,
         A.HINT_USED, A.APPLNAME, A."COLLID", A.VERSION,
         A.TIMESTAMP, A.BIND_TIME, A."QUERYNO", A.MIXOPSEQ, A.TABNO,
         A.CORRELATION_NAME, A.COLUMN_FN_EVAL, A.SORTC_PGROUP_ID,
         A.SORTN_PGROUP_ID, A.PAGE_RANGE, A.WHEN_OPTIMIZE,
         A.TABLE_ENCODE, A.TABLE_SCCSID, A.ROUTINE_ID, A.CTEREF,
         A.STMTTOKEN,
--       S.COST_CATEGORY, S.PROCMS, S.PROCSU, S.REASON
         'A' AS COST_CATEGORY, 1 AS PROCMS, 1 AS PROCSU, ' ' AS REASON

      FROM A540769.PLAN_TABLE A
--    JOIN
--         (SELECT B.PROGNAME AS BPROGNAME,
--                 B.COLLID AS BCOLLID,
--                 MAX(B.BIND_TIME) BBIND_TIME
--            FROM A540769.PLAN_TABLE B
--            GROUP BY B.PROGNAME, B.COLLID) AS N1
--      ON A.PROGNAME = N1.BPROGNAME
--     AND A.BIND_TIME = N1.BBIND_TIME
--     AND A.COLLID    = N1.BCOLLID
--    LEFT OUTER JOIN A540769.DSN_STATEMNT_TABLE S
--      ON S."COLLID" = A."COLLID"
--     AND S.APPLNAME = A.APPLNAME
--     AND S.PROGNAME = A.PROGNAME
--     AND S."QUERYNO" = A."QUERYNO"
--     AND S.EXPLAIN_TIME = A.BIND_TIME
;
//
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW6_CMN AS
  SELECT SUBSTR(A.PROGNAME, 1, 8) AS PROGNAME,
         SUBSTR(DIGITS(A."QUERYNO"), 5) AS STMT,

         CASE WHEN A.METHOD = 3
              THEN '       '
--            ELSE SUBSTR(CHAR(S.PROCSU), 1, 7) END AS SUNITS,
              ELSE '1      '
                                                      END AS SUNITS,

         CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
              WHEN A.ACCESSTYPE = 'I ' THEN 'IX-SCAN'
              WHEN A.ACCESSTYPE = 'I1' THEN 'IX-ONEF'
              WHEN A.ACCESSTYPE = 'M ' THEN 'MULT-IX'
              WHEN A.ACCESSTYPE = 'MX' THEN 'IX-SC.X'
              WHEN A.ACCESSTYPE = 'MI' THEN 'IX-SC.I'
              WHEN A.ACCESSTYPE = 'MU' THEN 'IX-SC.U'
              WHEN A.ACCESSTYPE = 'N ' THEN 'IX-INLI'
              WHEN A.ACCESSTYPE = 'R ' THEN 'TS-SCAN'
              WHEN A.ACCESSTYPE = 'RW' THEN 'WF-SCAN'
              WHEN A.ACCESSTYPE = 'T ' THEN 'IX-SPRS'
              WHEN A.ACCESSTYPE = 'V ' THEN 'BUFFERS'
              WHEN A.ACCESSTYPE = '  ' THEN '       '
                                       ELSE '       ' END AS ACCESS,

         CASE WHEN A.PRIMARY_ACCESSTYPE = 'D' THEN '            '
           WHEN A.ACCESSTYPE = 'R  ' THEN '            '
           ELSE SUBSTR(A.ACCESSNAME, 1, 12)           END AS "INDEX",

         CASE WHEN A.TNAME = ' ' THEN '            '
              ELSE SUBSTR(A.TNAME, 1, 12)             END AS "TABLE",

         SUBSTR(A.CORRELATION_NAME, 1, 5)                 AS CORR,
         CASE WHEN A.METHOD = 3         THEN '  '
              WHEN A.ACCESSTYPE = 'R '  THEN '  '
              WHEN A.QBLOCK_TYPE = 'INSERT' THEN '  '
              ELSE SUBSTR(DIGITS(A.MATCHCOLS), 5, 1)  END AS MC,

         CASE WHEN A.INDEXONLY = 'Y' THEN 'XO'
              ELSE '  '                               END AS XO,

         CASE A.METHOD
              WHEN 0 THEN '0     '
              WHEN 1 THEN 'NLJOIN'
              WHEN 2 THEN 'SMJOIN'
              WHEN 3 THEN 'SORT  '
              WHEN 4 THEN 'HYJOIN'
              ELSE CHAR(A.METHOD)                     END AS METHOD,

         CASE A.JOIN_TYPE
              WHEN 'F' THEN 'FULL '
              WHEN 'L' THEN 'LEFT '
              WHEN 'S' THEN 'STAR '
              ELSE          '     '                   END AS "JOIN",

         A.SORTN_UNIQ CONCAT A.SORTN_JOIN CONCAT A.SORTN_ORDERBY
           CONCAT A.SORTN_GROUPBY                         AS UJOG,
         A.SORTC_UNIQ CONCAT A.SORTC_JOIN CONCAT A.SORTC_ORDERBY
           CONCAT A.SORTC_GROUPBY                          AS UJOC,

         A.QBLOCK_TYPE AS QBTYPE,

         CASE WHEN A.TABLE_TYPE IS NULL THEN '      '
           WHEN A.TABLE_TYPE = 'B' THEN 'BUFFER'
           WHEN A.TABLE_TYPE = 'C' THEN 'CTE   '
           WHEN A.TABLE_TYPE = 'F' THEN 'TBLFNC'
           WHEN A.TABLE_TYPE = 'M' THEN 'MQT   '
           WHEN A.TABLE_TYPE = 'Q' THEN 'VMQT  '
           WHEN A.TABLE_TYPE = 'R' THEN 'RC#CTE'
           WHEN A.TABLE_TYPE = 'T' THEN 'TABLE/'
           WHEN A.TABLE_TYPE = 'W' THEN 'WRKFIL'
           ELSE A.TABLE_TYPE                          END AS TTYP,

         A.TSLOCKMODE                                     AS LCK,

         CASE A.PARALLELISM_MODE
           WHEN 'C' THEN 'CPU '
           WHEN 'I' THEN 'I-O '
           WHEN 'X' THEN 'PLEX'
           ELSE          '    '                       END AS PARAL,

         STRIP(DIGITS(A.ACCESS_DEGREE), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(A.JOIN_DEGREE), LEADING, '0')
                                                          AS AJ_DEG,

         STRIP(DIGITS(A.ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(A.JOIN_PGROUP_ID), LEADING, '0')
                                                          AS PG_DEG,

         STRIP(DIGITS(A.MERGE_JOIN_COLS), LEADING, '0') AS MJC,

         CASE A.PREFETCH
           WHEN 'S' THEN 'SEQ '
           WHEN 'L' THEN 'LIST'
           WHEN 'D' THEN 'DYN '
           ELSE          '    '                       END AS PREFETCH,

         STRIP(DIGITS(A."QUERYNO"), LEADING, '0')         AS QNO,
         SUBSTR(DIGITS(A.QBLOCKNO), 4, 2) CONCAT ' '
           CONCAT SUBSTR(DIGITS(A.PLANNO), 4, 2)
                                                          AS BL_PL,
         A.PARENT_QBLOCKNO,
         A.QBLOCKNO, A.PLANNO, A.TNAME, A.ACCESSNAME, A.OPTHINT,
         A.HINT_USED, A.APPLNAME, A."COLLID", A.VERSION,
         A.TIMESTAMP, A.BIND_TIME, A."QUERYNO", A.MIXOPSEQ, A.TABNO,
         A.CORRELATION_NAME, A.COLUMN_FN_EVAL, A.SORTC_PGROUP_ID,
         A.SORTN_PGROUP_ID, A.PAGE_RANGE, A.WHEN_OPTIMIZE,
         A.TABLE_ENCODE, A.TABLE_SCCSID, A.ROUTINE_ID, A.CTEREF,
         A.STMTTOKEN,
--       S.COST_CATEGORY, S.PROCMS, S.PROCSU, S.REASON
         'A' AS COST_CATEGORY, 1 AS PROCMS, 1 AS PROCSU, ' ' AS REASON

      FROM A540769.PLAN_TABLE A
--    JOIN
--         (SELECT B.PROGNAME AS BPROGNAME,
--                 B.COLLID AS BCOLLID,
--                 MAX(B.BIND_TIME) BBIND_TIME
--            FROM A540769.PLAN_TABLE B
--            GROUP BY B.PROGNAME, B.COLLID) AS N1
--      ON A.PROGNAME = N1.BPROGNAME
--     AND A.BIND_TIME = N1.BBIND_TIME
--     AND A.COLLID    = N1.BCOLLID
--    LEFT OUTER JOIN A540769.DSN_STATEMNT_TABLE S
--      ON S."COLLID" = A."COLLID"
--     AND S.APPLNAME = A.APPLNAME
--     AND S.PROGNAME = A.PROGNAME
--     AND S."QUERYNO" = A."QUERYNO"
--     AND S.EXPLAIN_TIME = A.BIND_TIME
;
-------------------------------------------------------------------------
  CREATE VIEW  A540769.PLAN_VIEW7 AS
    SELECT (
             SUBSTR(DIGITS(A."QUERYNO"),5) || ' ' || -- STMT

             QBLOCK_TYPE                   || ' ' || -- TYPE

             CASE WHEN METHOD = 3 THEN '      '
                  ELSE CHAR(S.PROCMS) END  ||        -- MSEC

             CASE WHEN PRIMARY_ACCESSTYPE = 'D' THEN 'DIR.ROW'
                  WHEN ACCESSTYPE = 'I '        THEN 'IX-SCAN'
                  WHEN ACCESSTYPE = 'I1'        THEN 'IX-ONE '
                  WHEN ACCESSTYPE = 'R '        THEN 'TS-SCAN'
                  WHEN ACCESSTYPE = 'N '        THEN 'IX-ACC '
                  WHEN ACCESSTYPE = 'M '        THEN 'IX-SC.M'
                  WHEN ACCESSTYPE = 'MX'        THEN 'IX-SC.X'
                  WHEN ACCESSTYPE = 'MI'        THEN 'IX-SC.I'
                  WHEN ACCESSTYPE = 'MU'        THEN 'IX-SC.U'
                  WHEN ACCESSTYPE = 'T'         THEN 'IX-SPRS'
                  WHEN ACCESSTYPE = ' '         THEN '       '
                  ELSE NULL END            || ' ' || -- ACCESS

             CASE WHEN ACCESSTYPE = 'R'         THEN '            '
                  WHEN PRIMARY_ACCESSTYPE = 'D' THEN '            '
                  ELSE SUBSTR(ACCESSNAME,1,12) END || ' ' ||
                                                     -- "INDEX"

             SUBSTR(TNAME,1,18)        || ' ' ||     -- TABLE

             CASE WHEN TABLE_TYPE IS NULL THEN '      '
                  ELSE TABLE_TYPE END  || ' ' ||     -- TTYP


             CASE WHEN METHOD = 3         THEN '  '
                  WHEN ACCESSTYPE = 'R '  THEN '  '
                  ELSE SUBSTR(DIGITS(MATCHCOLS), 4, 2)
                                   END || ' ' ||     -- MC_O

             CASE WHEN INDEXONLY='Y'      THEN 'Y  '
                  ELSE                         '   '
                                   END || ' ' ||     -- IXO

             CASE WHEN OPTHINT<>' '       THEN '*'
                  ELSE                         ' '
                                   END ||            -- HINT

             CASE WHEN HINT_USED<>' '     THEN '*'
                  ELSE                         ' '
                                   END               -- HINT_USED
           ) AS TEXT,

           CASE METHOD
             WHEN 0 THEN '      '
             WHEN 1 THEN 'NLJOIN'
             WHEN 2 THEN 'SMJOIN'
             WHEN 3 THEN 'SORT  '
             WHEN 4 THEN 'HYJOIN'
             ELSE NULL
             END AS METHOD,

           CASE JOIN_TYPE WHEN 'F' THEN 'FULL ' WHEN 'L' THEN 'LEFT '
           WHEN 'S' THEN 'STAR ' ELSE ' ' END AS "JOIN",
           SORTN_UNIQ CONCAT SORTN_JOIN CONCAT SORTN_ORDERBY CONCAT
           SORTN_GROUPBY AS UJOG,
           SORTC_UNIQ CONCAT SORTC_JOIN CONCAT SORTC_ORDERBY CONCAT
           SORTC_GROUPBY AS UJOC, TSLOCKMODE AS LCK,
           SUBSTR(CORRELATION_NAME, 1, 4) AS CORR,

           CASE PARALLELISM_MODE
             WHEN 'C' THEN 'CPU'
             WHEN 'I' THEN 'I-O'
             WHEN 'X' THEN 'SYSPLEX'
             ELSE NULL
             END  AS PARAL,

           STRIP(DIGITS(ACCESS_DEGREE), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(JOIN_DEGREE), LEADING, '0') AS AJ_DEG,

           STRIP(DIGITS(ACCESS_PGROUP_ID), LEADING, '0') CONCAT ' '
           CONCAT STRIP(DIGITS(JOIN_PGROUP_ID), LEADING, '0') AS
           PG_DEG,
           STRIP(DIGITS(MERGE_JOIN_COLS), LEADING, '0') AS MC,

           PREFETCH AS PRE,

           STRIP(DIGITS(A."QUERYNO"), LEADING, '0') AS QNO,

           SUBSTR(DIGITS(QBLOCKNO), 4, 2) CONCAT ' ' CONCAT SUBSTR(
           DIGITS(PLANNO), 4, 2) AS BL_PL,

           A.PARENT_QBLOCKNO,
           A.QBLOCKNO,
           A.PLANNO,
           A.TNAME,
           A.ACCESSNAME,
           A.OPTHINT,
           A.HINT_USED,
           A.APPLNAME,
           A."COLLID",
           A.PROGNAME,
           A.VERSION,

           A.BIND_TIME,
           A.TIMESTAMP,
           A."QUERYNO",
           A.MIXOPSEQ,
           S.COST_CATEGORY,
           S.PROCMS,
           S.PROCSU,
           S.REASON

      FROM A540769.PLAN_TABLE A
      JOIN A540769.DSN_STATEMNT_TABLE S
        ON S."COLLID"     = A."COLLID"
       AND S.APPLNAME     = A.APPLNAME
       AND S.PROGNAME     = A.PROGNAME
       AND S."QUERYNO"    = A."QUERYNO"
       AND S.EXPLAIN_TIME = A.BIND_TIME
;
-------------------------------------------------------------------------
CREATE VIEW A540769.PLAN_VIEW9 AS
  SELECT A.PROGNAME, A.VERSION, S.PROCMS
    FROM A540769.PLAN_TABLE A
    LEFT OUTER JOIN A540769.DSN_STATEMNT_TABLE S
      ON S."COLLID" = A."COLLID"
     AND S.APPLNAME = A.APPLNAME
     AND S.PROGNAME = A.PROGNAME
     AND S.QUERYNO  = A.QUERYNO
     AND S.EXPLAIN_TIME = A.BIND_TIME
;
-------------------------------------------------------------------------
commit
;
}¢--- A540769.WK.SQL(PMGP) cre=2007-05-18 mod=2007-05-18-09.01.57 F540769 ------
--  Abfrage aus Perfomance Datenbank                    W.Keller 09.2007
--      Total pro GebietsPointer und GesamtTotal
--
--  Achtung: die Perfomance DB ist jetzt im DBOC für alle Systeme
--           TabellenName, Subsystem Selektion etc.
--               müssen angepasst werden
--
select current timestamp "before" from sysibm.sysdummy1
;
with c1 as
  ( select trunc_Timestamp(current_timestamp - 1 month, 'MON') von,
           trunc_Timestamp(current_timestamp          , 'MON') bis
    from sysibm.sysdummy1
  ) ,
c  as
  ( select trunc_Timestamp(current_timestamp - 12 days , 'DD') von,
           trunc_Timestamp(current_timestamp - 11 days , 'DD') bis
    from sysibm.sysdummy1
  ),
de1 as
  ( select SUBSYSTEM_ID    subsys,
           CONNECT_TYPE    conn,
           PLAN_NAME       plan,
           sum(occurrences * real(CLASS2_ELAPSED)) ela,
           sum(occurrences * real(CLASS2_CPU))     cpu,
           sum(real(OCCURRENCES)) occ,
           sum(real(COMMITS))    comm,
           sum(real(occurrences * READS))   reads,
           sum(real(occurrences * UPDATES)) upd
      from DB2PMPDB.TACCT_EXTRACT t, c
      where interval_time >= von and interval_time < bis
      group by subsystem_id, connect_type, plan_name
  ),
det as
  ( select
        case
            when lower(plan) =       'asnapply'       then 'aAsnApply'
            when plan <> upper(plan)                  then 'aSer'
            when left(plan, 3) = 'ACT'                then 'aBMC'
            when left(plan, 3) = 'ADM'                then 'aBMC'
            when left(plan, 3) = 'AEX'                then 'aBMC'
            when left(plan, 3) = 'ASU'                then 'aBMC'
            when left(plan, 3) = 'CM7'                then 'aBMC'
            when left(plan, 3) = 'ADB'                then 'aDBA'
            when left(plan, 3) = 'AFR'                then '?AFR'
            when left(plan, 3) = 'ALA'                then '?ALA'
            when left(plan, 3) = 'CBR'                then 'aCBri'
            when left(plan, 3) = 'CNT'                then '?CNT'
            when left(plan, 3) = 'CSQ'                then 'aMQ'
            when left(plan, 3) = 'DB2'                then 'aDBA'
            when plan               = 'DISTSERV'      then 'aDistServ'
            when plan               = 'DSNUTIL'       then 'aUtil'
            when left(plan, 3) = 'DSN'                then 'aDSN'
            when left(plan, 2) = 'DS'                 then '?DS'
            when left(plan, 3) = 'FPE'                then 'aDBA'
            when left(plan, 3) = 'FRN'                then '?FRN'
            when plan               = 'FILEAID'       then 'aFileAid'
            when left(plan, 3) = 'HPS'                then 'aHPS'
            when left(plan, 3) = 'ISL'                then '?ISL'
            when left(plan, 3) = 'JSK'                then '?JSK'
            when left(plan, 3) = 'MB1'                then 'aSer'
            when left(plan, 3) = 'MB2'                then 'aSer'
            when left(plan, 3) = 'MQ1'                then 'aMQ'
            when left(plan, 3) = 'MSA'                then 'aSer'
            when left(plan, 3) = 'M24'                then '?M24'
            when left(plan, 3) = 'NTA'                then 'aCics'
            when left(plan, 3) = 'QMF'                then 'aQMF'
            when left(plan, 3) = 'SAS'                then 'aSAS'
            when left(plan, 3) = 'SMU'                then '?SMU'
            when left(plan, 3) = 'SPD'                then '?SPD'
            when left(plan, 3) = 'STR'                then '?STR'
            when left(plan, 2) = 'S6'                 then '?S6'
            when left(plan, 3) = 'XIN'                then 'aXX'
            when conn = 'UTILITY'                     then 'aUtil'
            when plan         = ''                    then '?Leer'
            else                              'g' || left(plan, 2)
        end gp,
        de1.*
      from de1
  ) ,
geb as
  ( select gp, sum(cpu) cpu, sum(ela) ela, sum(occ) occ,
               sum(comm) comm, sum(reads) reads, sum(upd) upd
      from det
      group by gp
  ) ,
typ as
  ( select left(gp, 1) gp, sum(cpu) cpu, sum(ela) ela, sum(occ) occ,
               sum(comm) comm, sum(reads) reads, sum(upd) upd
      from det
      group by left(gp, 1)
  ) ,
typGP as
  ( select *
      from typ
      where gp = 'g'
  ),
uni as
  ( select '*' || strip(gp) || '*' gp, cpu, ela, occ, comm, reads, upd
        from typ
    union select *
        from geb
  )
select  u.gp "Gebiets Pointer",
        decimal(round(u.cpu * 100 / g.cpu, 2), 5, 2)  "cpu %",
                                u.cpu "cpu secs", u.ela "elapsed secs",
        u.occ "occurrences", u.comm "commits",
        u.reads "reads", u.upd "updates"
    from uni u, typGP g
    order by left(u.gp,1), 2 desc
    with ur
;
select current timestamp "after" from sysibm.sysdummy1
;
x
select  gp    , left(subsystem_id, 3),
        sum(cpu), count(*), sum(occurrences)
    from e
    group by gp   , left(subsystem_id, 3)
    order by 3 desc
    with ur
;
select gp, left(subsystem_id, 3), plan_name,  conn,
        sum(cpu), count(*), sum(occurrences)
    from e
    group by gp, left(subsystem_id, 3), plan_name, conn
    order by 1, 2, 3, 4
    with ur
;
}¢--- A540769.WK.SQL(PMGPREL) cre=2006-09-11 mod=2006-11-28-12.49.16 F540769 ---

select 'before', current timestamp from sysibm.sysdummy1
;
with c1 as
  ( select trunc_Timestamp(current_timestamp - 1 month, 'MON') von,
           trunc_Timestamp(current_timestamp          , 'MON') bis
    from sysibm.sysdummy1
  ) ,
 c  as
 (
    select c1.*, days(bis) - days(von) noDays,
        (days(bis)-days(von))*24*3600 secs
    from c1
  ) ,
e as
  ( select t.*,
        occurrences  * real(class2_cpu) / secs cpu,
        case
            when lower(plan_name) =  'asnapply'       then 'gAsnApply'
            when plan_name <> upper(plan_name)        then 'aSer'
            when left(plan_name, 3) = 'ACT'           then 'aBMC'
            when left(plan_name, 3) = 'ADM'           then 'aBMC'
            when left(plan_name, 3) = 'AEX'           then 'aBMC'
            when left(plan_name, 3) = 'ASU'           then 'aBMC'
            when left(plan_name, 3) = 'CM7'           then 'aBMC'
            when left(plan_name, 3) = 'ADB'           then 'aDBA'
            when left(plan_name, 3) = 'AFR'           then '?AFR'
            when left(plan_name, 3) = 'ALA'           then '?ALA'
            when left(plan_name, 3) = 'CBR'           then 'aCBri'
            when left(plan_name, 3) = 'CNT'           then '?CNT'
            when left(plan_name, 3) = 'CSQ'           then 'aMQ'
            when left(plan_name, 3) = 'DB2'           then 'aDBA'
            when plan_name          = 'DISTSERV'      then 'gDistServ'
            when plan_name          = 'DSNUTIL'       then 'aUtil'
            when left(plan_name, 3) = 'DSN'           then 'aDSN'
            when left(plan_name, 2) = 'DS'            then '?DS'
            when left(plan_name, 3) = 'FPE'           then 'aDBA'
            when left(plan_name, 3) = 'FRN'           then '?FRN'
            when plan_name          = 'FILEAID'       then 'aFileAid'
            when left(plan_name, 3) = 'HPS'           then 'aHPS'
            when left(plan_name, 3) = 'ISL'           then '?ISL'
            when left(plan_name, 3) = 'JSK'           then '?JSK'
            when left(plan_name, 3) = 'MB1'           then 'aSer'
            when left(plan_name, 3) = 'MB2'           then 'aSer'
            when left(plan_name, 3) = 'MQ1'           then 'aMQ'
            when left(plan_name, 3) = 'MSA'           then 'aSer'
            when left(plan_name, 3) = 'M24'           then '?M24'
            when left(plan_name, 3) = 'NTA'           then 'aCics'
            when left(plan_name, 3) = 'QMF'           then 'aQMF'
            when left(plan_name, 3) = 'SAS'           then 'aSAS'
            when left(plan_name, 3) = 'SMU'           then '?SMU'
            when left(plan_name, 3) = 'SPD'           then '?SPD'
            when left(plan_name, 3) = 'STR'           then '?STR'
            when left(plan_name, 2) = 'S6'            then '?S6'
            when left(plan_name, 3) = 'XIN'           then 'aXX'
            when connect_type = 'UTILITY'             then 'aUtil'
            when plan_name    = ''                    then '?Leer'
            else                              'g' || left(plan_name, 2)
        end gp
      from DB2PMPDB.TACCT_EXTRACT t, c
      where interval_time >= von and interval_time < bis
  )
select  gp    , left(subsystem_id, 3),
        sum(cpu), count(*), sum(occurrences)
    from e
    group by gp   , left(subsystem_id, 3)
    order by 3 desc
    with ur
;
select 'before', current timestamp from sysibm.sysdummy1
;
x
select gp, left(subsystem_id, 3), plan_name,  connect_type,
        sum(cpu), count(*), sum(occurrences)
    from e
    group by gp, left(subsystem_id, 3), plan_name, connect_type
    order by 1, 2, 3, 4
    with ur
;
}¢--- A540769.WK.SQL(PMPLAN) cre=2006-09-21 mod=2007-05-18-09.00.50 F540769 ----
--  Abfrage aus Perfomance Datenbank    W.Keller 09.2007
--      Total pro Plan und GesamtTotal
--
--  Achtung: die Perfomance DB ist jetzt im DBOC für alle SubSysteme
--           TabellenName, Subsystem Selektion etc.
--               müssen angepasst werden
--
select 'before', current timestamp from sysibm.sysdummy1
;
with c1 as
  ( select trunc_Timestamp(current_timestamp - 1 month, 'MON') von,
           trunc_Timestamp(current_timestamp          , 'MON') bis
    from sysibm.sysdummy1
  ) ,
c  as
  ( select trunc_Timestamp(current_timestamp - 1 days , 'DD') von,
           trunc_Timestamp(current_timestamp          , 'DD') bis
    from sysibm.sysdummy1
  ),
de1 as
  ( select SUBSYSTEM_ID    subsys,
           CONNECT_TYPE    conn,
           PLAN_NAME       plan,
           sum(occurrences * real(CLASS2_CPU))     cpu,
           sum(occurrences * real(CLASS2_ELAPSED)) ela,
           sum(real(OCCURRENCES)) occ,
           sum(real(COMMITS))    comm,
           sum(real(occurrences * READS))   reads,
           sum(real(occurrences * UPDATES)) upd
      from DB2PMPDB.TACCT_EXTRACT t, c
      where interval_time >= von and interval_time < bis
      group by subsystem_id, connect_type, plan_name
  ),
det as
  ( select
        case
            when lower(plan) =       'asnapply'       then 'aAsnApply'
            when plan <> upper(plan)                  then 'aSer'
            when left(plan, 3) = 'ACT'                then 'aBMC'
            when left(plan, 3) = 'ADM'                then 'aBMC'
            when left(plan, 3) = 'AEX'                then 'aBMC'
            when left(plan, 3) = 'ASU'                then 'aBMC'
            when left(plan, 3) = 'CM7'                then 'aBMC'
            when left(plan, 3) = 'ADB'                then 'aDBA'
            when left(plan, 3) = 'AFR'                then '?AFR'
            when left(plan, 3) = 'ALA'                then '?ALA'
            when left(plan, 3) = 'CBR'                then 'aCBri'
            when left(plan, 3) = 'CNT'                then '?CNT'
            when left(plan, 3) = 'CSQ'                then 'aMQ'
            when left(plan, 3) = 'DB2'                then 'aDBA'
            when plan               = 'DISTSERV'      then 'aDistServ'
            when plan               = 'DSNUTIL'       then 'aUtil'
            when left(plan, 3) = 'DSN'                then 'aDSN'
            when left(plan, 2) = 'DS'                 then '?DS'
            when left(plan, 3) = 'FPE'                then 'aDBA'
            when left(plan, 3) = 'FRN'                then '?FRN'
            when plan               = 'FILEAID'       then 'aFileAid'
            when left(plan, 3) = 'HPS'                then 'aHPS'
            when left(plan, 3) = 'ISL'                then '?ISL'
            when left(plan, 3) = 'JSK'                then '?JSK'
            when left(plan, 3) = 'MB1'                then 'aSer'
            when left(plan, 3) = 'MB2'                then 'aSer'
            when left(plan, 3) = 'MQ1'                then 'aMQ'
            when left(plan, 3) = 'MSA'                then 'aSer'
            when left(plan, 3) = 'M24'                then '?M24'
            when left(plan, 3) = 'NTA'                then 'aCics'
            when left(plan, 3) = 'QMF'                then 'aQMF'
            when left(plan, 3) = 'SAS'                then 'aSAS'
            when left(plan, 3) = 'SMU'                then '?SMU'
            when left(plan, 3) = 'SPD'                then '?SPD'
            when left(plan, 3) = 'STR'                then '?STR'
            when left(plan, 2) = 'S6'                 then '?S6'
            when left(plan, 3) = 'XIN'                then 'aXX'
            when conn = 'UTILITY'                     then 'aUtil'
            when plan         = ''                    then '?Leer'
            else                              'g' || left(plan, 2)
        end gp,
        de1.*
      from de1
  ) ,
typ as
  ( select left(gp, 1) gp,
           sum(cpu) cpu, sum(ela) ela, sum(occ) occ,
               sum(comm) comm, sum(reads) reads, sum(upd) upd
      from det
      group by left(gp, 1)
  ) ,
typGP as
  ( select *
      from typ
      where gp = 'g'
  ) ,
uni as
  ( select * from det where left(gp, 1) <> 'g'
    union select '*' || strip(gp) || '*' gp,
             '*' subsys, '*' conn, '*' plan,
             cpu, ela, occ, comm, reads, upd
        from typ
  )
select decimal(round(uni.cpu * 100 / typGP.cpu, 2), 5, 2)  cpuPer, uni.*
    from uni, typGP
    order by left(gp,1), cpuPer desc
    with ur
;
select 'after', current timestamp from sysibm.sysdummy1
;
x
select  gp    , left(subsystem_id, 3),
        sum(cpu), count(*), sum(occurrences)
    from e
    group by gp   , left(subsystem_id, 3)
    order by 3 desc
    with ur
;
select gp, left(subsystem_id, 3), plan_name,  conn,
        sum(cpu), count(*), sum(occurrences)
    from e
    group by gp, left(subsystem_id, 3), plan_name, conn
    order by 1, 2, 3, 4
    with ur
;
}¢--- A540769.WK.SQL(PM1) cre=2006-09-07 mod=2006-09-12-12.03.03 F540769 -------
select plan_name, count(distinct connect_type)  c ,
              min(connect_type), max(connect_type),
              count(*),
              sum(occurrences), sum(CLASS2_CPU),
              sum(occurrences * CLASS2_CPU)
    from DB2PMPDB.TACCT_EXTRACT
    where interval_time > current_timestamp - 30 days
    group by plan_name
    order by 8 desc
;
xelect distinct connect_type, plan_name
    from DB2PMPDB.TACCT_EXTRACT
    where interval_time > current_timestamp - 1 month
    order by connect_type, plan_name
;
xelect distinct plan
    from DB2PMPDB.TACCT_EXTRACT
    where interval_time > current_timestamp - 3 days
    order by plan
;
select distinct subsystem_id
    from DB2PMPDB.TACCT_EXTRACT
    where interval_time > current_timestamp - 3 days
    order by subsystem_id
;
xelect count(*), trunc_timestamp(interval_time, 'HH'),
          min(interval_time), max(interval_time),
          count(distinct interval_time)
    from DB2PMPDB.TACCT_EXTRACT
    where interval_time > current_timestamp - 3 days
    group by trunc_Timestamp(interval_time, 'HH')
}¢--- A540769.WK.SQL(PRBP#CMP) cre=2013-02-21 mod=2013-02-22-11.25.43 A540769 ---
set current path oa1p;
with g as
(
select
   -- systemId
    groupName
    ,programName
    , case when datetime < '2013-02-08-00.00.01'
        then 'vor' else 'nach' end vn
-- begin prb insert s ap n
    , sum(p.ELAPSEPKG) ELAPSEPKG
    , sum(p.CPUTCBPKG) CPUTCBPKG
    , sum(p.CLASS7CPU_ZIIP) CLASS7CPU_ZIIP
    , sum(p.BPGETPAGE) BPGETPAGE
    , sum(p.BPPGUPDAT) BPPGUPDAT
    , sum(p.BPSYNCRD) BPSYNCRD
    , sum(p.SQLCALL) SQLCALL
    , sum(p.SQLCOUNT) SQLCOUNT
    , sum(p.SELECTS) SELECTS
    , sum(p.INSERTS) INSERTS
    , sum(p.UPDATES) UPDATES
    , sum(p.DELETES) DELETES
    , sum(p.DESCRIBES) DESCRIBES
    , sum(p.PREPARES) PREPARES
    , sum(p.OPENS) OPENS
    , sum(p.FETCHES) FETCHES
    , sum(p.CLOSES) CLOSES
    , sum(p.CLASS7CNT) CLASS7CNT
    , sum(p.CLASS8CNT) CLASS8CNT
    , sum(p.IFCIDSEQ#) IFCIDSEQ#
    , sum(p.CPUSUCONV) CPUSUCONV
    , sum(p.ELAPSYNCIO) ELAPSYNCIO
    , sum(p.ELPLOCK) ELPLOCK
    , sum(p.ELPOTHREAD) ELPOTHREAD
    , sum(p.ELPOTHWRIT) ELPOTHWRIT
    , sum(p.ELPUNITSW) ELPUNITSW
    , sum(p.ELPARCQIS) ELPARCQIS
    , sum(p.ELPDRAIN) ELPDRAIN
    , sum(p.ELPCLAIM) ELPCLAIM
    , sum(p.ELPARCREAD) ELPARCREAD
    , sum(p.ELPPGLAT) ELPPGLAT
    , sum(p.GBLMSGELAP) GBLMSGELAP
    , sum(p.GBLLOKELAP) GBLLOKELAP
    , sum(p.SPWAITELAP) SPWAITELAP
    , sum(p.SPROCCNT) SPROCCNT
    , sum(p.FUNCWAIT) FUNCWAIT
    , sum(p.FUNCCNT) FUNCCNT
    , sum(p.LOBWAITELAP) LOBWAITELAP
    , sum(p.WTELAWTK) WTELAWTK
    , sum(p.WTELAWTM) WTELAWTM
    , sum(p.WTELAWTN) WTELAWTN
    , sum(p.WTELAWTO) WTELAWTO
    , sum(p.WTELAWTQ) WTELAWTQ
    , sum(p.RLFCPULIMITU) RLFCPULIMITU
    , sum(p.RLFCPUUSEDU) RLFCPUUSEDU
    , sum(p.SUSPLATCH) SUSPLATCH
    , sum(p.SUSPOTHER) SUSPOTHER
    , sum(p.LOCKREQS) LOCKREQS
    , sum(p.UNLOCKREQS) UNLOCKREQS
    , sum(p.QUERYREQS) QUERYREQS
    , sum(p.CHNGREQS) CHNGREQS
    , sum(p.IRLMREQS) IRLMREQS
    , sum(p.CLAIMREQ) CLAIMREQ
    , sum(p.DRAINREQ) DRAINREQ
-- end   prb insert s ap n
    , 1 typ
    , min(dateTime) von
    , max(dateTime) bis
    , count(distinct date(dateTime)) cDay
    from pbDD.tacct_program p
    where   dateTime >= '2013-02-01-00.00.00'
        and dateTime <  '2013-02-18-00.00.00'
        and not (dateTime >= '2013-02-08-00.00.00'
                 and dateTime <  '2013-02-11-00.00.00')
       -- and programName like 'YMF%'
    group by groupName, programName
        , case when datetime < '2013-02-08-00.00.01'
               then 'vor' else 'nach' end
)
, t as
(
  select groupName, '*total*' programName, vn
-- begin prb insert s ag n
    , sum(g.ELAPSEPKG) ELAPSEPKG
    , sum(g.CPUTCBPKG) CPUTCBPKG
    , sum(g.CLASS7CPU_ZIIP) CLASS7CPU_ZIIP
    , sum(g.BPGETPAGE) BPGETPAGE
    , sum(g.BPPGUPDAT) BPPGUPDAT
    , sum(g.BPSYNCRD) BPSYNCRD
    , sum(g.SQLCALL) SQLCALL
    , sum(g.SQLCOUNT) SQLCOUNT
    , sum(g.SELECTS) SELECTS
    , sum(g.INSERTS) INSERTS
    , sum(g.UPDATES) UPDATES
    , sum(g.DELETES) DELETES
    , sum(g.DESCRIBES) DESCRIBES
    , sum(g.PREPARES) PREPARES
    , sum(g.OPENS) OPENS
    , sum(g.FETCHES) FETCHES
    , sum(g.CLOSES) CLOSES
    , sum(g.CLASS7CNT) CLASS7CNT
    , sum(g.CLASS8CNT) CLASS8CNT
    , sum(g.IFCIDSEQ#) IFCIDSEQ#
    , sum(g.CPUSUCONV) CPUSUCONV
    , sum(g.ELAPSYNCIO) ELAPSYNCIO
    , sum(g.ELPLOCK) ELPLOCK
    , sum(g.ELPOTHREAD) ELPOTHREAD
    , sum(g.ELPOTHWRIT) ELPOTHWRIT
    , sum(g.ELPUNITSW) ELPUNITSW
    , sum(g.ELPARCQIS) ELPARCQIS
    , sum(g.ELPDRAIN) ELPDRAIN
    , sum(g.ELPCLAIM) ELPCLAIM
    , sum(g.ELPARCREAD) ELPARCREAD
    , sum(g.ELPPGLAT) ELPPGLAT
    , sum(g.GBLMSGELAP) GBLMSGELAP
    , sum(g.GBLLOKELAP) GBLLOKELAP
    , sum(g.SPWAITELAP) SPWAITELAP
    , sum(g.SPROCCNT) SPROCCNT
    , sum(g.FUNCWAIT) FUNCWAIT
    , sum(g.FUNCCNT) FUNCCNT
    , sum(g.LOBWAITELAP) LOBWAITELAP
    , sum(g.WTELAWTK) WTELAWTK
    , sum(g.WTELAWTM) WTELAWTM
    , sum(g.WTELAWTN) WTELAWTN
    , sum(g.WTELAWTO) WTELAWTO
    , sum(g.WTELAWTQ) WTELAWTQ
    , sum(g.RLFCPULIMITU) RLFCPULIMITU
    , sum(g.RLFCPUUSEDU) RLFCPUUSEDU
    , sum(g.SUSPLATCH) SUSPLATCH
    , sum(g.SUSPOTHER) SUSPOTHER
    , sum(g.LOCKREQS) LOCKREQS
    , sum(g.UNLOCKREQS) UNLOCKREQS
    , sum(g.QUERYREQS) QUERYREQS
    , sum(g.CHNGREQS) CHNGREQS
    , sum(g.IRLMREQS) IRLMREQS
    , sum(g.CLAIMREQ) CLAIMREQ
    , sum(g.DRAINREQ) DRAINREQ
-- end   prb insert s ag n
    , 0 typ
    , min(von) von
    , max(bis) bis
    , max(cDay) cDay
    from g
    group by groupName, vn
)
, p as
(
  select vn
    , min(von)  perVon
    , max(bis)  perBis
    , max(cDay) perCDay
    , 1 + days(max(bis)) - days(min(von)) perAll
    , max(cDay) * float(86400) perSec
    from t
    group by vn
)
, u as
(
  select * from g
  union all select * from t
)
, n as
(
  select n.*
     , n.CPUTCBPKG - coalesce(v.CPUTCBPKG, 0) cpuInc
    from u n left outer join u v
        on v.groupName = n.groupName and v.programName = n.programName
            and v.vn = 'vor'
    where n.vn = 'nach'
    order by n.typ asc, cpuInc desc
    fetch first 103 rows only
)
, a as
(
  select n.*, p.perVon, p.perBis, p.perCDay, p.perAll, p.perSec
      from n, p
      where p.vn = 'nach'
  union all select v.*, n.cpuInc
            , p.perVon, p.perBis, p.perCDay, p.perAll, p.perSec
      from n join u v
        on v.groupName = n.groupName and v.programName = n.programName
          and v.vn = 'vor'
      , p
      where p.vn = 'vor'
)
select  case when vn='nach' then fosFmtE8(cpuInc/perSec)
             else substr(right('       ' || strip(char(int(round(
                 cpuTcbPkg*100/(cpuTcbPkg+cpuInc), 0)))), 7) || '%',1,8)
        end "cpuInc"
      , substr(groupName, 1, 4) "dbSy"
      , substr(programName, 1, 8) program
      , substr(right('    ' || strip(char(cDay)), 4), 1, 4) "days"
      , vn
-- begin prb insert pen aa e~/a.perSec
-- tacct_program a, fsoFmtE7, all, expr ~/a.perSec
    , fosFmtE7(a.ELAPSEPKG/a.perSec) "pkgElap"
    , fosFmtE7(a.CPUTCBPKG/a.perSec) "pkgCpu"
    , fosFmtE7(a.CLASS7CPU_ZIIP/a.perSec) "pkgZIIP"
    , fosPrWait(a.ELAPSYNCIO/a.perSec, a.ELPLOCK/a.perSec
      , a.ELPOTHREAD/a.perSec, a.ELPOTHWRIT/a.perSec
      , a.ELPUNITSW/a.perSec, a.ELPARCQIS/a.perSec
      , a.ELPDRAIN/a.perSec, a.ELPCLAIM/a.perSec
      , a.ELPARCREAD/a.perSec, a.ELPPGLAT/a.perSec
      , a.GBLMSGELAP/a.perSec, a.GBLLOKELAP/a.perSec
      , a.SPWAITELAP/a.perSec, a.FUNCWAIT/a.perSec
      , a.LOBWAITELAP/a.perSec, a.WTELAWTK/a.perSec
      , a.WTELAWTM/a.perSec, a.WTELAWTN/a.perSec, a.WTELAWTO/a.perSec
      , a.WTELAWTQ/a.perSec) "wait    % 1.   % 2.   % 3."
    , fosFmtE7(a.BPGETPAGE/a.perSec) "bpGetPg"
    , fosFmtE7(a.BPPGUPDAT/a.perSec) "bpUpdPg"
    , fosFmtE7(a.BPSYNCRD/a.perSec) "bpSynRe"
    , fosFmtE7(a.SQLCALL/a.perSec) SQLCALL
    , fosFmtE7(a.SQLCOUNT/a.perSec) SQLCOUNT
    , fosFmtE7(a.SELECTS/a.perSec) SELECTS
    , fosFmtE7(a.INSERTS/a.perSec) INSERTS
    , fosFmtE7(a.UPDATES/a.perSec) UPDATES
    , fosFmtE7(a.DELETES/a.perSec) DELETES
    , fosFmtE7(a.DESCRIBES/a.perSec) "describ"
    , fosFmtE7(a.PREPARES/a.perSec) "prepare"
    , fosFmtE7(a.OPENS/a.perSec) OPENS
    , fosFmtE7(a.FETCHES/a.perSec) FETCHES
    , fosFmtE7(a.CLOSES/a.perSec) CLOSES
    , real((a.ELAPSYNCIO + a.ELPLOCK + a.ELPOTHREAD + a.ELPOTHWRIT
      + a.ELPUNITSW + a.ELPARCQIS + a.ELPDRAIN + a.ELPCLAIM
      + a.ELPARCREAD + a.ELPPGLAT + a.GBLMSGELAP + a.GBLLOKELAP
      + a.SPWAITELAP + a.FUNCWAIT + a.LOBWAITELAP + a.WTELAWTK
      + a.WTELAWTM + a.WTELAWTN + a.WTELAWTO
      + a.WTELAWTQ)/a.perSec) "wait"
    , fosFmtE7(a.CLASS7CNT/a.perSec) CLASS7CNT
    , fosFmtE7(a.CLASS8CNT/a.perSec) CLASS8CNT
    , fosFmtE7(a.IFCIDSEQ#/a.perSec) IFCIDSEQ#
    , fosFmtE7(a.CPUSUCONV/a.perSec) CPUSUCONV
    , fosFmtE7(a.ELAPSYNCIO/a.perSec) "syncIOW"
    , fosFmtE7(a.ELPLOCK/a.perSec) ELPLOCK
    , fosFmtE7(a.ELPOTHREAD/a.perSec) "othReaW"
    , fosFmtE7(a.ELPOTHWRIT/a.perSec) "othWriW"
    , fosFmtE7(a.ELPUNITSW/a.perSec) "unitSwW"
    , fosFmtE7(a.ELPARCQIS/a.perSec) "arcLQuW"
    , fosFmtE7(a.ELPDRAIN/a.perSec) "drainW"
    , fosFmtE7(a.ELPCLAIM/a.perSec) "claimW"
    , fosFmtE7(a.ELPARCREAD/a.perSec) "arcLReW"
    , fosFmtE7(a.ELPPGLAT/a.perSec) "pgLatW"
    , fosFmtE7(a.GBLMSGELAP/a.perSec) "glMsgW"
    , fosFmtE7(a.GBLLOKELAP/a.perSec) "glLockW"
    , fosFmtE7(a.SPWAITELAP/a.perSec) "stPrW"
    , fosFmtE7(a.SPROCCNT/a.perSec) SPROCCNT
    , fosFmtE7(a.FUNCWAIT/a.perSec) FUNCWAIT
    , fosFmtE7(a.FUNCCNT/a.perSec) FUNCCNT
    , fosFmtE7(a.LOBWAITELAP/a.perSec) "lobW"
    , fosFmtE7(a.WTELAWTK/a.perSec) "glChiW"
    , fosFmtE7(a.WTELAWTM/a.perSec) "glOthW"
    , fosFmtE7(a.WTELAWTN/a.perSec) "glPrtW"
    , fosFmtE7(a.WTELAWTO/a.perSec) "glPgPhW"
    , fosFmtE7(a.WTELAWTQ/a.perSec) "glOtPhW"
    , fosFmtE7(a.RLFCPULIMITU/a.perSec) RLFCPULIMITU
    , fosFmtE7(a.RLFCPUUSEDU/a.perSec) RLFCPUUSEDU
    , fosFmtE7(a.SUSPLATCH/a.perSec) SUSPLATCH
    , fosFmtE7(a.SUSPOTHER/a.perSec) SUSPOTHER
    , fosFmtE7(a.LOCKREQS/a.perSec) LOCKREQS
    , fosFmtE7(a.UNLOCKREQS/a.perSec) UNLOCKREQS
    , fosFmtE7(a.QUERYREQS/a.perSec) QUERYREQS
    , fosFmtE7(a.CHNGREQS/a.perSec) CHNGREQS
    , fosFmtE7(a.IRLMREQS/a.perSec) IRLMREQS
    , fosFmtE7(a.CLAIMREQ/a.perSec) CLAIMREQ
    , fosFmtE7(a.DRAINREQ/a.perSec) DRAINREQ
-- end   prb insert pen aa e~/a.perSec
    , von, bis, cDay
    ,           perCDay, perAll, perSec, perVon, perBis
  from  a
  order by typ asc, cpuInc desc, groupName, programName, vn
;x;
select coalesce(v.groupName, n.groupName) group
     , coalesce(v.programName, n.programName) program
     , fosFmte8(coalesce(n.CPUTCBPKG, 0)
              - coalesce(v.CPUTCBPKG, 0)) "cpuNa-Vo"
     , v.vn
     , n.vn
     , real(coalesce(n.CPUTCBPKG, 0)
              - coalesce(v.CPUTCBPKG, 0)) ord1
}¢--- A540769.WK.SQL(PRBP#TOP) cre=2013-02-21 mod=2013-03-27-10.51.21 A540769 ---
set current path oa1p;
with p as
(
select
    groupName
    , programName
-- begin prb insert snp ap
-- tacct_program p, all, expr sum(~)
    , sum(p.ELAPSEPKG) ELAPSEPKG
    , sum(p.CPUTCBPKG) CPUTCBPKG
    , sum(p.CLASS7CPU_ZIIP) CLASS7CPU_ZIIP
    , sum(p.BPGETPAGE) BPGETPAGE
    , sum(p.BPPGUPDAT) BPPGUPDAT
    , sum(p.BPSYNCRD) BPSYNCRD
    , sum(p.SQLCALL) SQLCALL
    , sum(p.SQLCOUNT) SQLCOUNT
    , sum(p.SELECTS) SELECTS
    , sum(p.INSERTS) INSERTS
    , sum(p.UPDATES) UPDATES
    , sum(p.DELETES) DELETES
    , sum(p.DESCRIBES) DESCRIBES
    , sum(p.PREPARES) PREPARES
    , sum(p.OPENS) OPENS
    , sum(p.FETCHES) FETCHES
    , sum(p.CLOSES) CLOSES
    , sum(p.CLASS7CNT) CLASS7CNT
    , sum(p.CLASS8CNT) CLASS8CNT
    , sum(p.IFCIDSEQ#) IFCIDSEQ#
    , sum(p.CPUSUCONV) CPUSUCONV
    , sum(p.ELAPSYNCIO) ELAPSYNCIO
    , sum(p.ELPLOCK) ELPLOCK
    , sum(p.ELPOTHREAD) ELPOTHREAD
    , sum(p.ELPOTHWRIT) ELPOTHWRIT
    , sum(p.ELPUNITSW) ELPUNITSW
    , sum(p.ELPARCQIS) ELPARCQIS
    , sum(p.ELPDRAIN) ELPDRAIN
    , sum(p.ELPCLAIM) ELPCLAIM
    , sum(p.ELPARCREAD) ELPARCREAD
    , sum(p.ELPPGLAT) ELPPGLAT
    , sum(p.GBLMSGELAP) GBLMSGELAP
    , sum(p.GBLLOKELAP) GBLLOKELAP
    , sum(p.SPWAITELAP) SPWAITELAP
    , sum(p.SPROCCNT) SPROCCNT
    , sum(p.FUNCWAIT) FUNCWAIT
    , sum(p.FUNCCNT) FUNCCNT
    , sum(p.LOBWAITELAP) LOBWAITELAP
    , sum(p.WTELAWTK) WTELAWTK
    , sum(p.WTELAWTM) WTELAWTM
    , sum(p.WTELAWTN) WTELAWTN
    , sum(p.WTELAWTO) WTELAWTO
    , sum(p.WTELAWTQ) WTELAWTQ
    , sum(p.RLFCPULIMITU) RLFCPULIMITU
    , sum(p.RLFCPUUSEDU) RLFCPUUSEDU
    , sum(p.SUSPLATCH) SUSPLATCH
    , sum(p.SUSPOTHER) SUSPOTHER
    , sum(p.LOCKREQS) LOCKREQS
    , sum(p.UNLOCKREQS) UNLOCKREQS
    , sum(p.QUERYREQS) QUERYREQS
    , sum(p.CHNGREQS) CHNGREQS
    , sum(p.IRLMREQS) IRLMREQS
    , sum(p.CLAIMREQ) CLAIMREQ
    , sum(p.DRAINREQ) DRAINREQ
-- end   prb insert snp ap
    , sum(p.CPUTCBPKG * 16000000 / max(1,p.CPUSUCONV)) suTcbPkg
    , min(p.CPUSUCONV) cpuSUMin
    , max(p.CPUSUCONV) cpuSUMax
    , min(date(dateTime)) dateFrom
    , max(date(dateTime)) dateTo
    , count(distinct date(dateTime)) cDay
    from pbDD.tacct_program p
    where dateTime between '2013-03-01-00.00.00'
                       and '2013-03-31-24.00.00'
    group by  groupName
             ,programName
)
, g as
(
  select
    groupName
    ,'%' programName
-- begin prb insert snp ap
-- tacct_program p, all, expr sum(~)
    , sum(p.ELAPSEPKG) ELAPSEPKG
    , sum(p.CPUTCBPKG) CPUTCBPKG
    , sum(p.CLASS7CPU_ZIIP) CLASS7CPU_ZIIP
    , sum(p.BPGETPAGE) BPGETPAGE
    , sum(p.BPPGUPDAT) BPPGUPDAT
    , sum(p.BPSYNCRD) BPSYNCRD
    , sum(p.SQLCALL) SQLCALL
    , sum(p.SQLCOUNT) SQLCOUNT
    , sum(p.SELECTS) SELECTS
    , sum(p.INSERTS) INSERTS
    , sum(p.UPDATES) UPDATES
    , sum(p.DELETES) DELETES
    , sum(p.DESCRIBES) DESCRIBES
    , sum(p.PREPARES) PREPARES
    , sum(p.OPENS) OPENS
    , sum(p.FETCHES) FETCHES
    , sum(p.CLOSES) CLOSES
    , sum(p.CLASS7CNT) CLASS7CNT
    , sum(p.CLASS8CNT) CLASS8CNT
    , sum(p.IFCIDSEQ#) IFCIDSEQ#
    , sum(p.CPUSUCONV) CPUSUCONV
    , sum(p.ELAPSYNCIO) ELAPSYNCIO
    , sum(p.ELPLOCK) ELPLOCK
    , sum(p.ELPOTHREAD) ELPOTHREAD
    , sum(p.ELPOTHWRIT) ELPOTHWRIT
    , sum(p.ELPUNITSW) ELPUNITSW
    , sum(p.ELPARCQIS) ELPARCQIS
    , sum(p.ELPDRAIN) ELPDRAIN
    , sum(p.ELPCLAIM) ELPCLAIM
    , sum(p.ELPARCREAD) ELPARCREAD
    , sum(p.ELPPGLAT) ELPPGLAT
    , sum(p.GBLMSGELAP) GBLMSGELAP
    , sum(p.GBLLOKELAP) GBLLOKELAP
    , sum(p.SPWAITELAP) SPWAITELAP
    , sum(p.SPROCCNT) SPROCCNT
    , sum(p.FUNCWAIT) FUNCWAIT
    , sum(p.FUNCCNT) FUNCCNT
    , sum(p.LOBWAITELAP) LOBWAITELAP
    , sum(p.WTELAWTK) WTELAWTK
    , sum(p.WTELAWTM) WTELAWTM
    , sum(p.WTELAWTN) WTELAWTN
    , sum(p.WTELAWTO) WTELAWTO
    , sum(p.WTELAWTQ) WTELAWTQ
    , sum(p.RLFCPULIMITU) RLFCPULIMITU
    , sum(p.RLFCPUUSEDU) RLFCPUUSEDU
    , sum(p.SUSPLATCH) SUSPLATCH
    , sum(p.SUSPOTHER) SUSPOTHER
    , sum(p.LOCKREQS) LOCKREQS
    , sum(p.UNLOCKREQS) UNLOCKREQS
    , sum(p.QUERYREQS) QUERYREQS
    , sum(p.CHNGREQS) CHNGREQS
    , sum(p.IRLMREQS) IRLMREQS
    , sum(p.CLAIMREQ) CLAIMREQ
    , sum(p.DRAINREQ) DRAINREQ
-- end   prb insert snp ap
    , sum(suTcbPkg) suTcbPkg
    , min(cpuSUMin) cpuSUMin
    , max(cpuSUMax) cpuSUMax
    , min(dateFrom) dateFrom
    , max(dateTo  ) dateTo
    , max(cDay) cDay
    from p
    group by groupName
)
, s as
(
   select max(cDay) * 86400 cSec
       from g
)
,  u as
(
   select * from g
   union all (select * from p
    order by  CPUTCBPKG desc
    fetch first 100 rows only)
)
select
    groupName
    , programName
-- begin prb insert enp au e(~/s.cSec)
-- tacct_program u, fsoFmtE7, all, expr (~/s.cSec)
    , fosFmtE7((u.ELAPSEPKG/s.cSec)) "pkgElap"
    , fosFmtE7((u.CPUTCBPKG/s.cSec)) "pkgCpu"
    , fosFmtE7((u.CLASS7CPU_ZIIP/s.cSec)) "pkgZIIP"
    , fosPrWait((u.ELAPSYNCIO/s.cSec), (u.ELPLOCK/s.cSec)
      , (u.ELPOTHREAD/s.cSec), (u.ELPOTHWRIT/s.cSec)
      , (u.ELPUNITSW/s.cSec), (u.ELPARCQIS/s.cSec)
      , (u.ELPDRAIN/s.cSec), (u.ELPCLAIM/s.cSec)
      , (u.ELPARCREAD/s.cSec), (u.ELPPGLAT/s.cSec)
      , (u.GBLMSGELAP/s.cSec), (u.GBLLOKELAP/s.cSec)
      , (u.SPWAITELAP/s.cSec), (u.FUNCWAIT/s.cSec)
      , (u.LOBWAITELAP/s.cSec), (u.WTELAWTK/s.cSec)
      , (u.WTELAWTM/s.cSec), (u.WTELAWTN/s.cSec), (u.WTELAWTO/s.cSec)
      , (u.WTELAWTQ/s.cSec)) "wait    % 1.   % 2.   % 3."
    , fosFmtE7((u.BPGETPAGE/s.cSec)) "bpGetPg"
    , fosFmtE7((u.BPPGUPDAT/s.cSec)) "bpUpdPg"
    , fosFmtE7((u.BPSYNCRD/s.cSec)) "bpSynRe"
    , fosFmtE7((u.SQLCALL/s.cSec)) SQLCALL
    , fosFmtE7((u.SQLCOUNT/s.cSec)) SQLCOUNT
    , fosFmtE7((u.SELECTS/s.cSec)) SELECTS
    , fosFmtE7((u.INSERTS/s.cSec)) INSERTS
    , fosFmtE7((u.UPDATES/s.cSec)) UPDATES
    , fosFmtE7((u.DELETES/s.cSec)) DELETES
    , fosFmtE7((u.DESCRIBES/s.cSec)) "describ"
    , fosFmtE7((u.PREPARES/s.cSec)) "prepare"
    , fosFmtE7((u.OPENS/s.cSec)) OPENS
    , fosFmtE7((u.FETCHES/s.cSec)) FETCHES
    , fosFmtE7((u.CLOSES/s.cSec)) CLOSES
    , real(((u.ELAPSYNCIO + u.ELPLOCK + u.ELPOTHREAD + u.ELPOTHWRIT
      + u.ELPUNITSW + u.ELPARCQIS + u.ELPDRAIN + u.ELPCLAIM
      + u.ELPARCREAD + u.ELPPGLAT + u.GBLMSGELAP + u.GBLLOKELAP
      + u.SPWAITELAP + u.FUNCWAIT + u.LOBWAITELAP + u.WTELAWTK
      + u.WTELAWTM + u.WTELAWTN + u.WTELAWTO
      + u.WTELAWTQ)/s.cSec)) "wait"
    , fosFmtE7((u.CLASS7CNT/s.cSec)) CLASS7CNT
    , fosFmtE7((u.CLASS8CNT/s.cSec)) CLASS8CNT
    , fosFmtE7((u.IFCIDSEQ#/s.cSec)) IFCIDSEQ#
    , fosFmtE7((u.CPUSUCONV/s.cSec)) CPUSUCONV
    , fosFmtE7((u.ELAPSYNCIO/s.cSec)) "syncIOW"
    , fosFmtE7((u.ELPLOCK/s.cSec)) ELPLOCK
    , fosFmtE7((u.ELPOTHREAD/s.cSec)) "othReaW"
    , fosFmtE7((u.ELPOTHWRIT/s.cSec)) "othWriW"
    , fosFmtE7((u.ELPUNITSW/s.cSec)) "unitSwW"
    , fosFmtE7((u.ELPARCQIS/s.cSec)) "arcLQuW"
    , fosFmtE7((u.ELPDRAIN/s.cSec)) "drainW"
    , fosFmtE7((u.ELPCLAIM/s.cSec)) "claimW"
    , fosFmtE7((u.ELPARCREAD/s.cSec)) "arcLReW"
    , fosFmtE7((u.ELPPGLAT/s.cSec)) "pgLatW"
    , fosFmtE7((u.GBLMSGELAP/s.cSec)) "glMsgW"
    , fosFmtE7((u.GBLLOKELAP/s.cSec)) "glLockW"
    , fosFmtE7((u.SPWAITELAP/s.cSec)) "stPrW"
    , fosFmtE7((u.SPROCCNT/s.cSec)) SPROCCNT
    , fosFmtE7((u.FUNCWAIT/s.cSec)) FUNCWAIT
    , fosFmtE7((u.FUNCCNT/s.cSec)) FUNCCNT
    , fosFmtE7((u.LOBWAITELAP/s.cSec)) "lobW"
    , fosFmtE7((u.WTELAWTK/s.cSec)) "glChiW"
    , fosFmtE7((u.WTELAWTM/s.cSec)) "glOthW"
    , fosFmtE7((u.WTELAWTN/s.cSec)) "glPrtW"
    , fosFmtE7((u.WTELAWTO/s.cSec)) "glPgPhW"
    , fosFmtE7((u.WTELAWTQ/s.cSec)) "glOtPhW"
    , fosFmtE7((u.RLFCPULIMITU/s.cSec)) RLFCPULIMITU
    , fosFmtE7((u.RLFCPUUSEDU/s.cSec)) RLFCPUUSEDU
    , fosFmtE7((u.SUSPLATCH/s.cSec)) SUSPLATCH
    , fosFmtE7((u.SUSPOTHER/s.cSec)) SUSPOTHER
    , fosFmtE7((u.LOCKREQS/s.cSec)) LOCKREQS
    , fosFmtE7((u.UNLOCKREQS/s.cSec)) UNLOCKREQS
    , fosFmtE7((u.QUERYREQS/s.cSec)) QUERYREQS
    , fosFmtE7((u.CHNGREQS/s.cSec)) CHNGREQS
    , fosFmtE7((u.IRLMREQS/s.cSec)) IRLMREQS
    , fosFmtE7((u.CLAIMREQ/s.cSec)) CLAIMREQ
    , fosFmtE7((u.DRAINREQ/s.cSec)) DRAINREQ
-- end   prb insert enp au e(~/s.cSec)
    , fosFmtE7(suTcbPkg / s.cSec) suTcbPkg
    , int(CPUSUMin) cpuSuMin
    , int(CPUSUMax) cpuSuMax
    , dateFrom
    , dateTo
    , u.cDay, s.cSec/86400 tDays, fosFmte7(s.cSec) cSec
    from u, s
    with ur
;;;
-- end   prb insert sn ap
select
   -- systemId
    groupName
    ,programName
-- begin prb insert e s ap
    , fosFmtE7(sum(p.ELAPSEPKG)) "pkgElap"
    , fosFmtE7(sum(p.CPUTCBPKG)) "pkgCpu"
    , fosFmtE7(sum(p.CLASS7CPU_ZIIP)) "pkgZIIP"
    , fosPrWait(sum(p.ELAPSYNCIO), sum(p.ELPLOCK), sum(p.ELPOTHREAD)
      , sum(p.ELPOTHWRIT), sum(p.ELPUNITSW), sum(p.ELPARCQIS)
      , sum(p.ELPDRAIN), sum(p.ELPCLAIM), sum(p.ELPARCREAD)
      , sum(p.ELPPGLAT), sum(p.GBLMSGELAP), sum(p.GBLLOKELAP)
      , sum(p.SPWAITELAP), sum(p.FUNCWAIT), sum(p.LOBWAITELAP)
      , sum(p.WTELAWTK), sum(p.WTELAWTM), sum(p.WTELAWTN)
      , sum(p.WTELAWTO), sum(p.WTELAWTQ)) "wait    % 1.   % 2.   % 3."
    , fosFmtE7(sum(p.BPGETPAGE)) "bpGetPg"
    , fosFmtE7(sum(p.BPPGUPDAT)) "bpUpdPg"
    , fosFmtE7(sum(p.BPSYNCRD)) "bpSynRe"
    , fosFmtE7(sum(p.SQLCALL)) SQLCALL
    , fosFmtE7(sum(p.SQLCOUNT)) SQLCOUNT
    , fosFmtE7(sum(p.SELECTS)) SELECTS
    , fosFmtE7(sum(p.INSERTS)) INSERTS
    , fosFmtE7(sum(p.UPDATES)) UPDATES
    , fosFmtE7(sum(p.DELETES)) DELETES
    , fosFmtE7(sum(p.DESCRIBES)) "describ"
    , fosFmtE7(sum(p.PREPARES)) "prepare"
    , fosFmtE7(sum(p.OPENS)) OPENS
    , fosFmtE7(sum(p.FETCHES)) FETCHES
    , fosFmtE7(sum(p.CLOSES)) CLOSES
    , real(sum(p.ELAPSYNCIO + p.ELPLOCK + p.ELPOTHREAD
      + p.ELPOTHWRIT + p.ELPUNITSW + p.ELPARCQIS + p.ELPDRAIN
      + p.ELPCLAIM + p.ELPARCREAD + p.ELPPGLAT + p.GBLMSGELAP
      + p.GBLLOKELAP + p.SPWAITELAP + p.FUNCWAIT + p.LOBWAITELAP
      + p.WTELAWTK + p.WTELAWTM + p.WTELAWTN + p.WTELAWTO
      + p.WTELAWTQ)) "wait"
-- end   prb insert e s ap
    , sum(p.CPUTCBPKG) ord1
    from pbDD.tacct_program p
    where dateTime > current timestamp - 5 days
       -- and programName like 'YMF%'
    group by --systemId
               groupName
             ,programName
    order by ord1 desc
    fetch first 100 rows only
}¢--- A540769.WK.SQL(PRFUNWAI) cre=2013-02-15 mod=2016-02-07-13.28.05 A540769 ---
/*--- functions for PRB ------------------------------------------------
                    Performance puRe Bmc                 Walter, 21.2.13
    oa1p.fqzGeWait: total wait plus 3 biggest singel wait numbers
                    for tacct_general
    oa1p.fqzPrWait: total wait plus 3 biggest singel wait numbers
                    for tacct_program
    hint: use rexx prb to generate correct sqlCalls|
----------------------------------------------------------------------*/
set current sqlid = 'S100447';
/* -----------
  29 ELAPSYNCIO                syIO FLOAT        8
  30 ELPLOCK                   loLL FLOAT        8
  31 ELPOTHREAD                otRe FLOAT        8
  32 ELPOTHWRIT                otWr FLOAT        8
  33 ELPUNITSW                 unSw FLOAT        8
  34 ELPARCQIS                 arQu FLOAT        8
  35 ELPDRAIN                  drai FLOAT        8
  36 ELPCLAIM                  clai FLOAT        8
  37 ELPARCREAD                arLR FLOAT        8
  38 ELPPGLAT                  pgLa FLOAT        8
  39 GBLMSGELAP                gMsg FLOAT        8
  40 GBLLOKELAP                gLok FLOAT        8
  41 SPWAITELAP                stPr FLOAT        8
  43 FUNCWAIT                  func FLOAT        8
  45 LOBWAITELAP               lob  FLOAT        8
  47 WTELAWTK                  gLch FLOAT        8 gblChiWait
  48 WTELAWTM                  gLOt FLOAT        8 gblOtLWait
  49 WTELAWTN                  gPrt FLOAT        8 gblPrPWait
  50 WTELAWTO                  gPag FLOAT        8 gblPgPWait
  51 WTELAWTQ                  gPOt FLOAT        8 gblOtPWait
--------- */
drop   function OA1P.fosGeWait(
     syIO float,  otRe float,  otWr float,  opCl float
   , daSe float,  loLL float,  lgRg float,  loWr float
   , arLo float,  arLR float,  drai float,  clai float
   , gCon float,  gLch float,  gLOt float,  gPrt float
   , gPag float,  gPOt float,  gMsg float,  unSw float
   , otSw float,  stPr float,  func float,  lob  float
   )  ;
drop   function OA1P.fqzGeWait(
     syIO float,  otRe float,  otWr float,  opCl float
   , daSe float,  loLL float,  lgRg float,  loWr float
   , arLo float,  arLR float,  drai float,  clai float
   , gCon float,  gLch float,  gLOt float,  gPrt float
   , gPag float,  gPOt float,  gMsg float,  unSw float
   , otSw float,  stPr float,  func float,  lob  float
   )  ;
drop function OA1P.fosPrWait(
     syIO float,  loLL float,  otRe float,  otWr float
   , unSw float,  arQu float,  drai float,  clai float
   , arLR float,  pgLa float,  gMsg float,  gLok float
   , stPr float,  func float,  lob  float,  gLch float
   , gLOt float,  gPrt float,  gPag float,  gPOt float
   ) ;
drop function OA1P.fqzPrWait(
     syIO float,  loLL float,  otRe float,  otWr float
   , unSw float,  arQu float,  drai float,  clai float
   , arLR float,  pgLa float,  gMsg float,  gLok float
   , stPr float,  func float,  lob  float,  gLch float
   , gLOt float,  gPrt float,  gPag float,  gPOt float
   ) ;
-- commit; sdf;
terminator?;
--#SET TERMINATOR ?
create function OA1P.fqzPrWait(
     syIO float,  loLL float,  otRe float,  otWr float
   , unSw float,  arQu float,  drai float,  clai float
   , arLR float,  pgLa float,  gMsg float,  gLok float
   , stPr float,  func float,  lob  float,  gLch float
   , gLOt float,  gPrt float,  gPag float,  gPOt float
   )
          returns  char(28)
          deterministic no external action reads sql data
begin
    declare sm float;
    declare res, a1, a2 varchar(140) default '';
    declare la, cu char(7);
    declare cx int;
    set sm = syIO + loLL + otRe + otWr
           + unSw + arQu + drai + clai
           + arLR + pgLa + gMsg + gLok
           + stPr + func + lob  + gLch
           + gLOt + gPrt + gPag + gPOt ;
    if sm < 0 then
        return OA1P.fqzFmtE8(sm) || ' |||';
    elseif sm < 1e-9 then
        return OA1P.fqzFmtE7(sm);
    end if;
    set a1  =
           case when syIO   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * syIO/ sm)), 2))||'syIO ' end
        || case when loLL   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * loLL / sm)), 2))||'loLL ' end
        || case when otRe   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * otRe / sm)), 2))||'otRe ' end
        || case when otWr   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * otWr / sm)), 2))||'otWr ' end
        || case when unSw   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * unSw / sm)), 2))||'unSw ' end
        || case when arQu   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * arQu / sm)), 2))||'arQu ' end
        || case when drai   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * drai / sm)), 2))||'drai ' end
        || case when clai   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * clai / sm)), 2))||'clai ' end
        || case when arLR   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * arLR / sm)), 2))||'arLR ' end
        || case when pgLa   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * pgLa / sm)), 2))||'pgLa ' end
        || case when gMsg   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gMsg / sm)), 2))||'gMsg ' end
        || case when gLok   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gLok / sm)), 2))||'gLok ' end
        || case when stPr   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * stPr / sm)), 2))||'stPr ' end
        || case when func   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * func / sm)), 2))||'func ' end
        || case when lob    <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * lob  / sm)), 2))||'lob  ' end
        || case when gLch   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gLch / sm)), 2))||'gLch ' end
        || case when gLOt   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gLOt / sm)), 2))||'gLOt ' end
        || case when gPrt   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gPrt / sm)), 2))||'gPrt ' end
        || case when gPag   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gPag / sm)), 2))||'gPag ' end
        || case when gPOt   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gPOt / sm)), 2))||'gPOt ' end ;
    set la = x'ffffffff';
    loop
        set cx = 1;
        set cu = '';
        while cx < length(a1) do
            if substr(a1, cx, 7) < la and substr(a1, cx, 7) > cu then
                set cu = substr(a1, cx, 7);
            end if;
            set cx = cx + 7;
        end while;
        set a2 = a2 || cu;
        if cu = '' or length(a2) >= 21 then
            return left(OA1P.fqzFmtE7(sm) || ' ' || a2, 28);
        end if;
        set la = cu;
    end loop;
end
?
 terminator;?
--#SET TERMINATOR ;
create function OA1P.fosPrWait(
     syIO float,  loLL float,  otRe float,  otWr float
   , unSw float,  arQu float,  drai float,  clai float
   , arLR float,  pgLa float,  gMsg float,  gLok float
   , stPr float,  func float,  lob  float,  gLch float
   , gLOt float,  gPrt float,  gPag float,  gPOt float
   )
          returns  char(28)
          deterministic no external action reads sql data
return          OA1P.fqzPrWait(
     syIO       , loLL       , otRe       , otWr
   , unSw       , arQu       , drai       , clai
   , arLR       , pgLa       , gMsg       , gLok
   , stPr       , func       , lob        , gLch
   , gLOt       , gPrt       , gPag       , gPOt
   )
;
commit;
select oa1p.fqzPrWait( 1e1, 2, 3, 4, 5e-1,6,7,8,9,10,11,12
                    , 13, 14, 15,16, 17, 18, 91, 20 )
    from sysibm.sysDummy1
;
set current path oa1p;
select
        oa1p.fqzPrWait(
              ELAPSYNCIO , ELPLOCK    , ELPOTHREAD , ELPOTHWRIT
            , ELPUNITSW  , ELPARCQIS  , ELPDRAIN   , ELPCLAIM
            , ELPARCREAD , ELPPGLAT   , GBLMSGELAP , GBLLOKELAP
            , SPWAITELAP , FUNCWAIT   , LOBWAITELAP, WTELAWTK
            , WTELAWTM   , WTELAWTN   , WTELAWTO   , WTELAWTQ
            )
       , p.*
    from PBdd.tACCT_program p
    where programName like 'YWM05%'
        and dateTime > current timestamp - 2 days
;
/* -----------
  40 EWAITIO                   syIO FLOAT        8 synIOWait
  44 WAITREADIO                otRe FLOAT        8 othReaWait
  45 WAITWRITEIO               otWr FLOAT        8 othWriWait
  63 OPENCLSELAP               opCl FLOAT        8 opeCloWait
  65 DATASETELAP               daSe FLOAT        8 datSetWait
  41 EWAITLAL                  loLL FLOAT        8 locLoLaWait
  64 SYSLGRNGELAP              lgRg FLOAT        8 sysLgRaWait
  86 LOGWRTELAP                loWr FLOAT        8 logWrtWait
  47 WAITARCLOG                arLo FLOAT        8 arcLogWait
  61 ARCHREADWAR               arLR FLOAT        8 arcReaWait
  58 DRAINLKWDR                drai FLOAT        8 drainWait
  59 CLAIMRLWCL                clai FLOAT        8 claimWait
  75 GBLLOKELAP                gCon FLOAT        8 gblConWait s
 115 WTELAWTK                  gLch FLOAT        8 gblChiWait
 116 WTELAWTM                  gLOt FLOAT        8 gblOtLWait
 117 WTELAWTN                  gPrt FLOAT        8 gblPrPWait
 118 WTELAWTO                  gPag FLOAT        8 gblPgPWait
 119 WTELAWTQ                  gPOt FLOAT        8 gblOtPWait
  73 GBLMSGELAP                gMsg FLOAT        8 gblMsgWait s
  46 WAITSYNCEVENT             unSw FLOAT        8 uniSwiWait
  66 OTHERSWELAP               otSw FLOAT        8 othSwiEla
  80 SPWAITELAP                stPr FLOAT        8 stoProWait
  94 FUNCWAIT                  func FLOAT        8 funcWait
 105 LOBWAITELAP               lob  FLOAT        8 lobWait
 ---------- */
terminator?;
--#SET TERMINATOR ?
create function OA1P.fqzGeWait(
     syIO float,  otRe float,  otWr float,  opCl float
   , daSe float,  loLL float,  lgRg float,  loWr float
   , arLo float,  arLR float,  drai float,  clai float
   , gCon float,  gLch float,  gLOt float,  gPrt float
   , gPag float,  gPOt float,  gMsg float,  unSw float
   , otSw float,  stPr float,  func float,  lob  float
   )
          returns  char(28)
          deterministic no external action reads sql data
begin
    declare sm float;
    declare res, a1, a2 varchar(250) default '';
    declare la, cu char(7);
    declare cx int;
    set sm = syIO + otRe + otWr + opCl
           + daSe + loLL + lgRg + loWr
           + arLo + arLR + drai + clai
           + gCon + gLch + gLOt + gPrt
           + gPag + gPOt + gMsg + unSw
           + otSw + stPr + func + lob ;
    if sm < 0 then
        return OA1P.fqzFmtE8(sm) || ' |||';
    elseif sm < 1e-9 then
        return OA1P.fqzFmtE7(sm);
    end if;
    set a1  =
           case when syIO   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * syIO/ sm)), 2))||'syIO ' end
        || case when otRe   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * otRe / sm)), 2))||'otRe ' end
        || case when otWr   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * otWr / sm)), 2))||'otWr ' end
        || case when opCl   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * opCl / sm)), 2))||'opCl ' end
        || case when daSe   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * daSe / sm)), 2))||'daSe ' end
        || case when loLL   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * loLL / sm)), 2))||'loLL ' end
        || case when lgRg   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * lgRg / sm)), 2))||'lgRg ' end
        || case when loWr   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * loWr / sm)), 2))||'loWr ' end
        || case when arLo   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * arLo / sm)), 2))||'arLo ' end
        || case when arLR   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * arLR / sm)), 2))||'arLR ' end
        || case when drai   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * drai / sm)), 2))||'drai ' end
        || case when clai   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * clai / sm)), 2))||'clai ' end
        || case when gCon   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gCon / sm)), 2))||'gCon ' end
        || case when gLch   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gLch / sm)), 2))||'gLch ' end
        || case when gLOt   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gLOt / sm)), 2))||'gLOt ' end
        || case when gPrt   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gPrt / sm)), 2))||'gPrt ' end
        || case when gPag   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gPag / sm)), 2))||'gPag ' end
        || case when gPOt   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gPOt / sm)), 2))||'gPOt ' end
        || case when gMsg   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * gMsg / sm)), 2))||'gMsg ' end
        || case when unSw   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * unSw / sm)), 2))||'unSw ' end
        || case when otSw   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * otSw / sm)), 2))||'otSw ' end
        || case when stPr   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * stPr / sm)), 2))||'stPr ' end
        || case when func   <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * func / sm)), 2))||'func ' end
        || case when lob    <= sm/200 then '' else digits(dec(round(
                  min(99, 100 * lob  / sm)), 2))||'lob  ' end;
    set la = x'ffffffff';
    loop
        set cx = 1;
        set cu = '';
        while cx < length(a1) do
            if substr(a1, cx, 7) < la and substr(a1, cx, 7) > cu then
                set cu = substr(a1, cx, 7);
            end if;
            set cx = cx + 7;
        end while;
        set a2 = a2 || cu;
        if cu = '' or length(a2) >= 28 then
            return left(OA1P.fqzFmtE7(sm) || ' ' || a2, 28);
        end if;
        set la = cu;
    end loop;
end
?
 terminator;?
--#SET TERMINATOR ;
create function OA1P.fosGeWait(
     syIO float,  otRe float,  otWr float,  opCl float
   , daSe float,  loLL float,  lgRg float,  loWr float
   , arLo float,  arLR float,  drai float,  clai float
   , gCon float,  gLch float,  gLOt float,  gPrt float
   , gPag float,  gPOt float,  gMsg float,  unSw float
   , otSw float,  stPr float,  func float,  lob  float
   )
          returns  char(28)
          deterministic no external action reads sql data
return          OA1P.fqzGeWait(
     syIO       , otRe       , otWr       , opCl
   , daSe       , loLL       , lgRg       , loWr
   , arLo       , arLR       , drai       , clai
   , gCon       , gLch       , gLOt       , gPrt
   , gPag       , gPOt       , gMsg       , unSw
   , otSw       , stPr       , func       , lob
   )
;
commit;
select oa1p.fqzGeWait( 1e1, 2, 3, 4, 5e-1,6,7,8,9,10,11,12
                    , 13, 14, 15,16, 17, 18, 91, 20 , 21 , 22 ,23, 24)
    from sysibm.sysDummy1
;
set current path oa1p;
with g1 as
( select
      p2Commits + aborts + selects + inserts + updates + deletes
          + describes + prepares + opens + fetches + closes
          + setcurprec + dclglobaltt + sqlcrgtt sqls
      , oa1p.fqzGeWait(
            eWaitIO      , waitReadIO   , waitWriteIO , openClsElap
          , datasetElap  , eWaitLAL
          , sysLgRngElap , logWrtElap   , waitArcLog  , archReadWar
          , drainLkWDR   , claimRlWcl
          , gblLokElap   , wtelawtk     , wtelawtm     , wtelawtn
          , wtelawto     , wtelawtq     , gblMsgElap
          , waitSyncEvent, otherSWElap  , spWaitElap
          , funcWait     ,lobWaitElap
          ) "wait    % 1.   % 2.   % 3."
      ,     eWaitIO      + waitReadIO   + waitWriteIO + openClsElap
          + datasetElap  + eWaitLAL
          + sysLgRngElap + logWrtElap   + waitArcLog  + archReadWar
          + drainLkWDR   + claimRlWcl
          + gblLokElap   + wtelawtk     + wtelawtm     + wtelawtn
          + wtelawto     + wtelawtq     + gblMsgElap
          + waitSyncEvent+ otherSWElap  + spWaitElap
          + funcWait     + lobWaitElap  wait
    from PBdd.tACCT_general g
    where planName like 'MF5000%'
        and dateTime > current timestamp - 2 days
) select * from g1
;
}¢--- A540769.WK.SQL(PRIMARY) cre=2006-05-22 mod=2006-05-22-14.46.39 F540769 ---
ALTER  TABLE    GDB0444.TPO004A1                                        00010000
ADD PRIMARY KEY                                                         00020000
   (PO004_BUID,                                                         00030000
    PO004_BKST,                                                         00040000
    PO004_AORT)                                                         00050000
}¢--- A540769.WK.SQL(PRMM) cre=2014-02-18 mod=2014-02-18-16.10.20 A540769 ------
select count(*)
    from pbmm.tacct_general
    where dateTime >  '2013-12-08-03.59.59.999999'  -- part 169
      and dateTime <= '2013-12-08-07.59.59.999999'  -- part 170
  with ur
}¢--- A540769.WK.SQL(PROCNAT) cre=2008-06-06 mod=2009-08-14-17.19.49 A540769 ---
set current sqlId = 'S100447';                                          00010002
--#SET TERMINATOR ?                                                     00020000
CREATE PROCEDURE A540769.WKSQL1                                         00030003
   (IN CMDTEXT VARCHAR(254) FOR SBCS DATA CCSID EBCDIC ,                00040000
    OUT CMDRESULT VARCHAR(32704) FOR SBCS DATA CCSID EBCDIC )           00050000
  DYNAMIC RESULT SETS 1                                                 00060000
  LANGUAGE SQL                            NOT DETERMINISTIC  FENCED     00070001
  CALLED ON NULL INPUT  MODIFIES SQL DATA  NO DBINFO                    00080000
  COLLID DSNREXDE  WLM ENVIRONMENT DB2DSNR  ASUTIME LIMIT 60            00090000
  STAY RESIDENT NO  PROGRAM TYPE MAIN  SECURITY DB2                     00100000
  INHERIT SPECIAL REGISTERS  STOP AFTER SYSTEM DEFAULT FAILURES         00110000
RUN OPTIONS 'TRAP(ON)'  COMMIT ON RETURN NO                             00120000
BEGIN                                                                   00130000
    select * from sysIbm.sysDummy1;                                     00140000
end                                                                     00150000
?                                                                       00160004
rollback                                                                00170004
}¢--- A540769.WK.SQL(PROC1) cre=2006-05-26 mod=2006-05-26-16.13.20 F540769 -----
SET CURRENT SQLID = 'S100447' @
DROP   PROCEDURE A540769.PR1 @
CREATE PROCEDURE A540769.PR1(IN A VARCHAR(20), OUT RES VARCHAR(100))
        LANGUAGE SQL READS SQL DATA COLLID DB
BEGIN
     SET RES = A || '*XX*' || A;
END
}¢--- A540769.WK.SQL(PROC1C) cre=2006-05-26 mod=2006-05-26-14.41.18 F540769 ----
SET CURRENT SQLID = 'S100447' @
CALL A540769.PR1('AHA', 'OOO')
}¢--- A540769.WK.SQL(PROFCP) cre=2012-11-22 mod=2015-03-17-14.04.38 A540769 ----
$*(      copy rcm Profiles

         uncomment and adapt necessary functions
                      Achtung: share Option muss U sein ||||||
         11. 3.15 mit utilityProfile
$*)
call sqlConnect dp4g
$;

$>. fEdit('::v')
$<=¢
$** $@%¢utilityProf A540769 UP1 DBX UP1 $!
$** $@%¢ruleSet DBX ALL DBX PCTFREE$!
$** $@%¢globalChange A828386 DBTFDBOF DBX DBTFDBOF$!
$** $@%¢globalChange DBX QTX2Y    DBX     QZ91S2T$!
$** $@%¢anaProf DBX      ALL    DBX UP1   $!
$** $@%¢anaProf DBX ALL  DBX DROPSAVE $!
$** $@%¢autoMap A390880  NI10063C DBX NI10063C$!
$** $@%¢ruleSet A828386  DBX  DBX  ALL$!
            $** change unloadTY=IBM in un&load||
                   $** change symbolics ||||
$** $@%¢utilityModel DBX ????      DBX ???      $!
$** $@%¢utilityModel DBX ALL       DBX TSTTIM   $!
$** $@%¢utilityModel DBX ALL       DBX TSTALL   $!
$** $@%¢utilityModel DBX ALL       DBX BP $!
$** $@%¢utilityModel DBX ALL       DBX DROPSAVE $!
$** $@%¢utilityModel DBX ALL       DBX UI  $!
$** $@%¢utilityModel DBX ALL       DBX UIPAR  $!

$*( ----------------------------------------------------
select * from pti.PTMGB_APTABLE_0100;
select * from session.cp;
select * from pti.PTMGB_APTABLE_0100;
;
;
$@%¢globalChange DBX  ALLLALLL DBX DBOFDBOF$!
$@%¢autoMap DBX, EMPTY, DBX, ALLLALLL$!
-- automap
select * from pti.PTMG9_MASK_0510 where name = 'DBXEQ'
;
select * from pti.PTMGA_LNAME_0200 where type = 'M' and
                   name = 'DBXEQ'
;
select * from pti.PTMG9_MASK_0510 where name = 'DBXEQ'
;
select * from pti.PTMGA_LNAME_0200 where type = 'M' and
                   name = 'DBXEQ'
;
-- globalChange
select * from pti.PTMG5_GLOBAL_0400 where name = 'WKP2A'
;
select * from pti.PTMGA_LNAME_0200
                     where type = 'G' and name = 'WKP2A'
;
select * from pti.PTMG5_GLOBAL_0400 where name = 'WKP2A'
;
select * from pti.PTMGA_LNAME_0200
                     where type = 'G' and name = 'WKP2A'
;
select * from pti.PTMG4_RULES_0300 where name = 'DBX' or creator = 'DBX'
;
$@%¢ruleSet A540769 DBX DBX ALL$!
;
select * from pti.PTMG4_RULES_0300 where name = 'DBX' or creator = 'DBX'
;
;
select * from pti.PTMOD_UTLSYM_0401 where model_product_code = 'RCM'
       and model_id='DBX' or model_creator='DBX'
;
select * from pti.PTMOD_UTLSYM_0401 where model_product_code = 'RCM'
       and model_id='DBX' or model_creator='DBX'
--------------------------------------------------------
$*)

commit
$!
call sqlStmts
call sqlDisconnect

$@proc anaProf $@/anaProf/
parse arg , fCr fNm tCr tNm
    say 'copy anaProf' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
declare global temporary table session.cp
    as (select * from pti.PTMGB_APTABLE_0100) with no data
;
insert into session.cp
    select * from pti.PTMGB_APTABLE_0100
         where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
update session.cp set creator = '$-¢tCr$!', name = '$-¢tNm$!'
;
delete from pti.PTMGB_APTABLE_0100
    where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMGB_APTABLE_0100
    select * from session.cp
;
$!
$/anaProf/

$@proc autoMap $@/autoMap/
parse arg , fCr fNm tCr tNm
    say 'copy automap' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from pti.PTMG9_MASK_0510
    where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMG9_MASK_0510
    select '$-¢tCr$!' , '$-¢tNm$!', node_type, node_seq, segment
        from pti.PTMG9_MASK_0510
        where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
delete  from pti.PTMGA_LNAME_0200 where type = 'M'
    and creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMGA_LNAME_0200
    select '$-¢tCr$!' , '$-¢tNm$!', type, sequence_field, version, data
        from pti.PTMGA_LNAME_0200
        where type = 'M'
            and creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
$!
$/autoMap/

$@proc globalChange $@/globalChange/
parse arg , fCr fNm tCr tNm .
    say 'copy globalChange' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from pti.PTMG5_GLOBAL_0400
    where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMG5_GLOBAL_0400
    select '$-¢tCr$!' , '$-¢tNm$!', node_type, segment
        from pti.PTMG5_GLOBAL_0400
        where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
delete  from pti.PTMGA_LNAME_0200 where type = 'G'
    and creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMGA_LNAME_0200
    select '$-¢tCr$!' , '$-¢tNm$!', type, sequence_field, version, data
        from pti.PTMGA_LNAME_0200
        where type = 'G'
            and creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
$!
$/globalChange/

$@proc ruleSet $@/ruleSet/
parse arg , fCr fNm tCr tNm
    say 'copy ruleSet' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from pti.PTMG4_RULES_0300
    where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into pti.PTMG4_RULES_0300
    select '$-¢tNm$!', desc, '$-¢tCr$!' , SHARE_OPT, ssid,
             UPDT_USER, UPDT_DATE, UPDT_TIME, RULES
        from pti.PTMG4_RULES_0300
        where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
$!
$/ruleSet/

$@proc utilityModel $@/utilityModel/
parse arg , fCr fNm tCr tNm
    say 'copy ruleSet' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from pti.PTMOD_UTLSYM_0401
    where model_product_code = 'RCM'
        and model_creator = '$-¢tCr$!' and model_id = '$-¢tNm$!'
;
insert into pti.PTMOD_UTLSYM_0401
    select '$-¢tNm$!', '$-¢tCr$!' , model_product_code,
             SEQUENCE_FIELD, Internal_type, data
        from pti.PTMOD_UTLSYM_0401 where model_product_code = 'RCM'
        and model_creator = '$-¢fCr$!' and model_id = '$-¢fNm$!'
;
$!
$/utilityModel/

$@proc $@/utilityProf/
parse arg , fCr fNm tCr tNm
    say 'copy ruleSet' fCr'.'fNm '-->' tCr'.'tNm
$@=¢
delete from PTI.PTMGB_UPTABLE_0100
    where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into PTI.PTMGB_UPTABLE_0100
    select '$-¢tNm$!'   -- NAME
          , '$-¢tCr$!'  -- CREATOR
          , 'U'         -- PROFILETYPE
          , STATS
          , CHECKDATA
          , IMAGECOPY
          , BIND
          , REORG
          , RECOVERINDEX
          , MODELNAME
          , MODELCREATOR
          , MODELUPDATE
          , ALTEREDTS
          , PARALLELOPTS
      from PTI.PTMGB_UPTABLE_0100
      where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
delete from PTI.PTMGB_SPTABLE_0100
    where creator = '$-¢tCr$!' and name = '$-¢tNm$!'
;
insert into PTI.PTMGB_SPTABLE_0100
    select '$-¢tNm$!'   -- NAME
          , '$-¢tCr$!'  -- CREATOR
          , 'U'         -- PROFILETYPE
          , OBJECT
          , ATTRIBUTE
          , BCOPY
          , BUNLD
          , AUNLD
          , AREORG
          , ALOAD
          , ACHECK
          , AREBILD
          , ARUNSTATS
          , ACOPY
      from PTI.PTMGB_SPTABLE_0100
      where creator = '$-¢fCr$!' and name = '$-¢fNm$!'
;
$!
$/utilityProf/
$#out                                              20150317 13:52:34
}¢--- A540769.WK.SQL(PROFEX) cre=2012-11-23 mod=2015-03-17-14.02.45 A540769 ----
$#@
$*( ---------------------------------------------------  walter 08.01.13
    profEx: wsh script zum verteilen der CA profile fuer dbx
      1. DSN.DBX.GLBCHG(#PROFILE) erstellen
             mit sql delete/insert für alle Profile
      2.  alle global changes mit creator=DBX exportieren
             nach DSN.DBX.GLBCHG(*)
      3.  jcl erstellen zum verteilen von DSN.DBX.GLBCHG(*)
             und ausfuehren der SQLs den Db2Subsystemen
  26.11.13 walter verteilung aus rz4
-------------------------------------------------------------------- $*)
$= dbSys  = DP4G
$= j7     = YPROFEX
$= outPds = DSN.DBX.GLBCHG
$= outSql = $outPds(#PROFILE)
$= cr     = DBX
$= wh     =- "creator = '"$cr"'"
$= whMo   =- "model_creator = '"$cr"'"
$= whTy   =- $wh 'and type ='
$= myRz   =- sysvar(sysnode)
if 1 then $@¢
    $@expProfs
    $!
if 1 then $@¢
    $@sendProfs
    $>. fEdit()
    $<=¢
        RZ2 DBOF DVBP DP2G
        RZ4 DBOL                     $** |||dp4g is the source|||
        RZX DE0G DEVG DPXG DX0G
        RZY DE0G DEVG DPYG
        RZZ DE0G DEVG DPZG
        RR2 DBOF DVBP DP2G
        RQ2 DBOF DVBP DP2G
        $!
    $!

$@proc expProfs $@/expProfs/
say 'exporting CAProfiles from ' $dbSys
say '                     where' $wh
say '                     to   ' $outPds
call sqlConnect $dbSys
$;

$>$outSql
$$                            ------- export  $-¢date('s') time()$!
$$                            --------------- 1 - GlobalProfile
$$                            --------------- 2 - RCMProfile
$@%¢expTb - pti.PTMG5_GLOBAL_0400, $wh,       "3 - GlobalChange"$!
names = $names
$@%¢expTb - pti.PTMGA_LNAME_0200, $whTy "'G'", "3 - GlobalChange/Name"$!
$@%¢expTb - pti.PTMG4_RULES_0300, $wh,        "4 - CompareRule"$!
$@%¢expTb - pti.PTMG9_MASK_0510 , $wh,        "5 - AutomapMask"$!
$@%¢expTb - pti.PTMGA_LNAME_0200, $whTy "'M'", "5 - AutomapMask/Name"$!
$@%¢expTb - pti.PTMOD_UTLSYM_0401, $whMo,     "6 - UtilityModel"$!
$$                            --------------- 7 - CopyGroup
$@%¢expTb - pti.PTMGB_APTABLE_0100,$wh,       "P - AnalysisProfile"$!
$$                            --------------- U - UtilityProfile
$;
$do gx=1 to words(names) $@¢
    gc = word(names, gx)
    $;
    $>$outPds($-¢gc$!)
    $@%¢globalChangeExp - $cr, gc$!
    $!
$/expProfs/

$@proc $@/expTb/
    parse arg , tb, wh, tit
    $$- ''
    $$- '---------------' tit
    $$-  'delete from' tb 'where' wh
    $$  ;
    $;
    call sqlSel 'select * from' tb 'where' wh
    $|
    lst = ''
    cx = 0
    $@for oo $@¢
        cx = cx + 1
        o1 = $.oo
        call sql4Obj o1, tb
        if wordPos(m.o1.name, lst) < 1 then
            lst = lst m.o1.name
        $!
    say right(cx, 5) 'inserts into' left(tb, 24) 'for' tit
    $=names=- lst
$/expTb/

$@proc $@/globalChangeExp/
parse arg , Cr, Nm
    say 'export globalChange' Cr'.'Nm
    call sqlQuery 7, 'select * from pti.PTMG5_GLOBAL_0400' ,
        "where node_type=2 and creator = '"cr"' and name = '"nm"'",
        , "c n ty se"
    do while sqlFetch(7,ff)
        lc = c2d(substr(m.ff.se, 1, 2))
        $$- ' GLBLNAME  'left(m.ff.n, 20) '--' date('s') time()
        $$- ' GLBLCRTR  'left(m.ff.c, 20)
        do lx=1 to lc
            sx = lx*40-37
            $$- ' 'substr(m.ff.se, sx, 4) left('', 4) $*+
                   substr(m.ff.se, sx+4, 18) ' '      $*+
                   substr(m.ff.se, sx+22, 18)
            end
   $**  say length(m.ff.se) '<' 2+lc*40
        if length(m.ff.se) < 2+lc*40 then
            call err 'bad segment too short' m.ff.c'.'m.ff.n
        if substr(m.ff.se, 3+lc*40) <> '' then
            call err 'bad segment addition infos' m.ff.c'.'m.ff.n
        end
    call sqlClose 7
$/globalChangeExp/

$@proc $@=/sendProfs/
//${j7}W JOB (CP00,KE50),'DB2 REO',
//         MSGCLASS=T,TIME=1440,
//         NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2
//*MAIN CLASS=LOG
    $@for li $@/rz/
        $=rz =- word($li, 1)
        $$ //*---------------------------------------- $rz
        if $rz \= $myRz then $@=¢
//${rz}SEND  EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99,PARM=WSH
//SYSPROC    DD DISP=SHR,DSN=TSO.$myRz.P0.PROD.EXEC
//SYSPRINT   DD SYSOUT=*
//SYSUDUMP   DD SYSOUT=*
//SYSTSPRT   DD SYSOUT=*
//*UT        DD SYSOUT=*
//SYSTSIN    DD DUMMY
//WSH        DD *
  call csmCopy '$outPds', '$rz/$outPds'
        $!
        $@=¢
//${rz}SUB   EXEC PGM=IEBGENER
//SYSPRINT   DD SYSOUT=*
//SYSUT2     DD SUBSYS=(CSM,'SYSTEM=$rz,SYSOUT=(A,INTRDR)')
//SYSUT1     DD *,DLM='}}'
//${j7}S JOB (CP00,KE50),'DB2 REO',
//             MSGCLASS=T,TIME=1440,
//             NOTIFY=&SYSUID,REGION=0M,SCHENV=DB2
//*MAIN CLASS=LOG
        $!
        $@do wx=2 while word($li, wx) \== '' $@=/dbSy/
        $=dbSy =- word($li, wx)
//${dbSy}SQL   EXEC PGM=IKJEFT01,DYNAMNBR=200,TIME=99
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTERM  DD DUMMY
//SYSIN    DD DISP=SHR,DSN=$outSql
//SYSTSIN  DD *
   DSN SYSTEM($dbSy)
   RUN PROGRAM(DSNTEP2) PARMS('ALIGN(LHS)') PLAN(DSNTEP2)
        $/dbSy/
    $$ }}
    $/rz/
$/sendProfs/

$#out                                              20150317 14:01:28
$#out                                              20150223 10:01:00
$#out                                              20150106 12:26:53
}¢--- A540769.WK.SQL(PROTPTA) cre=2012-04-12 mod=2016-11-03-09.20.44 A540769 ---
with tb as
( select *
    from sysibm.sysTables
    where (dbName like 'AV%' or dbName like 'VV%' or dbName like 'NI%'
         or name like 'VAV%' or name like 'VVV%' or name like 'VNI%')
)
select type, strip(creator) || '.' || strip(name)
    from tb
union all select 'i', strip(creator) || '.' || strip(name)
            || ' on ' || strip(tbcreator) || '.' || strip(tbname)
    from sysibm.sysIndexes
    where (dbName like 'AV%' or dbName like 'VV%' or dbName like 'NI%'
         or name like 'IAV%' or name like 'IVV%' or name like 'INI%')
union all select 'r', strip(Creator) || '.' || strip(tbName)
            || ' ref ' || strip(reftbcreator) || '.' || strip(reftbname)
            || ' ' || strip(char(colCount)) || ' ' || relName
    from sysibm.sysRels
    where (Creator, tbName) in (select creator, name from tb)
       or (refTbCreator, refTbName) in (select creator, name from tb)
union all select 'j', strip(schema) || '.' || strip(Name)
            || ' Trigger ' || trigTime || trigEvent || granularity
            || ' ' || strip(tbowner) || '.' || strip(tbName)
    from sysibm.sysTriggers
    where (tbowner, tbName) in (select creator, name from tb)
    order by 2, 1
$#out                                              20120416 07:13:13
C COL2
T A230450.VNI145TOCLOSE
T A230450.VNI145TODEL
}¢--- A540769.WK.SQL(PRPGKACC) cre=2013-10-21 mod=2013-10-21-09.06.07 A540769 ---
set current path = oa1p;
with x as
( select smallint(floor(log10(max(1e-30,
                  real(BPGETPAGE)/sqlCount)) * 3)) g, p.*
      from pbxx.TACCT_PROGRAM_20131015 p
      where sqlCount > 0
      fetch first 1000000 rows only
)
select count(*), g
    , substr(fosFmte7(min(real(BPGETPAGE)/sqlCount)), 1, 7) bpGetMi
    , substr(fosFmte7(max(real(BPGETPAGE)/sqlCount)), 1, 7) bpGetMa
    , substr(fosFmte7(avg(real(BPGETPAGE)/sqlCount)), 1, 7) bpGet
    , min(dateTime)
    , max(dateTime)
    , min(subsystem), max(subsystem)
    , min(planName), max(planName)
    , min(programName), max(programName)
    from x
    group by g
    order by g desc

}¢--- A540769.WK.SQL(PRPLAN) cre=2014-01-20 mod=2014-01-20-14.46.30 A540769 ----
set current path oa1p;
select
-- begin prb insert genc
-- tacct_general g, fsoFmtE7, all, expr ~
      g.DATETIME
    , g.CORRNAME
    , fosFmtE7(g.ELAPSETOD) "totElap"
    , fosFmtE7(g.ELAPSETCB) "totCPU"
    , fosFmtE7(g.EDB2TOD) "db2Elap"
    , fosFmtE7(g.EDB2TCB) "db2CPU"
    , fosGeWait(g.eWaitIO, g.waitReadIO, g.waitWriteIO, g.openClsElap
      , g.datasetElap, g.eWaitLAL, g.sysLgRngElap, g.logWrtElap
      , g.waitArcLog, g.archReadWar, g.drainLkWDR, g.claimRlWcl
      , g.gblLokElap, g.wtelawtk, g.wtelawtm, g.wtelawtn, g.wtelawto
      , g.wtelawtq, g.gblMsgElap, g.waitSyncEvent, g.otherSWElap
      , g.spWaitElap, g.funcWait
      , g.lobWaitElap) "wait    % 1.   % 2.   % 3."
    , fosFmtE7((g.p2Commits + g.aborts + g.selects + g.inserts
      + g.updates + g.deletes + g.describes + g.prepares + g.opens
      + g.fetches + g.closes + g.setcurprec + g.dclglobaltt
      + g.sqlcrgtt)) "sqls"
    , fosFmtE7(g.P2COMMITS) "commit"
    , fosFmtE7(g.ABORTS) "abort"
    , fosFmtE7(g.SELECTS) SELECTS
    , fosFmtE7(g.INSERTS) INSERTS
    , fosFmtE7(g.UPDATES) UPDATES
    , fosFmtE7(g.DELETES) DELETES
    , fosFmtE7(g.DESCRIBES) DESCRIBES
    , fosFmtE7(g.PREPARES) PREPARES
    , fosFmtE7(g.OPENS) OPENS
    , fosFmtE7(g.FETCHES) FETCHES
    , fosFmtE7(g.CLOSES) CLOSES
    , fosFmtE7(g.LOGWRTELAP) "logEla"
    , fosFmtE7(g.LOGRECORDS) "logRecs"
    , fosFmtE7(g.LOGBYTES) "logByte"
    , fosFmtE7(g.BPGETPAGE) BPGETPAGE
    , fosFmtE7(g.BPPGUPDAT) BPPGUPDAT
    , fosFmtE7(g.BPSYNCRD) BPSYNCRD
    , fosFmtE7(g.BPPREFET) BPPREFET
    , fosFmtE7(g.BPSYNCWR) BPSYNCWR
    , fosFmtE7(g.BPLISTPREF) BPLISTPREF
    , fosFmtE7(g.BPDPF) BPDPF
    , fosFmtE7(g.BPNGT) BPNGT
    , fosFmtE7(g.BPSIO) BPSIO
    , REAL((g.eWaitIO + g.waitReadIO + g.waitWriteIO + g.openClsElap
      + g.datasetElap + g.eWaitLAL + g.sysLgRngElap + g.logWrtElap
      + g.waitArcLog + g.archReadWar + g.drainLkWDR + g.claimRlWcl
      + g.gblLokElap + g.wtelawtk + g.wtelawtm + g.wtelawtn
      + g.wtelawto + g.wtelawtq + g.gblMsgElap + g.waitSyncEvent
      + g.otherSWElap + g.spWaitElap + g.funcWait
      + g.lobWaitElap)) "wait"
    , fosFmtE7(g.OCCURRENCES) OCCURRENCES
    , g.SYSTEMID
    , g.SUBSYSTEM
    , g.PLANNAME
    , g.AUTHID
    , g.CONNECTION
    , g.CORRID
    , g.ORIGPRIMID
    , g.LUWIDNID
    , g.LUWIDLUNM
    , g.LUWIDINST
    , fosFmtE7(g.LUWIDCOMIT) LUWIDCOMIT
    , g.CONNTYPE
    , g.DATE
    , g.LOCATION
    , g.GROUPNAME
    , g.FIRSTPKG
    , g.ACCTTOKN
    , g.ENDUSERID
    , g.ENDUSERTX
    , g.ENDUSERWN
    , g.PSTNUMBER
    , g.PSBNAME
    , g.CICSTRAN
    , g.NETWORKID
    , fosFmtE7(g.TRANSCNT) TRANSCNT
    , fosFmtE7(g.CLASS2CNT) CLASS2CNT
    , fosFmtE7(g.CLASS3CNT) CLASS3CNT
    , fosFmtE7(g.IFCIDSEQ#) IFCIDSEQ#
    , fosFmtE7(g.ELAPSESRB) ELAPSESRB
    , fosFmtE7(g.EDB2SRB) EDB2SRB
    , fosFmtE7(g.EWAITIO) "synIOWait"
    , fosFmtE7(g.EWAITLAL) "locLoLaWai"
    , fosFmtE7(g.ENTEXEVNT) ENTEXEVNT
    , fosFmtE7(g.WAITEVNT) WAITEVNT
    , fosFmtE7(g.WAITREADIO) "othReaWait"
    , fosFmtE7(g.WAITWRITEIO) "othWriWait"
    , fosFmtE7(g.WAITSYNCEVENT) "uniSwiWait"
    , fosFmtE7(g.WAITARCLOG) "arcLogWait"
    , fosFmtE7(g.WEVLOCK) WEVLOCK
    , fosFmtE7(g.WEVREAD) WEVREAD
    , fosFmtE7(g.WEVWRITE) WEVWRITE
    , fosFmtE7(g.WEVSYNCH) WEVSYNCH
    , fosFmtE7(g.CLASS1CPU_ZIIP) CLASS1CPU_ZIIP
    , fosFmtE7(g.CLASS2CPU_ZIIP) CLASS2CPU_ZIIP
    , fosFmtE7(g.TRIGGERCPU_ZIIP) TRIGGERCPU_ZIIP
    , fosFmtE7(g.CPUZIIPELIGIBLE) CPUZIIPELIGIBLE
    , fosFmtE7(g.ARCLOG) ARCLOG
    , fosFmtE7(g.DRAINLKRND) DRAINLKRND
    , fosFmtE7(g.DRAINLKWDR) "drainWait"
    , fosFmtE7(g.CLAIMRLWCL) "claimWait"
    , fosFmtE7(g.CLAIMRLRNC) CLAIMRLRNC
    , fosFmtE7(g.ARCHREADWAR) "arcReaWait"
    , fosFmtE7(g.ARCHREADNAR) ARCHREADNAR
    , fosFmtE7(g.OPENCLSELAP) "opeCloWait"
    , fosFmtE7(g.SYSLGRNGELAP) "sysLgRaWai"
    , fosFmtE7(g.DATASETELAP) "datSetWait"
    , fosFmtE7(g.OTHERSWELAP) "othSwiEla"
    , fosFmtE7(g.OPENCLSEVNT) OPENCLSEVNT
    , fosFmtE7(g.SYSLGRNGEVNT) SYSLGRNGEVNT
    , fosFmtE7(g.DATASETEVNT) DATASETEVNT
    , fosFmtE7(g.OTHERSWEVNT) OTHERSWEVNT
    , fosFmtE7(g.LATCHCNTWTP) LATCHCNTWTP
    , fosFmtE7(g.LATCHCNTRNH) LATCHCNTRNH
    , fosFmtE7(g.GBLMSGELAP) "gblMsgWait"
    , fosFmtE7(g.GBLMSGEVNT) GBLMSGEVNT
    , fosFmtE7(g.GBLLOKELAP) "gblConWait"
    , fosFmtE7(g.GBLLOKEVNT) GBLLOKEVNT
    , fosFmtE7(g.SPTCB) "stoProCpu"
    , fosFmtE7(g.SPTCBINDB2) "stoProDb2"
    , fosFmtE7(g.SPEVNT) SPEVNT
    , fosFmtE7(g.SPWAITELAP) "stoProWait"
    , fosFmtE7(g.SPWAITCNT) SPWAITCNT
    , fosFmtE7(g.PARATASKS) PARATASKS
    , fosFmtE7(g.PARALLTASKS) PARALLTASKS
    , fosFmtE7(g.CPUSUCONV) CPUSUCONV
    , fosFmtE7(g.LOGWRTEVNT) LOGWRTEVNT
    , g.WLMSVCCLASS
    , fosFmtE7(g.FUNCTCB) "funcCpu"
    , fosFmtE7(g.FUNCSQLTCB) "funcD2Cpu"
    , fosFmtE7(g.FUNCSQLEVNT) FUNCSQLEVNT
    , fosFmtE7(g.LOBWAITCNT) LOBWAITCNT
    , fosFmtE7(g.FUNCWAIT) "funcWait"
    , fosFmtE7(g.FUNCELAP) "funcEla"
    , fosFmtE7(g.FUNCSQLELAP) "funcD2Ela"
    , fosFmtE7(g.TRIGGERTCB) "triD2Cpu"
    , fosFmtE7(g.TRIGGERELAP) "triD2Ela"
    , fosFmtE7(g.PREENCTCB) "???"
    , fosFmtE7(g.PREENCSQLTCB) "???"
    , fosFmtE7(g.SPROCELAP) "stoProToEl"
    , fosFmtE7(g.SPROCSQLELAP) "stoProD2El"
    , fosFmtE7(g.ENCTRIGGERTCB) "triNesToCp"
    , fosFmtE7(g.ENCTRIGGERELAP) "triNesToEl"
    , fosFmtE7(g.LOBWAITELAP) LOBWAITELAP
    , fosFmtE7(g.SPNFCPUZIIP) "???"
    , fosFmtE7(g.SPNFCPU) "???"
    , fosFmtE7(g.SPNFELAP) "???"
    , fosFmtE7(g.UDFNFCPUZIIP) UDFNFCPUZIIP
    , fosFmtE7(g.UDFNFCPU) UDFNFCPU
    , fosFmtE7(g.UDFNFELAP) UDFNFELAP
    , fosFmtE7(g.SVPOINTREQ) SVPOINTREQ
    , fosFmtE7(g.SVPOINTREL) SVPOINTREL
    , fosFmtE7(g.SVPOROLLBK) SVPOROLLBK
    , fosFmtE7(g.WTELAWTK) "gblChiWait"
    , fosFmtE7(g.WTELAWTM) "gblOtLWait"
    , fosFmtE7(g.WTELAWTN) "gblPrPWait"
    , fosFmtE7(g.WTELAWTO) "gblPgPWait"
    , fosFmtE7(g.WTELAWTQ) "gblOtPWait"
    , fosFmtE7(g.WTEVARNK) WTEVARNK
    , fosFmtE7(g.WTEVARNM) WTEVARNM
    , fosFmtE7(g.WTEVARNN) WTEVARNN
    , fosFmtE7(g.WTEVARNO) WTEVARNO
    , fosFmtE7(g.WTEVARNQ) WTEVARNQ
    , fosFmtE7(g.WTELAWFC) "???"
    , fosFmtE7(g.WTEVFCCT) WTEVFCCT
    , fosFmtE7(g.WTELIXLT) WTELIXLT
    , fosFmtE7(g.WTEVIXLE) WTEVIXLE
    , fosFmtE7(g.SETCURPREC) SETCURPREC
    , fosFmtE7(g.DCLGLOBALTT) DCLGLOBALTT
    , fosFmtE7(g.PARAGLOBALTT) PARAGLOBALTT
    , fosFmtE7(g.PARAMAXDEG) PARAMAXDEG
    , fosFmtE7(g.PARAREDGRP) PARAREDGRP
    , fosFmtE7(g.SQLCALLAB) SQLCALLAB
    , fosFmtE7(g.SQLCALLTO) SQLCALLTO
    , fosFmtE7(g.SQLCRGTT) SQLCRGTT
    , fosFmtE7(g.REOPTIMIZE) REOPTIMIZE
    , fosFmtE7(g.DIRECTROWIX) DIRECTROWIX
    , fosFmtE7(g.DIRECTROWTS) DIRECTROWTS
    , fosFmtE7(g.FUNC) FUNC
    , fosFmtE7(g.FUNCAB) FUNCAB
    , fosFmtE7(g.FUNCTO) FUNCTO
    , fosFmtE7(g.FUNCRJ) FUNCRJ
    , fosFmtE7(g.DEADLOCKS) DEADLOCKS
    , fosFmtE7(g.SUSPENDS) SUSPENDS
    , fosFmtE7(g.TIMEOUTS) TIMEOUTS
    , fosFmtE7(g.LOCKESHR) LOCKESHR
    , fosFmtE7(g.LOCKEXCL) LOCKEXCL
    , fosFmtE7(g.MAXPGLOCKS) MAXPGLOCKS
    , fosFmtE7(g.SUSPLATCH) SUSPLATCH
    , fosFmtE7(g.SUSPOTHER) SUSPOTHER
    , fosFmtE7(g.LOCKREQS) LOCKREQS
    , fosFmtE7(g.CLAIMREQ) CLAIMREQ
    , fosFmtE7(g.CLAIMREQUN) CLAIMREQUN
    , fosFmtE7(g.DRAINREQ) DRAINREQ
    , fosFmtE7(g.DRAINREQUN) DRAINREQUN
    , fosFmtE7(g.GBPREADINVBD) GBPREADINVBD
    , fosFmtE7(g.GBPREADINVBR) GBPREADINVBR
    , fosFmtE7(g.GBPREADNOPGD) GBPREADNOPGD
    , fosFmtE7(g.GBPREADNOPGR) GBPREADNOPGR
    , fosFmtE7(g.GBPREADNOPGN) GBPREADNOPGN
    , fosFmtE7(g.GBPWRITCHG) GBPWRITCHG
    , fosFmtE7(g.GBPWRITCLEAN) GBPWRITCLEAN
    , fosFmtE7(g.GBPUNREGPG) GBPUNREGPG
    , fosFmtE7(g.GBPEXPLICITXI) GBPEXPLICITXI
    , fosFmtE7(g.GBPWRITCHK2) GBPWRITCHK2
    , fosFmtE7(g.GBPASYNPRIM) GBPASYNPRIM
    , fosFmtE7(g.GBPASYNSEC) GBPASYNSEC
    , fosFmtE7(g.GBPDEPGETPG) GBPDEPGETPG
    , fosFmtE7(g.GBPPLKSPMAP) GBPPLKSPMAP
    , fosFmtE7(g.GBPPLKDATA) GBPPLKDATA
    , fosFmtE7(g.GBPPLKIDX) GBPPLKIDX
    , fosFmtE7(g.GBPPLKUNLK) GBPPLKUNLK
    , fosFmtE7(g.GBPPSUSSPMAP) GBPPSUSSPMAP
    , fosFmtE7(g.GBPPSUSDATA) GBPPSUSDATA
    , fosFmtE7(g.GBPPSUSIDX) GBPPSUSIDX
    , fosFmtE7(g.GBPWARMULTI) GBPWARMULTI
    , fosFmtE7(g.GBPWAR) GBPWAR
    , fosFmtE7(g.GLPLOCKLK) GLPLOCKLK
    , fosFmtE7(g.GLPLOCKCHG) GLPLOCKCHG
    , fosFmtE7(g.GLPLOCKUNLK) GLPLOCKUNLK
    , fosFmtE7(g.GLXESSYNCLK) GLXESSYNCLK
    , fosFmtE7(g.GLXESSYNCCHG) GLXESSYNCCHG
    , fosFmtE7(g.GLXESSYNCUNLK) GLXESSYNCUNLK
    , fosFmtE7(g.GLSUSPIRLM) GLSUSPIRLM
    , fosFmtE7(g.GLSUSPXES) GLSUSPXES
    , fosFmtE7(g.GLSUSPFALSE) GLSUSPFALSE
    , fosFmtE7(g.GLINCOMPAT) GLINCOMPAT
    , fosFmtE7(g.GLNOTFYSENT) GLNOTFYSENT
    , fosFmtE7(g.GLFALSECONT) GLFALSECONT
    , fosFmtE7(g.RLFCPULIMITU) RLFCPULIMITU
    , fosFmtE7(g.RLFCPUUSEDU) RLFCPUUSEDU
    , fosFmtE7(g.UNLOCKREQS) UNLOCKREQS
    , fosFmtE7(g.QUERYREQS) QUERYREQS
    , fosFmtE7(g.CHNGREQS) CHNGREQS
    , fosFmtE7(g.IFIELAPSED) IFIELAPSED
    , fosFmtE7(g.IFITCBCPU) IFITCBCPU
    , fosFmtE7(g.IFIELAPDTC) IFIELAPDTC
    , fosFmtE7(g.IFIELAPEXT) IFIELAPEXT
    , fosFmtE7(g.PROGRAMS) PROGRAMS
    , g.LOADTS
-- end   prb insert genc
    from pbxx.tacct_general_20140117 g
    where dateTime between '2014-01-17-14.58.00'
                   and     '2014-01-17-15.19.00'
    and subsystem like 'DOF%'
    and corrName like 'F256026%'
    and planName like 'DSNTIAU%'
    order by round_timestamp(dateTime, 'mi') desc, corrName
    fetch first 100 rows only
}¢--- A540769.WK.SQL(PRPLPK) cre=2013-11-18 mod=2016-11-03-09.24.42 A540769 ----
$#@
call sqlConnect dp4g
$;
$<=¢
set current path oa1p ;
with p as
(
  select           sum(real(p2Commits+aborts)) comR
                 , sum(real(EDB2TCB)) placpu
                 , groupName, planName
   from pbdd.tacct_general
   where dateTime between '2013-11-13-00.00.00'
                      and '2013-11-13-23.59.59'
   group by groupName, planName
)
, q as
(
  select
         real(occurrences) occ
       , real(sqlcount) sqls
       , real(cputcbpkg) cpu
       , groupName, planName -- , programName
   from pbdd.tacct_program
   where dateTime between '2013-11-13-00.00.00'
                      and '2013-11-13-23.59.59'
)
, s as
(
  select sum(occ) occ
       , sum(sqls) sqls
       , sum(cpu) cpu
       , groupName, planName--, programName
    from q
    group by groupName, planName--, programName
)
  select fosFmte7(comR) comR
       , fosFmte7(plaCpu) plaCpu
       , fosFmte7(occ) pkgOcc
       , fosFmte7(sqls) sqls
       , fosFmte7(cpu) cpu
       , p.groupName, p.planName--, programName
    from s left join p
      on s.groupName = p.groupName and s.planName = p.planName
    order by s.occ  desc
   fetch first 2000 rows only
$!
call sqlStmts
$#out                                              20131120 09:28:03
sqlCode 0: set current path oa1p
  COMR   PLACPU PKGOCC   SQLS      CPU GROUPNAM PLANNAME
1.10E6  6.52E03 1.64E7 2.81E8  6.24E03 DBOF     NZ0610
5.91E5  5.61E03 7.65E6 2.00E8  5.53E03 DBOF     KC0680
5.28E5  1.16E04 7.45E6 1.36E9  1.11E04 DBOF     NZ0920
8.12E5  1.74E03 5.60E6 2.47E7  1.64E03 DBOF     CI0700
1.67E5  2.35E03 4.93E6 7.47E7  2.34E03 DBOF     CA0410
1.94E5  2.68E03 4.83E6 1.04E8  2.66E03 DBOF     KC0830
4.27E5  3.01E03 4.18E6 1.00E8  2.95E03 DBOF     BE0630
8.15E5  2.10E03 3.39E6 4.98E7  2.05E03 DBOF     CI0900
}¢--- A540769.WK.SQL(PRPLPK2) cre=2013-11-18 mod=2016-11-03-09.25.27 A540769 ---
$#@
$<~WK.SQL(PRPLPKdd)
call sqlConnect dbof
call sqlQueryPrep 7 ,
  , "select ( select release from sysibm.sysPlan p" ,
    "where p.name = ?) plaR" ,
    ",(select k.release from sysibm.sysPackage k" ,
    "where k.name = ?" ,
    "order by k.pcTimestamp desc, k.timestamp desc" ,
    "fetch first 1 row only) pkgR from sysibm.sysDummy1"
$@for li $@¢
    li = strip($li)
    gr = word(li, 6)
    pl = word(li, 7)
    pr = word(li, 8)
    if gr = 'DBOF' then $@¢
        call sqlQueryArgs 7, pl, pr
        if \ sqlFetch(7, a) then
            call err 'no row'
        $$- li  m.a.plaR'/'m.a.pkgR'.'
        call sqlClose 7
        $!
    $!
$#out                                              20131118 22:34:36
1.10E6 6.52E3 9.44E5 9.37E6  8.52E02 DBOF     NZ0610   YCDSGET C/ .
1.10E6 6.52E3 9.31E5 1.60E8  1.93E03 DBOF     NZ0610   YOOAIE3 C/ .
1.10E6 6.52E3 9.23E5 4.15E7  3.22E02 DBOF     NZ0610   YCDX031 C/ .
5.91E5 5.61E3 9.18E5 1.12E7  4.49E02 DBOF     KC0680   YBER03E C/ .
1.10E6 6.52E3 8.91E5 1.62E6  1.91E02 DBOF     NZ0610   YCDQGET C/ .
1.10E6 6.52E3 8.91E5 6.47E6  3.53E02 DBOF     NZ0610   YCDOGEE C/ .
}¢--- A540769.WK.SQL(PRSTATS) cre=2014-06-25 mod=2014-06-25-16.13.49 A540769 ---
select subsystem, dateTime, prepfnd, prepNotfnd
        , prepdiscMax, prepDiscProg, s.*
    from pbdd.tStat_general s
    where dateTime > current timestamp - 5 days
    order by datetime desc, subsystem
}¢--- A540769.WK.SQL(PRTB2PK) cre=2014-03-10 mod=2014-03-10-18.08.06 A540769 ---
$#@
call sqlConnect 'RZ1/DBTF'
$;
$<=¢
select strip(pk.NAME) pkg
  , max(pcTimestamp) pc
  from sysIbm.sysPackage pk
  where  (pk.location, pk.collid, pk.name, pk.conToken) in
  (select pkd.dLocation, pkd.dCollid, pkd.dName, pkd.dConToken
    from sysIbm.sysPackDep pkd
    where  (pkd.bQualifier, pkd.bName) in
    (select t.creator, t.name
      from sysIbm.sysTables t
      where t.type not in ('A', 'V') and  t.name = 'SYSTABLES'
  ) )
  group by pk.name
  order by pk.name
$!
$@<.¢sqlRdr()$!
call fTabAuto
call sqlDisconnect
!$#out                                              20140310 17:32:57
O.160.1
$#out                                              20140310 17:31:56
J J
0 0
$#out                                              20140310 17:31:26
J J
0 0
$#out                                              20140310 17:30:44
}¢--- A540769.WK.SQL(PRXX) cre=2014-04-25 mod=2014-04-25-17.31.15 A540769 ------
select min(dateTime), max(DateTime)
    from prxx.tacct_general
--  where planname = 'DSNREXX'
;x;
select *
    from prxx.tacct_general
    where planname = 'DSNREXX'
}¢--- A540769.WK.SQL(PTAGGR) cre=2015-03-20 mod=2015-03-20-13.16.02 A540769 ----
-- performance test aggregate functions
--     min or max are efficiently retrieved from index
--          (access to first and/or last entry in range)
--     however this is not clearly reflected in explain_tables
--          cost only gives a difference in CPU,
--          struct has no difference
--          only plan_table.COLUMN_FN_EVAL = R/S gives an indication
--
--- temporary explain --------------------------------------------------
set current sqlid = 'A540769';
delete from A540769.plan_table;
delete from A540769.DSN_DetCost_TABLE ;
delete from A540769.DSN_STATEMNT_TABLE;
delete from A540769.dsn_struct_table;
delete from A540769.dsn_filter_Table  ;
delete from A540769.dsn_predicat_table;
explain plan set queryno = 2   for
select     tbCreator
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
    order by  tbCreator desc
    fetch first 1 row only
;
explain plan set queryno = 3   for
select max(tbCreator)
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
;
explain plan set queryno = 5   for
select max(tbCreator), min(tbCreator)
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
;
explain plan set queryno = 7   for
select count(*)
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
;
explain plan set queryno = 9   for
select count(*), sum(length(strip(tbCreator)))
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
;
select * from  plan_view1
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select * from  plan_view2det
    order by -- collid, progName, version, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from plan_viewPred
    order by collid, progName, explain_time,
             queryNo, qBlockNo, predNo, orderNo, mixOpSeqNo
;
select *
    from plan_table
    order by collid, progName, explain_time,
             queryNo, qblockno, planno, mixOpSeq
;
select *
    from A540769.DSN_DetCost_TABLE
    order by collid, progName, explain_time,
             queryNo, qblockno, planno
;
select *
    from dsn_struct_table
    order by collid, progName, explain_time,
             queryNo, qblockno, parent
;
rollback
;x;;
select current timestamp from sysibm.sysDummy1;
select     tbCreator
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
    order by  tbCreator desc
    fetch first 1 row only
;
select current timestamp from sysibm.sysDummy1;
select max(tbCreator)
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
;
select current timestamp from sysibm.sysDummy1;
select max(tbCreator), min(tbCreator)
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
;
select current timestamp from sysibm.sysDummy1;
select count(*)
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
;
select current timestamp from sysibm.sysDummy1;
select count(*), sum(length(strip(tbCreator)))
    from  sysibm.sysColumns
    where tbCreator like 'OA1%'
;
select current timestamp from sysibm.sysDummy1;
xx;
}¢--- A540769.WK.SQL(PTI) cre=2014-05-30 mod=2014-05-30-15.19.02 A540769 -------
SELECT  MODEL_ID , MODEL_CREATOR , MODEL_PRODUCT_CODE , SEQUENCE_FIELD ,
        INTERNAL_TYPE , "DATA"
   FROM PTI.PTMOD_UTLSYM_0401
  WHERE ( MODEL_ID = 'ALL'
    AND MODEL_CREATOR = 'DBX' )
  ORDER BY MODEL_ID ASC , MODEL_CREATOR ASC , MODEL_PRODUCT_CODE ASC ,
        SEQUENCE_FIELD ASC
}¢--- A540769.WK.SQL(PVALL) cre=2011-04-12 mod=2011-04-12-10.29.51 A540769 -----
select * from GDB0482.TPV431A1   ;
select * from GDB0482.TPV431B1   ;
select * from GDB0482.TPV432A1   ;
select * from GDB0482.TPV432B1   ;
select * from GDB0482.TPV499A1   ;
select * from GDB0482.TPV601A1   ;
select * from GDB0482.TPV602A1   ;
select * from GDB0482.TPV610A1   ;
select * from GDB0482.TPV611A1   ;
select * from GDB0482.TPV612A1   ;
;;;;;;
select * from GDB0482.TPV414B1   ;
select * from GDB0482.TPV415A1   ;
select * from GDB0482.TPV415B1   ;
select * from GDB0482.TPV416A1   ;
select * from GDB0482.TPV416B1   ;
select * from GDB0482.TPV417A1   ;
select * from GDB0482.TPV417B1   ;
select * from GDB0482.TPV418A1   ;
select * from GDB0482.TPV418B1   ;
select * from GDB0482.TPV419A1   ;
select * from GDB0482.TPV419B1   ;
select * from GDB0482.TPV420A1   ;
select * from GDB0482.TPV420B1   ;
select * from GDB0482.TPV421A1   ;
select * from GDB0482.TPV421B1   ;
select * from GDB0482.TPV422A1   ;
select * from GDB0482.TPV422B1   ;
select * from GDB0482.TPV423A1   ;
select * from GDB0482.TPV423B1   ;
select * from GDB0482.TPV424A1   ;
select * from GDB0482.TPV424B1   ;
select * from GDB0482.TPV425A1   ;
select * from GDB0482.TPV425B1   ;
select * from GDB0482.TPV426A1   ;
select * from GDB0482.TPV426B1   ;
select * from GDB0482.TPV430A1   ;
select * from GDB0482.TPV430B1   ;
select * from GDB0482.TPV431A1   ;
;;;;
select * from GDB0482.TPV401A1   ;
select * from GDB0482.TPV401B1   ;
select * from GDB0482.TPV402A1   ;
select * from GDB0482.TPV402B1   ;
select * from GDB0482.TPV403A1   ;
select * from GDB0482.TPV403B1   ;
select * from GDB0482.TPV404A1   ;
select * from GDB0482.TPV404B1   ;
select * from GDB0482.TPV405A1   ;
select * from GDB0482.TPV405B1   ;
select * from GDB0482.TPV406A1   ;
select * from GDB0482.TPV406B1   ;
-- select * from GDB0482.TPV407A1   ;
select * from GDB0482.TPV407B1   ;
select * from GDB0482.TPV408A1   ;
select * from GDB0482.TPV408B1   ;
select * from GDB0482.TPV409A1   ;
select * from GDB0482.TPV409B1   ;
select * from GDB0482.TPV410A1   ;
select * from GDB0482.TPV410B1   ;
select * from GDB0482.TPV411A1   ;
select * from GDB0482.TPV411B1   ;
select * from GDB0482.TPV412A1   ;
select * from GDB0482.TPV412B1   ;
select * from GDB0482.TPV413A1   ;
select * from GDB0482.TPV413B1   ;
select * from GDB0482.TPV414A1   ;
select * from GDB0482.TPV414B1   ;
}¢--- A540769.WK.SQL(PVM77) cre= mod= ------------------------------------------
select
            char(mon) || '; '
         || arbid || '; '
         || char(sum(erstPag#)) || '; '
         || char(sum(erstCou#))
    from
        (select
                year(ldatum) * 100 + month(lDatum) as mon,
                left(erstJob,4) arbid,
                erstPag#,
                erstCou#
            from OA1T.vpv013a1a
            where mandant = '0034'
                and left(erstJob,2)
                    in ('W0', 'W1', 'W2', 'W3', 'W4', 'W5')
                and lDatum between '20050601' and  '20050631'
        ) t1
    group by      arbid , mon
    order by      arbid , mon
}¢--- A540769.WK.SQL(PVM77D) cre= mod= -----------------------------------------
         select
                ldatum,
                erstJob,
                erstPag#,
                erstCou#
            from OA1T.vpv013a1a
            where mandant = '0034'
                and left(erstJob,2)
                    in ('W0', 'W1', 'W2', 'W3', 'W4', 'W5')
                and lDatum between '20051001' and  '20051031'
}¢--- A540769.WK.SQL(PVM7700H) cre= mod= ---------------------------------------
<html>
<head>
<TITLE>Leistungsverrechnung Detailnachweis WGR</TITLE>
</head>
<body>
<h1>Leistungsverrechnung Detailnachweis WGR</h1>
<br>
Speichern Sie den folgenden Link als .csv File (ohne Apostrophs)
<p>
<table border=2 cellpadding=5>
<tr><th>Monat</th><th>Detaildaten</th></tr>
<tr>
<td>$MONTHDISP</td>
<td><a href="'$CSV'" TYPE="text/csv">$RZ</a></td>
</table>
<p>
Die Kolonnen in der Excel-Tabelle haben folgende Bedeutung:
<ol>
<li>Monat im Format yyyymm</li>
<li>Instradierung</li>
<li>PVS Anzahl Seiten</li>
<li>PVS Anzahl Dokumente</li>
<li>JES (interner Output) Anzahl Seiten</li>
<li>JES (interner Output) Anzahl Stapel</li>
</ol>
</body>
</html>
}¢--- A540769.WK.SQL(PVM7700M) cre= mod= ---------------------------------------
SUBJECT    Leistungsverrechnung Detailnachweis WGR
RECPLIST   A540769
*********** RECP*IST   A702455
SENDERID   GGPVS
SENDERIDCC Y
DOCTEXT
Grüezi Herr Malnati

dieser Link führt Sie zum Detailnachweis WGR des Monats $MONTHDISP

<https://rhino.csintra.net/MVSDS/'$HTML'>

mit freundlichen Grüssen

<mailTo:GG PVS Support (KPCO 4)>
}¢--- A540769.WK.SQL(PVM7700S) cre= mod= ---------------------------------------
select mon, arbid, sum(erstPag#), sum(erstCou#)
    from
        (select
                year(datum) * 100 + month(datum) as mon,
                left(erstJob,4) arbid,
                erstPag#,
                erstCou#
            from $DBOWNER.vpv013a1a
            where mandant = '0034'
                and left(erstJob,2)
                    in ('W0', 'W1', 'W2', 'W3', 'W4', 'W5')
                and datum between '${MONTH}01' and   '${MONTH}31'
        ) t1
    group by      arbid , mon
    order by      arbid desc, mon
}¢--- A540769.WK.SQL(PVSVER) cre= mod= -----------------------------------------
    select ldatum, count(*)
      from oa1t.vpv013a1a
      where lDatum between '20050601' and '20050677'
      group by lDatum;

--  select
--       char(mon) || ', ' ||arbid || ', ' || char(sum(erstPag#))
--       || ', ' || char(sum(erstCou#)) || ', ' || char(count(*))
--    from
--    ( select
--        year(ldatum) * 100 + month(lDatum) as mon,
--        left(erstJob,4) arbid, erstPag#, erstCou#
--      from oa1t.vpv013a1a
--      where left(erstJob,2) in ('BE', 'CD', 'CS', 'ED')
--        and year(ldatum) = 2005 and month(lDatum) = 3
--    ) t1
--    group by      arbid , mon
--    order by      arbid , mon  ;
--
--  select
--       mon as "Month", arbid as "ArbID", sum(erstPag#) as "Pages",
--       sum(erstCou#) as "Documents", count(*) as "Count"
--    from
--    ( select
--        year(ldatum) * 100 + month(lDatum) as mon,
--        left(erstJob,4) arbid, erstPag#, erstCou#
--      from oa1t.vpv013a1a
--      where year(ldatum) = 2005 and month(lDatum) = 3
--    ) t1
--    group by      arbid , mon
--    order by      arbid , mon  ;
}¢--- A540769.WK.SQL(PVSVERI) cre= mod= ----------------------------------------
    select
         char(mon) || ', ' || arbid || ', ' || char(sum(erstPag#))
         || ', ' || char(sum(erstCou#)) || ', ' || char(count(*))
      from
      ( select
          year(ldatum) * 100 + month(lDatum) as mon,
          left(erstJob,4) arbid, erstPag#, erstCou#
        from $DBOWNER.vpv013a1a
        where left(erstJob,2)
            in ($BEREICHE)
          and lDatum between '${MONTH}01' and  '${MONTH}31'
      ) t1
      group by      arbid , mon
      order by      arbid , mon
}¢--- A540769.WK.SQL(PVSVERJ) cre= mod= ----------------------------------------
    select
         char(mon) || '; ' || arbid || '; ' || char(sum(erstPag#))
         || '; ' || char(sum(erstCou#))
      from
      ( select
          year(ldatum) * 100 + month(lDatum) as mon,
          left(erstJob,4) arbid, erstPag#, erstCou#
        from $DBOWNER.vpv013a1a
        where left(erstJob,2)
            in ($BEREICHE)
          and lDatum between '${MONTH}01' and  '${MONTH}31'
      ) t1
      group by      arbid , mon
      order by      arbid , mon
}¢--- A540769.WK.SQL(PVS13) cre= mod= ------------------------------------------
select mon, arbid, sum(erstPag#), sum(erstCou#)
    from
        (select
                year(ldatum) * 100 + month(lDatum) as mon,
                left(erstJob,4) arbid,
                erstPag#,
                erstCou#
            from $DBOWNER.vpv013a1a
            where mandant = '0034'
                and left(erstJob,2)
                    in ('W0', 'W1', 'W2', 'W3', 'W4', 'W5')
                and lDatum between '${MONTH}01' and  '${MONTH}31'
        ) t1
    group by      arbid , mon
    order by      arbid desc, mon
}¢--- A540769.WK.SQL(PV7130) cre= mod= -----------------------------------------

   SELECT   char(datum, iso), char(datum, jis), char(datum, eur),
            ERSTJOB, PVSJOB, SUM(ERSTPAG#)
   FROM     oa1t.VPV013A1A
   WHERE    DATUM >=  '27.07.2005'   AND
            PVSJOB LIKE 'PVS%'
   GROUP BY DATUM, ERSTJOB, PVSJOB, DATUM
   order BY DATUM, ERSTJOB, PVSJOB, DATUM;
}¢--- A540769.WK.SQL(PXT2300) cre=2008-09-12 mod=2008-09-12-20.30.22 F540769 ---
set current sqlid = 'A540769';
delete from plan_table;
explain plan set queryno = 111 for
SELECT BP20001,BP20004,BP20007,BP20008,BP20010,
BP20011,BP20012,BP20013,BP20014,BP20015,BP20016,
BP20017,BP20019,BP20022,BP20024,BP20025,BP20026,
BP20027,BP20028,BP20029,BP20401,BP20404,BP20409,
BP20410,BP20502,BP20503,BP20504,BP20508,BP20509,
BP20510,BP20511,BP20512
FROM oa1t.TBP200A1,oa1t.TBP204A1,oa1t.TBP205A1
WHERE BP20001=BP20411 AND BP20001=BP20501
AND '2008-04-01-00.00.00.000000' BETWEEN BP20002 AND BP20003
AND BP20005=?
AND BP20403=?
AND BP20405=?
AND BP20503>=?
AND BP20505=?
AND BP20401 BETWEEN ?    AND ?
AND BP20409=?    AND BP20008=?
ORDER BY BP20008,BP20401 DESC
FOR FETCH ONLY WITH UR
;
select * from plan_view5a
    where queryno in ( 111, 222)
    order by applname, progname, queryNo, qblockno, planno
;
rollback;
}¢--- A540769.WK.SQL(QM416204) cre=2007-10-23 mod=2013-09-11-11.08.55 A540769 ---
--$SPECIAL
select current timestamp "timestamp",
       current member "member", current server "server",
               '11.9.13 alte queries' "version"
    from sysibm.sysDummy1
;
with T as  -- tadm09a1 gruppieren und max PartitionSize berechnen
  ( SELECT  DB_NAME, TS_NAME, PARTITIONS_NR,
            sum(float(HI_U_RBA)) / 1024 / 1024 / 1024 USED,
            CASE      -- negative paLim bei GruppierungsFehlern
                 WHEN MIN(PARTITIONS_TOTAL) <> Max(PARTITIONS_TOTAL)
                     THEN -91
                 WHEN MIN(DS_SIZE) <> Max(DS_SIZE) THEN -92
                 WHEN MIN(LARGE) <> Max(LARGE) THEN -93
                      -- maximale PartitionSize in GB
                 WHEN MIN(PARTITIONS_TOTAL) = 0 THEN 64
                 WHEN MIN(DS_SIZE) <> 0 THEN INT(MIN(DS_SIZE)/1024/1024)
                 WHEN MIN(LARGE) = 'K' OR MIN(LARGE) = 'L' THEN 4
                 WHEN MIN(PARTITIONS_TOTAL) <=  16 THEN 4
                 WHEN MIN(PARTITIONS_TOTAL) <=  32 THEN 2
                 WHEN MIN(PARTITIONS_TOTAL) <=  64 THEN 1
                 WHEN MIN(PARTITIONS_TOTAL)  <= 254 THEN 4
                      -- > 254 parts hängt von pageSize ab --> Fehler
                 ELSE                              -94
            END paLim,
            MIN(PARTITIONS_TOTAL) partitions_total,
            min(DS_SIZE) ds_size,
            min(LARGE) large,
            DATUM DATUM
        from oa1a.TADM09A1
        group by  DB_NAME, TS_NAME, PARTITIONS_NR, DATUM
  ) ,
L as -- SchwellWerte tadm10a1 mit like Wert ergänzen
  ( select W.*,
           case when posStr(db_name, '%') < 1 then '% no %'
                else left(db_name, posStr(db_name, '%') - 1)
           end dbLike,
           case when posStr(ts_name, '%') < 1 then '% no %'
                else left(ts_name, posStr(ts_name, '%') - 1)
           end tsLike
        from oa1a.tadm10a1 W
        where w.END_DATUM >= timestamp(current date,'00:00:00')
  ) ,
S as        -- join R mit einem SchwellWert-Tupel aus TADM10A1,
            --     Tupel wird mit folgender Priorität gewählt
            --     1. db =,    ts =        , pa = or 0
            --     2. db =,    ts like     , pa = or 0
            --     3. db like, ts like or =, pa = or 0
            --     4. db DEFAULT
            --     5. default 90% der Limite
            -- like Operator geht hier nicht, wir vergleichen
            --     bis zum ersten %
  ( SELECT T.DB_NAME, T.TS_NAME, T.PARTITIONS_NR, T.used,
        -- Werte aus erster gefunden Schwellwert Row auswählen
        coalesce(spez.exclude, sTSl.exclude, sDBl.exclude,
                    sdef.exclude, 'N') exclude,
        coalesce(strip(spez.db_name) || '.' || strip(spez.ts_name)
                    || '.' || strip(char(spez.partitions_nr)),
                 strip(sTSl.db_name) || '.' || strip(sTSl.ts_name)
                    || '.' || strip(char(sTSl.partitions_nr)),
                 strip(sDBl.db_name) || '.' || strip(sDBl.ts_name)
                    || '.' || strip(char(sDBl.partitions_nr)),
                 strip(sDef.db_name) || '.' || strip(sDef.ts_name)
                    || '.' || strip(char(sDef.partitions_nr)),
                 '%default 90%') swKey,
        coalesce (
        case T.paLim     -- richtigen Schwellwert für paLim wählen
            when 1 then coalesce(spez.HIGHWATER_1GB,
                    sTSl.HIGHWATER_1GB , sDBl.HIGHWATER_1GB,
                    sDef.HIGHWATER_1GB)
            when 2 then coalesce(spez.HIGHWATER_2GB,
                    sTSl.HIGHWATER_2GB , sDBl.HIGHWATER_2GB,
                    sDef.HIGHWATER_2GB)
            when 4 then coalesce(spez.HIGHWATER_4GB,
                    sTSl.HIGHWATER_4GB , sDBl.HIGHWATER_4GB,
                    sDef.HIGHWATER_4GB)
            when 8 then coalesce(spez.HIGHWATER_8GB,
                    sTSl.HIGHWATER_8GB , sDBl.HIGHWATER_8GB,
                    sDef.HIGHWATER_8GB)
            when 16 then coalesce(spez.HIGHWATER_16GB,
                    sTSl.HIGHWATER_16GB , sDBl.HIGHWATER_16GB,
                    sDef.HIGHWATER_16GB)
            when 32 then coalesce(spez.HIGHWATER_32GB,
                    sTSl.HIGHWATER_32GB , sDBl.HIGHWATER_32GB,
                    sDef.HIGHWATER_32GB)
            when 64 then coalesce(spez.HIGHWATER_64GB,
                    sTSl.HIGHWATER_64GB , sDBl.HIGHWATER_64GB,
                    sDef.HIGHWATER_64GB)
            else    min(-89, T.paLim)
        end , 0.9 * T.paLim) sw,
        T.paLim, T.partitions_total, T.ds_size, T.large, T.datum
      FROM T
        left JOIN L SPEZ    -- Schwelle für db, ts und part%
          ON      SPEZ.DB_NAME       =    T.DB_NAME
              AND SPEZ.TS_NAME      =    T.TS_NAME
              AND SPEZ.PARTITIONS_NR IN (0 , T.PARTITIONS_NR)
        left JOIN L sTSl     -- Schwelle für db, ts% und part%
          ON      sTSl.DB_NAME       =    T.DB_NAME
              AND sTSl.tsLike  = left(T.ts_name, length(sTSl.tsLike))
              AND sTSl.PARTITIONS_NR IN (0 , T.PARTITIONS_NR)
        left JOIN l sDBl     -- Schwelle für db, ts% und part%
          ON      sDBl.dbLike  = left(T.db_name, length(sDBl.dbLike))
              AND ( sDBl.tsLike  = left(T.ts_name, length(sDBl.tsLike))
                    or sDBl.ts_name = T.ts_name )
              AND sDBl.PARTITIONS_NR IN (0 , T.PARTITIONS_NR)
        LEFT JOIN L  SDEF     -- Schwell Default
          ON SDEF.DB_NAME       =    'DEFAULT'
 )
--\*********************************************************************
--\
--\      Tablespace (Partitionen) grösser SchwellWert
--\
SELECT substr(DB_NAME,1,8) "db",
       substr(TS_NAME,1,8) "ts",
       char(case
           when partitions_nr <= 999 and partitions_total <= 999
               then right('  ' || strip(char(PARTITIONS_nr)), 3) || '/'
                    || right('  ' || strip(char(PARTITIONS_total)), 3)
               else strip(char(PARTITIONS_nr)) || '/'
           end, 7) "par/tot" ,
       dec(used, 4, 2) "used",
       dec(sw,   4, 2) "schWe",
       dec(paLim, 2, 0) "lim",
       char(swKey, 20)     "schwellWertKey"
    from S
    where datum = current date
        and exclude in ('N', 'S') and used > sw
    ORDER BY 1, 2, 3
;
--/
--/ db        = Datenbank
--/ ts        = Tablespace
--/ par/tot   = betroffene PartitionsNummer
--/             / Total Anzahl Partitionen des Tablespace
--/ used      = benutzter Speicherplatz in GB
--/ schWe     = Schwellwert in GB
--/ lim       = Limite in GB
--/ schwellWertKey = Key des Schwellwerts im Format db.ts.par
--/
--/*********************************************************************
with ts as   -- tablespace mit dsSz
  ( select s.*,
            case when partitions = 0 then 64 * 1024 * 1024
                 when dssize <> 0 then dssize
                 when type in ('K', 'L') then 4 * 1024 * 1024
                 when partitions <=  16 then 4 * 1024 * 1024
                 when partitions <=  32 then 2 * 1024 * 1024
                 when partitions <=  64 then 1 * 1024 * 1024
                 when partitions <= 254 then 4 * 1024 * 1024
                 when partitions <=  16 then 4 * 1024 * 1024
            end dsSz
        from sysibm.sysTablespace s
  ) ,
ii as   -- index mit pieceSz, pieceCnt und maxPartition
  (
    select i.*, t.tsName, p.maxPart,
        case when maxPart > 0 then 1
             when s.dsSize < 4e6 and not s.type in ('L', 'K') then 32
             else 4096
        end pieceCnt,
        case when maxPart > 0 then dsSz
             when pieceSize > 0 then piecesize
             when s.dsSz >= 4 then 4 * 1024 * 1024
             else 2  * 1024 * 1024
        end pieceSz
    from sysibm.sysindexes i, sysibm.systables t, ts s,
        ( select max(partition) maxPart, ixCreator, ixName
               from sysibm.sysindexpart p
               group by ixCreator, ixName
        ) p
    where
            i.tbCreator = t.creator and i.tbName = t.name
        and t.dbName = s.dbName and t.tsName = s.name
        and i.creator = p.ixCreator and i.name = p.ixName
  ) ,
L as --* SchwellWerte tadm10a1 mit like Wert ergänzen
  ( select W.*,
           case when posStr(db_name, '%') < 1 then '% no %'
                else left(db_name, posStr(db_name, '%') - 1)
           end dbLike,
           case when posStr(ts_name, '%') < 1 then '% no %'
                else left(ts_name, posStr(ts_name, '%') - 1)
           end tsLike
        from oa1a.tadm10a1 W
        where w.END_DATUM >= timestamp(current date,'00:00:00')
  ),
RR as --* RTS mit Limite und Schwellwert
  (
  select r.*,
       ii.creator ixCreator, ii.name ixName, ii.maxPart,
       ii.tbCreator, ii.tbName, ii.tsName,
       float(r.nActive) * 4 / 1024 / 1024 activeGB,
       float(r.space)       / 1024 / 1024 spaceGB,
       ii.pieceCnt limitPieces,
       float(ii.pieceSz) * ii.pieceCnt / 1024 / 1024 limitGB,
       coalesce(L1.HIGHWATER_1GB, L2.HIGHWATER_1GB, L3.HIGHWATER_1GB,
                L4.HIGHWATER_1GB, .8)  swFrc,
       coalesce(L1.exclude, L2.exclude, L3.exclude,
                    l4.exclude, 'N') exclude,
       coalesce(strip(l1.db_name) || '.' || strip(l1.ts_name)
                    || ':' || strip(char(l1.partitions_nr)),
                strip(l2.db_name) || '.' || strip(l2.ts_name)
                    || ':' || strip(char(l2.partitions_nr)),
                strip(l3.db_name) || '.' || strip(l3.ts_name)
                    || ':' || strip(char(l3.partitions_nr)),
                strip(l4.db_name) || '.' || strip(l4.ts_name)
                    || ':' || strip(char(l4.partitions_nr)),
                'sql default') swKey
      from sysibm.sysindexspacestats r
        left join ii on ii.dbid = r.dbid and ii.isobid = r.isobid
        left JOIN L L1      --* Schwelle für db, ts und part%
          ON      L1.DB_NAME       =    ii.DBNAME
              AND L1.TS_NAME      =    ii.indexSpace
              AND L1.PARTITIONS_NR IN (0 , r.PARTITION)
        left JOIN L L2       --* Schwelle für db, ts% und part%
          ON      L2.DB_NAME       =   ii.DBNAME
              AND L2.tsLike  = left(ii.indexSpace,length(L2.tsLike))
              AND L2.PARTITIONS_NR IN (0 , r.PARTITION)
        left JOIN l L3       --* Schwelle für db, ts% und part%
          ON      L3.dbLike  = left(ii.dbname, length(L3.dbLike))
              AND ( L3.tsLike  = left(ii.indexspace, length(L3.tsLike))
                    or L3.ts_name = ii.indexSpace )
              AND L3.PARTITIONS_NR IN (0 , r.PARTITION)
        LEFT JOIN L L4        --* Schwell Default
          ON L4.DB_NAME       =    'DEFAULT/I'
  )
--\*********************************************************************
--\
--\      IndexSpace (Partitionen) grösser SchwellWert * Limite
--\
SELECT substr(DBNAME,1,8) "db",
       substr(indexSpace,1,8) "indexSpc",
       char(case
           when partition <= 999 and maxPart <= 999
               then right('  ' || strip(char(PARTITION)), 3) || '/'
                    || right('  ' || strip(char(maxPart)), 3)
               else strip(char(PARTITION)) || '/'
           end, 7) "par/tot" ,
       char(
       right('     '||strip(cast(dec(activeGB, 8, 3) as char(10))),10)
       || char(dec(swFrc, 3, 2))
       || right('     '||strip(cast(dec(limitGB, 8,3) as char(10))),10)
           , 25)        "    active scWe     limit",
       char(left(ixName, 20), 20)  "index name"
    from RR
    where exclude in ('N', 'S') and activeGB > swFrc * limitGB
    ORDER BY 1, 2, 3
    ;
--/
--/ db        = Datenbank
--/ indexSp   = index Space (Nicht Name|)
--/ par/tot   = betroffene PartitionsNummer / Total Partitonen
--/ active    = Speicherplatz in GB der active Pages
--/ schWe     = Schwellwert Faktor
--/ lim       = Limite in GB
--/ indexName = Name des Index
--/
--/*********************************************************************
--$SPECIAL
select current timestamp "timestamp",
       current member "member", current server "server",
               '11.9.13 neue queries' "version"
    from sysibm.sysDummy1
;
with t0 as
(
  select dbname db, name ts, pgSize
      , partitions parts, maxPartitions maxParts, dsSize
      , case
            when type <> ' ' then type
            when partitions > 0 and segsize = 0 then 'p' -- classic part
            when partitions = 0 and segsize = 0 then 'i' -- simple
            when partitions = 0 and segsize > 0 then 's' -- segmented
            else raise_error(70000, 'unknown ts type='||type
                || ' partitions=' || strip(char(partitions))
                || ' segsize=' || strip(char(segsize))
                || ' db.ts=' || strip(dbName) ||'.'||name) end tsTy
      , case
            when dssize <> 0 then int(dssize / 1048576)
            when type in ('G', 'O', 'P', 'R', 'L') then 4
            when partitions = 0     then  64
            when partitions > 254 then    pgSize
            when partitions > 64    then   4
            when partitions > 32    then   1
            when partitions > 16    then   2
                                    else   4
        end dsGB
      , dbid, psid
      from sysibm.sysTablespace
)
, ts as
( select t0.*
      , case when tsTy = 'G' or parts = 0 then 0 else 9999 end scope
      , case when tsTy = 'G' then dsGB * maxparts
             when tsTy = 'O' then dsGB * 254
             else dsGb end limGB
      from t0
)
, tk1 as
(
  select ts.*
      , value( ( select max(a.key)
        from s100447.tGbGrSchwelle
          for business_time as of current date a
        where a.part = 0
          and left(a.db, a.dbLen) = left(ts.db, a.dbLen)
          and left(a.ts, a.tsLen) = left(ts.ts, a.tsLen)
          and (a.tsTy = ' ' or a.tsTy = ts.tsTy)
          and a.dsMin <= ts.limGB
          ), raise_error(70001, 'schwelle null ' || db ||'.'||ts
                      || ' ty='||tsTy)
      ) keyTS
    from ts
)
, tr as
(
  select tk1.*
      , min(partition, scope) part
      , nActive nAct
    from tk1 join sysibm.sysTableSpaceStats r
      on tk1.db = r.dbName and tk1.ts = r.name
         and tk1.dbid = r.dbid and tk1.psid = r.psid
)
, tg (db, ts, part, limGb, keyTS, nAct
     , pgSize, parts, maxParts, dsSize, tsTy, dsGB) as
(
  select db, ts, part, min(limGb), max(keyTS), sum(bigInt(nAct))
      , max(pgSize), max(parts), max(maxParts), max(dsSize)
      , max(tsTy), max(dsGB)
    from tr
    group by db, ts, part
)
, i1 as
(
  select i.indexType, i.pieceSize, i.creator ixCr, i.name ix
         , case when i.pgSize = 4096 or i.compress = 'Y' then 4
                else i.pgSize
           end ixPgSz
         , (select max(partition)
              from sysibm.sysIndexPart p
                  where p.ixCreator = i.creator
                    and p.ixName = i.name
           ) ixPaMax
         , tk1.*
    from tk1
      join sysibm.sysTables t
        on tk1.db = t.dbName and tk1.ts = t.tsName
            and t.type not in ('A', 'V')
      join sysibm.sysIndexes i
        on i.tbCreator = t.creator and i.tbName = t.name
)

, i2 as
(
  select case when piecesize <> 0 then real(pieceSize) / 1048576
              when parts <> 0 then real(dsGB) * ixPgSz / pgSize
              else 2
         end pcGb
       , i1.*
      from i1
)
,  i3 as
(
  select case when ixPaMax <> 0 then 1
              when parts = 0 then 32
              when tsTy <> 'L' and dsSize = 0 and parts <= 64 then 32
              when parts > 254 then 4096
              else smallInt(min(4096, 4096 / pcGb * ixPgSz))
         end pcMx
         , i2.*
      from i2
)
,  iR as
(
  select pcGb * pcMx ixpGb
       , float(r.nActive) * i3.ixPgSz / 1048576 actGB
       , r.partition part
       , i3.*
    from i3 left join sysibm.sysindexspacestats r
      on i3.ixCr = r.creator and i3.ix = r.name
)
, u1 (db, ts, ix, part, parts, limGb, actGb, tsTy, keyTs) as
(
  select           db, ts, ' --ts--', part, parts, limGb
          , float(nAct) * pgSize / 1048576
          , tsTy, keyTS
    from tg
  union all select db, ts, ix, part, ixPaMax, ixpGb, actGb, tsTy, keyTS
    from iR
)
, uK  as
(
  select u1.*
      , case when u1.part is null or u1.part < 1 then keyTS
             else value ( ( select max(a.key)
        from s100447.tGbGrSchwelle
          for business_time as of current date a
        where u1.part > 0 and a.part = u1.part and a.key > u1.keyTS
          and left(a.db, a.dbLen) = left(u1.db, a.dbLen)
          and left(a.ts, a.tsLen) = left(u1.ts, a.tsLen)
          and (a.tsTy = ' ' or a.tsTy = u1.tsTy)
          and a.dsMin <= u1.limGB
          ), u1.keyTS) end key
    from u1
)
, uS as
(
  select j.schwelle
      , smallint(round(actGb * 100 / limGB, 0)) used
      , uK.*
    from uK
      join s100447.tGbGrSchwelle
          for business_time as of current date j
        on uK.key = j.key
)
--\*********************************************************************
--\
--\      Tablespace und Index Partitionen grösser SchwellWert
--\
select substr(db, 1, 8) "db"
     , substr(ts, 1, 8) "ts"
     , substr(case when part = 0 then ''
              else value(right('   '||strip(char(part)), 4), '----')
             ||'/'|| value(right('   '||strip(char(parts)), 4), '----')
        end, 1, 9) "part/ tot"
     , substr(ix, max(1, length(ix) - 7), 8) "...index"
     , dec(limGb, 6, 0) "lim GB"
     , dec(schwelle, 3, 0) "schw%"
     , dec(used, 3, 0) "used%"
     , tsTy "y"
    from oa1p.vAdm13GbGr g
    where used > schwelle
    order by g.db, g.ts, g.part, g.ix
;
--/
--/ db        = Datenbank
--/ ts        = tablespace
--/ part/ tot = betroffene PartitionsNummer / Total Partitonen
--/ index     = index oder --ts--
--/ lim GB    = physische Limite in GB
--/ schw%     = Schwellwert in Prozent der Limite
--/ used%     = benutzter Plat in Prozent der Limite
--/ y         = tsType s=Segmented,i=Simple p=Partitioned classic
--/             andere Werte aus sysibm.sysTableSpace.type
--/ key ...   = key des Schwellwerts aus S100447.tGbGrSchwelle
--/             abgeschnitten siehe DSN.jobname.MAIL1
--/*********************************************************************
--$SPECIAL
select current timestamp "timestamp",
       current member "member", current server "server",
               '11.9.13 ende' "version"
    from sysibm.sysDummy1
;
}¢--- A540769.WK.SQL(QUERYNO) cre=2010-04-06 mod=2010-04-06-16.07.03 A540769 ---
select count(*), queryno
    from cmnbatch.DSN_QUERY_TABLE
    group by queryno
    order by 1 desc
    fetch first 100 rows only
    with ur
}¢--- A540769.WK.SQL(QUERYREN) cre=2010-04-07 mod=2010-04-08-15.26.21 A540769 ---
rename table CMNBATCH.DSN_QUERY_TABLE_REORG
          to          DSN_QUERY_TABLE;
commit;
}¢--- A540769.WK.SQL(QUIET) cre=2008-01-07 mod=2008-01-07-16.55.59 F540769 -----
UPDATE GDB9998.TWK801A1                                                 00010000
         SET TI4 = CURRENT TIME;                                        00020001
UPDATE GDB9998.TWK802A1                                                 00030002
         SET TI4 = CURRENT TIME;                                        00040002
}¢--- A540769.WK.SQL(QZ06SUM) cre=2014-05-13 mod=2015-06-12-17.11.49 A540769 ---
with u (tb, cnt, rz, dbSys, ssMin, ssMax
       , tstMin, tstMax, loadMin, loadMax) as
(
select '60timeOut', count(*), rz, dbSys, min(ssid), max(ssid)
        , min(timestamp), max(timestamp)
        , min(loadDate), max(loadDate)
    from oa1p.tqz060Timeout
    where timestamp > '2015-05-01-00.00.00'
        and loadDate > '08.10.2014'
    group by left(ssid, 3), rz,dbsys
union all select '63UOW',  count(*), rz, dbSys, min(ssid), max(ssid)
        , min(timestamp), max(timestamp)
        , min(loadDate), max(loadDate)
    from oa1p.tqz063UOW
    where timestamp > '2015-05-01-00.00.00'
        and loadDate > '08.10.2014'
    group by left(ssid, 3), rz,dbsys
union all select '65LockEs', count(*), rz, dbSys, min(ssid), max(ssid)
        , min(timestamp), max(timestamp)
        , min(loadDate), max(loadDate)
    from oa1p.tqz064LockEscal
    where timestamp > '2015-05-01-00.00.00'
        and loadDate > '08.10.2014'
    group by left(ssid, 3), rz,dbsys
union all select '65Abend', count(*), rz, dbSys, min(ssid), max(ssid)
        , min(timestamp), max(timestamp)
        , min(loadDate), max(loadDate)
    from oa1p.tqz065Abend
    where timestamp > '2015-05-01-00.00.00'
        and loadDate > '08.10.2014'
    group by left(ssid, 3), rz,dbsys
)
select *
    from u
    order by 3, 4, 1
    with ur
;x;
select count(*), count(distinct loadDate), loadDate
    from oa1p.tqz060Timeout
    where rz = 'RR2' and loadDate > current date - 1 month
    group by loadDate
    order by 3 desc
;X;
select count(*), rz, dbSys, min(ssid), max(ssid)
        , min(timestamp), max(timestamp)
        , min(loadDate), max(loadDate)
    from oa1p.tqz060Timeout
    where timestamp > '2014-08-01-00.00.00'
        and loadDate > '08.10.2014'
    group by left(ssid, 3), rz,dbsys
       --, trunc_timestamp(timestamp, 'mon')
    order by 2, 3
    with ur
;
select count(*), rz, dbSys, min(ssid), max(ssid)
        , min(timestamp), max(timestamp)
        , min(loadDate), max(loadDate)
    from oa1p.tqz063UOW
    where timestamp > '2014-08-01-00.00.00'
        and loadDate > '08.10.2014'
    group by left(ssid, 3), rz,dbsys
       --, trunc_timestamp(timestamp, 'mon')
    order by 2, 3
    with ur
;
select count(*), rz, dbSys, min(ssid), max(ssid)
        , min(timestamp), max(timestamp)
        , min(loadDate), max(loadDate)
    from oa1p.tqz064LockEscal
    where timestamp > '2014-08-01-00.00.00'
        and loadDate > '08.10.2014'
    group by left(ssid, 3), rz,dbsys
       --, trunc_timestamp(timestamp, 'mon')
    order by 2, 3
    with ur
;
select count(*), rz, dbSys, min(ssid), max(ssid)
        , min(timestamp), max(timestamp)
        , min(loadDate), max(loadDate)
    from oa1p.tqz065Abend
    where timestamp > '2014-08-01-00.00.00'
        and loadDate > '08.10.2014'
    group by left(ssid, 3), rz,dbsys
       --, trunc_timestamp(timestamp, 'mon')
    order by 2, 3
    with ur
;x;
}¢--- A540769.WK.SQL(QZ060) cre=2014-08-26 mod=2016-08-25-10.29.11 A540769 -----
set current application compatibility 'V11R1';
select date(timestamp), count(*)
        , sum(case when victim_corr_id like '%AUTBND%'
             then 1 else 0 end) vict
        , sum(case when holder_corr_id like '%AUTBND%'
             then 1 else 0 end) hold
        , type, left(name, 10)
        , min(name), max(name)
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and (  victim_corr_id like '%AUTBND%'
            or holder_corr_id like '%AUTBND%'
            )
        and timestamp > current timestamp - 2 month
    group by date(timestamp), rollup(type, left(name, 10))
    order by 1 desc, 2 desc
;x;
select *
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and type = 'DB' and name = 'WI02A1P'
        and (  victim_corr_id like '%AUTBND%'
            or holder_corr_id like '%AUTBND%'
            )
        and timestamp > current timestamp - 2 month
;x;
select count(*), event_type
               , date(MAX(timestamp)) --, min(timestamp)
               , strip(min(name)) || ' - ' || max(name)
               , MAX(timestamp),  min(timestamp)
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and timestamp > current timestamp - 2 month
        and ( name like '%XC01A1P%')
        and     timestamp between '2015-09-01-00.00.00'
                              and '2016-04-22-23.00.00'
    group by left(name, 15), event_type
                , trunc_timestamp(timestamp, 'iw')
    order by trunc_timestamp(timestamp, 'iw') desc, 1 desc
;x;
select count(*), rz, ssid, dbSys
      , max(loadDate)
      , max(timestamp)
      , min(loadDate)
      , min(timestamp)
    from oa1p.tqz064LockEscal
    where rz = 'RZ2'
  --    and type like '%ID%'
        and timestamp > '2015-10-01-12.38.19'
    group by rz, ssid, dbSys, loadDate
    order by rz, ssid, dbSys, loadDate desc
;x;
  select date(trunc_timestamp(timestamp, 'mon'))
      , count(distinct date(timestamp)), count(*)
      , max(loadDate)
      , max(timestamp)
      , min(loadDate)
      , min(timestamp)
    from oa1p.tqz065Abend
    where rz = 'RQ2' -- and dbSys = 'DE0G'
        and timestamp >= '2014-01-01-00.00.00'
   --   and loaddate > '01.06.2015'
    group by trunc_timestamp(timestamp, 'mon')
    order by 1 desc
;x;
select *
    from oa1p.tqz064LockEscal
    where rz = 'RZZ' and dbSys = 'DEVG'
        and timestamp = '2015-09-03-14.38.34'
;x;
select *
    from oa1p.tqz065Abend
    where rz = 'RZZ' and dbSys = 'DEVG'
        and timestamp = '2015-09-09-11.07.38'
;x;
select *
    from oa1p.tqz063UOW
    where rz = 'RZZ' and dbSys = 'DEVG'
        and timestamp = '2015-09-09-10.42.20'
;x;
select *
    from oa1p.tqz060timeout
    where rz = 'RZZ' and dbSys = 'DEVG'
  --    and type like '%ID%'
        and timestamp = '2015-09-07-12.38.19'
;x;
  union all select count(*), date(timestamp)
    from oa1p.tqz065Abend
    where rz = 'RZX' and dbSys = 'DE0G'
        and timestamp >= '2015-01-01-00.00.00'
    group by date(timestamp)
select count(*), date(timestamp)
    from oa1p.tqz065Abend
    where rz = 'RZX' and dbSys = 'DE0G'
        and timestamp = '2015-09-29-06.49.48'
;x;
select count(*), date(timestamp)
    from oa1p.tqz065Abend
    where rz = 'RZX' and dbSys = 'DE0G'
        and timestamp = '2015-09-29-06.49.48'
;x;
select count(*), holder_plan, trunc_timestamp(timestamp, 'dd')
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and timestamp > current timestamp - 12 month
      --and ( name like '%DW52%' or name like '%DW50A1P%')
        and (holder_plan = 'KE5480' or victim_plan = 'KE5480')
     group by holder_plan, trunc_timestamp(timestamp, 'dd')
     order by 3 desc
;x;
select *
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and timestamp > current timestamp - 2 month
      --and ( name like '%DW52%' or name like '%DW50A1P%')
        and (holder_plan = 'KE5480' or victim_plan = 'KE5480')
     order by timestamp desc
;x;
select count(*), event_type
               , date(MAX(timestamp)) --, min(timestamp)
               , strip(min(name)) || ' - ' || max(name)
               , MAX(timestamp),  min(timestamp)
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
        and timestamp > current timestamp - 12 month
        and ( name like '%DW52%' or name like '%DW50A1P%')
        and not timestamp between '2014-02-20-00.00.00'
                              and '2014-02-22-23.00.00'
    group by left(name, 15), event_type
;x;
select count(*), event_type
               , date(MAX(timestamp)) --, min(timestamp)
               , strip(min(name)) || ' - ' || max(name)
               , MAX(timestamp),  min(timestamp)
    from oa1p.tqz060timeout
    where rz = 'RZ2' and dbSys = 'DBOF'
      --and timestamp > current timestamp - 1 month
        and ( name like '%DW52%' or name like '%DW50A1P%')
    group by left(name, 15), event_type
}¢--- A540769.WK.SQL(QZ063) cre=2014-05-13 mod=2014-05-13-10.23.30 A540769 -----
with g as
(
select count(*) c, timestamp, ssid, event_type, plan_name, conn_id,
                 corrid_id, authid, logRec, rz, dbSys
    from oa1p.tqz063uow
    where timestamp >= '2014-04-01-00.00.00'
    group by  timestamp, ssid, event_type, plan_name, conn_id,
              corrid_id, authid, logRec, rz, dbSys
)
select trunc_timestamp(timestamp, 'dd'), count(*) cnt
    , sum(case when c > 1 then 1 else 0 end) mult
    , sum(case when c > 1 then c else 0 end) multSum
    from g
    group by trunc_timestamp(timestamp, 'dd')
    order by 1 desc
    with ur
}¢--- A540769.WK.SQL(RAND) cre=2009-04-16 mod=2009-04-16-15.38.55 F540769 ------
select current timestamp from sysibm.sysdummy1;
with n  (n) as
 ( select 1 from sysibm.sysDummy1
   union all select n+1 from n where n < 1e4
 ),
 nc (n, l1, l2, lv2, s1, s2) as
 ( select n, int(rand(101)*30), int(rand(102)*30),
          0, varchar('',1000), varchar('',1000) from n
   union all select n, l1, l2, lv2+1, s1 ||
          substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
             ||  'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*%&/()=?\¢!{}'
                , int(rand(133)*80)+1, 1), s2
          from nc
          where lv2 < l1 and lv2 <= 1000
   union all select n, l1, l2, lv2+1, s1, s2 ||
          substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
             ||  'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*%&/()=?\¢!{}'
                , int(rand(133)*80)+1, 1)
          from nc
          where lv2 >= l1 and lv2 < l1+l2 and lv2 <= 1000
 )
 -- select count(*), sum(len) from nc where lv2 = len
 select * from nc where lv2 = l1+l2
    order by n
 ; c
xelect current timestamp from sysibm.sysdummy1;
with n  (n) as
 ( select 1 from sysibm.sysDummy1
   union all select n+1 from n where n < 1e5
 ),
 nc (n, len, lv2, str) as
 ( select n, int(rand(101)*30), 0, varchar('',1000) from n
   union all select n, len, lv2+1, str ||
          substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
             ||  'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*%&/()=?\¢!{}'
                , int(rand(133)*80)+1, 1)
          from nc
          where lv2 < len and lv2 <= 1000
 )
 select count(*), sum(len) from nc where lv2 = len
 -- order by n
 ;
select current timestamp from sysibm.sysdummy1;
xelect   r, count(r)
with n   (lev) as
 ( select    1        from sysibm.sysDummy1
   union all select lev+1 from n1  where lev < 1e5
 ),
select   r, count(r)
    from
(
select   substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
            ||  'ABCDEFGHIJKLMNOPQRSTUVWXYZ+"*%&/()=?\¢!-'
               , int(rand(123)*80)+1, 1) r
    from n1
) r
    group by r
    order by 2
;
xelect   substring(int(rand(123)*100) r
          from sysibm.syscolumns) r
select r, count(r)
    from
        ( select   int(rand(123)*100) r
          from sysibm.syscolumns) r
    group by r
;
x
select   int(rand(123)*99.999+1), rand(123)
    from sysibm.systables
    fetch first 100 rows only
;
x
select rand(123), rand(), rand(), rand(123)
    from sysibm.sysdummy1;
select rand(123), rand(123), rand(123)
    from sysibm.systables
    fetch first 100 rows only
    ;
select rand(123), rand(124), rand(125)
    from sysibm.systables
    fetch first 100 rows only
    ;
}¢--- A540769.WK.SQL(REF) cre=2006-07-25 mod=2006-07-26-17.07.25 F540769 -------
-- set current sqlid = 'S100447';
select t.*, hex(wk003gen), hex(1234), hex(generate_unique())
from A540769.TWK003A t;
delete from A540769.TWK003A where wk003id = '72';
select * from A540769.TWK003A;
;
xx
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('7',     '7',  null);
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('71',     '71', '7');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('72',     '72', '7');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('73',     '73', '7');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('711',     '711', '71');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('712',     '712', '71');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('721',     '721', '72');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('732',     '732', '73');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('7211',    '7211', '721');
insert into A540769.TWK003A (wk003id, wk003txt, wk003for)
                    values  ('72111',    '72111', '7211');
commit;
select * from A540769.TWK003A;
;
xx
xx
delete from A540769.TWK003A where wk003id = '05';
select * from A540769.TWK003A;
xx
update      A540769.TWK003A set  wk003for = '05'
                    where wk003id = '04';
}¢--- A540769.WK.SQL(REFDEP) cre=2007-05-15 mod=2007-05-15-13.16.18 F540769 ----
select char(td.dbName, 8),
       char(strip(r.creator) ||'.'|| strip(r.tbName), 20) "dep",
       char(case when td.dbName = tr.dbName then '=' else tr.dbName end
            , 8),
       char(strip(refTbcreator) ||'.'|| strip(refTbName), 20) "ref par",
       char(relName, 30)
     from sysibm.sysrels r, sysibm.sysTables td, sysibm.sysTables tr
     where   r.creator = td.creator and r.tbName = td.name
         and r.refTbcreator = tr.creator and r.reftbName = tr.name
         and (td.dbname like 'BJAA_0001'
                    or td.dbname = 'DBJ01' or td.dbname like 'DNF%'
                or tr.dbname like 'BJAA_0001'
                    or tr.dbname = 'DBJ01' or tr.dbname like 'DNF%')
}¢--- A540769.WK.SQL(REF1) cre= mod= -------------------------------------------
delete   from dgdb0211.tid105a1 where tid105lui like 'uuid-dsn%';
select * from dgdb0211.tid105a1 where tid105lui like 'uuid-dsn%';
select * from dgdb0211.tid107a1 where tid107aus like 'uuid-dsn%';
insert into dgdb0211.tid107a1(tid107aus, tid107aub,tid107ats)
   values('uuid-dsn-1', 'uuid-beleg-1',current timestamp);
insert into dgdb0211.tid105a1
   (tid105ldn, tid105lts,tid105lui,
    TID105JNM,
    TID105JNR,
    TID105JOI,
    TID105ANM,
    TID105AJN,
    TID105ATS)
   values('dsn.eins.1', current timestamp, 'uuid-dsn-1',
          'jmn', 'jnr', 'joi', 'anm', 'ajn', 'ats');
}¢--- A540769.WK.SQL(REIST) cre=2006-09-15 mod=2006-10-17-13.28.36 F540769 -----
select  (hour(current timestamp) * 60 + minute(current timestamp)) * 60
        + second(current timestamp),
        current timestamp, 'tst anfang'
    from sysibm.sysdummy1
;
SELECT FI.FI_ID,
       FI.FI_Status,
       PI.Auftrags_Nummer,
       FI.TimerTyp,
       FI.Ausloese_Zeitpunkt,
       MP.ED_Kurzname,
       FA.FD_Name,
       PM.PM_Name
FROM   oa1t.VPW311A1V FI,
       oa1t.VPW310A1V PI,
       oa1t.VPW301A1V PM,
       oa1t.VPW302A1V FA,
       oa1t.VPW318A1V MP
WHERE  FI.Laufzeit           =  0
  AND  FI.TimerTyp         like '%%%%'
  AND  FI.Ausloese_Zeitpunkt >= '2006-10-16-16.39.13.817263'
  AND  FI.Ausloese_Zeitpunkt <= '9999-12-31-23.59.59.999999'
  AND  FI.FI_STATUS        like '%'
  AND  PI.Auftrags_Nummer  like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
  AND  PI.PI_Status          <> 'B'
  AND  PM.PM_Name like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
  AND  PI.PI_ID              =   FI.PI_ID
  AND  PI.PM_ID              =   PM.PM_ID
  AND  PM.EntryType          =  'R '
  AND  FI.MP_ID              =   MP.MP_ID
  AND  FI.FA_ID              =   FA.FA_ID
  AND  FA.EntryType          =  'R '
ORDER BY FI.Ausloese_Zeitpunkt ASC
;
select  (hour(current timestamp) * 60 + minute(current timestamp)) * 60
        + second(current timestamp),
        current timestamp, 'tst nach leer'
    from sysibm.sysdummy1
;
SELECT FI.FI_ID,
       FI.FI_Status,
       PI.Auftrags_Nummer,
       FI.TimerTyp,
       FI.Ausloese_Zeitpunkt,
       MP.ED_Kurzname,
       FA.FD_Name,
       PM.PM_Name
FROM   oa1t.vpw311A1V FI,
       oa1t.vpw310A1V PI,
       oa1t.vpw301A1V PM,
       oa1t.vpw302A1V FA,
       oa1t.vpw318A1V MP
WHERE  FI.Laufzeit           =  0
  AND  FI.TimerTyp         like 'ARCH'
  AND  FI.Ausloese_Zeitpunkt >= '2006-10-16-16.39.13.817263'
  AND  FI.Ausloese_Zeitpunkt <= '9999-12-31-23.59.59.999999'
  AND  FI.FI_STATUS        like '%'
  AND  PI.Auftrags_Nummer  like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
  AND  PI.PI_Status          <> 'B'
  AND  PM.PM_Name like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
  AND  PI.PI_ID              =   FI.PI_ID
  AND  PI.PM_ID              =   PM.PM_ID
  AND  PM.EntryType          =  'R '
  AND  FI.MP_ID              =   MP.MP_ID
  AND  FI.FA_ID              =   FA.FA_ID
  AND  FA.EntryType          =  'R '
ORDER BY FI.Ausloese_Zeitpunkt ASC
;
select  (hour(current timestamp) * 60 + minute(current timestamp)) * 60
        + second(current timestamp),
        current timestamp, 'tst nach nur timertyp = ARCH'
    from sysibm.sysdummy1
;
SELECT FI.FI_ID,
       FI.FI_Status,
       PI.Auftrags_Nummer,
       FI.TimerTyp,
       FI.Ausloese_Zeitpunkt,
       MP.ED_Kurzname,
       FA.FD_Name,
       PM.PM_Name
FROM   oa1t.vpw311A1V FI,
       oa1t.vpw310A1V PI,
       oa1t.vpw301A1V PM,
       oa1t.vpw302A1V FA,
       oa1t.vpw318A1V MP
WHERE  FI.Laufzeit           =  0
  AND  FI.TimerTyp         like '%%%%'
  AND  FI.Ausloese_Zeitpunkt >= '2006-10-16-16.39.13.817263'
  AND  FI.Ausloese_Zeitpunkt <= '9999-12-31-23.59.59.999999'
  AND  FI.FI_STATUS        like '%'
  AND  PI.Auftrags_Nummer  like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
  AND  PI.PI_Status          <> 'B'
  AND  PM.PM_Name like 'WB Boerse Zuteilung bis Infra%%%%%%%%%%%%%%%%%%'
  AND  PI.PI_ID              =   FI.PI_ID
  AND  PI.PM_ID              =   PM.PM_ID
  AND  PM.EntryType          =  'R '
  AND  FI.MP_ID              =   MP.MP_ID
  AND  FI.FA_ID              =   FA.FA_ID
  AND  FA.EntryType          =  'R '
ORDER BY FI.Ausloese_Zeitpunkt ASC
;
select  (hour(current timestamp) * 60 + minute(current timestamp)) * 60
        + second(current timestamp),
        current timestamp, 'tst nach nur prozess modell'
    from sysibm.sysdummy1
;
SELECT FI.FI_ID,
       FI.FI_Status,
       PI.Auftrags_Nummer,
       FI.TimerTyp,
       FI.Ausloese_Zeitpunkt,
       MP.ED_Kurzname,
       FA.FD_Name,
       PM.PM_Name
FROM   oa1t.vpw311A1V FI,
       oa1t.vpw310A1V PI,
       oa1t.vpw301A1V PM,
       oa1t.vpw302A1V FA,
       oa1t.vpw318A1V MP
WHERE  FI.Laufzeit           =  0
  AND  FI.TimerTyp         like '%%%%'
  AND  FI.Ausloese_Zeitpunkt >= '2006-10-16-16.39.13.817263'
  AND  FI.Ausloese_Zeitpunkt <= '9999-12-31-23.59.59.999999'
  AND  FI.FI_STATUS        like '%'
  AND  PI.Auftrags_Nummer  like 'F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
  AND  PI.PI_Status          <> 'B'
  AND  PM.PM_Name          like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
  AND  PI.PI_ID              =   FI.PI_ID
  AND  PI.PM_ID              =   PM.PM_ID
  AND  PM.EntryType          =  'R '
  AND  FI.MP_ID              =   MP.MP_ID
  AND  FI.FA_ID              =   FA.FA_ID
  AND  FA.EntryType          =  'R '
ORDER BY FI.Ausloese_Zeitpunkt ASC
;
select  (hour(current timestamp) * 60 + minute(current timestamp)) * 60
        + second(current timestamp),
        current timestamp, 'tst nach nur teil auftragsNr'
    from sysibm.sysdummy1
;
SELECT FI.FI_ID,
         FI.FI_Status,
         PI.Auftrags_Nummer,
         FI.TimerTyp,
         FI.Ausloese_Zeitpunkt,
         MP.ED_Kurzname,
         FA.FD_Name,
         PM.PM_Name
  FROM   oa1t.VPW311A1V FI,
         oa1t.VPW310A1V PI,
         oa1t.VPW301A1V PM,
         oa1t.VPW302A1V FA,
         oa1t.VPW318A1V MP
  WHERE  FI.Laufzeit           =  0
    AND  FI.TimerTyp         like 'ARCH'
    AND  FI.Ausloese_Zeitpunkt >= '2005-09-14-09.16.00.000000'
    AND  FI.Ausloese_Zeitpunkt <= '2007-12-31-23.59.00.000000'
    AND  FI.FI_STATUS        like '%'
    AND  PI.Auftrags_Nummer  like '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
    AND  PI.PI_Status          <> 'B'
    AND  PM.PM_Name          like '%'
    AND  PI.PI_ID              =   FI.PI_ID
    AND  PI.PM_ID              =   PM.PM_ID
    AND  PM.EntryType          =  'R '
    AND  FI.MP_ID              =   MP.MP_ID
    AND  FI.FA_ID              =   FA.FA_ID
    AND  FA.EntryType          =  'R '
   ORDER BY FI.Ausloese_Zeitpunkt ASC
   FOR FETCH ONLY
   with ur
;
select  (hour(current timestamp) * 60 + minute(current timestamp)) * 60
        + second(current timestamp),
        current timestamp, 'tst nach altem query'
    from sysibm.sysdummy1
;

}¢--- A540769.WK.SQL(REOCRT44) cre=2010-10-08 mod=2010-10-08-17.23.38 A540769 ---
----------------------------------------------------------------------
-- tRtsReo*Parms und *run* und tdbState
--          tables für rts reorg erstellen
--     default werte einfüllen
--     datenübernahme aus alten exception tables
--                                          w. keller, 27.09.2010 v5.4
--
--     Teile für Migration sind mit --migr markiert
--         --migr53  Migration von v5.3
--         --migr44  Migration von v4.4
--         --migr00  Neuerstellung, keine alten Tb vorhanden
--     drop/stop auf die alten DB's  DB2RTS, TSTRTSDB und DB2REORG
--          muss extra gemacht werden|
--
  SET CURRENT SQLID='s100447';
--drop   DATABASE Db2Reo;
  CREATE DATABASE db2Reo
    BUFFERPOOL BP2
    INDEXBP    BP1
    CCSID      UNICODE
    STOGROUP   GSMS;
--DROP   TABLESPACE db2Reo.A012A;
--DROP   TABLESPACE Db2Reo.A012H;
--DROP   TABLESPACE Db2Reo.A013A;
--DROP   TABLESPACE Db2Reo.A013H;
--DROP   TABLESPACE Db2Reo.A014A;
--DROP   TABLESPACE Db2Reo.A014H;
--drop TABLEspace Db2Reo.A020A ;
--drop TABLEspace Db2Reo.A021A ;
--drop TABLEspace Db2Reo.A022A ;
--drop TABLEspace Db2Reo.A023A ;
--drop TABLEspace Db2Reo.A024A ;
--DROP   TABLESPACE db2Admin.A012A;
--DROP   TABLESPACE db2Admin.A012H;
--DROP   TABLESPACE db2Admin.A013A;
--DROP   TABLESPACE db2Admin.A013H;
--DROP   TABLESPACE db2Admin.A014A;
--DROP   TABLESPACE db2Admin.A014H;
--drop   TABLEspace db2Admin.A036A ;
--drop   TABLEspace db2Admin.A020A ;
  commit
  ;
  CREATE TABLESPACE AReoTPA
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
  CREATE TABLE s100447.tReoTSParms
  (
      PRIO       SMALLINT NOT NULL WITH DEFAULT 20,
          CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
      DB         CHAR(8) NOT NULL,
      TS         CHAR(8) NOT NULL,
      PARTVON    smallINT NOT NULL WITH DEFAULT,
          CONSTRAINT PARTVON CHECK (PARTVON >= 0),
      PARTBIS    smallINT NOT NULL WITH DEFAULT,
          CONSTRAINT PARTBIS CHECK (PARTBIS <= 9999
                                AND PARTBIS >= PARTVON),
      GUVON      DATE NOT NULL WITH DEFAULT,
      GUBIS      DATE NOT NULL WITH DEFAULT '31.12.9999',
      REMARK               CHAR(80) FOR SBCS DATA NOT NULL,
      REORG      CHAR(12) FOR SBCS DATA WITH DEFAULT NULL,
          CONSTRAINT REORG
              CHECK (REORG IN ('ALWAYS', 'NEVER', 'THRESHOLD')),
      UNCLUST              INTEGER WITH DEFAULT NULL,
      FARINDREF            INTEGER WITH DEFAULT NULL,
      NEARINDREF           INTEGER WITH DEFAULT NULL,
      EXTENTS              SMALLINT WITH DEFAULT NULL,
      REORGDAYS            INTEGER WITH DEFAULT NULL,
          CONSTRAINT reorgDays
              CHECK (reorgDays between 1 and 99999),
      INSERTS              INTEGER WITH DEFAULT NULL,
      UPDATES              INTEGER WITH DEFAULT NULL,
      DELETES              INTEGER WITH DEFAULT NULL,
      advisory             CHAR(1) WITH DEFAULT NULL,
          CONSTRAINT advisory
              CHECK (advisory IN ('0', '1')),
      datasize             INTEGER WITH DEFAULT NULL,
      pageSave             INTEGER WITH DEFAULT NULL,
      rangeI0              INTEGER WITH DEFAULT NULL,
      updTst               TIMESTAMP NOT NULL with default
      )
    IN Db2Reo.AReoTPA
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  CREATE UNIQUE INDEX s100447.IReoTSParms
    ON s100447.tReoTSParms
     (PRIO              ASC,
      DB                ASC,
      TS                ASC,
      PARTVON           ASC,
      GUBIS             ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
  ;
  LABEL ON TABLE s100447.tReoTSParms
    IS 'TS Thresholds: Defs/Ausnahmen'
  ;
  COMMENT ON TABLE s100447.tReoTSParms
    IS 'diese Tabelle enthaelt die Default-Schwellwerte und die TS mit s
peziellen Schwellwerten für Reorgs.'
  ;
  LABEL ON s100447.tReoTSParms
    ( PRIO                is 'Prioritaet: tiefste=0=Default' ,
      DB                  is 'Datenbank Name'                ,
      TS                  is 'TableSpace Name'               ,
      PARTVON             is 'Partition von'  ,
      PARTBIS             is 'Partition bis'  ,
      GUVON               is 'Gueltig von'                   ,
      GUBIS               is 'Gueltig bis'                   ,
      REORG               is 'ALWAYS,NEVER,THRESHOLD'        ,
      UNCLUST             is 'Schwellwert unclustered %'     ,
      FARINDREF           is 'SchwWe overflow far (>16 pg) %',
      NEARINDREF          is 'SchwWe overflow near(<16 pg) %',
      EXTENTS             is 'SchwWe Extents pro TS/Part'    ,
      REORGDAYS           is 'Schwellwert Anzahl Tage'       ,
      INSERTS             is 'Schwellwert inserts %'         ,
      UPDATES             is 'Schwellwert updates %'         ,
      DELETES             is 'Schwellwert deletes %'         ,
      advisory            is 'reorg bei AREO* 1/0'           ,
      datasize            is 'Schwellwert dataSize < %'      ,
      pageSave            is 'Schwellwert pageSave < %'      ,
      RangeI0             is 'Range Reo time > % i0time'     ,
      updTst              is 'letzte Aenderung'              ,
      REMARK              is 'Begründung (Freitext)'
    )
;
        --migr53
--insert into s100447.tReoTSParms
--    select * from tstRts.tRtsReoTSException
--;
  CREATE TABLESPACE AReoTPH
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
  CREATE TABLE s100447.tReoTSParmsHist
      as (select e.*, ' ' updOp,
                 current timestamp endTst, ' ' endOp
              from s100447.tReoTSParms e
         ) with no data
    IN Db2Reo.AReoTPH
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  LABEL ON TABLE s100447.tReoTSParmsHist
    IS 'History von tReoTSParms'
  ;
  LABEL ON s100447.tReoTSParmsHist
    ( updTst              is 'activation timestamp'
    , updOp               is 'activation operation (i,u)'
    , endTst              is 'deactivation timestamp'
    , endOp               is 'deactivation operation (u,d)'
    )
  ;
  CREATE UNIQUE INDEX s100447.IReoTSParmsHist
    ON s100447.tReoTSParmsHist
     (PRIO              ASC,
      DB                ASC,
      TS                ASC,
      partVon           ASC,
      guBis             ASC,
      updTst            ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;

        --migr53
--insert into s100447.tReoTSParmsHist
--    select * from tstRts.tRtsReoTSExceptionHist
--;
  --#SET TERMINATOR ?
  create trigger s100447.tReoTSParmsBefIns
      no cascade before insert on s100447.tReoTSParms
      referencing New as n
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.tReoTSParmsBefUpd
      no cascade before update on s100447.tReoTSParms
      referencing New as n Old as o
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.tReoTSParmsAftIns
      after  insert on s100447.tReoTSParms
      referencing New_table as n
      for each statement mode db2sql begin atomic
           insert into s100447.tReoTSParmsHist
               select n.*, 'i', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.tReoTSParmsAftUpdSt
      after  update on s100447.tReoTSParms
      referencing New as n old as o
      for each row mode db2sql begin atomic
           update s100447.tReoTSParmsHist h
               set endTst = n.updTst, endOp = 'u'
                   where   h.PRIO    = o.PRIO
                       and h.DB      = o.DB
                       and h.TS      = o.TS
                       and h.partVon = o.partVon
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  create trigger s100447.tReoTSParmsAftUpd
      after  update on s100447.tReoTSParms
      referencing New_table as n old_table as o
      for each statement mode db2sql begin atomic
           insert into s100447.tReoTSParmsHist
               select n.*, 'u', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.tReoTSParmsAftDelSt
      after  delete on s100447.tReoTSParms
      referencing          old as o
      for each row mode db2sql begin atomic
           update s100447.tReoTSParmsHist h
               set endTst = current timestamp, endOp = 'd'
                   where   h.PRIO    = o.PRIO
                       and h.DB      = o.DB
                       and h.TS      = o.TS
                       and h.partVon = o.partVon
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  --#SET TERMINATOR ;
      --migr44 --migr00
   insert into s100447.tReoTSParms
   (      PRIO,   DB,  TS, partVon, partBis, REORG,
          unclust, FARINDREF, nearIndRef, extents, reorgdays,
          inserts, updates, deletes,
          advisory, dataSize, pageSave, RangeI0,
          remark
   )   values (
               0,  '*',  '*',       0,     9999, 'THRESHOLD',
              10,       5,       5,     500,      365,
          999999,  999999,  999999,
             '1',      50,       5,   200,
          'globale default Schwellwerte'
   )
   ;
      --migr44
   insert into s100447.tReoTSParms
   (      PRIO,   DB,  TS, partVon, partBis,
   guVon, guBis, REORG,
          unclust, FARINDREF, nearIndRef, extents, reorgdays,
          inserts, updates, deletes,
          remark
   )   select
          PRIO,   DB,  TS, min(partVon, 9999), min(partBis, 9999),
          guVon, guBis, REORG,
          unclust, FARINDREF, nearIndRef, extents,
          min(max(reorgDays, 1), 99999),
          inserts, updates, deletes,
          left(remark, 80)
       from s100447.tRtsReoTSException
       where db <> '*' or ts <> '*'
   ;
select * from s100447.tReoTSParms
;
  CREATE TABLESPACE aReoIPA
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255;

  CREATE TABLE s100447.TReoIXParms
  (
      PRIO       SMALLINT NOT NULL WITH DEFAULT 20,
          CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
      DB         CHAR(8) NOT NULL,
      TS         CHAR(8) NOT NULL,
      IX         CHAR(20) NOT NULL,
      PARTVON    INT NOT NULL WITH DEFAULT,
          CONSTRAINT PARTVON CHECK (PARTVON >= 0),
      PARTBIS    INT NOT NULL WITH DEFAULT,
          CONSTRAINT PARTBIS CHECK (PARTBIS <= 9999
                                AND PARTBIS >= PARTVON),
      GUVON      DATE NOT NULL WITH DEFAULT,
      GUBIS      DATE NOT NULL WITH DEFAULT '31.12.9999',
      REMARK               CHAR(80) FOR SBCS DATA NOT NULL,
      REORG      CHAR(12) FOR SBCS DATA WITH DEFAULT NULL,
          CONSTRAINT REORG
              CHECK (REORG IN ('ALWAYS', 'NEVER', 'THRESHOLD')),
      PAGESPLITS           INTEGER WITH DEFAULT NULL,
      EXTENTS              SMALLINT WITH DEFAULT NULL,
      REORGDAYS            INTEGER WITH DEFAULT NULL,
          CONSTRAINT reorgDays
              CHECK (reorgDays between 1 and 99999),
      INSERTS              INTEGER WITH DEFAULT NULL,
      DELETES              INTEGER WITH DEFAULT NULL,
      PSEUDODEL            INTEGER WITH DEFAULT NULL,
      updTst               TIMESTAMP NOT NULL WITH DEFAULT
      )
    IN Db2Reo.aReoIPA
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
;
  LABEL ON TABLE s100447.TReoIXParms
    IS 'Ausnahmen+Defs RtsRorgs Index'
;
  COMMENT ON TABLE s100447.TReoIXParms
    IS 'diese Tabelle enthaelt die Default-Schwellwerte und die TS mit s
peziellen Schwellwerten für RTS-Reorgs fuer Indexe.'
;
  LABEL ON s100447.TReoIXParms
    ( PRIO                is 'Prioritaet: tiefste=0=Default' ,
      DB                  is 'Datenbank Name'                ,
      TS                  is 'TableSpace Name'               ,
      IX                  is 'Index Name'                    ,
      PARTVON             is 'Partition von'                 ,
      PARTBIS             is 'Partition bis'                 ,
      GUVON               is 'Gueltig von'                   ,
      GUBIS               is 'Gueltig bis'                   ,
      REORG               is 'ALWAYS,NEVER,THRESHOLD'        ,
      PAGESPLITS          is 'Schwellwert ReorgLeafFar %'    ,
      EXTENTS             is 'SchwWe Extents pro TS/Part'    ,
      REORGDAYS           is 'Schwellwert Anzahl Tage'       ,
      INSERTS             is 'Schwellwert inserts %'         ,
      DELETES             is 'Schwellwert deletes %'         ,
      PseudoDel           is 'Schwellwert PseudoDeletes %'   ,
      updTst              is 'letzter update Timestamp'      ,
      REMARK              is 'Begründung (Freitext)'
    ) ;

  CREATE UNIQUE INDEX s100447.IReoIXParms
    ON s100447.TReoIXParms
     (PRIO              ASC,
      DB                ASC,
      TS                ASC,
      IX                ASC,
      PARTVON           ASC,
      GUBIS             ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
  ;
        --migr53
--insert into s100447.tReoIxParms
--    select * from tstRts.tRtsReoIxException
--;
  CREATE TABLESPACE aReoIPH
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
  CREATE TABLE s100447.TReoIXParmsHist
      as (select e.*, ' ' updOp,
                 current timestamp endTst, ' ' endOp
              from s100447.TReoIXParms e
         ) with no data
    IN Db2Reo.aReoIPH
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  LABEL ON TABLE s100447.TReoIXParmsHist
    IS 'Ausnahmen+Defs RtsReo History'
  ;
  LABEL ON s100447.TReoIXParmsHist
    ( updTst              is 'activation timestamp'
    , updOp               is 'activation operation (i,u)'
    , endTst              is 'deactivation timestamp'
    , endOp               is 'deactivation operation (u,d)'
    )
  ;
  CREATE UNIQUE INDEX s100447.IReoIXParmsHist
    ON s100447.TReoIXParmsHist
     (PRIO              ASC,
      DB                ASC,
      TS                ASC,
      IX                ASC,
      PARTVON           ASC,
      GUBIS             ASC,
      updTst            ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
;
        --migr53
--insert into s100447.tReoIxParmsHist
--    select * from tstRts.tRtsReoIxExceptionHist
--;
  --#SET TERMINATOR ?
  create trigger s100447.TReoIXParmsBefIns
      no cascade before insert on s100447.TReoIXParms
      referencing New as n
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.TReoIXParmsBefUpd
      no cascade before update on s100447.TReoIXParms
      referencing New as n Old as o
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.TReoIXParmsAftIns
      after  insert on s100447.TReoIXParms
      referencing New_table as n
      for each statement mode db2sql begin atomic
           insert into s100447.TReoIXParmsHist
               select n.*, 'i', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.TReoIXParmsAftUpdSt
      after  update on s100447.TReoIXParms
      referencing New as n old as o
      for each row mode db2sql begin atomic
           update s100447.TReoIXParmsHist h
               set endTst = n.updTst, endOp = 'u'
                   where   h.PRIO    = o.PRIO
                       and h.DB      = o.DB
                       and h.TS      = o.TS
                       and h.IX      = o.IX
                       and h.partVon = o.partVon
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  create trigger s100447.TReoIXParmsAftUpd
      after  update on s100447.TReoIXParms
      referencing New_table as n old_table as o
      for each statement mode db2sql begin atomic
           insert into s100447.TReoIXParmsHist
               select n.*, 'u', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.TReoIXParmsAftDelSt
      after  delete on s100447.TReoIXParms
      referencing          old as o
      for each row mode db2sql begin atomic
           update s100447.TReoIXParmsHist h
               set endTst = current timestamp, endOp = 'd'
                   where   h.PRIO    = o.PRIO
                       and h.DB      = o.DB
                       and h.TS      = o.TS
                       and h.IX      = o.IX
                       and h.partVon = o.partVon
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  --#SET TERMINATOR ;
      --migr44 --migr00
   insert into s100447.tReoIXParms
   (      PRIO,   DB,  TS,   IX, partVon, partBis,
          REORG,     pageSPlits, extents, reorgDays,
          inserts, deletes, pseudoDel,
          remark
   )   values (
          0,      '*', '*', '*', 0,         9999,
          'THRESHOLD',  10,          500,       365,
           999999,  999999,    999999,
          'globale default Schwellwerte'
   )
   ;
      --migr44
   insert into s100447.tReoIXParms
   (      PRIO,   DB,  TS,   IX,
          partVon, partBis, guVon, guBis,
          REORG,     pageSPlits, extents, reorgDays,
          inserts, deletes, pseudoDel,
          remark
   )   select
         20,      db , ts ,  ix,
          min(partVon, 9999), min(partBis, 9999), guVon, guBis,
          REORG,     pageSPlits, extents,
          min(max(reorgDays, 1), 99999),
          inserts, deletes, pseudoDel,
          left(remark, 80)
       from s100447.tRtsReoIXException
       where db <> '*' or ts <> '*' or ix <> '*'
   --    where left(dbName, 1) not in ('1')
   ;
select * from s100447.tReoIXParms
;

  CREATE TABLESPACE AREOJPA
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
  CREATE TABLE s100447.TReoJobParms
  (
      PRIO       SMALLINT NOT NULL WITH DEFAULT 20,
          CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
      Job        CHAR(8) NOT NULL,
      GUVON      DATE NOT NULL WITH DEFAULT,
      GUBIS      DATE NOT NULL WITH DEFAULT '31.12.9999',
      REMARK               CHAR(80) FOR SBCS DATA NOT NULL,
      tsTime     int WITH DEFAULT NULL,
      ixTime     int WITH DEFAULT NULL,
      uncompDef  real with default null,
      uncompI0   real with default null,
      ixSpae     char(1) with default null,
          CONSTRAINT ixSpae CHECK (ixSpae in ('i', 't', 'n')),
      stats      char(1) with default null,
          CONSTRAINT stats  CHECK (stats  in ('n', 'j', 'p', 's')),
      updTst               TIMESTAMP NOT NULL with default
      )
    IN Db2Reo.AREOJPA
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  CREATE UNIQUE INDEX s100447.IReoJobParms
    ON s100447.TReoJobParms
     (PRIO              ASC,
      job               ASC,
      GUBIS             ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
  ;
  LABEL ON TABLE s100447.TReoJobParms
    IS 'Ausnahmen+Defaults RtsReo Job'
  ;
  COMMENT ON TABLE s100447.TReoJobParms
    IS 'diese Tabelle enthaelt die Default-Schwellwerte und die Jobs mit
 speziellen Schwellwerten für RTS-Reorgs.'
  ;
  LABEL ON s100447.TReoJobParms
    ( PRIO                is 'Prioritaet: tiefste=0=Default' ,
      job                 is 'Job Name'                      ,
      GUVON               is 'Gueltig von'                   ,
      GUBIS               is 'Gueltig bis'                   ,
      tsTime              is 'max ReoTime fuer TS in secs'   ,
      ixTime              is 'max ReoTime fuer IX in secs'   ,
      uncompDef           is 'max uncompressed data DPSI'   ,
      uncompI0            is 'max uncompressed data Default'   ,
      ixSpae              is 'ix nach spaeter: ix, ts, no'   ,
      stats               is 'statsColl: job,part,stats,no'  ,
      updTst              is 'letzte Aenderung'              ,
      REMARK              is 'Begruendung (Freitext)'
    )
;
           --migr53
-- insert into s100447.tReoJobParms
--     select PRIO, job, guvon, gubis, remark, tsTime, ixTime,
--            8e10/5, 8e10, translate(ixSpae, 'itn','ITN'), 's', updTst
--          from tstRts.tRtsReoJobException
-- ;
  CREATE TABLESPACE AREOJPH
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
  CREATE TABLE s100447.TReoJobParmsHist
      as (select e.*, ' ' updOp,
                 current timestamp endTst, ' ' endOp
              from s100447.TReoJobParms e
         ) with no data
    IN Db2Reo.AREOJPH
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  LABEL ON TABLE s100447.TReoJobParmsHist
    IS 'Ausnahmen+Defs RtsReo History'
  ;
  LABEL ON s100447.TReoJobParmsHist
    ( updTst              is 'activation timestamp'
    , updOp               is 'activation operation (i,u)'
    , endTst              is 'deactivation timestamp'
    , endOp               is 'deactivation operation (u,d)'
    )
  ;
  CREATE UNIQUE INDEX s100447.IReoJobParmsHist
    ON s100447.TReoJobParmsHist
     (PRIO              ASC,
      job               ASC,
      guBis             ASC,
      updTst            ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
;
          --migr53
-- insert into s100447.tReoJobParmsHist
--     select PRIO, job, guvon, gubis, remark, tsTime, ixTime,
--            uncompSz/5, uncompSz, ixSpae, stats,
--            updTst, updOp, endTst, endOp
--         from tstRts.tRtsReoJobExceptionHist
--;
  --#SET TERMINATOR ?
  create trigger s100447.TReoJobParmsBefIns
      no cascade before insert on s100447.TReoJobParms
      referencing New as n
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.TReoJobParmsBefUpd
      no cascade before update on s100447.TReoJobParms
      referencing New as n Old as o
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.TReoJobParmsAftIns
      after  insert on s100447.TReoJobParms
      referencing New_table as n
      for each statement mode db2sql begin atomic
           insert into s100447.TReoJobParmsHist
               select n.*, 'i', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.TReoJobParmsAftUpdSt
      after  update on s100447.TReoJobParms
      referencing New as n old as o
      for each row mode db2sql begin atomic
           update s100447.TReoJobParmsHist h
               set endTst = n.updTst, endOp = 'u'
                   where   h.PRIO    = o.PRIO
                       and h.job     = o.job
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  create trigger s100447.TReoJobParmsAftUpd
      after  update on s100447.TReoJobParms
      referencing New_table as n old_table as o
      for each statement mode db2sql begin atomic
           insert into s100447.TReoJobParmsHist
               select n.*, 'u', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.TReoJobParmsAftDelSt
      after  delete on s100447.TReoJobParms
      referencing          old as o
      for each row mode db2sql begin atomic
           update s100447.TReoJobParmsHist h
               set endTst = current timestamp, endOp = 'd'
                   where   h.PRIO    = o.PRIO
                       and h.job     = o.job
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  --#SET TERMINATOR ;
       --migr44 --migr00
   insert into s100447.tReoJobParms
   (      PRIO,   job, tsTime, ixTime, uncompDef, uncompI0,
          ixSpae, stats, remark
   )   values (
               0,  '*', 18000,  10800,     1e11/5,    1e11,  't',   's',
          'globale default Schwellwerte'
   )
   ;
select * from s100447.tReoJobParms
;
--commit
--;
  CREATE TABLESPACE ADBSTA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tDbState
     (db                   CHAR(12) NOT NULL,
      sp                   CHAR(12) NOT NULL,
      paFr                 INTEGER NOT NULL,
      paTo                 INTEGER NOT NULL,
      ty                   char(1) not null,
      sta                  char(20) not null
     )
    IN Db2Reo.ADBSTA
    CCSID UNICODE;
--
  LABEL ON TABLE s100447.TDbState IS 'spaceStatus';
--
  COMMENT ON TABLE s100447.tDbState IS 'space status restrict/advisory';
--
  LABEL ON s100447.tDbState
   (db IS 'db name',
    sp IS 'name of index/tablespace',
    paFr is 'partition from',
    paTo is 'partition to',
    ty is 'type: Ix Tb Db @',
    sta is 'status of db or space'
   );
  CREATE UNIQUE INDEX s100447.iDbStateA1
    ON s100447.tDbState
     (db asc ,
      sp asc ,
      paFr asc
     )
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1;
  insert into s100447.tDbState values (
      '', '', 0, 0, '@', '');
  CREATE TABLESPACE AREORJA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tReoRunJob
     (tst                  timestamp NOT NULL,
      constraint primaryKey primary key (tst),
      job                  CHAR(8) NOT NULL,
      ty                   char(2) NOT NULL,
      tyInp                char(2) NOT NULL,
      sta                  char(1) not null,
      eoj                  timestamp
     )
    IN Db2Reo.AREORJA
    CCSID UNICODE;
--
  COMMENT ON TABLE s100447.tReoRunJob IS 'rtsReo Job Status';
  LABEL ON TABLE s100447.tReoRunJob IS 'rtsReo Job Status';
  LABEL ON s100447.tReoRunJob
   (tst   IS 'creation timestamp primaryKey',
    job   IS 'Job',
    ty    is 'rtsReo Type: TS or IX',
    tyInp is 'rtsReo Type from jobParameter',
    sta   is 'Status: r=reorg, s=r+Spa, 0',
    eoj   is 'timestamp >= end of job'
   );
  CREATE UNIQUE INDEX s100447.iReoRunJob1
    ON s100447.tReoRunJob
     (tst asc)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
  CREATE UNIQUE INDEX s100447.iReoRunJob2
    ON s100447.tReoRunJob
     (job asc, tst desc)
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
        --migr53
--insert into s100447.tReoRunJob
--    select * from tstRts.tRtsReoRunJob
--        where job <> '&late'
--;
--commit
--;
  CREATE TABLESPACE AREORPA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tReoRunPart
     (tst                  timestamp NOT NULL,
      constraint parent foreign key (tst)
           references s100447.tReoRunJob on delete cascade,
      rng                  int       not null,
      part                 smallInt  not null,
      constraint primaryKey primary key (tst, rng, part),
      paVon                smallInt  not null,
      paBis                smallInt  not null,
      rngI0                int       not null,
      dbId                 smallInt  not null,
      spId                 smallInt  not null,
      ty                   char(1)   not null,
      sta                  char(1)   not null,
      reason               char(50)  not null,
      db                   char(8)   not null,
      sp                   char(8)   not null,
      reoTst               timestamp,
      reoTime              int
     )
    IN Db2Reo.AREORPA
    CCSID UNICODE;
--
  COMMENT ON TABLE s100447.tReoRunPart IS 'rtsReo Job Parts';
  LABEL ON TABLE s100447.tReoRunPart IS 'rtsReo Job Parts';
  LABEL ON s100447.tReoRunPart
   (tst   IS 'creation timestamp Job',
    rng   IS 'range id',
    part  IS 'partition',
    paVon IS 'range partition von',
    paBis IS 'range partition bis',
    rngI0 IS 'range für i0',
    dbId  IS 'dbId',
    spId  is 'psId or isoBid',
    ty    is 't=TS, i=Ix',
    sta   is 'r=reorg, s=Spa, 0=i0',
    reason is 'reason of reorg',
    db    is 'database',
    sp    is 'table/indexSpace',
    reoTst is 'timestamp of end of reorg'
   );
  CREATE UNIQUE INDEX s100447.iReoRunPart1
    ON s100447.tReoRunPart
     (tst asc, rng asc, part asc)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
--insert into s100447.tReoRunPart
--    select * from tstRts.tRtsReoRunPart
--;
--commit
--;
  CREATE TABLESPACE AREORTA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tReoRunTSStats
     as (select current timestamp tst, int(1) rng, s.*
             from sysibm.sysTableSpaceStats s
     )  with no data
    IN Db2Reo.AREORTA
    CCSID UNICODE;
  CREATE UNIQUE INDEX s100447.iReoRunTSStats1
    ON s100447.tReoRunTSStats
     (tst asc, rng asc, partition asc)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
  alter TABLE s100447.tReoRunTSStats
     add constraint primaryKey primary key (tst, rng, partition);
  alter TABLE s100447.tReoRunTSStats
     add constraint parent foreign key (tst, rng, partition)
           references s100447.tReoRunPart on delete cascade
;
        --migr53
--insert into s100447.tReoRunTSStats
--    select * from tstRts.tRtsReoRunTSStats
--;
--commit
--;

  CREATE TABLESPACE AREORIA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tReoRunIXStats
     as (select current timestamp tst, int(1) rng, s.*
             from sysibm.sysIndexSpaceStats s
     )  with no data
    IN Db2Reo.AREORIA
    CCSID UNICODE;
  CREATE UNIQUE INDEX s100447.iReoRunIXStats1
    ON s100447.tReoRunIXStats
     (tst asc, rng asc, partition asc, isoBid asc)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
 ;
  alter TABLE s100447.tReoRunIXStats
     add constraint primaryKey primary key (tst,rng,partition,isobid);
  alter TABLE s100447.tReoRunIXStats
     add constraint parent foreign key (tst, rng, partition)
           references s100447.tReoRunPart on delete cascade
;
        --migr53
--insert into s100447.tReoRunIXStats
--    select * from tstRts.tRtsReoRunIXStats
--;
commit
}¢--- A540769.WK.SQL(REOCRT57) cre=2011-09-21 mod=2011-09-21-17.19.25 A540769 ---
set current sqlid = 's100447';
alter TABLE s100447.tReoTSParms
    add  parallel smallInt WITH DEFAULT NULL;
commit;
update s100447.tReoTSParms set parallel = 7
    where prio = 0 and db = '*' and ts = '*';
commit;
}¢--- A540769.WK.SQL(REOCRVW) cre=2008-03-03 mod=2011-09-28-15.25.59 A540769 ---
------------------------------------------------------------------------
-- create views for reo
--                                                 28.9.10 W.keller v5.7
------------------------------------------------------------------------
set current sqlId = 's100447';
--drop   view S100447.vReoTSSchwelle ;
--drop   view S100447.vReoIxSchwelle ;
--drop   view S100447.vReoJobParms ;
--drop   view S100447.vReoRunRng;
--drop   view S100447.vReoRunTSStats;
--drop   view S100447.vReoRunIXStats;
--drop   view S100447.vReoTSStatsPlus;
--
commit;
------------------------------------------------------------------------
-- view vReoTSSchwelle: Schwellwerte pro Catalog Objekt
--      und alle später benötigen Werte aus Catalog Tabellen
--
CREATE VIEW S100447.vReoTSSchwelle    AS
with sw as
(
      SELECT
          CASE WHEN POSSTR(DB,  '*') > 0
               THEN POSSTR(DB,  '*') - 1 ELSE 8 END DBLEN,
          CASE WHEN POSSTR(TS,  '*') > 0
               THEN POSSTR(TS,  '*') - 1 ELSE 8 END TSLEN,
          char(STRIP(CHAR(PRIO)), 2) prC2,
          e.*
      FROM s100447.TReoTSParms e
)
select p.dbName db, p.tsName ts, p.partition part,
      min(s.dbId) dbid, min(s.psId) psId,
      min(s.pgSize) pgSize, min(s.partitions) partitions,
      min(p.createdTS) createdTS, min(p.compress) compress,
      min(p.pageSave) pageSave ,
      min(smallint(round(
          case when p.freePage > 0 then p.freePage/real(1+p.freePage)
                                   else 1 end
           * min(100 - p.pctFree,
               case when s.maxrows > 0 and p.avgRowLen > 0
                   then real(s.maxrows) * p.avgRowLen / pgSize/10.24
                   else 100 end)
           ,0))) pctLoad,
           substr(max(prC2 || char(reorg      )), 3)   swReorg     ,
       int(substr(max(prC2 || char(unclust    )), 3)) swUnclust    ,
       int(substr(max(prC2 || char(sw.FARINDREF )), 3)) swFARINDREF ,
       int(substr(max(prC2 || char(sw.NEARINDREF)), 3)) swNEARINDREF,
       int(substr(max(prC2 || char(sw.EXTENTS )), 3)) swEXTENTS    ,
       int(substr(max(prC2 || char(REORGDAYS  )), 3)) swREORGDAYS  ,
       int(substr(max(prC2 || char(INSERTS    )), 3)) swINSERTS    ,
       int(substr(max(prC2 || char(UPDATES    )), 3)) swUPDATES    ,
       int(substr(max(prC2 || char(DELETES    )), 3)) swDELETES    ,
           substr(max(prC2 ||     advisory     ), 3)   swAdvisory  ,
       int(substr(max(prC2 || char(datasize   )), 3)) swDatasize   ,
       int(substr(max(prC2 || char(sw.pageSave )), 3)) swPageSave  ,
       int(substr(max(prC2 || char(rangeI0  )), 3))    swRangeI0   ,
       smallint(substr(max(prC2 || char(parallel  )), 3)) parallel
    from
        SYSIBM.SYSTABLEPart    p
        left join SYSIBM.SYSTABLESPACE   S
            on s.dbName = p.dbName and s.name = p.tsName
        left join sw
        on  left(p.dbname, dbLen) = left(db, dbLen)
        and left(p.tsName, tsLen) = left(ts, tsLen)
        and p.partition between partVon and partBis
        and current date between guVon and guBis
    group by p.dbName, p.tsName, p.partition
;
------------------------------------------------------------------------
-- RTS-Stats Werte pro TS-Partition zu Schwellen joinen
--     Kolonnen Namen: sw*: Schwellen, ix* selbe IndexPartion,
--                     i0* nicht part. Indexes für part. TS
--
create view S100447.vReoTsStats as
with ix as -- join ix und i0
(
  select s.db, s.ts, s.part,
      min(s.dbId) ixDbid, min(s.psId) ixPsId,
      min(s.pgSize) pgSize, min(s.partitions) partitions,
      min(s.createdTS) createdTS, min(s.compress) compress,
      min(s.pageSave  )  pageSave ,
      min(s.pctLoad   )  pctLoad ,
      min(swReorg     )  swReorg     ,
      min(swUnclust   )  swUnclust   ,
      min(swFARINDREF )  swFARINDREF ,
      min(swNEARINDREF)  swNEARINDREF,
      min(swEXTENTS   )  swEXTENTS   ,
      min(swREORGDAYS )  swREORGDAYS ,
      min(swINSERTS   )  swINSERTS   ,
      min(swUPDATES   )  swUPDATES   ,
      min(swDELETES   )  swDELETES   ,
      min(swAdvisory  )  swAdvisory  ,
      min(swDatasize  )  swDatasize  ,
      min(swPageSave  )  swPageSave  ,
      min(swRangeI0   )  swRangeI0   ,
      min(parallel    )  swParallel  ,
      min(substr(strip(t.creator) || '.' || strip(t.name), 1,30)) crTb,
      sum(case when j.partition= s.part then 1 else 0 end)
                                                               ixParts,
      sum(case when j.partition= s.part
          then totalEntries else 0 end)                          ixEnt,
      sum(case when j.partition= s.part
          then real(j.totalEntries)
               * log10(max(1e0, j.totalEntries)) else 0 end)  ixEntLog,
      sum(case when j.partition= s.part
          then real(j.space) * 1024 else 0 end)                  ixSpc,
      sum(case when j.partition= s.part
          then real(j.space) * 1024 * log10(
                  max(1e0, real(j.space) * 1024)) else 0 end) ixSpcLog,
      sum(case when j.partition= s.part
          then real(j.space) * 1024 * log10(
                  max(1e0, j.totalEntries)) else 0 end)    ixSpcLogEnt,
      max(case when j.partition= s.part
           then j.totalEntries else 0 end)                    ixEntMax,
      max(case when j.partition= s.part
           then real(j.totalEntries) * log10(
                  max(1e0, j.totalEntries)) else 0 end)    ixEntLogMax,
      max(case when j.partition= s.part
          then real(j.space) * 1024 else 0 end)              ixSpcMax,
      max(case when j.partition= s.part
          then real(j.space) * 1024 * log10(
              max(1e0, real(j.space) * 1024)) else 0 end)  ixSpcLogMax,
      max(case when j.partition= s.part
          then real(j.space) * 1024 * log10(
               max(1e0, j.totalEntries)) else 0 end)    ixSpcLogEntMax,

      sum(case when j.partition<>s.part then 1 else 0 end)
                                                               i0Parts,
      sum(case when j.partition<>s.part
          then totalEntries else 0 end)                          i0Ent,
      sum(case when j.partition<>s.part
          then real(j.totalEntries)
               * log10(max(1e0, j.totalEntries)) else 0 end)  i0EntLog,
      sum(case when j.partition<>s.part
          then real(j.space) * 1024 else 0 end)                  i0Spc,
      sum(case when j.partition<>s.part
          then real(j.space) * 1024 * log10(
                  max(1e0, real(j.space) * 1024)) else 0 end) i0SpcLog,
      sum(case when j.partition<>s.part
          then real(j.space) * 1024 * log10(
                  max(1e0, j.totalEntries)) else 0 end)    i0SpcLogEnt,
      max(case when j.partition<>s.part
          then j.totalEntries else 0 end)                    i0EntMax,
      max(case when j.partition<>s.part
          then real(j.totalEntries) * log10(
                  max(1e0, j.totalEntries)) else 0 end)    i0EntLogMax,
      max(case when j.partition<>s.part
          then real(j.space) * 1024 else 0 end)              i0SpcMax,
      max(case when j.partition<>s.part
          then real(j.space) * 1024 * log10(
              max(1e0, real(j.space) * 1024)) else 0 end)  i0SpcLogMax,
      max(case when j.partition<>s.part
          then real(j.space) * 1024 * log10(
               max(1e0, j.totalEntries)) else 0 end)    i0SpcLogEntMax,
      max(case when i.clustering <> 'Y' then -9
               when i.statstime < '2008-01-01-00.00.00' then -8
               when i.fullKeyCardf <  100 then -7
               when i.clusterratioF <= 0.0 then -6
               else clusterRatio end) clusterRatio
    from
        S100447.vReoTSSchwelle s
        left join sysIbm.sysTables  t
            on t.dbName = s.db  and t.tsName = s.ts
       --      and t.dbid = s.dbid
               and t.type = 'T'
        left join sysIbm.sysIndexes i
          on i.tbCreator = t.creator and i.tbName = t.name
       --       and s.db = i.dbName and s.dbId = i.dbId
        left join SYSIBM.SYSINDEXSPACESTATS j
        on      j.creator = i.creator and j.Name = i.name
            and j.dbName = i.dbName and j.indexSpace = i.indexSpace
            and j.dbId = i.dbId and j.isoBid = i.isoBid
       --   and j.dbId = s.dbId and j.dbName = s.db
            and j.creator = i.creator and j.Name = i.name
            and j.partition in (0, s.part)
            and (j.partition = 0
              or j.partition =  s.part)
    group by s.db, s.ts, s.part
) , tsPa as
(   -- join tsPart Stats and calculate first formulas
select  i0PARTS * 2.8568338 + i0SpcMax    * 1.4917387E-07
                            + i0SpcLogMax * 3.4002310E-09 i0Time,
        i.*,
        max(CAST(r.totalRows as REAL), 100) rRows,
        max(coalesce(r.reorgLasttime, i.createdTs)
           ,coalesce(r.loadRLasttime, i.createdTs)) lastBuilt,
        coalesce(real(r.datasize),
            real(r.nActive) * i.pgSize * 1024 ) dataSz,
        case when r.uncompressedDatasize > 0
                 and real(r.nActive) * i.pgSize * 102400
                       / min(max(100-i.pageSave, 3), 100)
                 between real(r.uncompressedDatasize) / 7
                     and real(r.uncompressedDatasize) * 7
             then real(r.uncompressedDatasize)
             else
                  real(r.nActive) * i.pgSize * 102400
                       / min(max(100-i.pageSave, 3), 100)
             end uncompSz,
        r.*
    from ix i
    left join sysIbm.sysTableSpaceStats r
        on      i.db = r.dbName and i.ts = r.name
           and  i.ixDbId = r.dbId and i.ixPsId = r.psId
           and  i.part = r.partition
) -- remaining formulas
select real(2.7397410  + 1 * 2.2918106) -- const + tsParts *
         + rRows * 1.1719944E-05
         + real(space) * (1024 * 4.1178398E-08)
         + uncompSz  * 4.7357392E-09
         + ixPARTS * 5.9228624
         + ixSPC * 1.1593550E-08
         + i0Time   reorgTime, tsPa.*
    from tsPa
;
------------------------------------------------------------------------
-- vReoTS: SchwellwertUeberschreitungen herausfinden
--            in riesigem case statement
--
create view S100447.vReoTS as
with ts1 as
(
select
    case
        when swReorg = 'NEVER' then 'no - reorgNever'
        when staDb.sta like 'RO%' or staDb.sta like 'STOP%'
                             then 'no - db status ' || strip(staDb.sta)
        when staTs.sta like 'RO%' or staTs.sta like 'STOP%'
                             then 'no - ts status ' || strip(staTs.sta)
        when swReorg = 'ALWAYS' then 'reorgAlways'
        when swAdvisory = '1'
             and posStr(',' || strip(staTs.sta) || ',', ',AREO*,') > 0
                         then 'advisory status ' || strip(staTs.sta)
        when dbName is null then 'rtsMissing'
        when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
                         then 'rtsNull'
        when rRows is null then 'rtsRowsNull'
        when totalRows < 0 then 'rtsRows ' || strip(char(totalRows))
                             || ' < 0'
        when REORGUNCLUSTINS > rRows / 100 * swUnclust
            then 'unclust ' || strip(char(REORGUNCLUSTINS)) || ' > '
                || strip(char(swUnclust)) || '% of ' || char(totalRows)
        when clusterRatio >= 0 and totalRows > 1000
                and clusterRatio < 100 -swUnclust
            then 'clusterRatio ' || strip(char(clusterRatio))
                || ' < 100-' || strip(char(swUnclust))
        when REORGFARINDREF > rRows / 100 * swFarindref
            then 'farIndRef ' || strip(char(reorgFarIndRef)) || ' > '
                || strip(char(swFarIndRef))||'% of '
                || strip(char(totalRows))
        when REORGNEARINDREF > rRows / 100 * swNearindref
            then 'nearIndRef '||strip(char(reorgnearIndRef)) || ' > '
                || strip(char(swNearIndRef))||'% of '
                || strip(char(totalRows))
        when r.extents         > swExtents
            then 'extents ' || strip(char(r.extents)) || ' > '
                || strip(char(swExtents))
        when r.dataSize >= 0 and r.dataSize
                 < real(nActive) * r.pgSize
                 * 0.1024 * pctLoad * swdatasize - 1e7
            then 'datasize ' || strip(char(real(r.datasize)))
                || ' < ' || strip(char(swdatasize)) || '% activeSz '
                || strip(char(real(nActive) * r.pgSize * 1024))
        when compress = 'Y' and pageSave < swpageSave
                and reorgInserts > rRows * .9 and rRows > 1e4
            then 'pagesave ' || strip(char(pagesave))
                || ' < ' || strip(char(swPageSave)) || ' % '
        when reorgInserts    > rRows / 100 * swInserts
            then 'inserts ' || strip(char(reorgInserts)) || ' > '
                || strip(char(swInserts)) || '% of '
                || strip(char(totalRows))
        when reorgUpdates    > rRows / 100 * swUpdates
            then 'updates ' || strip(char(reorgUpdates)) || ' > '
                || strip(char(swUpdates)) || '% of '
                || strip(char(totalRows))
        when reorgDeletes    > rRows / 100 * swDeletes
            then 'deletes ' || strip(char(reorgDeletes)) || ' > '
                || strip(char(swDeletes)) || '% of '
                || strip(char(totalRows))
        when CURRENT TIMESTAMP - swReorgDays days > lastBuilt
            then 'lastBuilt ' || char(date(lastBuilt)) || ' older '
                || strip(char(swReorgDays)) ||' reorgDays'
        else 'no - reorg not required'
    end reason,
    staTs.paFr, staTs.paTo, staTs.sta staTs, staDb.sta staDb,
    1 parts,
    r.*
    from S100447.vReoTsStats r
        left join    s100447.tDbState staTs
          ON      staTs.Ty        = 'T'
              and staTs.db        = r.db
              AND staTs.sp        = r.ts
              AND staTs.paFr     <= r.part
              AND staTs.paTo     >= r.part
        left join    s100447.tDbState staDb
          ON      staDb.Ty          = 'D'
              and staDb.db          = r.db
)
    -- importance anfügen
select smallint(case
            when reason = 'no - reorg not required' then  0
            when reason like 'no %'                then -1
            when reason like 'lastBuilt %'         then  3
            when reason like 'advisory %'          then  7
            when reason like 'reorgAlway%'         then  9
                                                   else  5
          end) importance ,
       ts1.*
    from ts1
;
------------------------------------------------------------------------
-- view vReoIXSchwelle: Schwellwerte pro Catalog Objekt
--      und alle später benötigen Werte aus Catalog Tabellen
--
create view S100447.vReoIXSchwelle as
with sw as
( select
          CASE WHEN POSSTR(DB,  '*') > 0
               THEN POSSTR(DB,  '*') - 1 ELSE 8 END DBLEN,
          CASE WHEN POSSTR(TS,  '*') > 0
               THEN POSSTR(TS,  '*') - 1 ELSE 8 END TSLEN,
          CASE WHEN POSSTR(IX,  '*') > 0
               THEN POSSTR(IX,  '*') - 1 ELSE 20 END IXLEN,
          char(STRIP(CHAR(PRIO)), 2) prC2,
          e.*
      from s100447.tReoIXParms e
)
select i.creator cr, i.name ix, p.partition part,
           substr(max(prC2 || char(reorg      )), 3)   swReorg     ,
       int(substr(max(prC2 || char(pageSplits )), 3)) swPageSplits,
       int(substr(max(prC2 || char(sw.EXTENTS  )), 3)) swEXTENTS    ,
       int(substr(max(prC2 || char(REORGDAYS  )), 3)) swREORGDAYS ,
       int(substr(max(prC2 || char(INSERTS    )), 3)) swINSERTS    ,
       int(substr(max(prC2 || char(DELETES    )), 3)) swDELETES    ,
       int(substr(max(prC2 || char(pseudoDel  )), 3)) swPseudoDel ,
       min(i.dbName) db, min(i.indexSpace) is, min(t.tsName) ts,
       min(i.dbId) dbId, min(i.isoBid) isoBid,
       min(p.createdTS) createdTS,
       min(t.creator) tbCr, min(t.name) tb
    from
        SYSIBM.sysIndexes           I
        join SYSIBM.SYSTABLES       T
            on i.tbCreator = t.creator and i.tbName = t.name
               and i.dbName = t.dbName
        join SYSIBM.SYSIndexPart    p
            on p.ixCreator = i.creator and p.ixName = i.name
        , sw
    where   left(i.dbName, dbLen) = left(db, dbLen)
        and left(i.name, ixLen) = left(ix, ixLen)
        and left(t.tsName, tsLen) = left(ts, tsLen)
        and p.partition between partVon and partBis
        and current date between guVon and guBis
    group by i.creator, i.name, p.partition
;
------------------------------------------------------------------------
-- RTS-Stats Werte pro ix-Partition zu Schwellen joinen
--     Kolonnen Namen: sw*: Schwellen
--                 ?????
create view S100447.vReoIxStats as
  select cr, ix, part, db, is, ts, tbCr, tb, createdTS,
         swReorg     , swPageSplits, swEXTENTS   , swREORGDAYS ,
         swINSERTS   , swDELETES   , swPseudoDel ,
         max(CAST(TOTALEntries AS REAL), 100) rEntrs,
         cast(nActive AS REAL) rActive,
         max(coalesce(reorgLastTime,   createdTS),
             coalesce(loadrLastTime,   createdTS),
             coalesce(rebuildLastTime, createdTS)) lastBuilt ,
         coalesce(real(max(r.space, 0)) * 1024 * 1.3558420E-07 , 0)
             + 1.8626988 reorgTime ,
         r.*
    from S100447.vReoIXSchwelle s
        left join sysibm.sysIndexSpaceStats r
        on      r.DBID          = S.DBID
            AND r.ISOBID        = S.ISOBID
            AND r.DBNAME        = S.DB
            AND r.indexSpace    = S.is
            AND r.partition     = s.part
;
------------------------------------------------------------------------
-- vReoIx: SchwellwertUeberschreitungen herausfinden
--            in riesigem case statement
--
create view S100447.vReoIX as
with ix1 as
( select
    case
        when swReorg = 'NEVER' then 'no - reorgNever'
        when staDb.sta like 'RO%' or staDb.sta like 'STOP%'
                             then 'no - db status ' || strip(staDb.sta)
        when staTs.sta like 'STOP%'
                             then 'no - ts status ' || strip(staTs.sta)
        when staIx.sta like 'RO%' or staIx.sta like 'STOP%'
                             then 'no - ix status ' || strip(staIx.sta)
        when swReorg = 'ALWAYS' then 'reorgAlways'
        when indexSpace is null then 'rtsMissing'
        when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
                  and REBUILDLASTTIME IS NULL then 'rtsNull'
        when rEntrs is null then 'rtsRowsNull'
        when totalEntries < 0 then 'rtsEntries '
                  || strip(char(totalEntries)) || ' < 0'
        when REORGLEAFFAR > rActive / 100 * swPageSplits
            then 'pageSplits ' || strip(char(reorgLeafFar)) || ' > '
                || strip(char(swPageSplits))
                || '% of ' || strip(char(nActive))
        when extents         > swExtents
            then 'extents ' || strip(char(extents)) || ' > '
                || strip(char(swExtents))
        when reorgInserts    > rEntrs / 100 * swInserts
            then 'inserts ' || strip(char(reorgInserts)) || ' > '
                || strip(char(swInserts)) || '% of '
                || strip(char(totalEntries))
        when reorgDeletes    > rEntrs / 100 * swDeletes
            then 'deletes ' || strip(char(reorgDeletes)) || ' > '
                || strip(char(swDeletes)) || '% of '
                || strip(char(totalEntries))
        when reorgPseudoDeletes    > rEntrs / 100 * swPseudoDel
            then 'pseudoDel ' || strip(char(reorgPseudoDeletes))||' > '
                || strip(char(swPseudoDel)) || '% of '
                || strip(char(totalEntries))
        when CURRENT TIMESTAMP - swReorgDays days > lastBuilt
            then 'lastBuilt ' || char(date(lastBuilt)) || ' older '
                || strip(char(swReorgDays)) ||' reorgDays'
        else 'no - reorg not required'
    end reason, s.*
    from S100447.vReoIXStats s
        left join    s100447.tDbState staDb
          ON      staDb.Ty          = 'D'
              and staDb.db          = s.db
        left join    s100447.tDbState staTs
          ON      staTs.Ty        = 'T'
              and staTs.db        = s.db
              AND staTs.sp        = s.ts
              AND staTs.paFr     <= s.part
              AND staTs.paTo     >= s.part
        left join    s100447.tDbState staIx
          ON      staIx.Ty        = 'I'
              and staIx.db        = s.db
              AND staIx.sp        = s.is
              AND staIx.paFr     <= s.part
              AND staIx.paTo     >= s.part
)
    -- importance voranstellen
select smallint(case
            when reason = 'no - reorg not required' then  0
            when reason like 'no %'                 then -1
            when reason like 'lastBuilt %'          then  3
            when reason like 'advisory %'           then  7
            when reason like 'reorgAlway%'          then  9
                                                    else  5
          end) importance,
       ix1.*
    from ix1
;
------------------------------------------------------------------------
-- vReoJobParms: jobLen und prC2 anfügen
--
CREATE VIEW S100447.vReoJobParms AS
      SELECT e.*,
          CASE WHEN POSSTR(job, '*') > 0
               THEN POSSTR(job, '*') - 1 ELSE 8 END jobLEN,
          char(STRIP(CHAR(PRIO)), 2) prC2
      FROM s100447.TReoJobParms e
;
select
       int(substr(max(prC2 || char(tsTime)), 3)) tsTime ,
       int(substr(max(prC2 || char(ixTime)), 3)) ixTime ,
       real(substr(max(prC2 || char(uncompDef)), 3)) uncompDef,
       real(substr(max(prC2 || char(uncompI0)), 3)) uncompI0 ,
           substr(max(prC2 || char(ixSpae)), 3)  ixSpae ,
           substr(max(prC2 || char(stats )), 3)  stats  ,
       count(*) cnt, min(job) minJ, max(job) maxJ
    from S100447.vReoJobParms
        where left(job, jobLen) = left('QR01234P', jobLen)
--  group by p.dbName, p.tsName, p.partition
;
create view S100447.vReoRunRng as
with r1 as
(  select p.tst, p.rng, max(paVon) paVon, max(paBis) paBis,
           count(*) cnt
         , sum(case when reoTst is null then 0 else 1 end) cntReoTst
         , max(case when reoTst is null then tst
                                        else  reoTst end) reoEnd
    from s100447.tReoRunPart p
    group by tst, rng
) , r2 as
( select r.*,
      ( select coalesce(max(coalesce(o.reoEnd, o.tst))
                 , r.tst)
            from r1 o
            where o.tst = r.tst
                and o.rng <> r.rng and o.reoEnd < r.reoEnd
       ) reoBeg
    from r1 r
)
select
        (days(reoEnd) - days(reoBeg)) * 86400
        + midnight_seconds(reoEnd) - midnight_seconds(reoBeg) rngTime,
        r2.*
    from r2
;
CREATE VIEW S100447.vReoRunTsStats    AS
with tp as
( select
          real(totalRows)                           rows
       ,  log10(max(real(totalRows),1))             logRows
       ,  real(space) * 1024                        spc
       ,  log10(max(real(space), 1)*1024)           logSpc
       ,  real(uncompressedDatasize)                uds
       ,  log10(max(real(uncompressedDatasize), 1)) logUds
       ,  r.*
      from s100447.tReoRunTsStats r
)
, t as
( select tst, rng
       , min(partition)            partMin
       , max(partition)            partMax
       , count(*)                  parts
       , sum(rows)                 rows
       , max(rows)                 rowsMax
       , sum(rows * logrows)       rowsLog
       , sum(rows) * max(logRows)  rowsLogMax
       , sum(spc)                  spc
       , sum(spc * logSpc)         spcLog
       , sum(spc * logRows)        spcLogRows
       , max(spc)                  spcMax
       , sum(spc) * max(logSpc)    spcLogMax
       , sum(Uds)                  Uds
       , sum(Uds * logUds)         UdsLog
       , sum(Uds * logRows)        UdsLogRows
       , max(Uds)                  UdsMax
       , sum(Uds) * max(logUds)    UdsLogMax
      from tp
      group by tst, rng
)
,    ip as
( select
          real(totalEntries) ent,
          log10(max(real(totalEntries),1)) logEnt,
          real(space) * 1024 spc,
          log10(max(real(space), 1)*1024) logSpc,
          r.*
      from s100447.tReoRunIxStats r
)
,    i as
( select tst, rng, count(*)        parts
       , sum(ent)                  ent
       , max(ent)                  entMax
       , sum(ent * logEnt)         entLog
       , sum(ent) * max(logEnt)    entLogMax
       , sum(spc)                  spc
       , sum(spc * logSpc)         spcLog
       , sum(spc * logEnt)         spcLogEnt
       , max(spc)                  spcMax
       , sum(spc) * max(logSpc)    spcLogMax
      from ip
      group by tst, rng
)
select j.job, r.*
       , partMin                      tsPartMin
       , partMax                      tsPartMax
       , value(t .parts          , 0) tsParts
       , value(t .rows           , 0) tsRows
       , value(t .rowsMax        , 0) tsRowsMax
       , value(t .rowsLog        , 0) tsRowsLog
       , value(t .rowsLogMax     , 0) tsRowsLogMax
       , value(t .spc            , 0) tsSpc
       , value(t .spcLog         , 0) tsSpcLog
       , value(t .spcLogRows     , 0) tsSpcLogRows
       , value(t .spcMax         , 0) tsSpcMax
       , value(t .spcLogMax      , 0) tsSpcLogMax
       , value(t .Uds            , 0) tsUds
       , value(t .UdsLog         , 0) tsUdsLog
       , value(t .UdsLogRows     , 0) tsUdsLogRows
       , value(t .UdsMax         , 0) tsUdsMax
       , value(t .UdsLogMax      , 0) tsUdsLogMax
       , value(ix.parts          , 0) ixparts
       , value(ix.ent            , 0) ixent
       , value(ix.entMax         , 0) ixentMax
       , value(ix.entLog         , 0) ixentLog
       , value(ix.entLogMax      , 0) ixentLogMax
       , value(ix.spc            , 0) ixspc
       , value(ix.spcLog         , 0) ixspcLog
       , value(ix.spcLogEnt      , 0) ixspcLogEnt
       , value(ix.spcMax         , 0) ixspcMax
       , value(ix.spcLogMax      , 0) ixspcLogMax
       , value(i0.parts          , 0) i0parts
       , value(i0.ent            , 0) i0ent
       , value(i0.entMax         , 0) i0entMax
       , value(i0.entLog         , 0) i0entLog
       , value(i0.entLogMax      , 0) i0entLogMax
       , value(i0.spc            , 0) i0spc
       , value(i0.spcLog         , 0) i0spcLog
       , value(i0.spcLogEnt      , 0) i0spcLogEnt
       , value(i0.spcMax         , 0) i0spcMax
       , value(i0.spcLogMax      , 0) i0spcLogMax
    from s100447.tReoRunJob j, s100447.tReoRunPart r
        left join t on t.tst = r.tst and t.rng = r.rng
        left join i ix on ix.tst = r.tst and ix.rng = r.rng
        left join i i0 on i0.tst = r.tst and i0.rng = r.rngI0
                                       and r.rngI0 > 0
    where j.ty = 'TS' and j.sta <> '0' and r.ty = 't' and r.sta = 'r'
        and r.part = r.pavon and r.reoTime is not null
        and r.tst = j.tst
;
commit;
CREATE VIEW S100447.vReoRunIxStats    AS
with ip as
( select
          real(totalEntries) ent,
          log10(max(1, real(totalEntries))) logEnt,
          real(space) * 1024 spc,
          log10(max(1, real(space)*1024)) logSpc,
          r.*
      from s100447.tReoRunIxStats r
)
,    i as
( select tst, rng, count(*)        parts
       , min(partition)            partMin
       , max(partition)            partMax
       , sum(ent)                  ent
       , max(ent)                  entMax
       , sum(ent * logEnt)         entLog
       , sum(ent) * max(logEnt)    entLogMax
       , sum(spc)                  spc
       , sum(spc * logSpc)         spcLog
       , sum(spc * logEnt)         spcLogEnt
       , max(spc)                  spcMax
       , sum(spc) * max(logSpc)    spcLogMax
      from ip
      group by tst, rng
)
select j.job, r.*
       , partMin                      partMin
       , partMax                      partMax
       , value(ix.parts          , 0) parts
       , value(ix.ent            , 0) ent
       , value(ix.entMax         , 0) entMax
       , value(ix.entLog         , 0) entLog
       , value(ix.entLogMax      , 0) entLogMax
       , value(ix.spc            , 0) spc
       , value(ix.spcLog         , 0) spcLog
       , value(ix.spcLogEnt      , 0) spcLogEnt
       , value(ix.spcMax         , 0) spcMax
       , value(ix.spcLogMax      , 0) spcLogMax
    from s100447.tReoRunJob j, s100447.tReoRunPart r
        left join i ix on ix.tst = r.tst and ix.rng = r.rng
    where j.ty = 'IX' and j.sta <> '0' and r.ty = 'i' and r.sta = 'r'
        and r.part = r.pavon and r.reoTime is not null
        and r.tst = j.tst
;
select * from S100447.vReoRunIxStats
    order by   tst desc,   rng
    fetch first 100 rows only
    with ur
;
create view S100447.vReoTSStatsPlus as
select r.*, s.pgSize, p.pageSave,
        case when r.uncompressedDatasize > 0
                 and real(r.nActive) * s.pgSize * 102400
                       / min(max(100-p.pageSave, 3), 100)
                 between real(r.uncompressedDatasize) / 7
                     and real(r.uncompressedDatasize) * 7
             then bigInt(r.uncompressedDatasize)
             else
                  bigInt(real(r.nActive) * s.pgSize * 102400
                       / min(max(100-p.pageSave, 3), 100))
        end fixUncomp
    from sysibm.sysTableSpaceStats r,
         sysibm.sysTableSpace s, sysibm.sysTablePart p
    where   s.dbName = r.dbName and s.name = r.name
        and s.dbid = r.dbId and s.psid = r.psid
        and p.dbName = r.dbName and p.tsName = r.name
        and p.partition = r.partition
;
create view S100447.vReoTSStatsFix    as
    select UPDATESTATSTIME ,
           NACTIVE         ,
           NPAGES          ,
           EXTENTS         ,
           LOADRLASTTIME   ,
           REORGLASTTIME   ,
           REORGINSERTS    ,
           REORGDELETES    ,
           REORGUPDATES    ,
           REORGUNCLUSTINS ,
           REORGDISORGLOB  ,
           REORGMASSDELETE ,
           REORGNEARINDREF ,
           REORGFARINDREF  ,
           STATSLASTTIME   ,
           STATSINSERTS    ,
           STATSDELETES    ,
           STATSUPDATES    ,
           STATSMASSDELETE ,
           COPYLASTTIME    ,
           COPYUPDATEDPAGES,
           COPYCHANGES     ,
           COPYUPDATELRSN  ,
           COPYUPDATETIME  ,
           IBMREQD         ,
           DBID            ,
           PSID            ,
           PARTITION       ,
           INSTANCE        ,
           SPACE           ,
           TOTALROWS       ,
           DATASIZE        ,
           fixUncomp UNCOMPRESSEDDATASIZE,
           DBNAME          ,
           NAME
    from S100447.vReoTSStatsPlus
;
commit
;
--- end of install v5.7 -------------------------------------
;x;
?????? intermediate and helpers
--   select *
--       from s100447.tReoRunTsStats
--       where    uncompressedDatasize is not null
--       order by uncompressedDatasize desc
--       fetch first 1000 rows only
--       with ur;
--   update   s100447.tReoRunTsStats u
--   set uncompressedDatasize = (select
--                     bigInt(real(u.nActive) * f.pgSize * 102400
--                          / min(max(100-f.pageSave, 3), 100))
--           from S100447.vReoTsStatsPlus f
--           where  f.dbName = u.dbName and f.name = u.name
--           and f.dbid = u.dbId and f.psid = u.psid
--           and f.partition = u.partition
--           )
--       where u.tst < '2010-08-27-18.00.00.00'
--           or u.uncompressedDatasize < 1
--   ;
--   --commit;
--   select *
--       from s100447.tReoRunTsStats
--       where    uncompressedDatasize is not null
--       order by uncompressedDatasize desc
--       fetch first 1000 rows only
--       with ur;
--   commit   ;
--;
create view S100447.vReoTSStatsPlus as
select r.*, s.pgSize, p.pageSave,
        case when r.uncompressedDatasize > 0
                 and real(r.nActive) * s.pgSize * 102400
                       / min(max(100-p.pageSave, 3), 100)
                 between real(r.uncompressedDatasize) / 7
                     and real(r.uncompressedDatasize) * 7
             then bigInt(r.uncompressedDatasize)
             else
                  bigInt(real(r.nActive) * s.pgSize * 102400
                       / min(max(100-p.pageSave, 3), 100))
        end fixUncomp
    from sysibm.sysTableSpaceStats r,
         sysibm.sysTableSpace s, sysibm.sysTablePart p
    where   s.dbName = r.dbName and s.name = r.name
        and s.dbid = r.dbId and s.psid = r.psid
        and p.dbName = r.dbName and p.tsName = r.name
        and p.partition = r.partition
;
create view S100447.vReoTSStatsFix    as
    select UPDATESTATSTIME ,
           NACTIVE         ,
           NPAGES          ,
           EXTENTS         ,
           LOADRLASTTIME   ,
           REORGLASTTIME   ,
           REORGINSERTS    ,
           REORGDELETES    ,
           REORGUPDATES    ,
           REORGUNCLUSTINS ,
           REORGDISORGLOB  ,
           REORGMASSDELETE ,
           REORGNEARINDREF ,
           REORGFARINDREF  ,
           STATSLASTTIME   ,
           STATSINSERTS    ,
           STATSDELETES    ,
           STATSUPDATES    ,
           STATSMASSDELETE ,
           COPYLASTTIME    ,
           COPYUPDATEDPAGES,
           COPYCHANGES     ,
           COPYUPDATELRSN  ,
           COPYUPDATETIME  ,
           IBMREQD         ,
           DBID            ,
           PSID            ,
           PARTITION       ,
           INSTANCE        ,
           SPACE           ,
           TOTALROWS       ,
           DATASIZE        ,
           fixUncomp UNCOMPRESSEDDATASIZE,
           DBNAME          ,
           NAME
    from S100447.vReoTSStatsPlus
;
select real(space)*1024, real(fixuncomp), pageSave, r.*
    from S100447.vReoTSStatsPlus r
    where dbName like 'MF01%'
--  order by   dbName,     name,   partition
    order by   abs(real(space)*1024 - real(fixuncomp)) desc
    with ur;
select count(*), sum(real(space)*1024), sum(real(datasize)),
                                        sum(real(fixuncomp))
    from S100447.vReoTSStatsPlus r
    with ur;
select count(*), sum(real(space)*1024), sum(real(datasize)),
                     sum(real(uncompressedDatasize))
    from S100447.vReoTSStatsFix
    with ur;
select count(*), sum(real(space)*1024), sum(real(datasize)),
                     sum(real(uncompressedDatasize))
    from sysibm.sysTableSpaceStats
    with ur;
select r.*
    from sysibm.sysTableSpaceStats r
         left join sysibm.sysTableSpace s
        on  s.dbName = r.dbName and s.name = r.name
        and s.dbid = r.dbId and s.psid = r.psid
        where s.dbName is null
;
commit
;x;
-----------------------------------------------------------------------
version 2009
-- views erstellen für rts reorg Abfragen für ix und ts
--      tableIxStats: tableSpaceStats ergänzt mit      w.keller 18.11.09
--          Index Daten (selbe Part + part 0)
--      vReoIx.is für IndexSpace                       w.keller 08.9.08
--            (nicht null bei fehlenden RTS Daten)
--      V9 eNFM (SYStablespacestats usw.)              w.keller 21.8.08
--      vorbereitet für V9 (cr statt creator)          w.keller 21.8.08
--      neu                                            w.keller 30.4.08

set current sqlId = 'S100447';
-- drop   view S100447.vReoTSException;
-- drop   VIEW S100447.vReoIXException;
-- drop   view S100447.tableIxStats;
-- drop   view S100447.tableIxStatsDet;
-- tableIxStats: tableSpaceStats ergänzt mit Index Daten
--     für dieselbe Partition und Partition 0 (falls ts.part <> 0)
create view S100447.tableIxStats as
with tsIx as -- Daten aus IndexStats aggregieren pro TS part
(   select
       max(substr(strip(t.creator) || '.' || strip(t.name), 1,30)) crTb,
       t.dbName db, t.tsName ts,
       j.partition,
       count(*) cnt,
       sum(j.totalEntries) ent,
       sum(real(j.totalEntries)
               * log10(max(1e0, j.totalEntries))) entLog,
       sum(real(j.space) * 1024) spc,
       sum(real(j.space) * 1024
               * log10(max(1e0, real(j.space) * 1024))) spcLog,
       sum(real(j.space) * 1024
               * log10(max(1e0, j.totalEntries))) spcLogEnt,
       max(j.totalEntries) entMax,
       max(real(j.totalEntries)
               * log10(max(1e0, j.totalEntries))) entLogMax,
       max(real(j.space) * 1024) spcMax,
       max(real(j.space) * 1024
               * log10(max(1e0, real(j.space) * 1024))) spcLogMax,
       max(real(j.space) * 1024
               * log10(max(1e0, j.totalEntries))) spcLogEntMax
    from sysIbm.sysTables t
        join sysIbm.sysIndexes i
        on i.tbCreator = t.creator and i.tbName = t.name
        join SYSIBM.SYSINDEXSPACESTATS j
        on      i.creator = j.creator and i.Name = j.name
            and i.dbName = j.dbName and i.indexSpace = j.indexSpace
            and i.dbId = j.dbId and i.isoBid = j.isoBid
    where t.type = 'T'
    group by t.dbName, t.tsName, t.dbId, j.partition
) , det as
(
select r.*,
       1 rParts,
       max(coalesce(real(space), 0), 0) * 1024 spc,
       max(coalesce(real(totalRows), 0), 0) rows,
       coalesce(i.crtb, '') crTb,
            -- selbe Partition von partit. Indexen
       coalesce(i.cnt, 0)          ixParts,
       coalesce(i.ent, 0)          ixEnt,
       coalesce(i.entLog, 0)       ixEntLog,
       coalesce(i.spc, 0)          ixSpc,
       coalesce(i.spcLog, 0)       ixSpcLog,
       coalesce(i.spcLogEnt, 0)    ixSpcLogEnt,
       coalesce(i.entMax, 0)       ixEntMax,
       coalesce(i.entLogMax, 0)    ixEntLogMax,
       coalesce(i.spcMax, 0)       ixSpcMax,
       coalesce(i.spcLogMax, 0)    ixSpcLogMax,
       coalesce(i.spcLogEntMax, 0) ixSpcLogEntMax,
            -- Part 0 von nicht Partitionierten Indexen in part. TS
       coalesce(j.cnt, 0)          i0Parts,
       coalesce(j.ent, 0)          i0Ent,
       coalesce(j.entLog, 0)       i0EntLog,
       coalesce(j.spc, 0)          i0Spc,
       coalesce(j.spcLog, 0)       i0SpcLog,
       coalesce(j.spcLogEnt, 0)    i0SpcLogEnt,
       coalesce(j.entMax, 0)       i0EntMax,
       coalesce(j.entLogMax, 0)    i0EntLogMax,
       coalesce(j.spcMax, 0)       i0SpcMax,
       coalesce(j.spcLogMax, 0)    i0SpcLogMax,
       coalesce(j.spcLogEntMax, 0) i0SpcLogEntMax
    from sysibm.sysTablespaceStats r
        left join tsix i
        on r.dbName = i.db and r.name = i.ts
            and r.partition = i.partition
        left join tsix j
        on r.dbName = j.db and r.name = j.ts
            and r.partition <> 0 and j.partition = 0
)
select det.*,
        real( 2.22E+01 * 1 -- real to avoid exponent overflow in sum
        + coalesce(2.23E-08 * space * 1024 + 1.14E-07 * totalRows
            * log10(max(1e0, real(totalRows))), 0)
        + 2.66E-07 * ixEntLog
        + 4.94E+00 * i0Parts + 3.84E-08 * i0Spc
            + 3.42E-06 * i0EntMax) reorgTime
    from det
;
-- create view S100447.tableIxStats as
--  select dbName db, name ts, partition, crTb,
--  1 parts, real(space)*1024 spc, real(totalRows) rows,
--  ixParts, ixSpc, ixEnt, ixEntMax,
--  i0Parts, i0Spc, i0Ent, i0EntMax
--  from S100447.tableIxStatsDet
--
-- view vReoTSExceptions: Längen und key anfügen --------------------
  CREATE VIEW S100447.vReoTSException AS
      SELECT PRIO, db, ts,
          PARTVON, PARTBIS, GUVON, GUBIS,
          reorg, unclust, farindref, nearindref, extents, reorgdays,
          inserts, updates, deletes,
          inserttimestamp, remark,
          CASE WHEN POSSTR(DB,  '*') > 0
               THEN POSSTR(DB,  '*') - 1 ELSE 8 END DBLEN,
          CASE WHEN POSSTR(TS,  '*') > 0
               THEN POSSTR(TS,  '*') - 1 ELSE 8 END TSLEN,
          char(RIGHT('0' || STRIP(CHAR(PRIO)), 2)
              || strip(DB) || case when POSSTR(DB, '*') > 0
                                   then '' else '=' end
              || strip(ts) || case when POSSTR(ts, '*') > 0
                                   then '' else '=' end
              || right('0000' || strip(char(partVon)), 4)
              || '.' || translate('34679A', char(GUVON, ISO),
                                                   '123456789A')
              , 31) KEY
      FROM S100447.TReoTSException ;
  COMMENT ON table S100447.vReoTSException
    IS 'diese Tabelle enthaelt die Default-Schwellwerte und die TS mit s
peziellen Schwellwerten für RTS-Reorgs.'
;
  LABEL ON S100447.vReoTSException
    ( PRIO                is 'Prioritaet: tiefste=0=Default' ,
      DB                  is 'Datenbank Name'                ,
      TS                  is 'TableSpace Name'               ,
      TSLEN               is 'Laenge Datenbank Name'         ,
      PARTVON             is 'Partition von'  ,
      PARTBIS             is 'Partition bis'  ,
      GUVON               is 'Gueltig von'                   ,
      GUBIS               is 'Gueltig bis'                   ,
      REORG               is 'ALWAYS,NEVER,THRESHOLD'        ,
      UNCLUST             is 'Schwellwert unclustered %'     ,
      FARINDREF           is 'SchwWe overflow far (>16 pg) %',
      NEARINDREF          is 'SchwWe overflow near(<16 pg) %',
      EXTENTS             is 'SchwWe Extents pro TS/Part'    ,
      REORGDAYS           is 'Schwellwert Anzahl Tage'       ,
      INSERTS             is 'Schwellwert inserts %'         ,
      UPDATES             is 'Schwellwert updates %'         ,
      DELETES             is 'Schwellwert deletes %'         ,
      INSERTTIMESTAMP     is 'Erstellungs Zeitpunkt'         ,
      REMARK              is 'Begründung (Freitext)'         ,
      DBLEN               is 'Laenge Datenbank Name'         ,
      TSLEN               is 'Laenge Datenbank Name'         ,
      KEY                 is 'eindeutiger Schluessel'
    ) ;

-- view vReoTSSchwellen: Schwellwerte pro Catalog Objekt -----------
create view S100447.vReoTSSchwelle as
  select s.dbName db, s.name ts, p.partition part,
           substr(max(key || char(reorg       )), 32)  reorg     ,
       int(substr(max(key || char(unclust     )), 32)) unclust   ,
       int(substr(max(key || char(INSERTS     )), 32)) INSERTS   ,
       int(substr(max(key || char(UPDATES     )), 32)) UPDATES   ,
       int(substr(max(key || char(DELETES     )), 32)) DELETES   ,
       int(substr(max(key || char(e.FARINDREF )), 32)) FARINDREF ,
       int(substr(max(key || char(e.NEARINDREF)), 32)) NEARINDREF,
       int(substr(max(key || char(e.EXTENTS   )), 32)) EXTENTS   ,
       int(substr(max(key || char(REORGDAYS   )), 32)) REORGDAYS ,
       s.pgSize, s.partitions, s.dbId, s.psId,
       p.createdTS, p.compress, p.pageSave
    from
        SYSIBM.SYSTABLESPACE   S
        join SYSIBM.SYSTABLEPart    p
            on s.dbName = p.dbName and s.name = p.tsName
        , S100447.vReoTSException e
    where   left(s.dbname, dbLen) = left(db, dbLen)
        and left(s.name, tsLen) = left(ts, tsLen)
        and p.partition between partVon and partBis
        and current date between guVon and guBis
    group by s.dbName, s.name, p.partition, s.pgSize, s.partitions,
             s.dbId, s.psId, p.createdTS, p.compress, p.pageSave
;

-- view vReoTS: SchwellwerteUeberschreitungen pro RTS Obj -----------
create view S100447.vReoTS as
with ts1 as
(
select
    case
        when reorg = 'NEVER' then 'no - reorgNever'
        when staDb.sta like 'RO%' or staDb.sta like 'STOP%'
                             then 'no - db status ' || strip(staDb.sta)
        when staTs.sta like 'RO%' or staTs.sta like 'STOP%'
                             then 'no - ts status ' || strip(staTs.sta)
        when reorg = 'ALWAYS' then 'reorgAlways'
        when dbName is null then 'rtsMissing'
        when posStr(',' || strip(staTs.sta) || ',', ',AREO*,') > 0
                         then 'advisory status ' || strip(staTs.sta)
        when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
                         then 'rtsNull'
        when rRows is null then 'rtsRowsNull'
        when REORGUNCLUSTINS > rRows / 100 * unclust
            then 'unclust ' || strip(char(REORGUNCLUSTINS)) || ' > '
                || strip(char(unclust)) || '% of ' || char(totalRows)
        when REORGFARINDREF > rRows / 100 * farindref
            then 'farIndRef ' || strip(char(reorgFarIndRef)) || ' > '
                || strip(char(farIndRef)) || '% of ' || char(totalRows)
        when REORGNEARINDREF > rRows / 100 * nearindref
            then 'nearIndRef '||strip(char(reorgnearIndRef)) || ' > '
                || strip(char(nearIndRef)) ||'% of ' || char(totalRows)
        when r.extents         > s.Extents
            then 'extents ' || strip(char(r.extents)) || ' > '
                || strip(char(s.Extents))
        when dataSize >= 0
                and dataSize < real(nActive) * pgSize * 256 - 1e7
            then 'datasize ' || strip(char(real(datasize)))
                || ' << activeSz '
                || strip(char(real(nActive) * pgSize * 1024))
        when compress = 'Y' and pageSave < 5
                and reorgInserts > rRows * .9 and space > 1e4
            then 'pagesave ' || strip(char(pagesave))
                || '%, inserts ' || strip(char(reorgInserts))
                || ', rows ' || strip(char(totalRows))
        when reorgInserts    > rRows / 100 * inserts
            then 'inserts ' || strip(char(reorgInserts)) || ' > '
                || strip(char(inserts)) || '% of ' || char(totalRows)
        when reorgUpdates    > rRows / 100 * updates
            then 'updates ' || strip(char(reorgUpdates)) || ' > '
                || strip(char(updates)) || '% of ' || char(totalRows)
        when reorgDeletes    > rRows / 100 * deletes
            then 'deletes ' || strip(char(reorgDeletes)) || ' > '
                || strip(char(deletes)) || '% of ' || char(totalRows)
        when DAYS(CURRENT TIMESTAMP) - DAYS(
            max(coalesce(reorgLastTime, createdTS),
                coalesce(loadrLastTime, createdTS))) > reorgDays
            then 'reorgDays ' || char(date(
                      max(coalesce(reorgLastTime, createdTS),
                          coalesce(loadrLastTime, createdTS))))
                || ' > ' || strip(char(reorgDays)) ||' days'
        else 'no - reorg not required'
    end reason,
    s.db, s.ts, s.part, s.pgSize, s.partitions, s.compress, s.pageSave,
    staTs.paFr, staTs.paTo, staTs.sta staTs, staDb.sta staDb,
    1 parts, r.*
    from
        S100447.vReoTSSchwelle s
        left join
            ( select max(CAST(TOTALROWS AS REAL), 100) rRows, t.*
                  from S100447.tableIxStats T
            ) r
          ON      r.DBID          = S.DBID
              AND r.PSID          = S.PSID
              AND r.DBNAME        = S.DB
              AND r.NAME          = S.ts
              AND r.partition     = s.part
        left join    oa1a.TADM36A1 staTs
          ON      staTs.Ty        = 'T'
              and staTs.db        = s.db
              AND staTs.sp        = s.ts
              AND staTs.paFr     <= s.part
              AND staTs.paTo     >= s.part
        left join    oa1a.TADM36A1 staDb
          ON      staDb.Ty          = 'D'
              and staDb.db          = s.db
)
select case when reason like 'no %'        then 0
            when reason like 'reorgDays %' then 3
            when reason like 'advisory %'  then 7
            when reason like 'reorgAlway%' then 9
                                           else 5 end class ,
       ts1.*
    from ts1
;
-- view vReoIXExceptions: Längen und key anfügen --------------------
  CREATE VIEW S100447.vReoIXException AS
      SELECT PRIO, db, ts, ix,
          PARTVON, PARTBIS, GUVON, GUBIS,
          reorg, pageSplits, extents, reorgdays,
          inserts, deletes, pseudoDel,
          inserttimestamp, remark,
          CASE WHEN POSSTR(DB,  '*') > 0
               THEN POSSTR(DB,  '*') - 1 ELSE 8 END DBLEN,
          CASE WHEN POSSTR(TS,  '*') > 0
               THEN POSSTR(TS,  '*') - 1 ELSE 8 END TSLEN,
          CASE WHEN POSSTR(IX,  '*') > 0
               THEN POSSTR(IX,  '*') - 1 ELSE 20 END IXLEN,
          char(RIGHT('0' || STRIP(CHAR(PRIO)), 2)
              || strip(DB) || case when POSSTR(DB, '*') > 0
                                   then '' else '=' end
              || strip(ts) || case when POSSTR(ts, '*') > 0
                                   then '' else '=' end
              || strip(ix) || case when POSSTR(ix, '*') > 0
                                   then '' else '=' end
              || right('0000' || strip(char(partVon)), 4)
              || '.' || translate('34679A', char(GUVON, ISO),
                                                   '123456789A')
              , 52) KEY
      FROM S100447.TReoIXException ;
  COMMENT ON table S100447.vReoIXException
    IS 'diese Tabelle enthaelt die Default-Schwellwerte und die Indexe m
it speziellen Schwellwerten für RTS-Reorgs.'
;
  LABEL ON S100447.vReoIXException
    ( PRIO                is 'Prioritaet: tiefste=0=Default' ,
      DB                  is 'Datenbank Name'                ,
      TS                  is 'TableSpace Name'               ,
      IX                  is 'Index Name'                    ,
      PARTVON             is 'Partition von'                 ,
      PARTBIS             is 'Partition bis'                 ,
      GUVON               is 'Gueltig von'                   ,
      GUBIS               is 'Gueltig bis'                   ,
      REORG               is 'ALWAYS,NEVER,THRESHOLD'        ,
      PAGESPLITS          is 'Schwellwert ReorgLeafFar %'    ,
      EXTENTS             is 'SchwWe Extents pro TS/Part'    ,
      REORGDAYS           is 'Schwellwert Anzahl Tage'       ,
      INSERTS             is 'Schwellwert inserts %'         ,
      DELETES             is 'Schwellwert deletes %'         ,
      PseudoDel           is 'Schwellwert PseudoDeletes %'   ,
      INSERTTIMESTAMP     is 'Erstellungs Zeitpunkt'         ,
      REMARK              is 'Begründung (Freitext)'         ,
      DBLEN               is 'Laenge Datenbank Name'         ,
      TSLEN               is 'Laenge Datenbank Name'         ,
      IXLEN               is 'Laenge Index Name'             ,
      KEY                 is 'eindeutiger Schluessel'
    ) ;

-- view vReoIXSchwelle: Schwellwerte pro Catalog Objekt -----------
create view S100447.vReoIXSchwelle as
  select i.creator cr, i.name ix, p.partition part,
           substr(max(key || char(reorg       )), 53)  reorg     ,
       int(substr(max(key || char(pageSplits  )), 53)) pageSplits,
       int(substr(max(key || char(e.EXTENTS   )), 53)) EXTENTS   ,
       int(substr(max(key || char(REORGDAYS   )), 53)) REORGDAYS ,
       int(substr(max(key || char(INSERTS     )), 53)) INSERTS   ,
       int(substr(max(key || char(DELETES     )), 53)) DELETES   ,
       int(substr(max(key || char(pseudoDel   )), 53)) pseudoDel ,
       i.dbName db, i.indexSpace is, t.tsName ts,
       i.dbId, i.isoBid, p.createdTS
    from
        SYSIBM.sysIndexes         I
        join SYSIBM.SYSTABLES       T
            on i.tbCreator = t.creator and i.tbName = t.name
        join SYSIBM.SYSIndexPart    p
            on p.ixCreator = i.creator and p.ixName = i.name
        , S100447.vReoIXException e
    where   left(i.dbName, dbLen) = left(db, dbLen)
        and left(i.name, ixLen) = left(ix, ixLen)
        and left(t.tsName, tsLen) = left(ts, tsLen)
        and p.partition between partVon and partBis
        and current date between guVon and guBis
    group by i.creator, i.name, p.partition,
             i.dbName, i.indexSpace, t.tsName,
             i.dbId, i.isoBid, p.createdTS
;

-- view vReoIX: SchwellwerteUeberschreitungen pro RTS Obj -----------
create view S100447.vReoIX as
select
    case
        when reorg = 'NEVER' then 'no - reorgNever'
        when reorg = 'ALWAYS' then 'reorgAlways'
        when r.indexSpace is null then 'rtsMissing'
        when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
                  and REBUILDLASTTIME IS NULL then 'rtsNull'
        when rEntrs is null then 'rtsRowsNull'
        when REORGLEAFFAR > rActive / 100 * pageSplits
            then 'pageSplits ' || strip(char(reorgLeafFar)) || ' > '
                || strip(char(pageSplits))
                || '% of ' || strip(char(nActive))
        when r.extents         > s.Extents
            then 'extents ' || strip(char(r.extents)) || ' > '
                || strip(char(s.Extents))
        when reorgInserts    > rEntrs / 100 * inserts
            then 'inserts ' || strip(char(reorgInserts)) || ' > '
              || strip(char(inserts)) || '% of ' || char(totalEntries)
        when reorgDeletes    > rEntrs / 100 * deletes
            then 'deletes ' || strip(char(reorgDeletes)) || ' > '
              || strip(char(deletes)) || '% of ' || char(totalEntries)
        when reorgPseudoDeletes    > rEntrs / 100 * pseudoDel
            then 'pseudoDel ' || strip(char(reorgPseudoDeletes))||' > '
              || strip(char(pseudoDel)) ||'% of '|| char(totalEntries)
        when DAYS(CURRENT TIMESTAMP) - DAYS(
            max(coalesce(reorgLastTime,   createdTS),
                coalesce(loadrLastTime,   createdTS),
                coalesce(rebuildLastTime, createdTS))) > reorgDays
            then 'reorgDays ' || char(date(
                         max(coalesce(reorgLastTime,   createdTS),
                             coalesce(loadrLastTime,   createdTS),
                             coalesce(rebuildLastTime, createdTS))))
                || ' > ' || strip(char(reorgDays)) ||' days'
        else 'no - reorg not required'
    end reason, s.cr, s.ix, s.db, s.is, s.ts, s.part, r.*
    from
        S100447.vReoIXSchwelle s
        left join
            ( select max(CAST(TOTALEntries AS REAL), 100) rEntrs,
                     CAST(nActive      AS REAL) rActive, t.*
                  from SYSIBM.SYSINDEXSPACESTATS T
            ) r
          ON      r.DBID          = S.DBID
              AND r.ISOBID        = S.ISOBID
              AND r.DBNAME        = S.DB
              AND r.indexSpace    = S.is
              AND r.partition     = s.part
;
commit
;
}¢--- A540769.WK.SQL(REODDL) cre=2012-03-26 mod=2016-02-29-12.00.50 A540769 ----
$#@
call sqlConnect DBOL
            $*( fun = funktion
                   t = tables erstellen/migrieren und views erstellen
                   v = nur views droppen und erstellen
                   tDropOld = alte Tables löschen
                              (entstehen bei migration durch rename
                               ==> nach Kontrolle migration )
            $*)
$=fun= ?DropOld
$=fun=v
$=db2v10ENF = 1     $** v10 catalog or not
$=mig=63    $*( migration ab wo
                   0 = create new
                  54 = migrate ab 54
                  570 = migrate ab (unvollständiger) Version 5.7
                  571 = migrate ab 5.7 ohne clusterRatio
                  59 = migrate stats tables from v9 to db2v10
                  62 = migrate stats tables from v10 to db2v11
                  63 = primary key in stats tables for cloned
            $*)
$;
$** $>. fEdit() $@/ddl/
call sqlStmts  $<@/ddl/
$@=¢
  SET CURRENT SQLID='S100447';
$!
if $fun = 'tDropOld' then $@=/tDropOld/
    drop table s100447.tReoTsParmsOld;
    drop table s100447.tReoTSParmsHistOld;
    commit;
$/tDropOld/ else if $fun == 't' then $@/tAnf/
$@=¢
----------------------------------------------------------------------
-- tRtsReo*Parms und *run* und tdbState
--          tables für rts reorg erstellen
--     default werte einfüllen
--     datenübernahme aus alten exception tables
-- 29. 2.16 v6.4: clone infos in views
-- 17.9.13 walter: aReor, reorP, rbdp usw. Stati
-- 28.09.2011 v5.7
$!
if $mig == 0 then $@=¢
--     create new tables
$! else if $mig == 54 then $@=¢
--     migrate from table version 54
$! else if $mig == 570 then $@=¢
--     migrate from table version 570 (with bad triggers)
$! else if $mig == 571 then $@=¢
--     migrate from table version 571 (without clustRatio)
$! else if $mig == 59 then $@=¢
--     migrate stats Table from db2v9 to db2v10
$! else if $mig == 62 then $@=¢
--     migrate stats Table from db2v9 to db2v10
$! else if $mig == 63 then $@=¢
--     primary key / index with instance for cloned TS/IX
$! else
       call err 'bad mig='$mig
$@=¢
--     drop/stop auf die alten DBs  DB2RTS, TSTRTSDB und DB2REORG
--          muss extra gemacht werden|
--
----------------------------------------------------------------------
$!
$/tAnf/ else if $fun \== 'v' then call err 'bad fun' $fun
if $fun == 't' | $fun == 'v' then $@=/vDrop/
  drop   view s100447.vReoTSSchwelle ;
  drop   view s100447.vReoIxSchwelle ;
  drop   view s100447.vReoJobParms ;
  drop   view s100447.vReoRunRng;
  drop   view s100447.vReoRunTSStats;
  drop   view s100447.vReoRunIXStats;
  drop   view s100447.vReoTSStatsPlus;
  drop   view s100447.vReoRunJobChk;
  drop   view s100447.vReoRunRngChk;
$/vDrop/
if $fun == 't' then $@/table/
if $mig == 0 then $@=¢
--drop   DATABASE Db2Reo; commit;
  CREATE DATABASE db2Reo
    BUFFERPOOL BP2
    INDEXBP    BP1
    CCSID      UNICODE
    STOGROUP   GSMS;
--DROP   TABLESPACE db2Reo.A012A;
--DROP   TABLESPACE Db2Reo.A012H;
--DROP   TABLESPACE Db2Reo.A013A;
--DROP   TABLESPACE Db2Reo.A013H;
--DROP   TABLESPACE Db2Reo.A014A;
--DROP   TABLESPACE Db2Reo.A014H;
--drop TABLEspace Db2Reo.A020A ;
--drop TABLEspace Db2Reo.A021A ;
--drop TABLEspace Db2Reo.A022A ;
--drop TABLEspace Db2Reo.A023A ;
--drop TABLEspace Db2Reo.A024A ;
--DROP   TABLESPACE db2Admin.A012A;
--DROP   TABLESPACE db2Admin.A012H;
--DROP   TABLESPACE db2Admin.A013A;
--DROP   TABLESPACE db2Admin.A013H;
--DROP   TABLESPACE db2Admin.A014A;
--DROP   TABLESPACE db2Admin.A014H;
--drop   TABLEspace db2Admin.A036A ;
--drop   TABLEspace db2Admin.A020A ;
  commit
  ;
  CREATE TABLESPACE AReoTPA
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
  CREATE TABLESPACE AReoTPH
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
$!
if $mig >> 0  & $mig << 59 then $@=¢
  drop trigger s100447.tReoTSParmsBefIns ;
  drop trigger s100447.tReoTSParmsBefUpd ;
  drop trigger s100447.tReoTSParmsAftIns ;
  drop trigger s100447.tReoTSParmsAftUpdSt ;
  drop trigger s100447.tReoTSParmsAftUpd ;
  drop trigger s100447.tReoTSParmsAftDelSt ;
  rename table s100447.tReoTsParms to         tReoTsParmsOld ;
  rename INDEX s100447.IReoTSParms to         IReoTSParmsOld ;
  rename table s100447.tReoTSParmsHist to         tReoTSParmsHistOld ;
  rename INDEX s100447.IReoTSParmsHist to         IReoTSParmsHistOld ;
$! else if $mig == 62 then $@¢
  ixSta = catTbLastCol(s100447, tReoRunIxStats)
  if ixSta \== "44 STATS101" then $@¢
      call err 'bad s100447, tReoRunIxStats:' ixSta
  $! else $@=¢
  alter TABLE s100447.tReoRunIxStats
        alter COPYUPDATELRSN set data type CHARACTER(10) -- FOR BIT DATA
  ;
  $!
  tsSta = catTbLastCol(s100447, tReoRunTsStats)
  $@=¢
  alter TABLE s100447.tReoRunTSStats
        alter COPYUPDATELRSN set data type CHARACTER(10) -- FOR BIT DATA
  $!
  if tsSta == "37 NAME" then $@=¢
       -- v10 columns
        add REORGCLUSTERSENS BIGINT
  WITH DEFAULT NULL
        add REORGSCANACCESS BIGINT
  WITH DEFAULT NULL
        add REORGHASHACCESS BIGINT
  WITH DEFAULT NULL
        add HASHLASTUSED DATE
  WITH DEFAULT NULL
        add DRIVETYPE CHARACTER(3) FOR MIXED DATA
                                                        NOT NULL
  WITH DEFAULT 'HDD'
        add LPFACILITY CHARACTER(1) FOR MIXED DATA
  WITH DEFAULT NULL
        add STATS01 BIGINT
  WITH DEFAULT NULL
  $!
  if tsSta == "44 STATS01" | tsSta == "37 NAME" then $@=¢
       -- v11 columns
        add UPDATESIZE BIGINT
  WITH DEFAULT NULL
        add LASTDATACHANGE TIMESTAMP (6) WITHOUT TIME ZONE
  WITH DEFAULT NULL
  $! else if tsSta \== "46 LASTDATACHANGE" then $@¢
      call err 'bad s100447.tReoRunTsStats:' tsSta
  $!
  $$ ;
$! else if $mig == 63 then $@=¢
  alter TABLE s100447.tReoRunIXStats
     drop constraint primaryKey ;
  drop          INDEX s100447.iReoRunIXStats1;
  CREATE UNIQUE INDEX s100447.iReoRunIXStats1
    ON s100447.tReoRunIXStats
     (tst asc, rng asc, partition asc, isoBid asc, instance)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
  alter TABLE s100447.tReoRunIXStats
     add constraint primaryKey primary key
          (tst, rng, partition, isobid, instance)
;
  alter TABLE s100447.tReoRunTSStats
     drop constraint primaryKey ;
  drop          INDEX s100447.iReoRunTSStats1;
  CREATE UNIQUE INDEX s100447.iReoRunTSStats1
    ON s100447.tReoRunTSStats
     (tst asc, rng asc, partition asc, instance asc)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
  alter TABLE s100447.tReoRunTSStats
     add constraint primaryKey primary key
         (tst, rng, partition, instance)
;
$!
if $mig << 59 then $@=¢
  CREATE TABLE s100447.tReoTSParms
  (
      PRIO       SMALLINT NOT NULL WITH DEFAULT 20,
          CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
      DB         CHAR(8) NOT NULL,
      TS         CHAR(8) NOT NULL,
      PARTVON    smallINT NOT NULL WITH DEFAULT,
          CONSTRAINT PARTVON CHECK (PARTVON >= 0),
      PARTBIS    smallINT NOT NULL WITH DEFAULT,
          CONSTRAINT PARTBIS CHECK (PARTBIS <= 9999
                                AND PARTBIS >= PARTVON),
      GUVON      DATE NOT NULL WITH DEFAULT,
      GUBIS      DATE NOT NULL WITH DEFAULT '31.12.9999',
      REMARK               CHAR(80) FOR SBCS DATA NOT NULL,
      REORG      CHAR(12) FOR SBCS DATA WITH DEFAULT NULL,
          CONSTRAINT REORG
              CHECK (REORG IN ('ALWAYS', 'NEVER', 'THRESHOLD')),
      UNCLUST              INTEGER WITH DEFAULT NULL,
      clustRatio           INTEGER WITH DEFAULT NULL,
      FARINDREF            INTEGER WITH DEFAULT NULL,
      NEARINDREF           INTEGER WITH DEFAULT NULL,
      EXTENTS              SMALLINT WITH DEFAULT NULL,
      REORGDAYS            INTEGER WITH DEFAULT NULL,
          CONSTRAINT reorgDays
              CHECK (reorgDays between 1 and 99999),
      INSERTS              INTEGER WITH DEFAULT NULL,
      UPDATES              INTEGER WITH DEFAULT NULL,
      DELETES              INTEGER WITH DEFAULT NULL,
      advisory             CHAR(1) WITH DEFAULT NULL,
          CONSTRAINT advisory
              CHECK (advisory IN ('0', '1')),
      datasize             INTEGER WITH DEFAULT NULL,
      pageSave             INTEGER WITH DEFAULT NULL,
      rangeI0              INTEGER WITH DEFAULT NULL,
      parallel             smallInt WITH DEFAULT NULL,
      updTst               TIMESTAMP NOT NULL with default
      )
    IN Db2Reo.AReoTPA
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  CREATE UNIQUE INDEX s100447.IReoTSParms
    ON s100447.tReoTSParms
     (PRIO              ASC,
      DB                ASC,
      TS                ASC,
      PARTVON           ASC,
      GUBIS             ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
  ;
  LABEL ON TABLE s100447.tReoTSParms
    IS 'TS Thresholds: Defs/Ausnahmen'
  ;
  COMMENT ON TABLE s100447.tReoTSParms is
            'Default- und Spezial-Schwellwerte für TS Reorgs'
  ;
  LABEL ON s100447.tReoTSParms
    ( PRIO                is 'Prioritaet: tiefste=0=Default' ,
      DB                  is 'Datenbank Name'                ,
      TS                  is 'TableSpace Name'               ,
      PARTVON             is 'Partition von'  ,
      PARTBIS             is 'Partition bis'  ,
      GUVON               is 'Gueltig von'                   ,
      GUBIS               is 'Gueltig bis'                   ,
      REORG               is 'ALWAYS,NEVER,THRESHOLD'        ,
      UNCLUST             is 'Schwellwert unclustered %'     ,
      clustRatio          is 'Schwellwert clustRatio % '     ,
      FARINDREF           is 'SchwWe overflow far (>16 pg) %',
      NEARINDREF          is 'SchwWe overflow near(<16 pg) %',
      EXTENTS             is 'SchwWe Extents pro TS/Part'    ,
      REORGDAYS           is 'Schwellwert Anzahl Tage'       ,
      INSERTS             is 'Schwellwert inserts %'         ,
      UPDATES             is 'Schwellwert updates %'         ,
      DELETES             is 'Schwellwert deletes %'         ,
      advisory            is 'reorg bei AREO* 1/0'           ,
      datasize            is 'Schwellwert dataSize < %'      ,
      pageSave            is 'Schwellwert pageSave < %'      ,
      RangeI0             is 'Range Reo time > % i0time'     ,
      parallel            is 'max parllele parts reorg'     ,
      updTst              is 'letzte Aenderung'              ,
      REMARK              is 'Begründung (Freitext)'
    )
;
  CREATE TABLE s100447.tReoTSParmsHist
      as (select e.*, ' ' updOp,
                 current timestamp endTst, ' ' endOp
              from s100447.tReoTSParms e
         ) with no data
    IN Db2Reo.AReoTPH
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  LABEL ON TABLE s100447.tReoTSParmsHist
    IS 'History von tReoTSParms'
  ;
  LABEL ON s100447.tReoTSParmsHist
    ( updTst              is 'activation timestamp'
    , updOp               is 'activation operation (i,u)'
    , endTst              is 'deactivation timestamp'
    , endOp               is 'deactivation operation (u,d)'
    )
  ;
  CREATE UNIQUE INDEX s100447.IReoTSParmsHist
    ON s100447.tReoTSParmsHist
     (PRIO              ASC,
      DB                ASC,
      TS                ASC,
      partVon           ASC,
      guBis             ASC,
      updTst            ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G;
    commit;
$!
if $mig >>= 54 & $mig << 59 then $@=¢
$=par =- if($mig>>570,'parallel','case when 1=0 then 7 else null end')
 -- delete from s100447.tReoTSParms;
    insert into s100447.tReoTSParms
        select  PRIO
              , DB
              , TS
              , PARTVON
              , PARTBIS
              , GUVON
              , GUBIS
              , REMARK
              , REORG
              , UNCLUST
              , case when 1=0 then 7 else null end  -- clustRatio
              , FARINDREF
              , NEARINDREF
              , EXTENTS
              , REORGDAYS
              , INSERTS
              , UPDATES
              , DELETES
              , ADVISORY
              , DATASIZE
              , PAGESAVE
              , RANGEI0
              , $par -- parallel
              , UPDTST
            from s100447.tReoTSParmsOld
  ;
select count(*) from s100447.tReoTSParms;
select count(*) from s100447.tReoTSParmsOld;
$=par =- if($mig==571, 'parallel','case when 1=0 then 7 else null end')
 -- delete from s100447.tReoTSParmsHist ;
    insert into s100447.tReoTSParmsHist
        select  PRIO
              , DB
              , TS
              , PARTVON
              , PARTBIS
              , GUVON
              , GUBIS
              , REMARK
              , REORG
              , UNCLUST
              , case when 1=0 then 7 else null end -- clustRatio
              , FARINDREF
              , NEARINDREF
              , EXTENTS
              , REORGDAYS
              , INSERTS
              , UPDATES
              , DELETES
              , ADVISORY
              , DATASIZE
              , PAGESAVE
              , RANGEI0
              , $par   -- parallel
              , UPDTST
              , UPDOP
              , ENDTST
              , ENDOP
            from s100447.tReoTSParmsHistOld
  ;
   select count(*) from s100447.tReoTSParmsHist;
   select count(*) from s100447.tReoTSParmsHistOld;
   commit ;
$! else if $mig == 44 then $@=¢
   insert into s100447.tReoTSParms
   (      PRIO,   DB,  TS, partVon, partBis,
   guVon, guBis, REORG,
          unclust, FARINDREF, nearIndRef, extents, reorgdays,
          inserts, updates, deletes,
          remark
   )   select
          PRIO,   DB,  TS, min(partVon, 9999), min(partBis, 9999),
          guVon, guBis, REORG,
          unclust, FARINDREF, nearIndRef, extents,
          min(max(reorgDays, 1), 99999),
          inserts, updates, deletes,
          left(remark, 80)
       from s100447.tRtsReoTSException
       where db <> '*' or ts <> '*'
   ;
$! else if $mig >> 0 & $mig << 59 then $@¢
    call err 'migration von mig='$mig 'noch nicht implementiert5'
$!
if $mig << 59 then $@=¢
  TERMINATOR? ;
  create trigger s100447.tReoTSParmsBefIns
      no cascade before insert on s100447.tReoTSParms
      referencing New as n
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.tReoTSParmsBefUpd
      no cascade before update on s100447.tReoTSParms
      referencing New as n Old as o
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.tReoTSParmsAftIns
      after  insert on s100447.tReoTSParms
      referencing New_table as n
      for each statement mode db2sql begin atomic
           insert into s100447.tReoTSParmsHist
               select n.*, 'i', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.tReoTSParmsAftUpdSt
      after  update on s100447.tReoTSParms
      referencing New as n old as o
      for each row mode db2sql begin atomic
           update s100447.tReoTSParmsHist h
               set endTst = n.updTst, endOp = 'u'
                   where   h.PRIO    = o.PRIO
                       and h.DB      = o.DB
                       and h.TS      = o.TS
                       and h.partVon = o.partVon
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  create trigger s100447.tReoTSParmsAftUpd
      after  update on s100447.tReoTSParms
      referencing New_table as n old_table as o
      for each statement mode db2sql begin atomic
           insert into s100447.tReoTSParmsHist
               select n.*, 'u', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.tReoTSParmsAftDelSt
      after  delete on s100447.tReoTSParms
      referencing          old as o
      for each row mode db2sql begin atomic
           update s100447.tReoTSParmsHist h
               set endTst = current timestamp, endOp = 'd'
                   where   h.PRIO    = o.PRIO
                       and h.DB      = o.DB
                       and h.TS      = o.TS
                       and h.partVon = o.partVon
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
   TERMINATOR; ?
$!
if $mig == 0 then $@=¢
   insert into s100447.tReoTSParms
   (      PRIO,   DB,  TS, partVon, partBis, REORG,
          unclust, clustRatio,FARINDREF, nearIndRef, extents, reorgdays,
          inserts, updates, deletes,
          advisory, dataSize, pageSave, RangeI0, parallel,
          remark
   )   values (
               0,  '*',  '*',       0,     9999, 'THRESHOLD',
              10,   90,    5,       5,     500,      365,
          999999,  999999,  999999,
             '1',      50,       5,   200, 7  ,
          'globale default Schwellwerte'
   )
   ;
$! else if $mig >>= 54 & $mig << 59 then $@=¢
update s100447.tReoTSParms set parallel = 7
    where prio = 0 and db = '*' and ts = '*' and parallel is null;
update s100447.tReoTSParms set clustRatio = 90
    where prio = 0 and db = '*' and ts = '*' and clustRatio is null;
$!
$@=¢
commit;
-- select * from s100447.tReoTSParms ;
$!
if $mig == 0 then $@=¢
  CREATE TABLESPACE aReoIPA
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255;

  CREATE TABLE s100447.TReoIXParms
  (
      PRIO       SMALLINT NOT NULL WITH DEFAULT 20,
          CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
      DB         CHAR(8) NOT NULL,
      TS         CHAR(8) NOT NULL,
      IX         CHAR(20) NOT NULL,
      PARTVON    INT NOT NULL WITH DEFAULT,
          CONSTRAINT PARTVON CHECK (PARTVON >= 0),
      PARTBIS    INT NOT NULL WITH DEFAULT,
          CONSTRAINT PARTBIS CHECK (PARTBIS <= 9999
                                AND PARTBIS >= PARTVON),
      GUVON      DATE NOT NULL WITH DEFAULT,
      GUBIS      DATE NOT NULL WITH DEFAULT '31.12.9999',
      REMARK               CHAR(80) FOR SBCS DATA NOT NULL,
      REORG      CHAR(12) FOR SBCS DATA WITH DEFAULT NULL,
          CONSTRAINT REORG
              CHECK (REORG IN ('ALWAYS', 'NEVER', 'THRESHOLD')),
      PAGESPLITS           INTEGER WITH DEFAULT NULL,
      EXTENTS              SMALLINT WITH DEFAULT NULL,
      REORGDAYS            INTEGER WITH DEFAULT NULL,
          CONSTRAINT reorgDays
              CHECK (reorgDays between 1 and 99999),
      INSERTS              INTEGER WITH DEFAULT NULL,
      DELETES              INTEGER WITH DEFAULT NULL,
      PSEUDODEL            INTEGER WITH DEFAULT NULL,
      updTst               TIMESTAMP NOT NULL WITH DEFAULT
      )
    IN Db2Reo.aReoIPA
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
;
  LABEL ON TABLE s100447.TReoIXParms
    IS 'Ausnahmen+Defs RtsRorgs Index'
;
  COMMENT ON TABLE s100447.TReoIXParms
    IS 'diese Tabelle enthaelt die Default-Schwellwerte und die TS mit s
peziellen Schwellwerten für RTS-Reorgs fuer Indexe.'
;
  LABEL ON s100447.TReoIXParms
    ( PRIO                is 'Prioritaet: tiefste=0=Default' ,
      DB                  is 'Datenbank Name'                ,
      TS                  is 'TableSpace Name'               ,
      IX                  is 'Index Name'                    ,
      PARTVON             is 'Partition von'                 ,
      PARTBIS             is 'Partition bis'                 ,
      GUVON               is 'Gueltig von'                   ,
      GUBIS               is 'Gueltig bis'                   ,
      REORG               is 'ALWAYS,NEVER,THRESHOLD'        ,
      PAGESPLITS          is 'Schwellwert ReorgLeafFar %'    ,
      EXTENTS             is 'SchwWe Extents pro TS/Part'    ,
      REORGDAYS           is 'Schwellwert Anzahl Tage'       ,
      INSERTS             is 'Schwellwert inserts %'         ,
      DELETES             is 'Schwellwert deletes %'         ,
      PseudoDel           is 'Schwellwert PseudoDeletes %'   ,
      updTst              is 'letzter update Timestamp'      ,
      REMARK              is 'Begründung (Freitext)'
    ) ;

  CREATE UNIQUE INDEX s100447.IReoIXParms
    ON s100447.TReoIXParms
     (PRIO              ASC,
      DB                ASC,
      TS                ASC,
      IX                ASC,
      PARTVON           ASC,
      GUBIS             ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
  ;
        --migr53
--insert into s100447.tReoIxParms
--    select * from tstRts.tRtsReoIxException
--;
  CREATE TABLESPACE aReoIPH
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
  CREATE TABLE s100447.TReoIXParmsHist
      as (select e.*, ' ' updOp,
                 current timestamp endTst, ' ' endOp
              from s100447.TReoIXParms e
         ) with no data
    IN Db2Reo.aReoIPH
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  LABEL ON TABLE s100447.TReoIXParmsHist
    IS 'Ausnahmen+Defs RtsReo History'
  ;
  LABEL ON s100447.TReoIXParmsHist
    ( updTst              is 'activation timestamp'
    , updOp               is 'activation operation (i,u)'
    , endTst              is 'deactivation timestamp'
    , endOp               is 'deactivation operation (u,d)'
    )
  ;
  CREATE UNIQUE INDEX s100447.IReoIXParmsHist
    ON s100447.TReoIXParmsHist
     (PRIO              ASC,
      DB                ASC,
      TS                ASC,
      IX                ASC,
      PARTVON           ASC,
      GUBIS             ASC,
      updTst            ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
;
        --migr53
--insert into s100447.tReoIxParmsHist
--    select * from tstRts.tRtsReoIxExceptionHist
--;
  TERMINATOR? ;
  create trigger s100447.TReoIXParmsBefIns
      no cascade before insert on s100447.TReoIXParms
      referencing New as n
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.TReoIXParmsBefUpd
      no cascade before update on s100447.TReoIXParms
      referencing New as n Old as o
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.TReoIXParmsAftIns
      after  insert on s100447.TReoIXParms
      referencing New_table as n
      for each statement mode db2sql begin atomic
           insert into s100447.TReoIXParmsHist
               select n.*, 'i', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.TReoIXParmsAftUpdSt
      after  update on s100447.TReoIXParms
      referencing New as n old as o
      for each row mode db2sql begin atomic
           update s100447.TReoIXParmsHist h
               set endTst = n.updTst, endOp = 'u'
                   where   h.PRIO    = o.PRIO
                       and h.DB      = o.DB
                       and h.TS      = o.TS
                       and h.IX      = o.IX
                       and h.partVon = o.partVon
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  create trigger s100447.TReoIXParmsAftUpd
      after  update on s100447.TReoIXParms
      referencing New_table as n old_table as o
      for each statement mode db2sql begin atomic
           insert into s100447.TReoIXParmsHist
               select n.*, 'u', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.TReoIXParmsAftDelSt
      after  delete on s100447.TReoIXParms
      referencing          old as o
      for each row mode db2sql begin atomic
           update s100447.TReoIXParmsHist h
               set endTst = current timestamp, endOp = 'd'
                   where   h.PRIO    = o.PRIO
                       and h.DB      = o.DB
                       and h.TS      = o.TS
                       and h.IX      = o.IX
                       and h.partVon = o.partVon
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  TERMINATOR; ?
      --migr44 --migr00
   insert into s100447.tReoIXParms
   (      PRIO,   DB,  TS,   IX, partVon, partBis,
          REORG,     pageSPlits, extents, reorgDays,
          inserts, deletes, pseudoDel,
          remark
   )   values (
          0,      '*', '*', '*', 0,         9999,
          'THRESHOLD',  10,          500,       365,
           999999,  999999,    999999,
          'globale default Schwellwerte'
   )
   ;
--migr44
-- insert into s100447.tReoIXParms
-- (      PRIO,   DB,  TS,   IX,
--        partVon, partBis, guVon, guBis,
--        REORG,     pageSPlits, extents, reorgDays,
--        inserts, deletes, pseudoDel,
--        remark
-- )   select
--       20,      db , ts ,  ix,
--        min(partVon, 9999), min(partBis, 9999), guVon, guBis,
--        REORG,     pageSPlits, extents,
--        min(max(reorgDays, 1), 99999),
--        inserts, deletes, pseudoDel,
--        left(remark, 80)
--     from s100447.tRtsReoIXException
--     where db <> '*' or ts <> '*' or ix <> '*'
-- --    where left(dbName, 1) not in ('1')
-- ;
--lect * from s100447.tReoIXParms
;

  CREATE TABLESPACE AREOJPA
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
  CREATE TABLE s100447.TReoJobParms
  (
      PRIO       SMALLINT NOT NULL WITH DEFAULT 20,
          CONSTRAINT PRIO CHECK (PRIO >= 0 AND PRIO <= 99),
      Job        CHAR(8) NOT NULL,
      GUVON      DATE NOT NULL WITH DEFAULT,
      GUBIS      DATE NOT NULL WITH DEFAULT '31.12.9999',
      REMARK               CHAR(80) FOR SBCS DATA NOT NULL,
      tsTime     int WITH DEFAULT NULL,
      ixTime     int WITH DEFAULT NULL,
      uncompDef  real with default null,
      uncompI0   real with default null,
      ixSpae     char(1) with default null,
          CONSTRAINT ixSpae CHECK (ixSpae in ('i', 't', 'n')),
      stats      char(1) with default null,
          CONSTRAINT stats  CHECK (stats  in ('n', 'j', 'p', 's')),
      updTst               TIMESTAMP NOT NULL with default
      )
    IN Db2Reo.AREOJPA
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  CREATE UNIQUE INDEX s100447.IReoJobParms
    ON s100447.TReoJobParms
     (PRIO              ASC,
      job               ASC,
      GUBIS             ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
  ;
  LABEL ON TABLE s100447.TReoJobParms
    IS 'Ausnahmen+Defaults RtsReo Job'
  ;
  COMMENT ON TABLE s100447.TReoJobParms
    IS 'diese Tabelle enthaelt die Default-Schwellwerte und die Jobs mit
 speziellen Schwellwerten für RTS-Reorgs.'
  ;
  LABEL ON s100447.TReoJobParms
    ( PRIO                is 'Prioritaet: tiefste=0=Default' ,
      job                 is 'Job Name'                      ,
      GUVON               is 'Gueltig von'                   ,
      GUBIS               is 'Gueltig bis'                   ,
      tsTime              is 'max ReoTime fuer TS in secs'   ,
      ixTime              is 'max ReoTime fuer IX in secs'   ,
      uncompDef           is 'max uncompressed data DPSI'   ,
      uncompI0            is 'max uncompressed data Default'   ,
      ixSpae              is 'ix nach spaeter: ix, ts, no'   ,
      stats               is 'statsColl: job,part,stats,no'  ,
      updTst              is 'letzte Aenderung'              ,
      REMARK              is 'Begruendung (Freitext)'
    )
;
           --migr53
-- insert into s100447.tReoJobParms
--     select PRIO, job, guvon, gubis, remark, tsTime, ixTime,
--            8e10/5, 8e10, translate(ixSpae, 'itn','ITN'), 's', updTst
--          from tstRts.tRtsReoJobException
-- ;
  CREATE TABLESPACE AREOJPH
    IN Db2Reo
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 10
    GBPCACHE CHANGED
    TRACKMOD YES
    SEGSIZE 64
    BUFFERPOOL BP2
    LOCKSIZE ANY
    LOCKMAX SYSTEM
    CLOSE YES
    COMPRESS YES
    CCSID      UNICODE
    DEFINE YES
    MAXROWS 255
  ;
  CREATE TABLE s100447.TReoJobParmsHist
      as (select e.*, ' ' updOp,
                 current timestamp endTst, ' ' endOp
              from s100447.TReoJobParms e
         ) with no data
    IN Db2Reo.AREOJPH
    AUDIT NONE
    DATA CAPTURE NONE
    CCSID      UNICODE
    NOT VOLATILE
  ;
  LABEL ON TABLE s100447.TReoJobParmsHist
    IS 'Ausnahmen+Defs RtsReo History'
  ;
  LABEL ON s100447.TReoJobParmsHist
    ( updTst              is 'activation timestamp'
    , updOp               is 'activation operation (i,u)'
    , endTst              is 'deactivation timestamp'
    , endOp               is 'deactivation operation (u,d)'
    )
  ;
  CREATE UNIQUE INDEX s100447.IReoJobParmsHist
    ON s100447.TReoJobParmsHist
     (PRIO              ASC,
      job               ASC,
      guBis             ASC,
      updTst            ASC
     )
    USING STOGROUP GSMS
    PRIQTY -1 SECQTY -1
    ERASE  NO
    FREEPAGE 0 PCTFREE 5
    GBPCACHE CHANGED
    CLUSTER
    BUFFERPOOL BP1
    CLOSE YES
    COPY NO
    DEFINE YES
    PIECESIZE 2 G
;
          --migr53
-- insert into s100447.tReoJobParmsHist
--     select PRIO, job, guvon, gubis, remark, tsTime, ixTime,
--            uncompSz/5, uncompSz, ixSpae, stats,
--            updTst, updOp, endTst, endOp
--         from tstRts.tRtsReoJobExceptionHist
--;
  TERMINATOR? ;
  create trigger s100447.TReoJobParmsBefIns
      no cascade before insert on s100447.TReoJobParms
      referencing New as n
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.TReoJobParmsBefUpd
      no cascade before update on s100447.TReoJobParms
      referencing New as n Old as o
      for each row mode db2sql begin atomic
           set updTst = current timestamp;
           end
  ?
  create trigger s100447.TReoJobParmsAftIns
      after  insert on s100447.TReoJobParms
      referencing New_table as n
      for each statement mode db2sql begin atomic
           insert into s100447.TReoJobParmsHist
               select n.*, 'i', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.TReoJobParmsAftUpdSt
      after  update on s100447.TReoJobParms
      referencing New as n old as o
      for each row mode db2sql begin atomic
           update s100447.TReoJobParmsHist h
               set endTst = n.updTst, endOp = 'u'
                   where   h.PRIO    = o.PRIO
                       and h.job     = o.job
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  create trigger s100447.TReoJobParmsAftUpd
      after  update on s100447.TReoJobParms
      referencing New_table as n old_table as o
      for each statement mode db2sql begin atomic
           insert into s100447.TReoJobParmsHist
               select n.*, 'u', '9999-12-31-23.59.59', ' '
                   from n
           ;
           end
  ?
  create trigger s100447.TReoJobParmsAftDelSt
      after  delete on s100447.TReoJobParms
      referencing          old as o
      for each row mode db2sql begin atomic
           update s100447.TReoJobParmsHist h
               set endTst = current timestamp, endOp = 'd'
                   where   h.PRIO    = o.PRIO
                       and h.job     = o.job
                       and h.guBis   = o.guBis
                       and h.updTst  = o.updTst
           ;
           end
  ?
  TERMINATOR; ?
       --migr44 --migr00
   insert into s100447.tReoJobParms
   (      PRIO,   job, tsTime, ixTime, uncompDef, uncompI0,
          ixSpae, stats, remark
   )   values (
               0,  '*', 18000,  10800,     1e11/5,    1e11,  't',   's',
          'globale default Schwellwerte'
   )
   ;
-- select * from s100447.tReoJobParms ;
--;
  CREATE TABLESPACE ADBSTA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tDbState
     (db                   CHAR(12) NOT NULL,
      sp                   CHAR(12) NOT NULL,
      paFr                 INTEGER NOT NULL,
      paTo                 INTEGER NOT NULL,
      ty                   char(1) not null,
      sta                  char(20) not null
     )
    IN Db2Reo.ADBSTA
    CCSID UNICODE;
--
  LABEL ON TABLE s100447.TDbState IS 'spaceStatus';
--
  COMMENT ON TABLE s100447.tDbState IS 'space status restrict/advisory';
--
  LABEL ON s100447.tDbState
   (db IS 'db name',
    sp IS 'name of index/tablespace',
    paFr is 'partition from',
    paTo is 'partition to',
    ty is 'type: Ix Tb Db @',
    sta is 'status of db or space'
   );
  CREATE UNIQUE INDEX s100447.iDbStateA1
    ON s100447.tDbState
     (db asc ,
      sp asc ,
      paFr asc
     )
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1;
  insert into s100447.tDbState values (
      '', '', 0, 0, '@', '');
  CREATE TABLESPACE AREORJA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tReoRunJob
     (tst                  timestamp NOT NULL,
      constraint primaryKey primary key (tst),
      job                  CHAR(8) NOT NULL,
      ty                   char(2) NOT NULL,
      tyInp                char(2) NOT NULL,
      sta                  char(1) not null,
      eoj                  timestamp
     )
    IN Db2Reo.AREORJA
    CCSID UNICODE;
--
  COMMENT ON TABLE s100447.tReoRunJob IS 'rtsReo Job Status';
  LABEL ON TABLE s100447.tReoRunJob IS 'rtsReo Job Status';
  LABEL ON s100447.tReoRunJob
   (tst   IS 'creation timestamp primaryKey',
    job   IS 'Job',
    ty    is 'rtsReo Type: TS or IX',
    tyInp is 'rtsReo Type from jobParameter',
    sta   is 'Status: r=reorg, s=r+Spa, 0',
    eoj   is 'timestamp >= end of job'
   );
  CREATE UNIQUE INDEX s100447.iReoRunJob1
    ON s100447.tReoRunJob
     (tst asc)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
  CREATE UNIQUE INDEX s100447.iReoRunJob2
    ON s100447.tReoRunJob
     (job asc, tst desc)
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
        --migr53
--insert into s100447.tReoRunJob
--    select * from tstRts.tRtsReoRunJob
--        where job <> '&late'
--;
--commit
--;
  CREATE TABLESPACE AREORPA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tReoRunPart
     (tst                  timestamp NOT NULL,
      constraint parent foreign key (tst)
           references s100447.tReoRunJob on delete cascade,
      rng                  int       not null,
      part                 smallInt  not null,
      constraint primaryKey primary key (tst, rng, part),
      paVon                smallInt  not null,
      paBis                smallInt  not null,
      rngI0                int       not null,
      dbId                 smallInt  not null,
      spId                 smallInt  not null,
      ty                   char(1)   not null,
      sta                  char(1)   not null,
      reason               char(50)  not null,
      db                   char(8)   not null,
      sp                   char(8)   not null,
      reoTst               timestamp,
      reoTime              int
     )
    IN Db2Reo.AREORPA
    CCSID UNICODE;
--
  COMMENT ON TABLE s100447.tReoRunPart IS 'rtsReo Job Parts';
  LABEL ON TABLE s100447.tReoRunPart IS 'rtsReo Job Parts';
  LABEL ON s100447.tReoRunPart
   (tst   IS 'creation timestamp Job',
    rng   IS 'range id',
    part  IS 'partition',
    paVon IS 'range partition von',
    paBis IS 'range partition bis',
    rngI0 IS 'range für i0',
    dbId  IS 'dbId',
    spId  is 'psId or isoBid',
    ty    is 't=TS, i=Ix',
    sta   is 'r=reorg, s=Spa, 0=i0',
    reason is 'reason of reorg',
    db    is 'database',
    sp    is 'table/indexSpace',
    reoTst is 'timestamp of end of reorg'
   );
  CREATE UNIQUE INDEX s100447.iReoRunPart1
    ON s100447.tReoRunPart
     (tst asc, rng asc, part asc)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
--insert into s100447.tReoRunPart
--    select * from tstRts.tRtsReoRunPart
--;
--commit
--;
  CREATE TABLESPACE AREORTA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tReoRunTSStats
     as (select current timestamp tst, int(1) rng, s.*
             from sysibm.sysTableSpaceStats s
     )  with no data
    IN Db2Reo.AREORTA
    CCSID UNICODE;
  CREATE UNIQUE INDEX s100447.iReoRunTSStats1
    ON s100447.tReoRunTSStats
     (tst asc, rng asc, partition asc)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
;
  alter TABLE s100447.tReoRunTSStats
     add constraint primaryKey primary key (tst, rng, partition);
  alter TABLE s100447.tReoRunTSStats
     add constraint parent foreign key (tst, rng, partition)
           references s100447.tReoRunPart on delete cascade
;
        --migr53
--insert into s100447.tReoRunTSStats
--    select * from tstRts.tRtsReoRunTSStats
--;
--commit
--;

  CREATE TABLESPACE AREORIA
    IN Db2Reo
    USING STOGROUP GSMS
    SEGSIZE 64
    CCSID UNICODE
    BUFFERPOOL BP2
    LOCKSIZE ANY
    COMPRESS YES;
  CREATE TABLE s100447.tReoRunIXStats
     as (select current timestamp tst, int(1) rng, s.*
             from sysibm.sysIndexSpaceStats s
     )  with no data
    IN Db2Reo.AREORIA
    CCSID UNICODE;
  CREATE UNIQUE INDEX s100447.iReoRunIXStats1
    ON s100447.tReoRunIXStats
     (tst asc, rng asc, partition asc, isoBid asc)
    CLUSTER
    USING STOGROUP GSMS
    BUFFERPOOL BP1
 ;
  alter TABLE s100447.tReoRunIXStats
     add constraint primaryKey primary key (tst,rng,partition,isobid);
  alter TABLE s100447.tReoRunIXStats
     add constraint parent foreign key (tst, rng, partition)
           references s100447.tReoRunPart on delete cascade
;
        --migr53
--insert into s100447.tReoRunIXStats
--    select * from tstRts.tRtsReoRunIXStats
--;
commit
;
$!
if $mig == 59 then $@=¢
-- mig==59: migrate stats tables from db2v9 to db2v10 format
  alter TABLE s100447.tReoRunTSStats
    add REORGCLUSTERSENS     BIGINT WITH DEFAULT NULL;
  alter TABLE s100447.tReoRunTSStats
    add REORGSCANACCESS      BIGINT WITH DEFAULT NULL;
  alter TABLE s100447.tReoRunTSStats
    add REORGHASHACCESS      BIGINT WITH DEFAULT NULL;
  alter TABLE s100447.tReoRunTSStats
    add HASHLASTUSED         DATE WITH DEFAULT NULL;
  alter TABLE s100447.tReoRunTSStats
    add DRIVETYPE            CHAR(3) FOR MIXED DATA NOT NULL
          WITH DEFAULT 'HDD';
  alter TABLE s100447.tReoRunTSStats
    add LPFACILITY           CHAR(1) FOR MIXED DATA WITH DEFAULT NULL;
  alter TABLE s100447.tReoRunTSStats
    add STATS01              BIGINT WITH DEFAULT NULL;
  alter TABLE s100447.tReoRunIXStats
    add REORGINDEXACCESS     BIGINT WITH DEFAULT NULL;
  alter TABLE s100447.tReoRunIXStats
    add DRIVETYPE            CHAR(3) FOR MIXED DATA NOT NULL
          WITH DEFAULT 'HDD';
  alter TABLE s100447.tReoRunIXStats
    add STATS101             BIGINT WITH DEFAULT NULL
  ;
  commit ;
$!
$/table/
if $fun == 'v' | $fun == 't' then $@=/view/
------------------------------------------------------------------------
-- view vReoTSSchwelle: Schwellwerte pro Catalog Objekt
--      und alle später benötigen Werte aus Catalog Tabellen
--
CREATE VIEW S100447.vReoTSSchwelle    AS
with sw as
(
      SELECT
          CASE WHEN POSSTR(DB,  '*') > 0
               THEN POSSTR(DB,  '*') - 1 ELSE 8 END DBLEN,
          CASE WHEN POSSTR(TS,  '*') > 0
               THEN POSSTR(TS,  '*') - 1 ELSE 8 END TSLEN,
          substr(right('00' || STRIP(CHAR(PRIO)), 2), 1, 2) prC2,
          e.*
      FROM s100447.TReoTSParms e
)
select p.dbName db, p.tsName ts, p.partition part,
      min(s.dbId) dbid, min(s.psId) psId,
      min(s.pgSize) pgSize, min(s.partitions) partitions,
      min(s.clone) clone, min(s.instance) base,
      min(p.createdTS) createdTS, min(p.compress) compress,
      min(p.pageSave) pageSave ,
      min(smallint(round(
          case when p.freePage > 0 then p.freePage/real(1+p.freePage)
                                   else 1 end
           * min(100 - p.pctFree,
               case when s.maxrows > 0 and p.avgRowLen > 0
                   then real(s.maxrows) * p.avgRowLen / pgSize/10.24
                   else 100 end)
           ,0))) pctLoad,
           substr(max(prC2 || char(reorg      )), 3)   swReorg     ,
       int(substr(max(prC2 || char(unclust    )), 3)) swUnclust    ,
       int(substr(max(prC2 || char(clustRatio )), 3)) swClustRatio ,
       int(substr(max(prC2 || char(sw.FARINDREF )), 3)) swFARINDREF ,
       int(substr(max(prC2 || char(sw.NEARINDREF)), 3)) swNEARINDREF,
       int(substr(max(prC2 || char(sw.EXTENTS )), 3)) swEXTENTS    ,
       int(substr(max(prC2 || char(REORGDAYS  )), 3)) swREORGDAYS  ,
       int(substr(max(prC2 || char(INSERTS    )), 3)) swINSERTS    ,
       int(substr(max(prC2 || char(UPDATES    )), 3)) swUPDATES    ,
       int(substr(max(prC2 || char(DELETES    )), 3)) swDELETES    ,
           substr(max(prC2 ||     advisory     ), 3)   swAdvisory  ,
       int(substr(max(prC2 || char(datasize   )), 3)) swDatasize   ,
       int(substr(max(prC2 || char(sw.pageSave )), 3)) swPageSave  ,
       int(substr(max(prC2 || char(rangeI0  )), 3))    swRangeI0   ,
       smallint(substr(max(prC2 || char(parallel  )), 3)) parallel
    from
        SYSIBM.SYSTABLEPart    p
        left join SYSIBM.SYSTABLESPACE   S
            on s.dbName = p.dbName and s.name = p.tsName
        left join sw
        on  left(p.dbname, dbLen) = left(db, dbLen)
        and left(p.tsName, tsLen) = left(ts, tsLen)
        and p.partition between partVon and partBis
        and current date between guVon and guBis
    group by p.dbName, p.tsName, p.partition
;
------------------------------------------------------------------------
-- RTS-Stats Werte pro TS-Partition zu Schwellen joinen
--     Kolonnen Namen: sw*: Schwellen, ix* selbe IndexPartion,
--                     i0* nicht part. Indexes für part. TS
--
create view S100447.vReoTsStats as
with ix as -- join ix und i0
(
  select s.db, s.ts, s.part,
      min(s.dbId) ixDbid, min(s.psId) ixPsId,
      min(s.pgSize) pgSize, min(s.partitions) partitions,
      min(s.clone) clone, min(s.base) base,
      min(s.createdTS) createdTS, min(s.compress) compress,
      min(s.pageSave  )  pageSave ,
      min(s.pctLoad   )  pctLoad ,
      min(swReorg     )  swReorg     ,
      min(swUnclust   )  swUnclust   ,
      min(swClustRatio)  swClustRatio,
      min(swFARINDREF )  swFARINDREF ,
      min(swNEARINDREF)  swNEARINDREF,
      min(swEXTENTS   )  swEXTENTS   ,
      min(swREORGDAYS )  swREORGDAYS ,
      min(swINSERTS   )  swINSERTS   ,
      min(swUPDATES   )  swUPDATES   ,
      min(swDELETES   )  swDELETES   ,
      min(swAdvisory  )  swAdvisory  ,
      min(swDatasize  )  swDatasize  ,
      min(swPageSave  )  swPageSave  ,
      min(swRangeI0   )  swRangeI0   ,
      min(parallel    )  swParallel  ,
      min(substr(strip(t.creator) || '.' || strip(t.name), 1,30)) crTb,
      sum(case when j.partition= s.part then 1 else 0 end)
                                                               ixParts,
      sum(case when j.partition= s.part
          then totalEntries else 0 end)                          ixEnt,
      sum(case when j.partition= s.part
          then real(j.totalEntries)
               * log10(max(1e0, j.totalEntries)) else 0 end)  ixEntLog,
      sum(case when j.partition= s.part
          then real(j.space) * 1024 else 0 end)                  ixSpc,
      sum(case when j.partition= s.part
          then real(j.space) * 1024 * log10(
                  max(1e0, real(j.space) * 1024)) else 0 end) ixSpcLog,
      sum(case when j.partition= s.part
          then real(j.space) * 1024 * log10(
                  max(1e0, j.totalEntries)) else 0 end)    ixSpcLogEnt,
      max(case when j.partition= s.part
           then j.totalEntries else 0 end)                    ixEntMax,
      max(case when j.partition= s.part
           then real(j.totalEntries) * log10(
                  max(1e0, j.totalEntries)) else 0 end)    ixEntLogMax,
      max(case when j.partition= s.part
          then real(j.space) * 1024 else 0 end)              ixSpcMax,
      max(case when j.partition= s.part
          then real(j.space) * 1024 * log10(
              max(1e0, real(j.space) * 1024)) else 0 end)  ixSpcLogMax,
      max(case when j.partition= s.part
          then real(j.space) * 1024 * log10(
               max(1e0, j.totalEntries)) else 0 end)    ixSpcLogEntMax,

      sum(case when j.partition<>s.part then 1 else 0 end)
                                                               i0Parts,
      sum(case when j.partition<>s.part
          then totalEntries else 0 end)                          i0Ent,
      sum(case when j.partition<>s.part
          then real(j.totalEntries)
               * log10(max(1e0, j.totalEntries)) else 0 end)  i0EntLog,
      sum(case when j.partition<>s.part
          then real(j.space) * 1024 else 0 end)                  i0Spc,
      sum(case when j.partition<>s.part
          then real(j.space) * 1024 * log10(
                  max(1e0, real(j.space) * 1024)) else 0 end) i0SpcLog,
      sum(case when j.partition<>s.part
          then real(j.space) * 1024 * log10(
                  max(1e0, j.totalEntries)) else 0 end)    i0SpcLogEnt,
      max(case when j.partition<>s.part
          then j.totalEntries else 0 end)                    i0EntMax,
      max(case when j.partition<>s.part
          then real(j.totalEntries) * log10(
                  max(1e0, j.totalEntries)) else 0 end)    i0EntLogMax,
      max(case when j.partition<>s.part
          then real(j.space) * 1024 else 0 end)              i0SpcMax,
      max(case when j.partition<>s.part
          then real(j.space) * 1024 * log10(
              max(1e0, real(j.space) * 1024)) else 0 end)  i0SpcLogMax,
      max(case when j.partition<>s.part
          then real(j.space) * 1024 * log10(
               max(1e0, j.totalEntries)) else 0 end)    i0SpcLogEntMax,
      max(case when i.clustering <> 'Y' then -9
               when i.statstime < '2008-01-01-00.00.00' then -8
               when i.fullKeyCardf <  100 then -7
               when i.clusterratioF <= 0.0 then -6
               else clusterRatio end) clusterRatio
    from
        S100447.vReoTSSchwelle s
        left join sysIbm.sysTables  t
            on t.dbName = s.db  and t.tsName = s.ts
       --      and t.dbid = s.dbid
               and t.type = 'T'
        left join sysIbm.sysIndexes i
          on i.tbCreator = t.creator and i.tbName = t.name
       --       and s.db = i.dbName and s.dbId = i.dbId
        left join SYSIBM.SYSINDEXSPACESTATS j
        on      j.creator = i.creator and j.Name = i.name
            and j.dbName = i.dbName and j.indexSpace = i.indexSpace
            and j.dbId = i.dbId and j.isoBid = i.isoBid
       --   and j.dbId = s.dbId and j.dbName = s.db
            and j.creator = i.creator and j.Name = i.name
            and j.partition in (0, s.part)
            and (j.partition = 0
              or j.partition =  s.part)
    group by s.db, s.ts, s.part
) , tsPa as
(   -- join tsPart Stats and calculate first formulas
select  i0PARTS * 2.8568338 + i0SpcMax    * 1.4917387E-07
                            + i0SpcLogMax * 3.4002310E-09 i0Time,
        i.*,
        max(CAST(r.totalRows as REAL), 100) rRows,
        max(coalesce(r.reorgLasttime, i.createdTs)
           ,coalesce(r.loadRLasttime, i.createdTs)) lastBuilt,
        coalesce(real(r.datasize),
            real(r.nActive) * i.pgSize * 1024 ) dataSz,
        case when r.uncompressedDatasize > 0
                 and real(r.nActive) * i.pgSize * 102400
                       / min(max(100-i.pageSave, 3), 100)
                 between real(r.uncompressedDatasize) / 7
                     and real(r.uncompressedDatasize) * 7
             then real(r.uncompressedDatasize)
             else
                  real(r.nActive) * i.pgSize * 102400
                       / min(max(100-i.pageSave, 3), 100)
             end uncompSz,
        r.*
    from ix i
    left join sysIbm.sysTableSpaceStats r
        on      i.db = r.dbName and i.ts = r.name
           and  i.ixDbId = r.dbId and i.ixPsId = r.psId
           and  i.part = r.partition
) -- remaining formulas
select real(2.7397410 + 1 * 2.2918106) -- const + tsParts *
         + rRows * 1.1719944E-05
         + real(space) * (1024 * 4.1178398E-08)
         + uncompSz  * 4.7357392E-09
         + ixPARTS * 5.9228624
         + ixSPC * 1.1593550E-08
         + i0Time   reorgTime
      , tsPa.*
    from tsPa
;
------------------------------------------------------------------------
-- vReoTS: SchwellwertUeberschreitungen herausfinden
--            in riesigem case statement
--
create view S100447.vReoTS as
with ts1 as
(
select
    case
        when swReorg = 'NEVER' then 'no - reorgNever'
        when staDb.sta like 'RO%' or staDb.sta like 'STOP%'
                             then 'no - db status ' || strip(staDb.sta)
        when staTs.sta like 'RO%' or staTs.sta like 'STOP%'
                             then 'no - ts status ' || strip(staTs.sta)
        when ',' || strip(staTs.sta) || ',' like '%,REORP,%'
                  then 'pending reorp ' || strip(stats.sta)
        when ',' || strip(staTs.sta) || ',' like '%,AREOR,%'
                  then 'pending areor ' || strip(stats.sta)
        when swReorg = 'ALWAYS' then 'reorgAlways'
        when swAdvisory = '1'
             and ',' || strip(staTs.sta) || ',' like '%,AREO*,%'
                         then 'pending areo* ' || strip(staTs.sta)
        when dbName is null then 'rtsMissing'
        when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
                         then 'rtsNull'
        when rRows is null then 'rtsRowsNull'
        when totalRows < 0 then 'rtsRows ' || strip(char(totalRows))
                             || ' < 0'
        when REORGUNCLUSTINS > rRows / 100 * swUnclust
            then 'unclust ' || strip(char(REORGUNCLUSTINS)) || ' > '
                || strip(char(swUnclust)) || '% of ' || char(totalRows)
        when REORGFARINDREF > rRows / 100 * swFarindref
            then 'farIndRef ' || strip(char(reorgFarIndRef)) || ' > '
                || strip(char(swFarIndRef))||'% of '
                || strip(char(totalRows))
        when REORGNEARINDREF > rRows / 100 * swNearindref
            then 'nearIndRef '||strip(char(reorgnearIndRef)) || ' > '
                || strip(char(swNearIndRef))||'% of '
                || strip(char(totalRows))
        when r.extents         > swExtents
            then 'extents ' || strip(char(r.extents)) || ' > '
                || strip(char(swExtents))
        when r.dataSize >= 0 and r.dataSize
                 < real(nActive) * r.pgSize
                 * 0.1024 * pctLoad * swdatasize - 1e7
            then 'datasize ' || strip(char(real(r.datasize)))
                || ' < ' || strip(char(swdatasize)) || '% activeSz '
                || strip(char(real(nActive) * r.pgSize * 1024))
        when compress = 'Y' and pageSave < swpageSave
                and reorgInserts > rRows * .9 and rRows > 1e4
            then 'pagesave ' || strip(char(pagesave))
                || ' < ' || strip(char(swPageSave)) || ' % '
        when reorgInserts    > rRows / 100 * swInserts
            then 'inserts ' || strip(char(reorgInserts)) || ' > '
                || strip(char(swInserts)) || '% of '
                || strip(char(totalRows))
        when reorgUpdates    > rRows / 100 * swUpdates
            then 'updates ' || strip(char(reorgUpdates)) || ' > '
                || strip(char(swUpdates)) || '% of '
                || strip(char(totalRows))
        when reorgDeletes    > rRows / 100 * swDeletes
            then 'deletes ' || strip(char(reorgDeletes)) || ' > '
                || strip(char(swDeletes)) || '% of '
                || strip(char(totalRows))
        when clusterRatio >= 0 and totalRows > 1000
                and clusterRatio < swClustRatio
            then 'clusterRatio ' || strip(char(clusterRatio))
                || ' < ' || strip(char(swClustRatio))
        when CURRENT TIMESTAMP - swReorgDays days > lastBuilt
            then 'lastBuilt ' || char(date(lastBuilt)) || ' older '
                || strip(char(swReorgDays)) ||' reorgDays'
        else 'no - reorg not required'
    end reason,
    staTs.paFr, staTs.paTo, staTs.sta staTs, staDb.sta staDb,
    1 parts,
    r.*
    from S100447.vReoTsStats r
        left join    s100447.tDbState staTs
          ON      staTs.Ty        = 'T'
              and staTs.db        = r.db
              AND staTs.sp        = r.ts
              AND staTs.paFr     <= r.part
              AND staTs.paTo     >= r.part
        left join    s100447.tDbState staDb
          ON      staDb.Ty          = 'D'
              and staDb.db          = r.db
)
    -- importance anfügen
select smallint(case
            when reason = 'no - reorg not required' then  0
            when reason like 'no %'                then -1
            when reason like 'lastBuilt %'         then  3
            when reason like 'clusterRatio %'      then  3
            when reason like 'pending areo*%'      then  7
            when reason like 'pending %'           then 11
            when reason like 'reorgAlway%'         then  9
                                                   else  5
          end) importance ,
       ts1.*
    from ts1
;
------------------------------------------------------------------------
-- view vReoIXSchwelle: Schwellwerte pro Catalog Objekt
--      und alle später benötigen Werte aus Catalog Tabellen
--
create view S100447.vReoIXSchwelle as
with sw as
( select
          CASE WHEN POSSTR(DB,  '*') > 0
               THEN POSSTR(DB,  '*') - 1 ELSE 8 END DBLEN,
          CASE WHEN POSSTR(TS,  '*') > 0
               THEN POSSTR(TS,  '*') - 1 ELSE 8 END TSLEN,
          CASE WHEN POSSTR(IX,  '*') > 0
               THEN POSSTR(IX,  '*') - 1 ELSE 20 END IXLEN,
          substr(right('00' || STRIP(CHAR(PRIO)), 2), 1, 2) prC2,
          e.*
      from s100447.tReoIXParms e
)
select i.creator cr, i.name ix, p.partition part,
           substr(max(prC2 || char(reorg      )), 3)   swReorg     ,
       int(substr(max(prC2 || char(pageSplits )), 3)) swPageSplits,
       int(substr(max(prC2 || char(sw.EXTENTS  )), 3)) swEXTENTS    ,
       int(substr(max(prC2 || char(REORGDAYS  )), 3)) swREORGDAYS ,
       int(substr(max(prC2 || char(INSERTS    )), 3)) swINSERTS    ,
       int(substr(max(prC2 || char(DELETES    )), 3)) swDELETES    ,
       int(substr(max(prC2 || char(pseudoDel  )), 3)) swPseudoDel ,
       min(i.dbName) db, min(i.indexSpace) is, min(t.tsName) ts,
       min(i.dbId) dbId, min(i.isoBid) isoBid,
       min(p.createdTS) createdTS,
       min(t.creator) tbCr, min(t.name) tb,
       min(s.clone) clone, min(s.instance) base
    from
        SYSIBM.sysIndexes           I
        join SYSIBM.SYSTABLES       T
            on i.tbCreator = t.creator and i.tbName = t.name
               and i.dbName = t.dbName
        join SYSIBM.SYSTABLESPACE   S
            on t.dbName = s.dbName and t.tsName = s.name
        join SYSIBM.SYSIndexPart    p
            on p.ixCreator = i.creator and p.ixName = i.name
        , sw
    where   left(i.dbName, dbLen) = left(db, dbLen)
        and left(i.name, ixLen) = left(ix, ixLen)
        and left(t.tsName, tsLen) = left(ts, tsLen)
        and p.partition between partVon and partBis
        and current date between guVon and guBis
    group by i.creator, i.name, p.partition
;
------------------------------------------------------------------------
-- RTS-Stats Werte pro ix-Partition zu Schwellen joinen
--     Kolonnen Namen: sw*: Schwellen
--
create view S100447.vReoIxStats as
  select cr, ix, part, db, is, ts, tbCr, tb, createdTS, clone, base,
         swReorg     , swPageSplits, swEXTENTS   , swREORGDAYS ,
         swINSERTS   , swDELETES   , swPseudoDel ,
         max(CAST(TOTALEntries AS REAL), 100) rEntrs,
         cast(nActive AS REAL) rActive,
         max(coalesce(reorgLastTime,   createdTS),
             coalesce(loadrLastTime,   createdTS),
             coalesce(rebuildLastTime, createdTS)) lastBuilt ,
         coalesce(real(max(r.space, 0)) * 1024 * 1.3558420E-07 , 0)
             + 1.8626988 reorgTime ,
         r.*
    from S100447.vReoIXSchwelle s
        left join sysibm.sysIndexSpaceStats r
        on      r.DBID          = S.DBID
            AND r.ISOBID        = S.ISOBID
            AND r.DBNAME        = S.DB
            AND r.indexSpace    = S.is
            AND r.partition     = s.part
;
------------------------------------------------------------------------
-- vReoIx: SchwellwertUeberschreitungen herausfinden
--            in riesigem case statement
--
create view S100447.vReoIX as
with ix1 as
(
  select s.*
    , value(
        ( select 'no - db status ' || strip(d.sta)
            from s100447.tDbState d
            where d.sta like 'STOP%'
              and d.Ty = 'D' and d.db = s.db
            fetch first row only
        )
      , ( select 'no - ts status ' || strip(t.sta)
            from s100447.tDbState t
            where t.sta like 'STOP%'
              and t.Ty            = 'T'
              and t.db            = s.db
              AND t.sp            = s.ts
              AND t.paFr         <= s.part
              AND t.paTo         >= s.part
            fetch first row only
        )
      , ( select substr(min(
               case when i.sta like 'RO%' or i.sta like 'STOP%'
                                          or i.sta like '%RBD%'
                        then '1no - ix status ' || strip(i.sta)
                    when ',' || strip(i.sta) || ',' like '%,REORP,%'
                        then '2pending reorp ' || strip(i.sta)
                    when ',' || strip(i.sta) || ',' like '%,AREOR,%'
                        then '3pending areor ' || strip(i.sta)
                    else null end), 2)
            from s100447.tDbState i
            where   i.Ty            = 'I'
                and i.db            = s.db
                AND i.sp            = s.is
                and ( i.paFr = 0 or s.part = 0
                 or (   i.paFr <= s.part
                    AND i.paTo >= s.part ))
      ) ) xSta
    from S100447.vReoIXStats s
)
, ix2 as
( select
    case
        when swReorg = 'NEVER' then 'no - reorgNever'
        when xSta is not null then xSta
        when swReorg = 'ALWAYS' then 'reorgAlways'
        when indexSpace is null then 'rtsMissing'
        when REORGLASTTIME IS NULL and LOADRLASTTIME IS NULL
                  and REBUILDLASTTIME IS NULL then 'rtsNull'
        when rEntrs is null then 'rtsRowsNull'
        when totalEntries < 0 then 'rtsEntries '
                  || strip(char(totalEntries)) || ' < 0'
        when REORGLEAFFAR > rActive / 100 * swPageSplits
            then 'pageSplits ' || strip(char(reorgLeafFar)) || ' > '
                || strip(char(swPageSplits))
                || '% of ' || strip(char(nActive))
        when extents         > swExtents
            then 'extents ' || strip(char(extents)) || ' > '
                || strip(char(swExtents))
        when reorgInserts    > rEntrs / 100 * swInserts
            then 'inserts ' || strip(char(reorgInserts)) || ' > '
                || strip(char(swInserts)) || '% of '
                || strip(char(totalEntries))
        when reorgDeletes    > rEntrs / 100 * swDeletes
            then 'deletes ' || strip(char(reorgDeletes)) || ' > '
                || strip(char(swDeletes)) || '% of '
                || strip(char(totalEntries))
        when reorgPseudoDeletes    > rEntrs / 100 * swPseudoDel
            then 'pseudoDel ' || strip(char(reorgPseudoDeletes))||' > '
                || strip(char(swPseudoDel)) || '% of '
                || strip(char(totalEntries))
        when CURRENT TIMESTAMP - swReorgDays days > lastBuilt
            then 'lastBuilt ' || char(date(lastBuilt)) || ' older '
                || strip(char(swReorgDays)) ||' reorgDays'
        else 'no - reorg not required'
    end reason, s.*
    from ix1 s
)
    -- importance voranstellen
select smallint(case
            when reason = 'no - reorg not required' then  0
            when reason like 'no %'                 then -1
            when reason like 'lastBuilt %'          then  3
            when reason like 'pending areo*%'       then  7
            when reason like 'pending %'            then 11
            when reason like 'reorgAlway%'          then  9
                                                    else  5
          end) importance,
       ix2.*
    from ix2
;
------------------------------------------------------------------------
-- vReoJobParms: jobLen und prC2 anfügen
--
CREATE VIEW S100447.vReoJobParms AS
      SELECT e.*,
          CASE WHEN POSSTR(job, '*') > 0
               THEN POSSTR(job, '*') - 1 ELSE 8 END jobLEN,
          substr(right('00' || STRIP(CHAR(PRIO)), 2), 1, 2) prC2
      FROM s100447.TReoJobParms e
;
CREATE VIEW S100447.vReoRunTsStats    AS
with tp as
( select
          real(totalRows)                           rows
       ,  log10(max(real(totalRows),1))             logRows
       ,  real(space) * 1024                        spc
       ,  log10(max(real(space), 1)*1024)           logSpc
       ,  real(uncompressedDatasize)                uds
       ,  log10(max(real(uncompressedDatasize), 1)) logUds
       ,  r.*
      from s100447.tReoRunTsStats r
)
, t as
( select tst, rng
       , min(partition)            partMin
       , max(partition)            partMax
       , count(*)                  parts
       , sum(rows)                 rows
       , max(rows)                 rowsMax
       , sum(rows * logrows)       rowsLog
       , sum(rows) * max(logRows)  rowsLogMax
       , sum(spc)                  spc
       , sum(spc * logSpc)         spcLog
       , sum(spc * logRows)        spcLogRows
       , max(spc)                  spcMax
       , sum(spc) * max(logSpc)    spcLogMax
       , sum(Uds)                  Uds
       , sum(Uds * logUds)         UdsLog
       , sum(Uds * logRows)        UdsLogRows
       , max(Uds)                  UdsMax
       , sum(Uds) * max(logUds)    UdsLogMax
      from tp
      group by tst, rng
)
,    ip as
( select
          real(totalEntries) ent,
          log10(max(real(totalEntries),1)) logEnt,
          real(space) * 1024 spc,
          log10(max(real(space), 1)*1024) logSpc,
          r.*
      from s100447.tReoRunIxStats r
)
,    i as
( select tst, rng, count(*)        parts
       , sum(ent)                  ent
       , max(ent)                  entMax
       , sum(ent * logEnt)         entLog
       , sum(ent) * max(logEnt)    entLogMax
       , sum(spc)                  spc
       , sum(spc * logSpc)         spcLog
       , sum(spc * logEnt)         spcLogEnt
       , max(spc)                  spcMax
       , sum(spc) * max(logSpc)    spcLogMax
      from ip
      group by tst, rng
)
select j.job, r.*
       , partMin                      tsPartMin
       , partMax                      tsPartMax
       , value(t .parts          , 0) tsParts
       , value(t .rows           , 0) tsRows
       , value(t .rowsMax        , 0) tsRowsMax
       , value(t .rowsLog        , 0) tsRowsLog
       , value(t .rowsLogMax     , 0) tsRowsLogMax
       , value(t .spc            , 0) tsSpc
       , value(t .spcLog         , 0) tsSpcLog
       , value(t .spcLogRows     , 0) tsSpcLogRows
       , value(t .spcMax         , 0) tsSpcMax
       , value(t .spcLogMax      , 0) tsSpcLogMax
       , value(t .Uds            , 0) tsUds
       , value(t .UdsLog         , 0) tsUdsLog
       , value(t .UdsLogRows     , 0) tsUdsLogRows
       , value(t .UdsMax         , 0) tsUdsMax
       , value(t .UdsLogMax      , 0) tsUdsLogMax
       , value(ix.parts          , 0) ixparts
       , value(ix.ent            , 0) ixent
       , value(ix.entMax         , 0) ixentMax
       , value(ix.entLog         , 0) ixentLog
       , value(ix.entLogMax      , 0) ixentLogMax
       , value(ix.spc            , 0) ixspc
       , value(ix.spcLog         , 0) ixspcLog
       , value(ix.spcLogEnt      , 0) ixspcLogEnt
       , value(ix.spcMax         , 0) ixspcMax
       , value(ix.spcLogMax      , 0) ixspcLogMax
       , value(i0.parts          , 0) i0parts
       , value(i0.ent            , 0) i0ent
       , value(i0.entMax         , 0) i0entMax
       , value(i0.entLog         , 0) i0entLog
       , value(i0.entLogMax      , 0) i0entLogMax
       , value(i0.spc            , 0) i0spc
       , value(i0.spcLog         , 0) i0spcLog
       , value(i0.spcLogEnt      , 0) i0spcLogEnt
       , value(i0.spcMax         , 0) i0spcMax
       , value(i0.spcLogMax      , 0) i0spcLogMax
    from s100447.tReoRunJob j, s100447.tReoRunPart r
        left join t on t.tst = r.tst and t.rng = r.rng
        left join i ix on ix.tst = r.tst and ix.rng = r.rng
        left join i i0 on i0.tst = r.tst and i0.rng = r.rngI0
                                       and r.rngI0 > 0
    where j.ty = 'TS' and j.sta <> '0' and r.ty = 't' and r.sta = 'r'
        and r.part = r.pavon and r.reoTime is not null
        and r.tst = j.tst
;
CREATE VIEW S100447.vReoRunIxStats    AS
with ip as
( select
          real(totalEntries) ent,
          log10(max(1, real(totalEntries))) logEnt,
          real(space) * 1024 spc,
          log10(max(1, real(space)*1024)) logSpc,
          r.*
      from s100447.tReoRunIxStats r
)
,    i as
( select tst, rng, count(*)        parts
       , min(partition)            partMin
       , max(partition)            partMax
       , sum(ent)                  ent
       , max(ent)                  entMax
       , sum(ent * logEnt)         entLog
       , sum(ent) * max(logEnt)    entLogMax
       , sum(spc)                  spc
       , sum(spc * logSpc)         spcLog
       , sum(spc * logEnt)         spcLogEnt
       , max(spc)                  spcMax
       , sum(spc) * max(logSpc)    spcLogMax
      from ip
      group by tst, rng
)
select j.job, r.*
       , partMin                      partMin
       , partMax                      partMax
       , value(ix.parts          , 0) parts
       , value(ix.ent            , 0) ent
       , value(ix.entMax         , 0) entMax
       , value(ix.entLog         , 0) entLog
       , value(ix.entLogMax      , 0) entLogMax
       , value(ix.spc            , 0) spc
       , value(ix.spcLog         , 0) spcLog
       , value(ix.spcLogEnt      , 0) spcLogEnt
       , value(ix.spcMax         , 0) spcMax
       , value(ix.spcLogMax      , 0) spcLogMax
    from s100447.tReoRunJob j, s100447.tReoRunPart r
        left join i ix on ix.tst = r.tst and ix.rng = r.rng
    where j.ty = 'IX' and j.sta <> '0' and r.ty = 'i' and r.sta = 'r'
        and r.part = r.pavon and r.reoTime is not null
        and r.tst = j.tst
;
create view S100447.vReoTSStatsPlus as
select r.*, s.pgSize, p.pageSave,
        case when r.uncompressedDatasize > 0
                 and real(r.nActive) * s.pgSize * 102400
                       / min(max(100-p.pageSave, 3), 100)
                 between real(r.uncompressedDatasize) / 7
                     and real(r.uncompressedDatasize) * 7
             then bigInt(r.uncompressedDatasize)
             else
                  bigInt(real(r.nActive) * s.pgSize * 102400
                       / min(max(100-p.pageSave, 3), 100))
        end fixUncomp
    from sysibm.sysTableSpaceStats r,
         sysibm.sysTableSpace s, sysibm.sysTablePart p
    where   s.dbName = r.dbName and s.name = r.name
        and s.dbid = r.dbId and s.psid = r.psid
        and p.dbName = r.dbName and p.tsName = r.name
        and p.partition = r.partition
;
create view S100447.vReoTSStatsFix    as
    select UPDATESTATSTIME
         , NACTIVE
         , NPAGES
         , EXTENTS
         , LOADRLASTTIME
         , REORGLASTTIME
         , REORGINSERTS
         , REORGDELETES
         , REORGUPDATES
         , REORGUNCLUSTINS
         , REORGDISORGLOB
         , REORGMASSDELETE
         , REORGNEARINDREF
         , REORGFARINDREF
         , STATSLASTTIME
         , STATSINSERTS
         , STATSDELETES
         , STATSUPDATES
         , STATSMASSDELETE
         , COPYLASTTIME
         , COPYUPDATEDPAGES
         , COPYCHANGES
         , COPYUPDATELRSN
         , COPYUPDATETIME
         , IBMREQD
         , DBID
         , PSID
         , PARTITION
         , INSTANCE
         , SPACE
         , TOTALROWS
         , DATASIZE
         , fixUncomp UNCOMPRESSEDDATASIZE
         , DBNAME
         , NAME
$@¢ if $db2v10ENF then $@=¢
         , REORGCLUSTERSENS -- from here new db2v10 columns
         , REORGSCANACCESS
         , REORGHASHACCESS
         , HASHLASTUSED
         , DRIVETYPE
         , LPFACILITY
         , STATS01
 $! $!
    from S100447.vReoTSStatsPlus
;
-- check views ------------------------------------------------------
---------------------------------------------------------------------
-- test tReoRunJob (and tReoRunPart.reoTst)
-- message e not null ==> error message ==> see case statement below
-- eo2 = calculate better eoj
---------------------------------------------------------------------
create view s100447.vReoRunJobChk as
with p as -- part gruppiert nach job, nur ty='r'
(select tst, ty, count(*) cnt,
     count(reotst) cntReo,
     min(reoTst) reoTstVon,
     max(reoTst) reoTstBis
    from s100447.tReoRunPart
    where sta = 'r'
    group by tst, ty
), j as -- join to job
(
select j.*,
       p.ty pTy, p.cnt pCnt, p.cntReo,
       p.reoTstVon, p.reoTstBis,
       (select min(tst)
            from s100447.tReoRunJob a
            where a.job = j.job and a.tst > j.tst
       ) nextJob
    from s100447.tReoRunJob j
      left join p
        on j.tst = p.tst and p.ty = lower(left(j.ty, 1))
)
        ----> diese case statement macht error message <-------------
select  case when eoj is null and nextJob is not null
                 then 'null not last'
             when reoTstVon < tst then 'reoTst < tst'
             when reoTstBis > nextJob then 'reoTst > nextJob'
             when reoTstBis > eoj then 'reoTst > eoj'
             when eoj > nextJob then 'overlap nextJob'
             when reoTstBis - tst > 1000000 then 'reoTst > 1 day'
      --     when eoj - tst > 1000000 then 'eoj > 1 day'
             else null
        end e,
        case when pCnt is null or pCnt < 1 then tst
             when reoTstBis is not null
                  and (nextJob is null or nextJob > reoTstBis)
                  and (tst < current timestamp - 2 days
                        or pCnt = cntReo) then reoTstBis
             when nextJob is not null then
                  nextJob
             else null
        end eo2, j.*
    from j
;
---------------------------------------------------------------------
-- check tReoRunPart
-- message e not null ==> error message ==> see case statement below
-- newTime = calculate reoTime from current values
---------------------------------------------------------------------
create view S100447.vReoRunRngChk as
with r as -- part gruppiert nach range
(
select
    (select j.job from s100447.tReoRunJob j where j.tst = p.tst) job,
    p.tst, p.rng,
    min(ty) ty,
    count(distinct ty) cdTy,
    min(sta) sta,
    count(distinct sta) cdSta,
    sum(case when part = paVon then 1 else 0 end) cPaVon,
    sum(case when part = paBis then 1 else 0 end) cPaBis,
    count(*) cnt,
    count(distinct part) cdPart,
    count(reoTst) cReoTst,
    min(reoTst) minReoTst,
    max(reoTst) maxReoTst,
    (select max(b.reoTst) -- letzter reoTst aus vorgehenden Ranges
          from s100447.tReoRunPart b
          where b.tst = p.tst and b.rng < p.rng) befReoTst,
    (select min(sta) || max(sta) -- status und reoTst aus Range -1
            || case when count(*) = count(reotst) then '=' else '0' end
            || coalesce(char(max(reoTst)), '-')
          from s100447.tReoRunPart b
          where b.tst = p.tst and b.rng = p.rng-1) r1ReoTst,
    (select min(sta) || max(sta) -- status und reoTst aus Range -2
            || case when count(*) = count(reotst) then '=' else '0' end
            || coalesce(char(max(reoTst)), '-')
          from s100447.tReoRunPart b
          where b.tst = p.tst and b.rng = p.rng-2) r2ReoTst,
    max(case when part = paVon then reoTime else null end) reoTime
  from s100447.tReoRunPart p
  group by tst, rng
) , s as -- begTst aus range -1 und range -2 berechnen
( select r.*,
      case when rng = 1 then tst
           when left(r1ReoTst, 3) = 'rr='
               then timestamp(substr(r1ReoTst, 4))
           when left(r1ReoTst, 2) <> '00' then null
           when rng = 2 then tst
           when left(r2ReoTst, 3) = 'rr='
               then timestamp(substr(r2ReoTst, 4))
           else null
           end begTst
    from r
), t as -- aktuelle reoZeit berechnen
( select s.*,
        (days(maxReoTst) - days(begTst)) * 86400
        + midnight_seconds(maxReoTst) - midnight_seconds(begTst)
        + 1e-6 * (microsecond(maxReoTst)-microsecond(begTst)) newTime
    from s
)
select ---> case statement macht error message <--------------------
    case when job is null   then 'job missing'
         when cdTy <> 1     then 'ty not unique'
         when cdSta <> 1    then 'sta not unique'
         when cPaVon <> 1   then 'part=paVon not unique'
         when cPaBis <> 1   then 'part=paBis not unique'
         when cdPart <> cnt then 'part not distinct'
         when minReoTst < tst then 'reoTst < tst'
                           -- rng waren früher anders sortiert
         when tst < '2011-09-29-00.00.00'  then null
         when befReoTst > minReoTst then 'before ReoTst > minReoTst'
         when abs(reoTime-newTime) >= 1 then 'reoTime <> newTime'
         else null
    end e,
    t.*
    from t
;
commit
;
--- end of install mig=$mig----------------------------------
$/view/
$/ddl/