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 является лучшим выбором, поскольку имеет вкладку, которую можно открывать для непосредственного создания, обновления и удаления глобальных переменных.

Другие вопросы по тегам