- 締切済み
MySQLのストアドプロシージャについて
MySQL5.6のストアドプロシージャが返すSELECT結果のフェッチ方法について教えてください。 delimiter $ create procedure sample_proc() begin select * from TEST_TBL; end$ の様なストアドプロシージャがあり、これを他のストアドプロシージャから呼び出して、 ループしながらフェッチしたいのですが、どうすればよいでしょうか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 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
いまいち論点がわかりません。 普通に他のプロシージャ内から該当のプロシージャをコールすればよいのでは?
補足
プログラム全体として以下の構成だと思ってください。 (1)内部でselect文を実行しているストアドプロシージャ(元質問内の例参照) (2)(1)を呼び出し、その結果を利用して処理するストアドプロシージャ (3)(2)を呼び出すクライアントプログラム 質問としては(2)の作り方((1)の結果の利用方法)を知りたかったのです。 普通にできる話なのかもしれませんが、具体的な方法が知りたいのです。