2009-05-07 7 views

Répondre

66
ALTER TABLE mytable RENAME TO othertable 

En Oracle 10g aussi:

RENAME mytable TO othertable 
+0

Dans les versions oracle antérieures à 10g, les vues ne peuvent plus être renommées. Drop/recréer est la seule façon possible de le faire maintenant. Vérifiez la réponse séparée pour un exemple. – Wouter

10

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

ALTER TABLE owner.mytable RENAME TO othertable; 

La commande de changement de nom (comme dans "rename mytable to othertable") seulement supports renommer une table dans le même schéma.

25

Pour renommer une table, vous pouvez utiliser:

RENAME mytable TO othertable; 

ou

ALTER TABLE mytable RENAME TO othertable; 

ou, si détenu par un autre schéma:

ALTER TABLE owner.mytable RENAME TO othertable; 

Fait intéressant, ALTER VIEW ne supporte pas le renommage une vue. Vous pouvez cependant:

RENAME myview TO otherview; 

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

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

(testé dans Oracle 10g)

+1

dans 11g, l'exemple initial que vous avez là n'a pas fonctionné pour moi, mais la seconde a fait ... – rogerdpack

+0

Notez que RENAME fonctionne toujours en 11g et 12g - référez-vous http://docs.oracle.com/database/121/SQLRF/statements_9020.htm#SQLRF01608 –

+0

2017 merci :) – Ilaria

1

On peut rename indexes de la même façon:

alter index owner.index_name rename to new_name; 
+0

Aurait été plus approprié comme un commentaire, pas une réponse. – Wouter

1

passé 10g la réponse actuelle ne fonctionne plus pour renommer des vues. La seule méthode qui fonctionne toujours consiste à supprimer et recréer la vue. La meilleure façon que je peux penser à faire ce serait:

TEXTE CHOISISSEZ DE ALL_VIEWS OU propriétaire = « some_schema » et VIEW_NAME = « some_view »;

Ajouter ce devant le SQL retourné

Créer ou remplacer some_schema.new_view_name vue comme ...

Goutte l'ancienne vue

vue Goutte some_schema .some_view;

Questions connexes