Подтвердить что ты не робот

Как вызвать хранимую процедуру в инструменте IBM System я Access для Windows GUI

Я хотел бы протестировать хранимую процедуру DB2, запущенную в системе AS400.

У меня установлен IBM System я Access для Windows и вы можете запускать команды SQL в базе данных DB2.

Мой вопрос: что такое синтаксис для выполнения хранимой процедуры, которая принимает параметр и возвращает результат в качестве выходного параметра и печатает значение на экране?

Просто пояснить: я не спрашиваю, как вызвать proc в коде. Я хочу выполнить proc и увидеть результаты в GUI-инструменте (который похож на SQL Enterprise Manager).

4b9b3361

Ответ 1

используйте ключевое слово call и передайте параметры.

call myStoredProc(parm1, parm2, ?);

Подробнее см. здесь http://www.ibm.com/developerworks/data/library/techarticle/dm-0503melnyk/. Интересная часть Рисунок 5. Использование редактора команд для вызова процедуры SQL

Ответ 2

То, что вы хотите, возможно. Я делал это сам много раз. К несчастью, я сейчас не в офисе, так что это должно быть от верхушки головы.

  • Запустить систему я Access
  • Перейдите на иконки iSeries и войдите в систему, в которой хранится ваша хранимая процедура.
  • Перейдите к значкам баз данных и подключитесь к правильному (у вас есть один локальный и, возможно, один или несколько пультов)
  • Только после этого вы увидите опцию "запустить SQL script" в нижней части экрана.
  • Запустите этот параметр, и вы увидите редактор SQL (редактор сверху, просмотрщик/сообщения внизу)
  • Помните, что вы уже подключены к правильному iSeries, но ваш запрос JDBC получит * LIBL пользовательского профиля вашего соединения. Поэтому вы должны знать схему (библиотеку iseries) вашей хранимой процедуры.
  • Введите "вызов YOURSCHEMA.YOURSTOREDPROCEDURE(?,?);" и используйте меню или ярлык для запуска этого оператора. Обратите внимание, что - в зависимости от настроек JDBC (см. Меню) - правильный синтаксис может быть "/" вместо ".". Также обратите внимание, что вы можете заменить первый знак вопроса на значение.

Кроме того,

  • В iAccess под каждой схемой вы увидите значки для таблиц, представлений и т.д. Также доступен значок хранимых процедур. Там вы увидите свой SP. Используйте параметры, чтобы увидеть определение и так далее. Эта информация содержит подробную информацию о параметрах
  • Если вы хотите проверить это на своем iSeries, используйте системный каталог (это также может быть сделано из редактора SQL) с помощью "select * from qsys2.sysprocedures where procedure_name (извините, не уверен, что имя этого столбца вправо now) = 'YOURSTOREDPROCEDURE';"

ОЧЕНЬ ВАЖНО: я никогда не мог протестировать SP с помощью редактора SQL (STRSQL) на самом iSeries. Только редактор iAccess SQL работал правильно.

Ответ 3

Вы должны быть в состоянии запустить свой SP следующим образом:

DECLARE  
 usr_in  YOUR_TABLE.YOUR_COLM%TYPE; --Gets the correct type by looking at column type
 app_in  YOUR_TABLE.YOUR_OTHER_COLM%TYPE;

BEGIN
 usr_in:='some value';
 app_in:='another_value';

 YOUR_SP_NAME(usr_in, app_in);  
END;  

Вы можете использовать EXECUTE, но он не может быть динамически подготовлен (не запущен в Java), и я думаю, что есть и другие недостатки.

EXECUTE myStoredProc(parm1, parm2, ?);