SQL存储过程中多列光标内容物的循环插入



我正在oracle中编写一个复杂的存储过程,该过程做了几件事,作为JDBC的Java程序的一部分。

首先,它需要执行一个非常复杂的选择,以将信息读取到光标,而光标的每一行都表示发票的lineItem。输出光标中大约有10列。对于光标的每一行,某些但并非所有字段都需要插入另一个表格(称为LineItem),除此之外,我还需要将光标中所有这些行的总计进行,并在发票表。

将光标读回Java应用程序会更容易,然后在必要时迭代其内容执行插入物的内容,还是可以在同一存储过程中执行所有这些操作?我认为应该使用多个存储程序来避免复杂性,但是不确定是否可以做到这一点,并且要保留作为一项交易的一部分。

我试图避免创建一个超级复杂的储存proc,但也不想要一个可怕的解决方案。

谢谢

我们也有类似的情况(处理发票及其订单项),我们执行以下操作:

  1. 以1000的批量检索订单项(不要同时让Java程序淹没Java程序)。
  2. 将记录插入LineTiTem表中,并带有"行"记录中所需的列。
  3. 通过这些记录在这些记录中迭代时,推导标题记录的详细信息。
  4. 在批处理处理所有订单项的结束时,将标题记录插入数据库中。

我们使用JPA(带有Hibernate)和Spring进行此操作,并且所有上述步骤均在单个交易中执行。

最新更新