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

IBM i (AS400) Calling SQL Stored Procedure from STRSQL

我是为 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# 结果“5”。 任何帮助将不胜感激。

您尝试做的事情会起作用,但前提是您使用 iNav 的 运行 SQL 脚本查询工具..

[ 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 的 运行 SQL Scripts 也是更好的选择,因为它有一个选项卡,您可以打开它来直接创建、更新、删除全局变量.