Переименовать Oracle Table или View - PullRequest
48 голосов
/ 07 мая 2009

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

Ответы [ 5 ]

79 голосов
/ 07 мая 2009
ALTER TABLE mytable RENAME TO othertable

В Oracle 10g также:

RENAME mytable TO othertable
27 голосов
/ 08 мая 2009

Для переименования таблицы вы можете использовать:

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)

10 голосов
/ 07 мая 2009

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

ALTER TABLE owner.mytable RENAME TO othertable;

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

1 голос
/ 08 сентября 2015

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

ВЫБЕРИТЕ ТЕКСТ ОТ ALL_VIEWS WHERE owner = 'some_schema' и VIEW_NAME = 'some_view';

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

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

Отбрось старый вид

Отбросить представление some_schema.some_view;

1 голос
/ 12 ноября 2009

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

alter index owner.index_name rename to new_name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...