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
$]