2012-12-01 11 views
5

Ho una tabella con 4 colonne, ID, NOME, ETÀ e PAESE. per qualche scopo momento ho impostato la mia colonna AGE inutilizzato da sotto comandoCome riutilizzare nuovamente le colonne non utilizzate nel DB Oracle

alter table Personal set unused column AGE; 

ora voglio usare di nuovo la stessa età di colonna, come farlo in Oracle (10g).

e rilasciare una colonna e impostare una colonna su Non utilizzato che è l'opzione migliore. Pls mi guida.

risposta

12

Non è possibile riutilizzare la colonna non utilizzata. L'unica azione possibile sulla colonna è rimuoverla dalla tabella.

Ma è possibile aggiungere una nuova colonna con lo stesso nome, anche senza rimuovere la colonna non utilizzata.

Dal documentation

tavola ... GOCCIA COLONNE UTILIZZATO ALTER è l'unica azione consentita su colonne non utilizzate. Rimuove fisicamente le colonne non utilizzate dalla tabella e recupera lo spazio su disco.

Nell'istruzione ALTER TABLE che segue viene specificata la clausola opzionale CHECKPOINT. Questa clausola determina l'applicazione di un punto di controllo dopo l'elaborazione del numero di righe specificato, in questo caso 250. Il checkpoint riduce la quantità di registri di annullamento accumulati durante l'operazione della colonna di rilascio per evitare un potenziale esaurimento dello spazio di annullamento.

ALTER TABLE hr.admin_emp DROP UNUSED COLUMNS CHECKPOINT 250; 

E questo altro (sottolineatura mia):

Marcatura Colonne inutilizzati

Se siete preoccupati per il periodo di tempo che potrebbe prendere a rilasciare i dati della colonna da tutto delle righe in una tabella di grandi dimensioni, è possibile utilizzare l'istruzione ALTER TABLE ... SET UNUSED. Questa istruzione contrassegna una o più colonne come non utilizzate, ma in realtà non rimuove i dati della colonna di destinazione né ripristina lo spazio su disco occupato da queste colonne. Tuttavia, una colonna contrassegnata come non utilizzata non viene visualizzata nelle query o nelle viste del dizionario dati, e il suo nome viene rimosso in modo che una nuova colonna possa riutilizzare tale nome. Vengono rimossi anche tutti i vincoli, gli indici e le statistiche definiti nella colonna.

+0

La documentazione si fa riferimento è per 11g, ma in 10g [applicare le stesse regole] (http://docs.oracle.com/cd/B19306_01/server.102/b14231/tables.htm#sthref2328) – jachguate

+1

Grazie molto per bella soluzione, jachguate. – Mohan

Problemi correlati