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

Я новичок в оракуле. Мой текущий сценарий: мне нужно добавить столбец 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 записей.


person AnishK    schedule 14.03.2017    source источник
comment
Почему только 1000 за раз?   -  person BobC    schedule 14.03.2017
comment
39000 записей - это не так уж много записей. Просто используйте один оператор UPDATE.   -  person APC    schedule 14.03.2017


Ответы (1)


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

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

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

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

person APC    schedule 14.03.2017