Я всегда стараюсь избегать переименования таблиц -> создать новую таблицу -> сделать что-то для перемещения данных -> удалить старые таблицы решений, если это возможно. Всегда есть соображения о недействительности PL / SQL, воссоздании грантов, блокировок и т. Д., Которые могут усложнить это.
Если триггер не ссылается на соответствующий столбец, я бы:
- добавить новый столбец (очевидно, с другим именем)
- обновить таблицу, чтобы установить newColVal = oldColVal
- опустить старый столбец
- переименовать столбец в старое имя
Один незначительный недостаток этого заключается в том, что новый столбец появится в конце списка столбцов таблицы, когда средства разработки описывают таблицу - это меня никогда не беспокоило, но для некоторых это имеет значение.
Как указал Даниэль Э., пакет DBMS_REDEFINITION является альтернативой этому, но, по моему опыту, установка и выполнение этого требует много времени. Эту технику стоит изучить, если вам когда-либо придется вносить изменения в системы без каких-либо простоев.