iSeries - 从 CL 程序调用 SQL 存储过程
如何从 CL 程序运行存储过程? RUNSQLSTM 需要一个源成员,但我只想构建一个命令,以便用户可以轻松地传递变量,所以这是行不通的。
How can I run a stored procedure from a CL program? RUNSQLSTM requires a source member, but I just want to build a command so users can pass in variables easily, so this won't work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以调用系统程序
QZDFMDB2
并向其传递一个参数以及要执行的SQL字符串。 在本例中,SQL 字符串是对存储过程的调用:要替换您的值,请使用 PARM 变量:
You can call the system program
QZDFMDB2
and pass it one parameter with the SQL string to execute. In this case the SQL string is the call to your stored procedure:To substitute in your values use a variable for the PARM:
可能有 2 个选项:
在 CL 程序中创建临时源成员。 使用提供的参数构造 SQL 语句来执行存储过程并将此源代码写入临时成员。 然后使用生成的成员作为参数添加对 RUNSQLSTM 的调用。
第二个选择是不创建 CL 程序,而是使用 RPG/COBOL。 通过使用嵌入式 SQL,可以使用参数执行存储过程。 它们的值应该从命令传递到程序。
There may be 2 options:
In the CL program create a temporary source member. Construct the SQL statement with the supplied parameters to execute the stored procedure and write this source code to the temporary member. Then add a call to RUNSQLSTM with the generated member as parameter.
A second option is not to create a CL program but use RPG/COBOL. By using embedded SQL the stored procedure can be executed with the parameters. Their values should be passed from the command to the program.
有一次,有人写了一个命令,我用过。 我找不到该参考了,但我还有另外两个选择:
他们两者都包含使命令正常工作所需的源代码。
At one time, there was a command that someone wrote that I had used. I can't find that reference anymore, but I have two other options:
They both include the source you need to get the command working.
从 CLLE 调用 StoredProcedure 的一种方法是:
RUNSQL SQL('调用 MYPRCSQL')
One way to call a StoredProcedure from CLLE is:
RUNSQL SQL('call MYPRCSQL')
QCMDEXC
可能是您正在寻找的命令。QCMDEXC
might be the command you are looking for.