Question

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

Était-ce utile?

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;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top