Renommer la table ou la vue Oracle
-
08-07-2019 - |
Question
Quelle est la syntaxe pour renommer une table ou une vue dans Oracle?
La solution
ALTER TABLE mytable RENAME TO othertable
Dans Oracle 10g
également:
RENAME mytable TO othertable
Autres conseils
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 permet pas de renommer 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 ne figure pas dans votre schéma, vous pouvez la recompiler avec le nouveau nom, puis supprimer l'ancienne vue.
(testé dans Oracle 10g)
Pour renommer une table dans un autre schéma, essayez:
ALTER TABLE owner.mytable RENAME TO othertable;
La commande renommer (comme dans " renommer ma table en autre table
") ne prend en charge que le changement de nom d'une table dans le même schéma.
On peut renommer les index de la même manière :
alter index owner.index_name rename to new_name;
Après 10g, la réponse actuelle ne fonctionne plus pour renommer les vues. La seule méthode qui fonctionne toujours consiste à supprimer et à recréer la vue. La meilleure façon dont je puisse penser à faire cela serait:
SÉLECTIONNER LE TEXTE DE ALL_VIEWS WHERE propriétaire = 'une_schéma' et VIEW_NAME = 'une_vue';
Ajoutez ceci devant le SQL renvoyé
Créez ou remplacez la vue some_schema.new_view_name en tant que ...
Supprimer l'ancienne vue
Supprimer la vue some_schema.some_view;