在交互式 sql as400 中调用程序

call program in interactive sql as400

有没有办法在 as400 (strsql) 中从 db2 interactive SQL 调用程序?该程序通过引用接收参数并修改其内容。在 CL 中,您只需这样称呼它:

call myprogram 12345

我需要能够在交互式 SQL 中调用它,有什么方法或解决方法可以做到这一点吗?比如启动 OS 命令?例如在 C 中你做系统(“你的系统命令”)。我找不到与之相关的任何内容。

STRSQL 支持 SQL CALL 语句。

最好的选择是将程序定义为外部SQL存储过程

--note 
----- numeric-->zoned decimal
----- decimal-->packed decimal
CREATE PROCEDURE MYLIB.MYPROGRAM_SP 
  (IN number numeric(5,0))  
LANGUAGE RPGLE
EXTERNAL NAME 'MYLIB/MYPROGRAM'
PARAMETER STYLE GENERAL;

那你可以
CALL MYLIB.MYPROGRAM_SP(12345)

从技术上讲,IBM i 上的每个 *PGM 对象都是一个存储过程。您可以调用它而无需如上所示显式定义它。但是在这种情况下对参数进行了假设。给DB提供接口定义会好很多。

请注意,STRSQL 是一个已有 20 年历史的工具,它有各种限制,包括不支持存储过程的 OUT 或 INOUT 参数。

更好的选择是使用 运行 SQL IBM's Access Client Solutions (ACS)

的脚本组件