SSIS, Unicode dizesini metin dosyasına Shift-JIS karakter kodu olarak verir
Hatalarla sonuçlanan desenler
SQL Server 'daki bir tablodaki nvarchar türündeki bir sütunun Shift-JIS içinde kullanılamayan bir dizeye sahip olduğunu varsayalım. Bu arada, bu karakterleri varchar sütununa koyarsanız, sağdaki "ColumnShiftJis" sütunu gibi kullanılamayan karakterler vardır. Değiştirin.
SSIS'de akış, şekilde gösterildiği gibi önceki tablodaki verileri okuyacak ve bir metin dosyasına çıktı verecek şekilde ayarlanır.
CSV dosyası olarak çıktı almak istediğinizi varsayalım. CSV dosyalarında genellikle Shift-JIS kullanıldığından, metin dosyasının karakter kodlamasını Shift-JIS olarak ayarlayın.
Bu ayarla yürütürseniz, çıktının zamanlamasında bir hata oluşur.
Aşağıdakine benzer bir hata iletisi görüntülenir:
Çıktı dosyası, hata oluştuğunda yarıya kadar kesintiye uğrar.
Olduğu gibi çıktı almaya çalışırsanız, bu bir hata olacaktır, bu nedenle ortada "veri dönüştürme" yi eklemeyi deneyin.
Veri türünü "DT_WSTR" den "DT_STR" ye dönüştürün ve Shift-JIS'e çıkarılabilen bir form haline getirin.
Ancak, bunu da yürütürseniz, bir hata alırsınız. Bunun nedeni, SSIS'nin verilerin eksik olmasına neden olan örtülü işlemede kesinlikle başarısız olmasıdır. SSIS'nin türü silinmiş metin işlemesini gerçekleştirmesini istiyorsanız, tüm karakterler için karakter değiştirmeyi açıkça belirtmeniz gerekir.
Geçici çözümler
Veritabanındaki bir tablodan okurken SQL kullanarak metin türünü değiştirmenin bir yolu vardır. SQL ise, onu çalıştıran SSIS değil, SQL Server altyapısıdır, böylece hatasız çalışabilir. Bu arada, Shift-JIS'te kullanılamayan tüm karakterler "?" Şuna dönüştürülür: Bu bir SQL Server yan belirtimidir. SSIS olmasa bile, sonuç SQL Server kullanan tüm sistemler için benzerdir.
ADO NET Translator'ı açın ve veri erişim modunu SQL Komutu olarak değiştirin. Artık SQL girebildiğinize göre, veritabanından veri almak için bir Select deyimi yazın. Shift-JIS dizininde kullanılamayan karakterler içeren metin, cast kullanılarak zorla varchar'a dönüştürülür.
Shift-JIS'de kullanılamayan karakterler SSIS'ye veri akışı sırasında zaten kaldırılmış olduğundan, işleme olduğu gibi geçirilebilir.
Metnin CSV dosyasına başarıyla yazıldığını görebilirsiniz. Ayrıca, Shift-JIS'te kullanılamayan tüm karakterler "?" Bunun şu adrese dönüştürüldüğünü görebilirsiniz: