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