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

StackOverflow https://stackoverflow.com/questions/835387

  •  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;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top