SSIS, Unicode dizesini metin dosyasına Shift-JIS karakter kodu olarak verir

Sayfa oluşturma tarihi :

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.

Unicode 文字をデータベースのテーブルに入れる

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.

文字コードを Shift-JIS に設定

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.

「DT_WSTR」から「DT_STR」に変換

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.

SQL で varchar に変換

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:

出力されたテキスト