2011-01-06 16 views
13

में फ्लैट फ़ाइल से आयात करने के लिए SSIS का उपयोग करते समय मैं NULL मानों को कैसे बनाए रखूं, मैंने "|" द्वारा सीमित एक फ्लैट फ़ाइल में रिकॉर्ड निर्यात किए हैं। और ऐसा लगता है कि जब मैं उन रिकॉर्ड्स को एक नए डेटाबेस में आयात करता हूं, तो SQL सर्वर नल मानों को रिक्त फ़ील्ड के रूप में मानता है। आईएमई प्रश्न ठीक से काम करते थे जब रिकॉर्ड/फ़ील्ड नल होते थे और इसलिए मैं डेटा में नल मानों को बनाए रखने या रिक्त फ़ील्ड को नल मानों में बदलने के लिए एक रास्ता खोजना चाहता हूं। मुझे लगता है कि पूर्व आसान होगा, लेकिन मुझे नहीं पता कि यह कैसे करना है। किसी भी सहायता की सराहना की जाएगी।SQL सर्वर 2005

उत्तर

16

डेटाफ्लो में आपके गंतव्य कनेक्शन में, ऐसी संपत्ति है जिसे आप कह सकते हैं कि नल रखें, इसे जांचें। यह डिफ़ॉल्ट क्यों नहीं है मैं कभी नहीं जानता।

हम्म कुछ वहां पर चल रहा है। मैं सुझाव दे सकता हूं कि फिर आप डेटा को साफ़ करें और इसे शून्य में बदलें, आप या तो डेटाफ्लो के हिस्से के रूप में ऐसा कर सकते हैं या दो डेटाफ्लो कर सकते हैं, जो डेटा को स्टेजिंग टेबल में सम्मिलित करता है, फिर क्लीन करने के लिए एक एक्टेक्चर एसक्यूएल कार्य चलाएं ऊपर और फिर स्टेजिंग तालिका से वास्तविक तालिका में चलाने के लिए डेटाफ़्लो बनाएं।

+4

+1, आमीन में चर निर्धारित करने की आवश्यकता लग रही है क्यों कि डिफ़ॉल्ट नहीं है मैं हूँ " कभी नहीं पता " –

+0

मैंने उस बॉक्स को चेक किया है लेकिन ऐसा कोई फर्क नहीं पड़ता है; फ़ील्ड्स अभी भी एनयूएलएल के बजाय तालिका में रिक्त स्थान के रूप में दिखाई देते हैं। मैंने फ़ाइल को दोबारा जांच लिया है और मेरे डेलीमीटर "|" के बीच कोई जगह नहीं है। यहां तक ​​कि पूर्वावलोकन फ़ील्ड को रिक्त स्थान के रूप में दिखाता है। क्या मुझे कुछ याद आया है? – ofm

18

मुझे बस एक ही समस्या थी। मैंने डेटा फ्लो टास्क में फ्लैट फ़ाइल स्रोत के गुणों में RetainNulls प्रॉपर्टी को बदलकर इसे हल किया।

+0

यह रिक्त मानों को एनयूएलएल के रूप में माना जाने की अनुमति देता है, और इसे संभालने के लिए व्युत्पन्न कॉलम को सेट करने में बहुत सारी कार्य सहेजता है। –

0

मामले में किसी को भी जब पैकेज का निर्माण कैसे यह करने के लिए प्रोग्राम के आप अपने CManagedComponentWrapper वस्तु

CManagedComponentWrapper instanceSource = ComponentSource 
... 
instanceSource.SetComponentProperty("RetainNulls", true);