我的桌子有接近800万行。有没有办法更新第一个10000记录,然后是下一个10000记录等等。
我确实在此处检查了 select 语句。但是找不到任何解决方案更新语句。有人可以帮忙吗?希望这将对未来有需要的人有帮助。
更新:数据库版本:12c
如果您知道已经更新了哪些记录,这是一个简单的解决方案。至少它将使您的交易范围保持在合理的规模。
DECLARE
i number := 1;
BEGIN
while i > 0 loop
UPDATE < your table >
SET col = <value>
WHERE rownum < 100000
AND <some statement that exclude already updated records>
i := sql%rowcount;
commit;
end loop;
END;