在IBM i 上,如何通过QShell 的DB2 命令运行 存储过程?
On IBM i, how to run a stored procedure via DB2 command of QShell?
由于我需要一种简单的方法来对存储过程的更改进行单元测试,因此您如何 运行 通过 QShell 的 DB2 命令创建存储过程?
在 IBM i 上
用
启动了 qshell
QSH
以各种格式输入这些 db2 命令但没有成功
db2 call libraryname.stroredprocedurename('param1value' 'param2value' ?)
db2 call libraryname.stroredprocedurename ('param1value' 'param2value' ?)
db2 call libraryname.stroredprocedurename (param1value param2value ?)
Only reference source I could find
已尝试使用 CLP 调用存储过程但是没有 CLP 示例
here
我使用 Squirrel SQL 客户端 http://squirrel-sql.sourceforge.net/ 来测试我所有的 SQL。
call libraryname.stroredprocedurename('param1value', 'param2value')
请注意分隔符是逗号 ,
,并且 ?
在像这样以交互方式调用时不是有效的参数标记。
除了客户端,您还需要一个 JDBC 驱动程序。您可以在此处使用适用于 IBM i 的 JTOpen 驱动程序:http://jt400.sourceforge.net/
终于掌握了基本语法
db2 "CALL lib.proc ('parmvalue1')"
结果是:
DB20000I SQL 命令已成功完成。
您还可以使用 jt400.jar 附带的 JDBC 客户端。您可以使用以下命令从 QSH 运行 它。
java -cp /qibm/proddata/os400/jt400/lib/jt400.jar com.ibm.as400.access.jdbcClient.Main jdbc:db2:localhost
客户端还将处理存储过程输出参数,如下例所示。
create procedure add1(in inparm int, out outparm int) language sql begin set outparm = inparm +1; end
call add1(1,?)
Parameter 1 returned 2
从 CL 命令行,或在 CL 程序中,您可以使用 RUNSQL
命令来执行 SQL 语句。
如果您要尝试多个临时 SQL 语句,您可以使用 STRSQL
命令。就个人而言,我倾向于使用作为 iNavigator 的一部分提供的 SQL window。
由于我需要一种简单的方法来对存储过程的更改进行单元测试,因此您如何 运行 通过 QShell 的 DB2 命令创建存储过程?
在 IBM i 上
用
启动了 qshellQSH
以各种格式输入这些 db2 命令但没有成功
db2 call libraryname.stroredprocedurename('param1value' 'param2value' ?)
db2 call libraryname.stroredprocedurename ('param1value' 'param2value' ?)
db2 call libraryname.stroredprocedurename (param1value param2value ?)
Only reference source I could find
已尝试使用 CLP 调用存储过程但是没有 CLP 示例 here
我使用 Squirrel SQL 客户端 http://squirrel-sql.sourceforge.net/ 来测试我所有的 SQL。
call libraryname.stroredprocedurename('param1value', 'param2value')
请注意分隔符是逗号 ,
,并且 ?
在像这样以交互方式调用时不是有效的参数标记。
除了客户端,您还需要一个 JDBC 驱动程序。您可以在此处使用适用于 IBM i 的 JTOpen 驱动程序:http://jt400.sourceforge.net/
终于掌握了基本语法
db2 "CALL lib.proc ('parmvalue1')"
结果是:
DB20000I SQL 命令已成功完成。
您还可以使用 jt400.jar 附带的 JDBC 客户端。您可以使用以下命令从 QSH 运行 它。
java -cp /qibm/proddata/os400/jt400/lib/jt400.jar com.ibm.as400.access.jdbcClient.Main jdbc:db2:localhost
客户端还将处理存储过程输出参数,如下例所示。
create procedure add1(in inparm int, out outparm int) language sql begin set outparm = inparm +1; end call add1(1,?) Parameter 1 returned 2
从 CL 命令行,或在 CL 程序中,您可以使用 RUNSQL
命令来执行 SQL 语句。
如果您要尝试多个临时 SQL 语句,您可以使用 STRSQL
命令。就个人而言,我倾向于使用作为 iNavigator 的一部分提供的 SQL window。