Обновите первые 10000 строк, затем следующие 10000 и так далее? - PullRequest
0 голосов
/ 12 марта 2019

В моей таблице около 8 миллионов строк.Есть ли способ обновить первые 10000 записей, а затем следующие 10000 записей и т. Д. До 8-миллионной записи отдельно в Oracle?

Я проверил здесь для Выбрать заявление.Но не нашел решений для оператора Update .Может кто-нибудь, пожалуйста, помогите?Надеюсь, что это поможет кому-то нуждающемуся в будущем.

ОБНОВЛЕНИЕ : Версия базы данных: 12C

1 Ответ

2 голосов
/ 12 марта 2019

Это простое решение, если вы знаете, какие записи уже были обновлены.По крайней мере, ваши транзакции будут в разумных пределах.

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;
...