DB2:Proc内的Proc没有返回任何内容

DB2:Proc内的Proc没有返回任何内容,db2,procedure,Db2,Procedure,我遇到了一个DB2进程问题。我不知道我在哪里犯错 我有两个SPs。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 A

我遇到了一个DB2进程问题。我不知道我在哪里犯错

我有两个SPs。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;

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

如果您想在SP2内部处理来自SP1的结果集,则必须为嵌套过程使用结果集定位器,并为此分配游标,然后以正常方式处理游标


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

Wow..'“回归客户”这句话很有魅力。。非常感谢毛。。你对我来说是个摇滚明星。。