SSIS מפיק פלט של מחרוזת Unicode כקוד תו Shift-JIS לקובץ טקסט

תאריך יצירת דף :

דפוסים הגורמים לשגיאות

נניח שלעמודה מסוג nvarchar בטבלה ב- SQL Server יש מחרוזת שלא ניתן להשתמש בה ב- Shift-JIS. אגב, אם אתה שם תווים אלה בעמודה varchar, ישנם תווים שלא ניתן להשתמש בהם, כגון העמודה "ColumnShiftJis" בצד ימין. החלף אותו.

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

ב- SSIS, הזרימה מוגדרת לקריאת נתונים מהטבלה הקודמת כפי שמוצג באיור ולהפצתם לקובץ טקסט.

テキストファイルへ出力する様にフローを構築

נניח שברצונך להפיק פלט אותו כקובץ CSV. מכיוון ש- Shift-JIS משמש לעתים קרובות בקבצי CSV, הגדר את קידוד התווים של קובץ הטקסט ל- Shift-JIS.

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

אם תבצע עם הגדרה זו, תתרחש שגיאה בתזמון הפלט.

テキストファイル書き込み時にエラー

מופיעה הודעת שגיאה הדומה להודעה הבאה:

エラー内容

קובץ הפלט יופרע גם באמצע הדרך כאשר אירעה השגיאה.

出力されたテキスト

אם תנסה להפיק פלט כפי שהוא, זו תהיה שגיאה, לכן נסה לשלב "המרת נתונים" באמצע.

データ変換 追加

המר את סוג הנתונים מ- "DT_WSTR" ל- "DT_STR" והפוך אותו לטופס שניתן להפיק ל- Shift-JIS.

「DT_WSTR」から「DT_STR」に変換

עם זאת, אם גם תבצע זאת, תקבל שגיאה. הסיבה לכך היא ש-SSIS נכשל לחלוטין בעיבוד מרומז שגורם לנתונים להיות חסרים. אם ברצונך ש- SSIS יבצע עיבוד דה-מוקלד של טקסט, יהיה עליך לציין במפורש החלפת תווים עבור כל התווים.

データ変換エラー

דרכים לעקיפת הבעיה

קיימת דרך לשנות את סוג הטקסט באמצעות SQL בעת קריאה מטבלה במסד נתונים. אם זה SQL, זה מנוע SQL Server שמפעיל אותו, לא SSIS, כך שהוא יכול לפעול ללא שגיאות. אגב, כל התווים שלא ניתן להשתמש בהם ב- Shift-JIS הם "?" הומר ל: זהו מפרט צד של SQL Server. גם אם זה לא SSIS, התוצאה דומה עבור כל המערכות המשתמשות ב- SQL Server.

פתח את ADO NET Translator ושנה את מצב הגישה לנתונים לפקודת SQL. כעת, כאשר באפשרותך להזין SQL, כתוב משפט בחר כדי לאחזר נתונים ממסד הנתונים. טקסט המכיל תווים שלא ניתן להשתמש בהם ב- Shift-JIS מומר בכוח ל- varchar באמצעות יצוק.

SQL で varchar に変換

מכיוון שתווים שלא ניתן להשתמש בהם ב- Shift-JIS כבר הוסרו בזמן שהנתונים זורמים ל- SSIS, ניתן להעביר את העיבוד כפי שהוא.

処理成功

ניתן לראות שהטקסט נכתב בהצלחה ל- CSV. כמו כן, כל התווים שלא ניתן להשתמש בהם ב- Shift-JIS הם "?" ניתן לראות שהוא הומר ל:

出力されたテキスト