Я пытаюсь добавить столбец, допускающий значение NULL, в часто используемую таблицу в базе данных Oracle 10 OLTP, пока приложение работает и занято. Добавление столбца, допускающего значение NULL, — это всего лишь изменение словаря данных, и поэтому любая блокировка таблицы удерживается только в течение короткого периода времени (который может быть обработан системой).
Проблема в том, что мой ALTER TABLE
часто не работает с этим:
ORA-00054: resource busy and acquire with NOWAIT specified
Мой текущий подход состоит в том, чтобы заблокировать изменение, запустив его до тех пор, пока в таблице не останется блокировок. Это означает, что я не могу полностью запустить такой скрипт в SQL*Plus, но мне нужно скопировать и вставить каждое выражение и убедиться, что оно работает.
Есть ли способ лучше?