SET UNUSED COLUMN

Il comando SET UNUSED COLUMN viene usato per rende la colonna non più disponibile.
E' una cancellazione logica perché viene aggiornato il DataDictionary.
Può essere visto come un drop virtuale, perché il comando Drop Column richiede alcuni minuti ad Oracle per esaminare ogni riga e per cancellare fisicamente la colonna.
Conviene  eseguire il comando DROP in un secondo momento, in un periodo di bassa attività del database.

R e g o l e

  • Vengono droppate le constraints e gli indici definiti sulla colonna.
  • La colonna non può essere più recuperata anche se si esegue l'istruzione Rollback.
  • Una volta eseguito il comando UNUSED, è possibile creare un'altra colonna, nella stessa tabella, con il medesimo nome.

S i n t a s s i
ALTER TABLE  nome_tabella  SET UNUSED COLUMN  nome_colonna1;
ALTER TABLE  nome_tabella  SET UNUSED  (nome_colonna1,.., nome_colonnaM);

Esiste una vista del Dizionario Dati che contiene il nome delle tabelle e il numero di colonne in stato Unused (non il nome delle colonne).
select * from USER_UNUSED_COL_TABS;

Una volta poste le colonne in stato Unused è possbile dropparle con il seguente comando.
S i t a s s i
ALTER TABLE  nome_tabella  DROP UNUSED COLUMNS;

Se si riesegue la query sulla vista non compare più il record della tabella "nome_tabella".

Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Create e Drop Pluggable Database