zOs/SQL/STPR1

$#@
$*(
set current sqlid = 'S100447';
create procedure A540769.stpr2(
          in  c1 char(4), in i2 int, out o3 varchar(30))
        version v1 deterministic contains sql
    set o3 = 'out from c1=' || c1 || ', i2=' || strip(char(i2)) || '?'
;
$*)
call sqlConnect dbaf
p1 = 'vier'
p2 = 987655
p3 = left('vorher', 30)'xyz'
say 'p1='p1', p2='p2', p3='p3
call sqlExec 'call A540769.stpr2(:p1, :p2, :p3)'
say 'p1='p1', p2='p2', p3='p3
call sqlExImm 'call A540769.stpr2(:p1, :p2, :p3)'
say 'p1='p1', p2='p2', p3='p3
sql = 'call A540769.stpr2(?, ?, ?)'
call sqlExec 'prepare s1 from :sql'
call sqlExec 'describe input s1 into :m.ii'
say m.ii.sqld
do dx=1 to m.ii.sqld
    say dx m.ii.sqlName.dx m.ii.sqlType.dx
    end
$#out                                              20120522 17:10:52
*** run error ***
SQLCODE = -312: VARIABLE P1 IS NOT DEFINED OR NOT USABLE
src call A540769.stpr2(:p1, :p2, :p3)
  >    >>>pos 21 of 33>>>
stmt = execute immediate :ggSrc
with immediate :ggSrc = call A540769.stpr2(:p1, :p2, :p3)
$#out                                              20120522 16:58:08
*** run error ***
SQLCODE = -084: UNACCEPTABLE SQL STATEMENT
src call A540769.stpr2(?, ?, ?)
  > <<<pos 1 of 27<<<
stmt = prepare s1 from :sql
with from :sql = call A540769.stpr2(?, ?, ?)
subsys = M.call A540769.stpr2(?, ?, ?).CONHOST/M.call A540769.stpr2(?, ?, ?).CON
$#out                                              20120522 16:57:12
*** run error ***
SQLCODE = -104: ILLEGAL SYMBOL "?". SOME SYMBOLS THAT MIGHT
    BE LEGAL ARE: <IDENTIFIER>
src call A540769.stpr2(:?, :?, :?)
  >    >>>pos 21 of 30>>>
stmt = prepare s1 from :sql
with from :sql = call A540769.stpr2(:?, :?, :?)
subsys = M.call A540769.stpr2(:?, :?, :?).CONHOST/M.call A540769.stpr2(:?, :?, :
$#out                                              20120522 16:32:07
$#out                                              20120522 16:31:07
SQLCODE = 000,  SUCCESSFUL EXECUTION
warnings  1=W var truncated
stmt =  execSql call A540769.stpr2(:p1, :p2, :p3)
with  :p1 = vier
      :p2 = 987655
      :p3 = out fr
$#out