• 締切済み

Fetchについて悩んでいます

素人な質問だとは思いますが困っています。 よろしくお願いします。 処理としてはサーバー側(Java)で帳票のためのデータをオラクルから取得するのですが、 件数が膨大な為、PL/SQLのFETCHで1件ずつ取得しサーバー側で中止要求命令が出ればFETCHを途中で終了し、それまで取得したデータをクライアントへ返却するというものです。 この実現に悩んでいます。 サーバー側でストアドをコールして1件取得し、その後再びストアドをコールし2件目を取得するということは可能なのでしょうか? Fetchにこだわっているわけではありません。 何か他に方法がありましたらご教授ください。 足りない表現などは補足させていただきますので、ぜひよろしくお願いします。

みんなの回答

回答No.2

PL/SQLで、中止要求が受け取れるなら、同じことをjava側で直に実装すれば、 ややこしい話にならないような気がします。 (PL/SQLを挟むから悩ましいんですよね?) もっとも、中止要求という部分を・・ サーバ側で、”強制セッション切断”に変えて、クライアント側で、 セッション切れたら、”中止要求”と扱うでもいけそうな気がします。

  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.1

 java側のプログラムで、条件を細分化した方が簡単な処理ですみそうな気がします。  たとえば、検索するデータにシリアルコードがついているなら、所用の条件に、code between 1 and 100 といった条件をandで付け加えて、次は、code between 101 and 200・・・以下全部のデータが網羅できるまでループさせればよいでしょう。条件を細分化できれば、日付だろうが何だろうが同じパターンでできると思います。indexがついたフィールドで細分化できれば言うことなしです。  もし、ループの途中で、中止することに決めれば、ループをブレークしてしまえばよいだけですから、実装もそんなに複雑にならないと思います。  要件によっては、適しないかもしれませんので、自信なしということで。

関連するQ&A