Переименовать таблицу Oracle или представление
-
08-07-2019 - |
Вопрос
Каков синтаксис для переименования таблицы или представления в Oracle?
Решение
ALTER TABLE mytable RENAME TO othertable
В Oracle 10g
также:
RENAME mytable TO othertable
Другие советы
Чтобы переименовать таблицу, вы можете использовать:
RENAME mytable TO othertable;
или
ALTER TABLE mytable RENAME TO othertable;
или, если принадлежит другой схеме:
ALTER TABLE owner.mytable RENAME TO othertable;
Интересно, что ALTER VIEW не поддерживает переименование представления.Однако вы можете:
RENAME myview TO otherview;
Команда ПЕРЕИМЕНОВАТЬ работает для таблиц, представлений, последовательностей и частных синонимов, только для вашей собственной схемы.
Если представления нет в вашей схеме, вы можете перекомпилировать представление с новым именем, а затем удалить старое представление.
(протестировано в Oracle 10g)
Чтобы переименовать таблицу в другой схеме, попробуйте:
ALTER TABLE owner.mytable RENAME TO othertable;
Команда переименования (как в " переименовать mytable в othertable
") поддерживает только переименование таблицы в той же схеме.
Можно переименовать индексы таким же образом
alter index owner.index_name rename to new_name;
После 10g текущий ответ больше не работает для переименования представлений. Единственный метод, который все еще работает, это удаление и воссоздание представления. Лучший способ сделать это:
ВЫБЕРИТЕ ТЕКСТ ОТ ALL_VIEWS WHERE owner = 'some_schema' и VIEW_NAME = 'some_view';
Добавьте это перед возвращаемым SQL
Создать или заменить представление some_schema.new_view_name как ...
Отбрось старый вид
Отбросить представление some_schema.some_view;