Renommer la table ou la vue Oracle

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

ALTER TABLE mytable RENAME TO othertable 

Dans Oracle 10g aussi:

 RENAME mytable TO othertable 

Pour renommer une table, vous pouvez utiliser:

 RENAME mytable TO othertable; 

ou

 ALTER TABLE mytable RENAME TO othertable; 

ou, si elle 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 recomstackr la vue avec le nouveau nom, puis supprimer l’ancienne vue.

(testé dans Oracle 10g)

Pour 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 renommage 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; 

Passé 10g, la réponse actuelle ne fonctionne plus pour renommer les vues. La seule méthode qui fonctionne encore est de supprimer et de recréer la vue. La meilleure façon de penser à cela serait:

SELECT TEXT FROM ALL_VIEWS WHERE 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 comme …

Déposez l’ancienne vue

Drop view some_schema.some_view;