【问题标题】:DB2:Proc Inside Proc is not returning anythingDB2:Proc 内部 Proc 没有返回任何内容
【发布时间】:2018-07-22 00:11:08
【问题描述】:

我遇到了一个 DB2 proc 问题。不知道我在哪里做错了。

我有 2 个 SP。 SP1 和 SP2。

我正在从 SP2 调用 SP1,但是 SP2 没有返回任何输出(返回 0 除外)。

请您检查一下是什么问题。

我知道我可以将 SP1 重命名为 SP2,但有一些要求,这就是为什么我只需要从 SP2 调用 SP1。

CREATE PROCEDURE SP1()
SPECIFIC SP1
RESULT SETS 1
READS SQL DATA
NOT DETERMINISTIC
NULL CALL
LANGUAGE SQL EXTERNAL ACTION
INHERIT SPECIAL REGISTERS
P1:BEGIN
  DECLARE X CURSOR 
  WITH RETURN FOR
  SELECT A.* FROM EMP A;
  OPEN X;
END P1;

CREATE PROCEDURE SP2()
SPECIFIC SP2
RESULT SETS 1
READS SQL DATA
NOT DETERMINISTIC
NULL CALL
LANGUAGE SQL EXTERNAL ACTION
INHERIT SPECIAL REGISTERS
P2:BEGIN
  CALL SP1();
END P2;

【问题讨论】:

    标签: db2 procedure


    【解决方案1】:

    您似乎希望 SP2 将嵌套 SP1 的结果集返回给请求应用程序(= 客户端),而不进行任何更改和任何处理。如果这是真的,那么在 SP1 中你必须声明你的游标'WITH RETURN TO CLIENT'。这允许结果集通过 SP1 。

    如果您想处理 SP2 内部 SP1 的结果集,那么您必须为嵌套过程使用结果集定位器并为此分配一个游标并在其中处理该游标正常的方式。

    请参阅 Db2 在线知识中心,了解您的 Db2 版本和您的 DB2 服务器平台,以了解这些语句的更多详细信息。

    【讨论】:

    • 哇..'返回客户'就像一个魅力..非常感谢毛..你是我的摇滚明星..
    猜你喜欢
    • 2021-08-22
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    相关资源
    最近更新 更多