SEO (Arama Motoru Optimizasyonu) Mikro İnteraktif ÜCRETSİZ - Google Play'den İndirin

String Or Binary Data Would Be Truncated Hatasının Çözümü

SQL Server'da veritabanında bulunan bir tablodaki sütunun alan yetersizliği (Karakter sınırını aşmak vb..) nedeniyle ortaya çıkan bu durumu çözümüne bakalım.

Hazırlamış olduğunuz bir veritabanı tablosuna yeni bir kayıt eklemek istediğinizde bu can sıkıcı hata ile karşılaşmanız muhtemeldir. Bu hata ile genelde sınırlı karakter sayısına sahip olan (örneğin varchar(50)) sütuna sınırının ötesinde karakter eklemek (örneğin 55 karakter içerik eklemek) istediğinizde karşılaşırız. Bir örnek ile daha da iyi anlamaya çalışalım.

Urunler Tablosu
CREATE TABLE Urunler  (
ID INT PRIMARY KEY NOT NULL IDENTITY(1,1),
urun_adi VARCHAR(20),
ozet VARCHAR(255)
)

DATALENGTH Fonksiyonu ile Byte Uzunluk Değeri Öğrenelim

Ürünler tablosuna ekleyeceğimiz değerlerin byte karşılığını (byte uzunluğunu) öğrenmek için SQL Server'da bulunan DATALENGTH() fonksiyonu kullanalım.

Byte Değerlerini Kontrol Edelim
SELECT 
DATALENGTH('Çamaşır Makinesi') CamasirMakinasiByteUzunluk, 
DATALENGTH('Bulaşık Makinesi') BulasikMakinasiByteUzunluk

Byte Uzunluk Değerleri
String Or Binary Data Would Be Truncated Hatasının Çözümü

Byte uzunluk değerleri görüldüğü gibi varchar(20) sınırlamasına takılmadan insert (ekleme) işlemini yapacaktır.

Bu değerleri tabloya ekleyelim.

Başarılı Bir Insert (Ekleme) İşlemi Yapalım

Ürünler Tablosu Insert
INSERT INTO Urunler (urun_adi, ozet)
VALUES
('Çamaşır Makinesi', 'Çamaşır makinesi, çamaşır yıkamak için kullanılan bir beyaz eşyadır.')

INSERT INTO Urunler (urun_adi, ozet) 
VALUES 
('Bulaşık Makinesi', 'Bulaşık makinesi, evlerde bulaşıkları daha hızlı ve ekonomik olarak yıkamak, yaşam standardını arttırmak için üretilmiş bir makinedir.')

Birkaç kayıt ekledikten sonra tablodaki kayıtları sorgulayalım.
Insert Sonuç
String Or Binary Data Would Be Truncated Hatasının Çözümü

Hatalı Bir Insert (Ekleme) İşlemi Yapalım

Şimdi ise daha uzun isimli bir ürün adı girelim. 20 karakter sınırını aşan şekilde. Çünkü urun_adi kolonu VARCHAR(20) olarak tanımlı. Gireceğimiz yeni değerin byte uzunluğunu kontrol edelim
Byte Değerlerini Kontrol Edelim
SELECT 
DATALENGTH('Burası Çok Uzun İsimli Bir Ürün Adı') YeniDegerByteUzunluk

Girilen bu ürün adının byte uzunluk sonucuna bakalım.
Yeni Değer Byte Uzunluk Kontrolü
String Or Binary Data Would Be Truncated Hatasının Çözümü

Görüldüğü gibi byte uzunluk değeri 41 olarak görülmektedir. Bizim sütunumuz ise varchar(20) yani 20 byte değer sınırı olduğu için sınırı aşan insert yapıldığında String or binary data would be truncated in table hatası karşımıza çıkacaktır.

Alan sınırını aşan insert işlemi yapalım.
Ürünler Tablosu Insert
INSERT INTO Urunler (urun_adi, ozet) 
VALUES 
('Burası Çok Uzun İsimli Bir Ürün Adı', 'Bu ürün genel amaçlı olarak adlandırıldığı için özet bilgisi bulunmamaktadır.')

Görüldüğü gibi ilgili karakter sınırı aşılmış durumdadır. Bu durumda o alana girilen karakter sınırı 20'yi aştığı için VARCHAR(20) yerine VARCHAR(50) gibi bir sütun kullanmak daha da işimize yarayacaktır.
Insert Sonuç
String Or Binary Data Would Be Truncated Hatasının Çözümü

Tablomuzu Alter Edelim

Tablomuzun ilgili kolon tiplerini güncelleyerek daha fazla karakteri içerisine alabilecek şekilde ALTER edelim.
Urunler Tablosu
ALTER TABLE Urunler 
ALTER COLUMN urun_adi VARCHAR(50)

ALTER sonrası tablodaki urun_adi kolonununa ait karakter sınırı değişti.
Insert Sonuç
String Or Binary Data Would Be Truncated Hatasının Çözümü

Tekrardan aynı ekleme işlemini yapmaya çalışalım.
Ürünler Tablosu Insert
INSERT INTO Urunler (urun_adi, ozet) 
VALUES 
('Burası Çok Uzun İsimli Bir Ürün Adı', 'Bu ürün genel amaçlı olarak adlandırıldığı için özet bilgisi bulunmamaktadır.')

Yeni kaydın sorunsuz bir şekilde eklendiğini görmekteyiz.
Insert Sonuç
String Or Binary Data Would Be Truncated Hatasının Çözümü

Yorumlar

Yorum Yaz

Avatar

REKLAM

DDos Koruma, Botnet Koruma, Layer 7 Saldırı koruması, Sanal sunucu, Vds sunucu

REKLAM

Çizgi Filmler

REKLAM

Çocuk Etkinlikleri Uygulaması

EN

  • Popüler
  • Yeni
  • Son Yorum