情况:有一个通过“SELECT x”语句“返回”结果的 SQL 过程。由于某些原因,不允许将其更改为函数或以任何方式更改该过程。我怎样才能获得如下结果:
set @result = 0;
@result = call SomeProcedure(@p1, @p2);
但是由于它是一个过程而不是函数,因此上面的代码将无法编译/工作。我怎样才能在 MySQL 中实现这一点。在 C++ 中它可以工作,但在 MySQL 中我找不到办法......
最佳答案
这是不可能的。
从 select ...
返回的结果集将始终返回到第一个过程的调用者,即使您进行了多个级别的子调用。
函数返回一个值(但不是结果集),您可以在其他过程或函数中使用该值。
您唯一的选择是设置 session 变量或将结果存储在调用过程知道的临时表中。
关于MySQL:从 MySQL 过程调用获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21453325/