web-dev-qa-db-fra.com

Renommer la table ou la vue Oracle

Quelle est la syntaxe pour renommer une table ou une vue dans Oracle?

49
Steven
ALTER TABLE mytable RENAME TO othertable

Dans Oracle 10g également:

RENAME mytable TO othertable
80
Quassnoi

Pour renommer une table, vous pouvez utiliser:

RENAME mytable TO othertable;

ou

ALTER TABLE mytable RENAME TO othertable;

ou, s'il appartient à un autre schéma:

ALTER TABLE owner.mytable RENAME TO othertable;

Fait intéressant, ALTER VIEW ne prend pas en charge le changement de nom d'une vue. Vous pouvez cependant:

RENAME myview TO otherview;

La commande RENAME fonctionne pour les tables, les vues, les séquences et les synonymes privés, pour votre propre schéma uniquement.

Si la vue n'est pas dans votre schéma, vous pouvez recompiler la vue avec le nouveau nom, puis supprimer l'ancienne vue.

(testé dans Oracle 10g)

27
Jeffrey Kemp

Afin de renommer une table dans un schéma différent, essayez:

ALTER TABLE owner.mytable RENAME TO othertable;

La commande rename (comme dans "rename mytable to othertable ") ne prend en charge que le changement de nom d'une table dans le même schéma.

10
Pop

On peut renommer les index de la même manière:

alter index owner.index_name rename to new_name;
1
Maurício

Au-delà de 10g, la réponse actuelle ne fonctionne plus pour renommer les vues. La seule méthode qui fonctionne toujours est la suppression et la recréation de la vue. La meilleure façon de penser à cela serait:

SÉLECTIONNEZ LE TEXTE À PARTIR DE ALL_VIEWS OERE owner = 'some_schema' et VIEW_NAME = 'some_view';

Ajoutez ceci devant le SQL retourné

Créez ou remplacez la vue some_schema.new_view_name en tant que ...

Supprimer l'ancienne vue

Drop view some_schema.some_view;

1
Wouter