Переименовать таблицу или представление Oracle

каков синтаксис переименования таблицы или представления в Oracle?

5 ответов


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;

команда RENAME работает для таблиц, представлений, последовательностей и частных синонимов, только для вашей собственной схемы.

если представление отсутствует в вашей схеме, вы можете перекомпилировать представление с новым именем, а затем удалить старое вид.

(протестировано в Oracle 10g)


чтобы переименовать таблицу в другой схеме, попробуйте:

ALTER TABLE owner.mytable RENAME TO othertable;

команда переименовать (как в "rename mytable to othertable") поддерживает только переименование таблицы в той же схеме.


можно переименовать индексы таким же образом:

alter index owner.index_name rename to new_name;

Past 10g текущий ответ больше не работает для переименования представлений. Единственный метод, который все еще работает, - это удаление и воссоздание представления. Лучший способ, который я могу придумать, чтобы сделать это:

выберите текст из всех просмотров, где owner= 'some_schema' и VIEW_NAME= 'some_view';

добавьте это перед возвращенным SQL

создать или заменить представление some_schema.new_view_name как ...

удалить старую вид

Drop view some_schema.some_view;