我是为IBM i(AS400)存储过程创建DB2的新手。我正在寻找一个答案来解决我从STRSQL调用存储过程的问题。 任何“IN”参数存储过程都是可调用的,但“OUT”参数存储过程不是。
create procedure egg(out pcount# INT)
language sql
set option dbgview=*source, USRPRF=*USER
begin
set pcount# = 5;
end
我称之为
call egg(?)
然后出现此错误。
SQL0418
Message . . . . : Use of parameter marker not valid.
我想在行中看到pcount#result,'5'。 任何帮助将不胜感激。
答案 0 :(得分:1)
您尝试做的事情会有效,但前提是您使用的是iNav的Run SQL Scripts查询工具。
[ Thu Mar 26 08:50:52 EDT 2015 ] Run Selected
> call egg(?)
Return Code = 0
Output Parameter #1 = 5
Statement ran successfully (0 ms)
如果您使用的是最近的(7.1+)版本,则另一个选项是使用全局变量..
create or replace variable myout int default(0)
call egg(myout)
select myout from sysibm.sysdummy1
请注意,即使在使用全局变量的情况下,iNav的Run SQL Scripts也是更好的选择,因为它有一个标签,您可以打开它直接创建,更新,删除全局变量。