Domanda

Qual è la sintassi per rinominare una tabella o una vista in Oracle?

È stato utile?

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;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top