В IBM i как запустить хранимую процедуру с помощью команды DB2 QShell?

Как бы вы запустили хранимую процедуру с помощью команды DB2 QShell, поскольку мне нужен простой способ модульного тестирования изменения хранимой процедуры?

На IBM я

Начал qshell с

QSH

Введены эти команды db2 в различных форматах без успеха

db2 call libraryname.stroredprocedurename('param1value' 'param2value' ?)

db2 call libraryname.stroredprocedurename ('param1value' 'param2value' ?)

db2 call libraryname.stroredprocedurename (param1value  param2value ?)

Единственный источник ссылки, который я мог найти

Попытался использовать CLP для вызова хранимых процедур, но здесь нет примеров CLP.

4 ответа

Решение

Я использую Squirrel SQL Client http://squirrel-sql.sourceforge.net/ чтобы проверить все мои SQL.

call libraryname.stroredprocedurename('param1value', 'param2value')

Обратите внимание, что разделитель является запятой ,, а также ? не является допустимым маркером параметра при интерактивном вызове.

Помимо клиента вам потребуется драйвер JDBC. Вы можете использовать драйвер JTOpen для IBM, который я нашел здесь: http://jt400.sourceforge.net/

Вы также можете использовать клиент JDBC, включенный в jt400.jar. Вы можете запустить его из QSH, используя следующую команду.

java -cp /qibm/proddata/os400/jt400/lib/jt400.jar com.ibm.as400.access.jdbcClient.Main jdbc: db2: localhost

Клиент также будет обрабатывать выходные параметры хранимой процедуры, как показано в следующем примере.

процедура создания add1 (inparm int, out outparm int) язык sql begin set outparm = inparm +1; завершение вызова add1(1,?) Параметр 1 вернул 2

Из командной строки CL или внутри программы CL вы можете использовать RUNSQL Команда для выполнения оператора SQL.

Если вы собираетесь использовать несколько специальных операторов SQL, вы можете использовать STRSQL команда. Лично я склонен использовать окно SQL, предоставляемое как часть iNavigator.

Наконец получил основной синтаксис

db2 "CALL lib.proc ('parmvalue1')" 

В результате чего:

DB20000I SQL-команда завершена успешно.

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