zOs/TX/WK600SQL

//A540769R JOB (CP00,KE50),'DB2 REO',                                   00010000
//         MSGCLASS=T,TIME=1440,                                        00020000
//         NOTIFY=&SYSUID,REGION=0M                                     00030000
//*MAIN SYSTEM=S13,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 *
$=pds = DSN.TX.CASE
$=mpr = WK600
call compRun '@', file($pds'(WK600INI)')
call sqlConnect $trgSubsys
$=cr= $trgCreator
say $cr'.'$tb
$=t1 = $cr.${tb}002
$=f1=0
$=f2=0
$=u3=0
     /* error handling: don't continue silently with errors| */
m.sqlRetOk = '*         say'
m.sqlRetOk = '-904 -501 say'
$@do wi=1 to 1e5 $@[
    $=t1 =- $cr'.'${tb}right(1 + wi // 49, 3, 0)
    $=wv= %abc$wi%
    m.st.0 = 0
    call sqlPreAllCl 1, 'select i1, v1, upd from' $t1 ,
              "where i1 =" $wi "and (v1 like '"$wv"' or 1=1)",
                      , st, ':m.ii.sx, :m.vv.sx, :m.uu.sx'
    $=f1=- $f1 + m.st.0
    $*( say 'fetched 1' m.st.0
    do sx=1 to m.st.0
        say m.ii.sx m.uu.sx m.vv.sx
        end  $*)
    call sqlPreDeclare 2, "select i1, upd, strip(char(i1)) || ' ' " ,
    "|| char(upd) || ' ' || strip(char(length(v1)))||': '||left(v1,30)",
                   'from' $t1 'where i1 = ? and (v1 like ? or 1 = 1)'
    m.st.0 = 0
    call sqlOpAllCl 2, st, ':m.ii.sx, :m.uu.sx, :m.vv.sx',
                     , $wi+456, $wv
    $=f2=- $f2 + m.st.0
    $*( say 'fetched 2' m.st.0
    do sx=1 to m.st.0
        say m.ii.sx m.uu.sx m.vv.sx
        end
    $*)
    call sqlPrepare 3, 'update' $t1 'set v1 = translate(v1, ?, ?)' ,
                           'where i1 = ?'
    call sqlExecStmt 3, 'abcABC', 'ABCabc', $wi
    $=u3=- $u3 + sqlErrd.3
    $** say 'update' sqlCode 'errd3' sqlErrd.3
    if wi // 10 = 0 then do
        say $wi 'fe1='$f1 'fe2='$f2 'up3='$u3 'table' $t1
        call sleep 1
        end
    call sqlCommit
$]