2012-12-01 35 views
5

ben 4 sütun, kimliği, ad, yaş ve ÜLKE içeren bir tablo var Kullanılmayan sütunları yeniden nasıl. ben aşağıda tarafından kullanılmayan olarak benim YAŞ sütun belirledik bazı şimdilik amaçla oracle tekrar DB

alter table Personal set unused column AGE; 

Şimdi ben Oracle (10g) bunu nasıl tekrar aynı sütun AGE kullanmak istiyorum emrediyorum.

ve bir sütun bırakarak ve Kullanılmayan bir sütun ayarı en iyi seçenektir. Pls bana rehberlik ediyor.

cevap

12

Sen bir kullanılmamış sütun yeniden kullanmayın olabilir. Sütundaki tek olası işlem, tablodan kaldırmaktır.

Ama daha kullanılmayan sütunu çıkarmadan, aynı adla yeni bir sütun ekleyebilir. documentation

ALTER tablo ... BIRAKMA KULLANILMAYAN KOLONLAR deyimi itibaren

kullanılmayan sütunlar üzerinde izin verilen tek eylemdir. Kullanılmayan sütunları tablodan fiziksel olarak kaldırır ve disk alanını geri alır. aşağıdaki alter TABLO açıklamada

, isteğe bağlı deyimler DENETIMNOKTASı belirtilir. Bu madde, belirtilen satır sayısını işledikten sonra bir kontrol noktasının uygulanmasına neden olur, bu durumda 250. Kontrol noktası, alanın geri çekilmesi olasılığını önlemek için düşme sütunu işlemi sırasında biriken geri alma günlüğü miktarını azaltır.

ALTER TABLE hr.admin_emp DROP UNUSED COLUMNS CHECKPOINT 250; 

Ve bu diğer (vurgu benim): zamanın uzunluğu hakkında endişeleriniz varsa hepsi sütun verilerini düşmesi sürebilir

Kullanılmayan

İşaretleme Sütunlar satırların büyük bir tabloda, ALTER TABLE ... SET UNUSED deyimini kullanabilirsiniz. Bu ifade, kullanılmayan bir veya daha fazla sütunu işaretler, ancak aslında hedef sütun verilerini kaldırmaz veya bu sütunların kapladığı disk alanını geri yüklemez. Ancak, kullanılmayan olarak işaretlenmiş bir sütun sorguları veya veri sözlüğü görünümler, görüntülenmez ve yeni bir sütun bu ismi yeniden kullanabilmek için adı kaldırılır. Sütunda tanımlanan tüm kısıtlamalar, indeksler ve istatistikler de kaldırılır.

+0

başvurulan belgeler 11g için, ancak 10g [aynı kurallar geçerlidir] (http://docs.oracle.com/cd/B19306_01/server.102/b14231/tables.htm#sthref2328) – jachguate

+1

teşekkürler güzel çözüm için çok, jachguate. – Mohan