Merhabalar,
Oracle üzerinde daha önce oluşturduğunuz bir tablonun kolonlarından birinin ismini değiştirmek istediğinizde kullanacağız script aşağıdaki gibidir.
Alter Table HAKREFTBL RENAME COLUMN THESISPLACE TO PLACE;
Eğer daha önce oluşturmuş olduğunuz sanal tablolardan birinde bu kolonu kullandıysanız, scripti çalıştırdıktan sonra alacağınız uyarı ;
ORA-54032 : yeniden adlandırılacak sütun sanal bir sütun ifadesinde kullanılıyor.
Ve eğer nerede kullandım ki ben bunu diye soracak olursanız ise kullanacağız script;
SELECT virtual_column,V.*
FROM all_tab_cols V
WHERE column_name = ‘THESISPLACE’;
bu script ile zaten sizin fiziksel olarak kullandığınız tablo adını görerek diğerlerinden ayırıyor olacaksınız.
Kalan virtual table ları “DROP TABLE VirTab” şeklindeki scriptler ile siliniz efendim 🙂
Eğer hala vay efendim yeniden adlandırılacak sütun sanal bir sütun ifadesinde kullanılıyor diyorsa bu sefer ;
SELECT COLUMN_NAME, DATA_DEFAULT, HIDDEN_COLUMN
FROM USER_TAB_COLS
WHERE TABLE_NAME LIKE ‘HAKREFTBL%’;
scriptini kullanarak HİDDEN COLUMN u YES olan satıra odaklanıyoruz -_-
Eğer öyle bir satır varsa ki hala uyarı alıyorsak var, bu sefer de ;
EXEC DBMS_STATS.DROP_EXTENDED_STATS (ownname=>'<YOUR_DB_USERNAME>’, tabname=>’STA_PR_PARTICIPANT’, extension=>'(“PR_ROLE”, “USER_ID”, “PR_APPROVED”)’);
Scriptini kullanacağız. ownname mssql den alışık olduğumuz dbo ismidir.tabname de tablo adınız,extention dakiler ise HİDDEN COLUMN u YES olan satırın DATA_DEFAULT kolonunda bulunan fonksiyonun içindeki parametrelerdir.
Script çalıştıktan sonra Result üzerinde “anonymous block completed” yazıyor olacak..
SELECT COLUMN_NAME, DATA_DEFAULT, HIDDEN_COLUMN
FROM USER_TAB_COLS
WHERE TABLE_NAME LIKE ‘HAKREFTBL%’;
bu scritp sonucu şimdi bize yasaklı kolonların olmadığına dair sonucu gösterecektir..
Şimdi tekrar kolonumuzun ismini değiştirmek için scriptimizi çalıştırıyoruz ;
Başardık, evet çok mutluyuz,çünkü altı üstü kolon adını değiştirmek için 220 sözcük ve 3 resim kullandım 😦
İşte bu yüzden MS SQL 🙂