IBM i (AS400) Вызов хранимой процедуры SQL из STRSQL
Я новичок в создании хранимой процедуры DB2 для IBM i (AS400). Я ищу ответ о том, что не так с моей хранимой процедурой вызова из 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' в строке. Любая помощь будет оценена.
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 является лучшим выбором, поскольку имеет вкладку, которую можно открывать для непосредственного создания, обновления и удаления глобальных переменных.