Stored procedures WITH RETURN子句在DB2中有什么用途?

Stored procedures WITH RETURN子句在DB2中有什么用途?,stored-procedures,crystal-reports,db2,Stored Procedures,Crystal Reports,Db2,在我现在负责的这个应用程序中,我看到了几个存储过程,其中一些对游标使用这种语法: DECLARE cursor1 CURSOR WITH RETURN FOR DECLARE cursor1 CURSOR FOR …以及其他对游标使用此语法的用户: DECLARE cursor1 CURSOR WITH RETURN FOR DECLARE cursor1 CURSOR FOR Crystal Reports 11使用所有这些存储过程。 请给我解释一下,这两者的区别是什么?它们都

在我现在负责的这个应用程序中,我看到了几个存储过程,其中一些对游标使用这种语法:

DECLARE cursor1 CURSOR WITH RETURN FOR 
DECLARE cursor1 CURSOR FOR 
…以及其他对游标使用此语法的用户:

DECLARE cursor1 CURSOR WITH RETURN FOR 
DECLARE cursor1 CURSOR FOR 
Crystal Reports 11使用所有这些存储过程。
请给我解释一下,这两者的区别是什么?它们都成功地将行返回到Crystal Reports。我正在尝试优化这一个存储过程,但我甚至不确定这一子句的作用。谢谢你的帮助。

你看过手册了吗


如果您将结果返回给外部客户机,那么返回给客户机将是一个更好的选择

我确实查看了手册和其他几个链接,但我仍然没有看到区别,或者我只是不理解。我将结果返回给一个客户端,但两个游标都可以工作,所以我想知道有什么不同?什么平台?LUW、IBMi还是z/OS?从我所看到的,如果LUW没有返回,你不应该看到结果集。而在IBMi上,如果使用准备好的语句,则默认为WITH RETURN。我没有看z/OS。它在AIX上,是不是LUW?从您的评论来看,“with return”可能是默认的隐含子句。所以它可能只是可选的,并且以同样的方式运行?是的,AIX是LUW中的U。根据文档,无返回是默认的,与IBMi不同,LUW文档对准备好的语句没有例外。您使用的是预先准备好的语句还是静态语句?例如,为MYSTATEMENT声明游标1,而为从TBL选择*声明游标1。