在交互式 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)
的脚本组件
有没有办法在 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)
的脚本组件