我想将源表中的150K记录插入到目标表中。问题是我必须计算目标表的一些值。 我应该如何使用INSERT DML的批量收集和语句。
请在下面找到详细说明。
Source Table
Account_id | Status1| Status2
Table 1
Account_id | column2| column3| column4|column6|column7
Table 2
Account_id | column2| column3| column6|column9|column10
否则我必须从表1中获取与源表匹配的account_ids的值,并插入到表2中,我必须动态填充column9和第10列。
答案 0 :(得分:1)
BULK COLLECT需要大量内存,实际上只有在以块为单位处理数据时才可行,即一次约1000行。否则,大多数系统的内存消耗都会过多。
最好的选择通常是创建一个INSERT .. SELECT语句,一次检索,计算和插入所有数据。
如果这不可能或太复杂,我认为第二个最佳选择是用PL / SQL编写的流水线函数。
第三个最好也是最简单的选项是一个简单的PL / SQL循环,它逐行选择,计算所需的数据并逐行插入。性能方面,它通常是最糟糕的。但它仍然绰绰有余。
要获得更精确的答案,您需要指定手头的确切问题。你的问题相当广泛。