我正在 ORacle 中编写一个复杂的存储过程,它可以做几件事,作为带有 JDBC 的 Java 程序的一部分。
首先,它需要执行一个非常复杂的 SELECT 以将信息读入游标,游标的每一行都表示发票的一个行项。输出游标中大约有 10 列。对于游标的每一行,需要将部分但不是所有字段插入到另一个表(称为 LineItem)中,除此之外,我需要获取游标中所有这些行的总和并在其中创建父行发票表。
将光标读回 Java 应用程序,然后根据需要迭代其内容执行 INSERTS 会更容易,还是可以在同一个存储过程中完成所有这些操作?我认为应该使用多个存储过程来避免复杂性,但不确定这是否可以完成并且是否将其全部保留为一个事务的一部分。
我试图避免创建一个超级复杂的存储过程,但也不想要一个可怕的解决方案。
谢谢