MySQLのストアドプロシージャ内で呼ばれたselect文の結果を、ストアド内で受取る方法
ストアドプロシージャ(A)から他のストアドプロシージャ(B)を呼び出し、 (B)内で呼び出したselect文の結果を、(A)内で受取りたいと考えています。 そもそもこれは可能なのでしょうか。
(B)を修正せずに、対応する方法((A)の書き方)を教えてください。
(B)は他社提供のプロシージャで変更できないような場合を想定してください。
具体的には、次のようなプロシージャ(B)があり、
delimiter $
create procedure proc_B()
begin
declare value int;
/*(省略)*/
select value;
end$
delimiter ;
このプロシージャを別のプロシージャ(A)から呼び出し、上記の変数valueの値を受取りたい。
delimiter $
create procedure proc_A()
begin
declare value int;
/* 呼び出すだけなら、これで良い。*/
/* ただし(A)の呼び出し元へ直接select結果が戻される。 */
call proc_B;
/* 通常のカーソルの様にに宣言するとsyntaxエラーになる */
declare cur cursor for proc_B;
/* これもsyntaxエラー。 */
/* またこれでは複数行返るパターンに対応できない。 */
call proc_B into value;
end$
delimiter ;