- 締切済み
Fetchについて悩んでいます
素人な質問だとは思いますが困っています。 よろしくお願いします。 処理としてはサーバー側(Java)で帳票のためのデータをオラクルから取得するのですが、 件数が膨大な為、PL/SQLのFETCHで1件ずつ取得しサーバー側で中止要求命令が出ればFETCHを途中で終了し、それまで取得したデータをクライアントへ返却するというものです。 この実現に悩んでいます。 サーバー側でストアドをコールして1件取得し、その後再びストアドをコールし2件目を取得するということは可能なのでしょうか? Fetchにこだわっているわけではありません。 何か他に方法がありましたらご教授ください。 足りない表現などは補足させていただきますので、ぜひよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
PL/SQLで、中止要求が受け取れるなら、同じことをjava側で直に実装すれば、 ややこしい話にならないような気がします。 (PL/SQLを挟むから悩ましいんですよね?) もっとも、中止要求という部分を・・ サーバ側で、”強制セッション切断”に変えて、クライアント側で、 セッション切れたら、”中止要求”と扱うでもいけそうな気がします。
- mitoneko
- ベストアンサー率58% (469/798)
java側のプログラムで、条件を細分化した方が簡単な処理ですみそうな気がします。 たとえば、検索するデータにシリアルコードがついているなら、所用の条件に、code between 1 and 100 といった条件をandで付け加えて、次は、code between 101 and 200・・・以下全部のデータが網羅できるまでループさせればよいでしょう。条件を細分化できれば、日付だろうが何だろうが同じパターンでできると思います。indexがついたフィールドで細分化できれば言うことなしです。 もし、ループの途中で、中止することに決めれば、ループをブレークしてしまえばよいだけですから、実装もそんなに複雑にならないと思います。 要件によっては、適しないかもしれませんので、自信なしということで。