डेटा के संभावित नुकसान के कारण मान को परिवर्तित नहीं किया जा सकता है [बंद]


12

मुझे यह स्पष्ट करने से शुरू करना चाहिए कि यह एक डुप्लिकेट प्रश्न नहीं है , और न ही उस मामले के लिए एक संभावित डुप्लिकेट। मैंने हर एक वेरिएंट के हर उत्तर को लागू करने की कोशिश की है जो पहले से ही स्टैकऑवरफ्लो और डीबीए स्टैक एक्सचेंज में इस समस्या के मौजूद है, बिना किसी भाग्य के।

मैं पिछले दो दिनों से इस समस्या से जूझ रहा हूं (दिन में लगभग 7 घंटे काम करना), और इस मुद्दे को गूग्ल करने के बाद भी, ऐसा प्रतीत होता है कि किसी और को मेरी समस्या का ठीक वैसा ही रूप नहीं भा रहा है।

मैं क्या करने की कोशिश कर रहा हूं?

SSIS में, मैं एक CSV फ़ाइल से पढ़ने की कोशिश कर रहा हूं, और इसमें से पंक्तियों को OLE DB डेटाबेस में सम्मिलित कर रहा हूँ। उसके लिए, मैंने अब तक का सबसे सरल सेटअप बनाया है, जिसे नीचे देखा गया है।

  1. Flat File Source - CSV पंक्तियों को पढ़ता है।
  2. Derived Column - वर्तमान में कुछ भी नहीं है (यह सिर्फ प्रयोग करने के लिए है)।
  3. Data Conversion - वर्तमान में कुछ भी नहीं है (यह सिर्फ प्रयोग करने के लिए है)।
  4. OLE DB Destination - डेटाबेस में पंक्तियों को संग्रहीत करता है।

जब मैं इसे चलाने की कोशिश करता हूं, तो यह निम्नलिखित त्रुटि-संदेश के साथ मेरे OLE DB गंतव्य पर निष्पादित करना बंद कर देता है ।

इनपुट "ओएलई डीबी डेस्टिनेशन इनपुट" (51) पर इनपुट कॉलम "राशि" (187) के साथ एक त्रुटि थी। कॉलम की स्थिति वापस आ गई: "डेटा के संभावित नुकसान के कारण मूल्य परिवर्तित नहीं किया जा सका।"

वह स्तंभ जो विफल रहता है ( Amount) वर्तमान में प्रकार का है DT_STR। यह इस प्रकार प्रतीत होता है कि मुझे अभी सबसे अधिक विश्वास है।

मैंने क्या कोशिश की है?

  • मैंने Flat File Connectionउस स्तंभ पर '' प्रकार सुझाए '' फ़ंक्शन का उपयोग करने की कोशिश की है जो विफल हो रहा है। इसने Single byte signed intडेटाटाइप की सिफारिश की ।
    • मेरे फ्लैट फ़ाइल स्रोत पर बंद हो जाता है
    • त्रुटि है डेटा रूपांतरण विफल रहा है। कॉलम "राशि" के लिए डेटा रूपांतरण ने स्थिति मान 2 और स्थिति पाठ लौटा दिया "डेटा के संभावित नुकसान के कारण मूल्य परिवर्तित नहीं किया जा सका।"
  • मैंने Derived Columnकॉलम को एक में डालने के लिए उपयोग करने की कोशिश की है DT_I4
    • मेरे व्युत्पन्न स्तम्भ पर रुकता है
    • त्रुटि है डेटा रूपांतरण विफल रहा है। कॉलम "राशि" के लिए डेटा रूपांतरण ने स्थिति मान 2 और स्थिति पाठ लौटा दिया "डेटा के संभावित नुकसान के कारण मूल्य परिवर्तित नहीं किया जा सका।"
  • मैंने Data Conversionअपने कॉलम के मान को कास्ट करने के लिए उपयोग करने की कोशिश की है DT_I4
    • पर रुक जाता है मेरी Data Conversion
    • त्रुटि है डेटा रूपांतरण विफल रहा है। कॉलम "राशि" के लिए डेटा रूपांतरण ने स्थिति मान 2 और स्थिति पाठ लौटा दिया "डेटा के संभावित नुकसान के कारण मूल्य परिवर्तित नहीं किया जा सका।"
  • मैंने DT_STRस्रोत और गंतव्य में अपने मूल्य की लंबाई को बदलने की कोशिश की है।
    • पर रुक जाता है स्रोत या गंतव्य सेटिंग के आधार पर।
  • मैंने कनेक्शन स्ट्रिंग में जोड़ के बिना और बिना एक्सेल स्रोत कनेक्टर का उपयोग करके कनेक्ट करने का प्रयास किया है IMEX=1। कोई भाग्य नहीं।

मेरी प्रोग्रामिंग भावना मुझे बताती है कि मैं खराब हूँ। इतनी सरल बात के लिए मुझे कभी इतनी बड़ी समस्या का सामना नहीं करना पड़ा।

और ऐसा क्यों है कि मैं डेटा की "संभावित" हानि को अनदेखा नहीं कर सकता हूं ? यह वास्तव में कम से कम कहने के लिए निराशाजनक है।

मेरा सिस्टम

यह SQL Server 2008 स्थापित के साथ एक Windows Server 2008 R2 मशीन है। मशीन स्वयं विंडोज अपडेट के माध्यम से पूरी तरह से अपडेट है।


लगता है जैसे मुझे यह समस्या एक मूल्य के साथ थी (हालांकि एक्सेस से खींचकर) और जब मैंने कॉलम डाला तो मुझे एक विशिष्ट कोड पेज का उपयोग करना था। मेरे पास एसएसआईएस पैकेज का उपयोग करने के लिए अब और नहीं है कि मैंने क्या किया है।

उस कॉलम का डेटा प्रकार जिसमें आप सम्मिलित करने का प्रयास कर रहे हैं Amount?
जॉन ऑफ ऑल ट्रेड्स

2
CSV के लिए अपना फ्लैट फ़ाइल कनेक्शन प्रबंधक खोलें। उन्नत टैब पर जाएं और Amountकॉलम चुनें । एक स्क्रीन शॉट लें और कृपया इस चित्र के साथ अपने प्रश्न को अपडेट करें।
बिलिंक

क्या कनेक्शन प्रबंधक को देखने का अवसर अभी तक मिला है?
बिलिंक

1
मुझे विश्वास नहीं है कि आप खराब हैं, लेकिन आपके कनेक्शन प्रबंधक की परिभाषा देखे बिना, यह कहना असंभव है।
बिलिंक

जवाबों:


3

मैं इसमें कुछ बार चला हूं और यह मुद्दा निर्यात / आयात मापदंडों में डेटा प्रकारों का एक बेमेल रहा है। पहली बात यह है कि उन्नत संपादक का चयन करके स्रोत या गंतव्य पर राइट क्लिक करके उन मापदंडों की जांच करें। इनपुट और आउटपुट प्रॉपर्टीज पर जाएं और उस कॉलम के लिए सभी प्रकारों के लिए डेटा प्रकार की जांच करें - बाहरी, आउटपुट और इनपुट दोनों। मैंने आमतौर पर यहाँ एक विचरण देखा है, कई बार एक है यूनिकोड (WSTR) और दूसरा I4 या DSTR।


8

त्रुटि को नजरअंदाज करना

सबसे पहले, आपको अपने फ्लैट फ़ाइल स्रोत, त्रुटि आउटपुट पर जाकर और फिर "ट्रंकेशन" के तहत "फेल कंपोनेंट" को "इग्नोर एरर" में बदलकर स्ट्रिंग ट्रंकेशन को अनदेखा करने में सक्षम होना चाहिए।

बेहतर समाधान

वास्तविक मुद्दा यह हो सकता है कि एसएसआईएस पाइपलाइन के अंदर की स्ट्रिंग की लंबाई अभी भी गलत है क्योंकि यह कुछ पहले के बिंदु पर आरंभीकृत हो गई थी।

आप यह निर्धारित कर सकते हैं कि आपके फ्लैट फ़ाइल स्रोत (या व्युत्पन्न कॉलम / डेटा रूपांतरण के बाद) से हरे तीर को डबल-क्लिक करके और "मेटा डेटा" चुनने पर ऐसा हो सकता है। वहां आप पाइपलाइन के अंदर मैदान की लंबाई देख सकते हैं।

यदि अक्सर देखा गया है कि मेटा डेटा स्रोत घटक से मेल नहीं खाता है, तो ज्यादातर फ्लैट फ़ाइल स्रोत और विज़ार्ड के माध्यम से इसके भ्रष्ट कनेक्शन को बनाते हैं।

मेरा सुझाव कनेक्शन और फ़्लैट फ़ाइल स्रोत को हटाना और उन्हें फिर से बनाना होगा क्योंकि मुझे स्रोत घटकों के साथ पाइपलाइन मेटा डेटा को फिर से साइक्रोनाइज़ करने का तरीका नहीं मिला है।


2
हालांकि यह "छंटनी" के अंतर्गत नहीं आता है। मैंने पहले ही कोशिश कर ली।
मैथियास लिकेगार्ड लोरेंजेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.