Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Firebird - İçinde veri olan bir alanın tipini değiştirme
#1
Merhabalar,
IBExpert ile Firebird veritabanı kullanarak bir tablo oluşturdum. Fakat bu tabloda sayısal olması gereken bir alanı yanlışlıkla Varchar yapmıştım. Şimdi ise bu tablo içerisindeki verileri silmeden field tipini değiştirmek istiyorum. Bu mümkün müdür?
İyi çalışmalar.
Cevapla
#2
(07-06-2020, Saat: 13:08)habikus Adlı Kullanıcıdan Alıntı: Merhabalar,
IBExpert ile Firebird veritabanı kullanarak bir tablo oluşturdum. Fakat bu tabloda sayısal olması gereken bir alanı yanlışlıkla Varchar yapmıştım. Şimdi ise bu tablo içerisindeki verileri silmeden field tipini değiştirmek istiyorum. Bu mümkün müdür?
İyi çalışmalar.

Merhabalar,

Öncelikle yedeğinizi alın.
FB hiç kullanmadığım için bir kaç önerim olacak.

1. Yeni bir field ekleyin. (Sayısal alan). Eski field verilerini buraya kopyalayın.
    Sorunları görüp ona göre hareket edin.

2. Eğer Varchar alan içerisinde noktalama işaretleri kayıtlı değil ise (. veya , )
    Alter komutu ile alanın tipini değiştirebilirsiniz.
ALTER TABLE TABLOADINIZ ALTER COLUMN KOLONADINIZ TYPE integer

Umarım faydalı olur.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
@hi_selamlar çok güzel bir öneri ile taçlandırmış.

Şöyle bir kötü haberim var ama siz yine de yedek alıp denemenizi yapın. 

Bu linkte hangi veri tiplerinin hangi(leri)ne dönüşebildiği tablosu verilmiş. Aman ha mevcut fieldi @hi_selamlar dediği gibi yeni bir sayısal alana aktarmadan denemeyin. 

Yanılma payını hesaba katıp deneyiminizi burada paylaşırsanız hepimize faydalı olacaktır.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#4
Yardımlarınız doğrultusunda, aşağıda olduğu gibi yeni bir alan oluşturdum verileri o alana aktardım. 
Allah razı olsun.

// 1.ADIM : YENİ BİR ALAN OLUŞTUR  
 try   
 sqltext:='Alter Table IRSALIYE add '+'YENI_ALAN'+' DOUBLE PRECISION';
 FDQuery2.Close;
 FDQuery2.SQL.Clear;
 FDQuery2.SQL.Text :=sqltext;
 FDQuery2.ExecSQL;      
 except  
 end; 
 
 FDQuery2.Close;
 FDQuery2.SQL.Clear;
 FDQuery2.SQL.Text:='select * from IRSALIYE';   
 FDQuery2.Active:=TRUE;
 
 // 2.ADIM : BÜTÜTÜN VERİLERİ ESKİ ALANDAN YENİŞ ALANA AKTAR
 FDQuery2.Open;
 FDQuery2.FIRST;
 WHILE NOT FDQuery2.EOF DO
       BEGIN
       FDQuery2.Edit;
       FDQuery2.FieldByName('YENI_ALAN').AsString:=FDQuery2.FieldByName('EVRAKNO').AsString;
       FDQuery2.Post;            
       FDQuery2.Next;
       END;
       
 // 3.ADIM : ESKİ ALANI SİL
 try   
 sqltext:='Alter Table IRSALIYE Drop EVRAKNO';         
 FDQuery2.Close;
 FDQuery2.SQL.Clear;
 FDQuery2.SQL.Text :=sqltext;
 FDQuery2.ExecSQL;      
 except  
 end; 
 
 // 4.ADIM : YENİ ALANIN ADINI ESKİ ALANI ADIYLA DEĞİŞTİR
 try   
 sqltext:='Alter Table IRSALIYE Alter Column YENI_ALAN to EVRAKNO';        
 FDQuery2.Close;
 FDQuery2.SQL.Clear;
 FDQuery2.SQL.Text :=sqltext;
 FDQuery2.ExecSQL;      
 except  
 end;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Webden Bir Alandan Veri Çekmek akissoftware 18 4.381 18-04-2021, Saat: 15:45
Son Yorum: mkysoft
  Wsdl servise veri gönderme hatası tuna 3 189 09-04-2021, Saat: 20:03
Son Yorum: tuna
  IdHttp Dönen veri status Problemi [Çözüldü ] Mesut 26 1.159 30-03-2021, Saat: 15:45
Son Yorum: Mesut
  3D lidar veri analizi için PPL veya Thread nuheroglu 16 859 28-03-2021, Saat: 14:17
Son Yorum: nuheroglu
  firebird procedure ibrahim.aydin@perga.com.tr 2 307 22-02-2021, Saat: 15:20
Son Yorum: ibrahim.aydin@perga.com.tr



Konuyu Okuyanlar: 1 Ziyaretçi