我想通过oracle中的存储过程更新和插入数百万条数据。 我使用了以下方法-
获取列表中的所有数据。 迭代列表并使用提交频率变量更新数据。 如果提交计数达到提交频率,我将交换查询。 举个例子,我的提交频率是10000,那么当执行的提交计数达到提交频率时我就提交。 现在让我们举个例子,如果我有 98000 行需要更新,并且我在每 10000 行之后提交一次。
这适用于前 90000 行,那么如何提交后 8000 行的数据?
我想要解决方案如何提交与提交条件不匹配的数据。
当您“迭代”列表时,我认为您正在循环执行此操作,并且将 commit
作为
end loop
之前的最后一个命令。所以,再来一个commit
之后。 类似这样的:
loop
-- do whatever you do here
l_counter := l_counter + 1;
if l_counter = 10000 then
commit; --> this is what you have now
l_counter := 0;
end if;
end loop;
commit; --> add this