zOs/SQL/EXSTRLEN
$#@
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