JDBCを使用したJavaプログラムの一部として、いくつかのことを行う複雑なストアドプロシージャをORacleで作成しています。
まず、カーソルに情報を読み込むために非常に複雑なSELECTを実行する必要があります。カーソルの各行は、請求書の明細を示します。出力カーソルには約10列あります。カーソルの各行について、すべてではありませんが一部のフィールドを別のテーブル(LineItemと呼ばれる)に挿入する必要があります。これに加えて、カーソル内のすべての行の合計を取得し、で親行を作成する必要があります。請求書テーブル。
カーソルをJavaアプリに読み戻し、その内容を繰り返して必要に応じてINSERTSを実行する方が簡単ですか、それとも同じストアドプロシージャ内でこれらすべてを実行することは可能ですか?複雑さを避けるために複数のストアドプロシージャを使用する必要があると思いますが、これを実行できるかどうか、すべてを1つのトランザクションの一部として残すことができるかどうかはわかりません。
非常に複雑なストアドプロシージャの作成を避けようとしていますが、恐ろしい解決策も望んでいません。
ありがとう