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
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".
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".