• 締切済み

MySQLのストアドプロシージャについて

MySQL5.6のストアドプロシージャが返すSELECT結果のフェッチ方法について教えてください。 delimiter $ create procedure sample_proc() begin select * from TEST_TBL; end$ の様なストアドプロシージャがあり、これを他のストアドプロシージャから呼び出して、 ループしながらフェッチしたいのですが、どうすればよいでしょうか。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

失礼しました CALLしたプロシージャの結果をOUTを利用せずに使いたいのですね? プロシージャから他のプロシージャを呼び出すことはできますが 呼び出すプロシージャ内で行っているSELECTは結果ではなく経過でしかないため SELECT文のようにカーソルでは受けられないですね。 書式的にもカーソルはSELECT文しかうけつけません http://dev.mysql.com/doc/refman/5.1/ja/declare-cursors.html

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

いまいち論点がわかりません。 普通に他のプロシージャ内から該当のプロシージャをコールすればよいのでは?

draqoon2014
質問者

補足

プログラム全体として以下の構成だと思ってください。  (1)内部でselect文を実行しているストアドプロシージャ(元質問内の例参照)  (2)(1)を呼び出し、その結果を利用して処理するストアドプロシージャ  (3)(2)を呼び出すクライアントプログラム 質問としては(2)の作り方((1)の結果の利用方法)を知りたかったのです。 普通にできる話なのかもしれませんが、具体的な方法が知りたいのです。