您将如何通过qshell的db2命令运行存储过程,因为我需要一种简单的方法来单元对存储过程进行更改?
在IBM I
上用
开始qshellqsh
以各种格式输入这些db2命令
db2 call libraryname.stroredprocedurename('param1value' 'param2value' ?)
db2 call libraryname.stroredprocedurename ('param1value' 'param2value' ?)
db2 call libraryname.stroredprocedurename (param1value param2value ?)
只有参考来源我才能找到
尝试使用CLP调用存储过程,但没有CLP示例这里
您还可以使用JT400.jar中包含的JDBC客户端。您可以使用以下命令从QSH运行它。
java -cp/qibm/proddata/os400/jt400/lib/jt400.jar com.ibm.as400.access.access.jdbcclient.main jdbc:db2:db2:localhost
客户端还将处理存储的过程输出参数,如下示例所示。
创建过程add1(在indparm int,out of outparm int)语言sql begin set oferparm = inparm 1;结尾 调用add1(1,?) 参数1返回2
我使用Squirrel SQL客户端http://squirrel-sql.sourceforge.net/来测试我的所有SQL。
call libraryname.stroredprocedurename('param1value', 'param2value')
请注意,分离器是COMA ,
,而?
则不是有效的参数标记。
除了客户端外,您还需要一个JDBC驱动程序。您可以在此处找到的IBM使用JTopen驱动程序:http://jt400.sourceforge.net/
从CL命令行或CL程序中,您可以使用RUNSQL
命令执行SQL语句。
如果您要尝试多个临时SQL语句,则可以使用STRSQL
命令。就我个人而言,我倾向于使用提供的SQL窗口作为部分Inavigator。
最终获得了基本语法
db2 "CALL lib.proc ('parmvalue1')"
导致:
db20000i SQL命令成功完成。