2012-04-23 12 views
16

क्या किसी के पास एक एसएसआईएस पैकेज का उपयोग कर डेटाबेस में एक निश्चित चौड़ाई फ्लैट फ़ाइल आयात करने के बारे में एक ट्यूटोरियल है?एसएसआईएस का उपयोग कर डेटाबेस में एक निश्चित चौड़ाई फ्लैट फ़ाइल कैसे आयात करें?

मेरे पास एक समतल फ़ाइल है जिसमें अलग-अलग लंबाई वाले कॉलम हैं।

Column name Width 
----------- ----- 
First name  25 
Last name   25 
Id     9 
Date    8 

मैं एक फ्लैट फ़ाइल को कॉलम में कैसे परिवर्तित करूं?

उत्तर

51

यहां एसएसआईएस 2008 आर 2 का उपयोग करके बनाया गया एक नमूना पैकेज है जो बताता है कि डेटाबेस तालिका में एक फ्लैट फ़ाइल कैसे आयात करें।

  • स्क्रीनशॉट में दिखाए गए डेटा के साथ Fixed_Width_File.txt नामक एक निश्चित चौड़ाई वाली फ्लैट फ़ाइल बनाएं। स्क्रीनशॉट फ़ाइल सामग्री को प्रदर्शित करने के लिए नोटपैड ++ का उपयोग करता है। इसमें कैरिज रिटर्न और लाइन फीड जैसे विशेष पात्रों को दिखाने की क्षमता है। CR LF पंक्ति delimiters कैरिज रिटर्न और लाइन फ़ीड बताता है।

Flat file data

  • एसक्यूएल सर्वर डेटाबेस में, एसक्यूएल स्क्रिप्ट धारा के तहत प्रदान की बनाने के स्क्रिप्ट का उपयोग कर dbo.FlatFile नाम के एक तालिका बनाने के।

  • एक नया एसएसआईएस पैकेज बनाएं और एक नया ओएलई डीबी कनेक्शन मैनेजर जोड़ें जो SQL सर्वर डेटाबेस से कनेक्ट होगा। आइए मान लें कि ओएलई डीबी कनेक्शन मैनेजर को एसक्यूएलसेवर नाम दिया गया है।

Connection manager

  • पैकेज के नियंत्रण प्रवाह टैब पर, एक डेटा प्रवाह कार्य जगह।

Data flow task

  • डाटा प्रवाह कार्य पर डबल क्लिक करें और आप डाटा प्रवाह टैब पर ले जाया जाएगा। डेटा प्रवाह टैब पर, फ्लैट फ़ाइल स्रोत रखें। फ्लैट फ़ाइल स्रोत पर डबल-क्लिक करें और फ्लैट फ़ाइल स्रोत संपादक दिखाई देगा। फ्लैट फ़ाइल कनेक्शन प्रबंधक संपादक खोलने के लिए नया बटन क्लिक करें।

  • फ्लैट फ़ाइल स्रोत संपादक के सामान्य अनुभाग पर, कनेक्शन प्रबंधक नाम (माना स्रोत) में एक मान डालना और फ्लैट फ़ाइल का स्थान ब्राउज़ और फ़ाइल का चयन करें। यह उदाहरण पथ C:\temp\Fixed_Width_File.txt पथ में नमूना फ़ाइल का उपयोग करता है यदि आपके पास अपनी फ़ाइल में हेडर पंक्तियां हैं, तो आप हेडर पंक्ति को छोड़ने के लिए टेक्स्टबॉक्स को छोड़ने के लिए शीर्षलेख पंक्तियों में मान 1 दर्ज कर सकते हैं।

Flat file connection manager editor General

  • कॉलम पर क्लिक करें अनुभाग। अपनी पसंद के अनुसार फ़ॉन्ट बदलें मैंने कूरियर न्यू चुना है ताकि मैं कम स्क्रॉलिंग के साथ अधिक डेटा देख सकूं। पंक्ति चौड़ाई टेक्स्ट बॉक्स में मान 69 दर्ज करें। यह मान पंक्ति डिलीमीटर के लिए आपके सभी कॉलम + 2 की चौड़ाई का योग है। एक बार जब आप सही पंक्ति चौड़ाई निर्धारित कर लेंगे, तो आपको स्रोत डेटा कॉलम अनुभाग पर निश्चित चौड़ाई फ़ाइल डेटा को सही ढंग से देखना चाहिए। अब, आपको कॉलम सीमा निर्धारित करने के लिए उचित स्थानों पर क्लिक करना होगा। खंड 4, 5, 6 और नीचे स्क्रीनशॉट पर ध्यान दें।

Flat file connection manager editor Columns

  • उन्नत खंड पर क्लिक करें। पिछले चरण में कॉलम अनुभाग पर सेट की गई कॉलम सीमाओं के आधार पर आप स्वचालित रूप से आपके लिए बनाए गए 5 कॉलम देखेंगे। पांचवां कॉलम पंक्ति डेलीमीटर के लिए है।

Flat file connection manager editor Advanced

  • रूप FirstName, LastName, Id, Date और RowDelimiter

Flat file connection manager editor Advanced Renamed

  • डिफ़ॉल्ट रूप से स्तंभ नाम का नाम बदलें, कॉलम रों हो जाएगा और डेटाटाइप स्ट्रिंग [DT_STR] के साथ। यदि हम काफी निश्चित हैं, तो एक निश्चित कॉलम अलग-अलग डेटा प्रकार का होगा, हम इसे उन्नत अनुभाग में कॉन्फ़िगर कर सकते हैं। हम Id स्तंभ बदल जाएगा डेटा प्रकार four-byte signed integer [DT_I4] और दिनांक स्तंभ का होना date [DT_DATE]

Flat file connection manager editor Advanced Id column

Flat file connection manager editor Advanced Date column

  • पूर्वावलोकन खंड पर क्लिक करें डेटा प्रकार की होनी चाहिए। डेटा कॉलम कॉन्फ़िगरेशन के अनुसार दिखाया जाएगा।

Flat file connection manager editor Preview

  • क्लिक करें ठीक फ्लैट फ़ाइल कनेक्शन प्रबंधक संपादक और फ्लैट फ़ाइल कनेक्शन पर डाटा प्रवाह कार्य में फ्लैट फ़ाइल स्रोत को सौंपा जाएगा।

Flat file editor connection

  • फ्लैट फ़ाइल स्रोत संपादक पर, स्तंभ अनुभाग पर क्लिक करें। आप उन कॉलम को नोटिस करेंगे जो फ्लैट फ़ाइल कनेक्शन मैनेजर में कॉन्फ़िगर किए गए थे। RowDelimiter अनचेक करें क्योंकि हमें इसकी आवश्यकता नहीं होगी।

Flat file editor columns

  • डाटा प्रवाह कार्य पर, एक OLE DB Destination जगह। फ्लैट फ़ाइल स्रोत से ओएलई डीबी गंतव्य तक आउटपुट कनेक्ट करें।

Data flow task

  • OLE DB गंतव्य संपादक पर, OLE DB कनेक्शन प्रबंधकSQLServer नामित चयन और सेट तालिका के नाम या [dbo].[FlatFile]
करने के लिए नीचे दृश्य ड्रॉप

OLE DB Destination connection

  • ओएलई डीबी गंतव्य संपादक पर, मैपिंग अनुभाग पर क्लिक करें। चूंकि फ्लैट फ़ाइल कनेक्शन प्रबंधक में कॉलम नाम डेटाबेस में कॉलम के समान हैं, इसलिए मैपिंग स्वचालित रूप से हो जाएगी। यदि नाम अलग हैं, तो आपको कॉलम मैन्युअल रूप से मैप करना होगा। ओके पर क्लिक करें।

OLE DB Destination columns

  • अब पैकेज तैयार है। डेटाबेस में निश्चित चौड़ाई वाले फ्लैट फ़ाइल डेटा को लोड करने के लिए पैकेज निष्पादित करें।

Package execution

  • आप डेटाबेस में तालिका dbo.FlatFile क्वेरी हैं, तो आप डेटाबेस में आयात फ्लैट फ़ाइल डेटा देखेंगे।

Data imported into table

यह नमूना है आप कैसे डेटाबेस में निश्चित-चौड़ाई फ्लैट फ़ाइल आयात करने के बारे में एक विचार देना चाहिए। यह त्रुटि लॉगिंग को संभालने के तरीके की व्याख्या नहीं करता है लेकिन यह आपको प्रारंभ करना चाहिए और पैकेज के साथ खेलते समय अन्य एसएसआईएस संबंधित सुविधाओं को खोजने में आपकी सहायता करनी चाहिए।

उम्मीद है कि मदद करता है।

SQL Scripts:

CREATE TABLE [dbo].[FlatFile](
    [Id] [int] NOT NULL, 
    [FirstName] [varchar](25) NOT NULL, 
    [LastName] [varchar](25) NOT NULL, 
    [Date] [datetime] NOT NULL 
) 
+1

इसकी वर्तमान समस्या के लिए इसकी कोई प्रासंगिकता नहीं थी, लेकिन मैं अभी भी बहुत उत्साहित हूं क्योंकि आपने इतना अच्छा काम किया है। – SteveCav

1

व्युत्पन्न स्तंभ परिवर्तन में आप स्तंभ के प्रत्येक के लिए SUBSTRING() फ़ंक्शन का उपयोग कर सकते हैं। उदाहरण:

कॉलम DerivedColumn

प्रथम SUBSTRING (डेटा, startFrom, लंबाई); अगर हम यह मानते हैं कि व्युत्पन्न स्तंभ में तो 0 की स्थिति से आप इसे SUBSTRING (डेटा, 0, 25) देकर निर्दिष्ट करना चाहिए

यहाँ FirstName तो चौड़ाई 25 है;

अन्य स्तंभों के लिए इसी तरह

1

बहुत अच्छी तरह से समझाया गया, शिव! आपका ट्यूटोरियल और उत्कृष्ट चित्र का कहना है क्या माइक्रोसॉफ्ट करना चाहिए स्पष्ट

  1. एक निश्चित लंबाई पंक्ति के लिए चौड़ाई कैरिज रिटर्न और लाइन फ़ीड (सीआर & वामो) वर्ण (जो मैं क्योंकि पूर्वावलोकन पता लगा और शामिल नहीं है दिखाया गया है कि पंक्तियां सही ढंग से अस्तर नहीं कर रही थीं)
  2. कि उन सीआर & एलएफ वर्णों को रखने के लिए अतिरिक्त कॉलम को परिभाषित करने का सभी महत्वपूर्ण कदम, भले ही उन्हें आयात नहीं किया जाएगा। मैंने यह भी पता लगाया। शुरू होने से पहले मुझे आपका जवाब ढूंढकर लाभ हुआ होगा।
उन दो बातें बिना

, आयात को चलाने के लिए एक प्रयास यह त्रुटि संदेश दे देंगे: स्तंभ के लिए "कॉलम एक्स" डेटा रूपांतरण स्थिति मान 4 और स्थिति पाठ लौटे "पाठ छोटा कर दिया गया या एक या अधिक वर्ण लक्ष्य कोड पृष्ठ में कोई मिलान नहीं था। "

मैंने इस त्रुटि पाठ में जोड़ा है उम्मीद है कि किसी को उनकी त्रुटि के कारण खोजते समय यह पृष्ठ मिलेगा। आपका टूरियल खोजने के लायक है, भले ही तथ्य के बाद!

संबंधित मुद्दे

 संबंधित मुद्दे