IBM i(AS400)从STRSQL调用SQL存储过程

时间:2015-03-26 11:28:13

标签: sql stored-procedures db2 ibm-midrange

我是为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'。 任何帮助将不胜感激。

1 个答案:

答案 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也是更好的选择,因为它有一个标签,您可以打开它直接创建,更新,删除全局变量。