2012-12-01 9 views
5

Mam tabelę z 4 kolumną, ID, NAZWISKO, WIEK i KRAJ. jakiegoś czasu jest cel postawiłem moją kolumnę wieku co niewykorzystane przez poniżej poleceniaJak ponownie używać nieużywanych kolumn w Oracle DB

alter table Personal set unused column AGE; 

Teraz chcę ponownie użyć tej samej kolumnie Age, jak to zrobić w Oracle (10g).

i upuszczając kolumnę i ustawiając kolumnę Nieużywane, co jest najlepszą opcją. Pls poprowadzi mnie.

Odpowiedz

12

Nie można ponownie użyć nieużywanej kolumny. Jedynym możliwym działaniem na kolumnie jest usunięcie go z tabeli.

Ale można dodać nową kolumnę o tej samej nazwie, nawet bez usuwania nieużywanej kolumny.

Z documentation

ALTER TABLE DROP ... UNUSED KOLUMNY oświadczenie jest tylko działanie pozwoliło na nieużywanych kolumn. Fizycznie usuwa nieużywane kolumny z tabeli i odzyskuje miejsce na dysku.

W poniższej instrukcji ALTER TABLE jest określona opcjonalna klauzula CHECKPOINT. Ta klauzula powoduje zastosowanie punktu kontrolnego po przetworzeniu określonej liczby wierszy, w tym przypadku 250. Punkty kontrolne zmniejszają liczbę dzienników cofania zgromadzonych podczas operacji zrzucania kolumn, aby uniknąć potencjalnego wyczerpania cofniętej przestrzeni.

ALTER TABLE hr.admin_emp DROP UNUSED COLUMNS CHECKPOINT 250; 

A ten drugi (Kopalnia nacisk):

Znakowanie Kolumny Niewykorzystane

Jeśli chodzi o czas to może potrwać do spadku danych kolumny ze wszystkich z rzędów w dużym stole, możesz użyć instrukcji ALTER TABLE ... SET UNUSED. Ta instrukcja oznacza jedną lub więcej kolumn jako nieużywane, ale w rzeczywistości nie usuwa danych kolumny docelowej ani nie przywraca miejsca na dysku zajmowanego przez te kolumny. Jednak kolumna oznaczona jako nieużywana nie jest wyświetlana w zapytaniach ani widokach słownika danych, , a jej nazwa jest usuwana, aby nowa kolumna mogła ponownie użyć tej nazwy. Wszystkie ograniczenia, indeksy i statystyki zdefiniowane w kolumnie również zostaną usunięte.

+0

odnośną dokumentacją jest do 11g, ale w 10g [obowiązują te same zasady] (http://docs.oracle.com/cd/B19306_01/server.102/b14231/tables.htm#sthref2328) – jachguate

+1

Dzięki dużo za fajne rozwiązanie, jachguate. – Mohan

Powiązane problemy