Обновляйте только 1000 записей одновременно в Oracle

Я довольно новичок в оракуле. Мой текущий сценарий - мне нужно добавить столбец NOT NULL и обновить его значение до "EE". Это делается с помощью приведенного ниже сценария.

ALTER TABLE CSA.CSA_CALL_AUDIT ADD CSA_CALL_TYPE varchar2(10);
update CSA.CSA_CALL_AUDIT set CSA_CALL_TYPE = 'EE';
ALTER table CSA.CSA_CALL_AUDIT modify CSA_CALL_TYPE not null;

Мое требование - обновлять 1000 записей только за один раз. Всего в таблице 39000 записей.

1 ответ

ЕСЛИ EE это значение по умолчанию, это наиболее эффективный способ сделать это изменение:

ALTER TABLE CSA.CSA_CALL_AUDIT ADD CSA_CALL_TYPE varchar2(10)
      default 'EE' not null;

Oracle использует магию в словаре данных, не касаясь строк. (По крайней мере, в 11g и позже, не уверен, вводили ли они это улучшение ранее.)

Но в любом случае 39000 записей - это не большое количество записей. Если вам нужно выдать фактическое ОБНОВЛЕНИЕ, просто используйте один оператор. Это не займет много времени.

Другие вопросы по тегам