Rinomina tabella o vista Oracle
-
08-07-2019 - |
Domanda
Qual è la sintassi per rinominare una tabella o una vista in Oracle?
Soluzione
ALTER TABLE mytable RENAME TO othertable
In Oracle 10g
anche:
RENAME mytable TO othertable
Altri suggerimenti
Per rinominare una tabella puoi usare:
RENAME mytable TO othertable;
o
ALTER TABLE mytable RENAME TO othertable;
oppure, se di proprietà di un altro schema:
ALTER TABLE owner.mytable RENAME TO othertable;
È interessante notare che ALTER VIEW non supporta la ridenominazione di una vista. Tuttavia, puoi:
RENAME myview TO otherview;
Il comando RENAME funziona per tabelle, viste, sequenze e sinonimi privati, solo per il tuo schema.
Se la vista non è nello schema, è possibile ricompilare la vista con il nuovo nome e quindi eliminare la vista precedente.
(testato in Oracle 10g)
Per rinominare una tabella in uno schema diverso, prova:
ALTER TABLE owner.mytable RENAME TO othertable;
Il comando rename (come in " rinomina mytable in othertable
") supporta solo la ridenominazione di una tabella nello stesso schema.
È possibile rinominare gli indici allo stesso modo :
alter index owner.index_name rename to new_name;
Passati 10 g la risposta corrente non funziona più per rinominare le viste. L'unico metodo che funziona ancora è eliminare e ricreare la vista. Il modo migliore che mi viene in mente di fare questo sarebbe:
SELEZIONA TESTO DA TUTTE LE VISTE DOVE proprietario = 'some_schema' e VIEW_NAME = 'some_view';
Aggiungi questo davanti all'SQL restituito
Crea o sostituisci view some_schema.new_view_name come ...
Rilascia la vista precedente
Rilascia vista some_schema.some_view;