SSIS एक यूनिकोड स्ट्रिंग को किसी पाठ फ़ाइल में Shift-JIS वर्ण कोड के रूप में आउटपुट करता है
पैटर्न जो त्रुटियों में परिणाम
मान लें कि SQL Server पर किसी तालिका में प्रकार nvarchar का कोई स्तंभ Shift-JIS में उपयोग नहीं किया जा सकता जो एक स्ट्रिंग है। वैसे, यदि आप इन वर्णों को varchar स्तंभ में रखते हैं, तो ऐसे वर्ण हैं जिनका उपयोग नहीं किया जा सकता है, जैसे दाईं ओर "ColumnShiftJis" स्तंभ. इसे बदलें।
SSIS पर, प्रवाह को पिछली तालिका से डेटा पढ़ने के लिए सेट किया गया है जैसा कि चित्र में दिखाया गया है और इसे किसी पाठ फ़ाइल में आउटपुट किया गया है।
मान लें कि आप इसे CSV फ़ाइल के रूप में आउटपुट करना चाहते हैं। चूंकि Shift-JIS का उपयोग अक्सर CSV फ़ाइलों में किया जाता है, इसलिए पाठ फ़ाइल के वर्ण एन्कोडिंग को Shift-JIS पर सेट करें।
यदि आप इस सेटिंग के साथ निष्पादित करते हैं, तो आउटपुट के समय पर कोई त्रुटि उत्पन्न होगी।
निम्न के जैसा एक त्रुटि संदेश प्रकट होता है:
आउटपुट फ़ाइल भी त्रुटि उत्पन्न होने पर आधे रास्ते के माध्यम से बाधित हो जाएगा।
यदि आप आउटपुट करने का प्रयास करते हैं, तो यह एक त्रुटि होगी, इसलिए बीच में "डेटा रूपांतरण" को शामिल करने का प्रयास करें।
डेटा प्रकार को "DT_WSTR" से "DT_STR" में कनवर्ट करें और इसे एक ऐसे प्रपत्र में बनाएँ जिसे Shift-JIS में आउटपुट किया जा सके.
हालांकि, यदि आप इसे भी निष्पादित करते हैं, तो आपको एक त्रुटि मिलेगी। ऐसा इसलिए है क्योंकि SSIS कड़ाई से अंतर्निहित संसाधन विफल रहता है जो डेटा अनुपलब्ध होने का कारण बनता है। यदि आप चाहते हैं कि SSIS पाठ detyped संसाधन निष्पादित करे, तो आपको सभी वर्णों के लिए वर्ण प्रतिस्थापन को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता होगी.
समाधान
किसी डेटाबेस में किसी तालिका से पढ़ते समय SQL का उपयोग करके पाठ के प्रकार को परिवर्तित करने का कोई तरीका है. यदि यह SQL है, तो यह SQL Server इंजन है जो इसे चलाता है, SSIS नहीं, इसलिए यह त्रुटियों के बिना चल सकता है। वैसे, सभी वर्ण जो Shift-JIS में उपयोग नहीं किए जा सकते हैं, वे "?" हैं? इसमें कनवर्ट किया गया: यह एक SQL Server साइड विनिर्देश है। भले ही यह SSIS नहीं है, परिणाम SQL सर्वर का उपयोग करने वाले सभी सिस्टमों के लिए समान है।
ADO NET अनुवादक खोलें और SQL आदेश के लिए डेटा पहुँच मोड परिवर्तित करें। अब जब आप SQL दर्ज कर सकते हैं, तो डेटाबेस से डेटा पुनर्प्राप्त करने के लिए एक चयन करें कथन लिखें. पाठ जिसमें वे वर्ण हैं जिनका उपयोग Shift-JIS में नहीं किया जा सकता है, उन्हें जबरन कास्ट का उपयोग करके varchar में कनवर्ट किया जाता है.
चूंकि Shift-JIS में उपयोग नहीं किए जा सकने वाले वर्णों को SSIS में प्रवाहित होने वाले डेटा के समय पहले ही निकाल दिया गया है, इसलिए संसाधन को वैसे ही पारित किया जा सकता है जैसा कि यह है।
आप देख सकते हैं कि पाठ सफलतापूर्वक CSV के लिए लिखा गया है। इसके अलावा, Shift-JIS में उपयोग नहीं किए जा सकने वाले सभी वर्ण "?" हैं? आप देख सकते हैं कि इसे इसमें कनवर्ट किया गया है: