Oracle 更新前10000行,然后更新下10000行,依此类推?

Oracle 更新前10000行,然后更新下10000行,依此类推?,oracle,oracle12c,Oracle,Oracle12c,我的表有近800万行。是否有办法更新前10000条记录,然后更新下10000条记录,依此类推。。直到Oracle的第800万条记录 我确实检查了Select语句。但没有找到任何更新语句的解决方案。有人能帮忙吗?希望这能帮助将来有需要的人 更新:数据库版本:12C如果您知道哪些记录已经更新,这是一个简单的解决方案。至少它会让你的交易量保持在合理的范围内 DECLARE i number := 1; BEGIN while i > 0 loop UPDATE <

我的表有近800万行。是否有办法更新前10000条记录,然后更新下10000条记录,依此类推。。直到Oracle的第800万条记录

我确实检查了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;
声明
i编号:=1;
开始
当i>0循环时
更新
设置列=
其中rownum<100000
及
i:=sql%行计数;
犯罪
端环;
结束;

如果您知道哪些记录已经更新,这是一个简单的解决方案。至少它会让你的交易量保持在合理的范围内

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;
声明
i编号:=1;
开始
当i>0循环时
更新
设置列=
其中rownum<100000
及
i:=sql%行计数;
犯罪
端环;
结束;

谢谢你,迈克。行是否需要按顺序(以预定顺序)更新,还是可以并行更新多组10000行?ThanksBatch更新是一个解决方案,看看你到底想实现什么?您有任何性能问题吗?按顺序@alexgibbs.Hi Jacob,我对批处理有相同的想法。但是通过SQL实现这一点是我的第一选择。谢谢Mike。行是否需要按顺序(以预定顺序)更新,还是可以并行更新多组10000行?ThanksBatch更新是一个解决方案,看看你到底想实现什么?您有任何性能问题吗?按顺序@alexgibbs.Hi Jacob,我对批处理有相同的想法。但通过SQL实现这一点将是我的首选。