यहां एसएसआईएस 2008 आर 2 का उपयोग करके बनाया गया एक नमूना पैकेज है जो बताता है कि डेटाबेस तालिका में एक फ्लैट फ़ाइल कैसे आयात करें।
- स्क्रीनशॉट में दिखाए गए डेटा के साथ
Fixed_Width_File.txt
नामक एक निश्चित चौड़ाई वाली फ्लैट फ़ाइल बनाएं। स्क्रीनशॉट फ़ाइल सामग्री को प्रदर्शित करने के लिए नोटपैड ++ का उपयोग करता है। इसमें कैरिज रिटर्न और लाइन फीड जैसे विशेष पात्रों को दिखाने की क्षमता है। CR LF
पंक्ति delimiters कैरिज रिटर्न और लाइन फ़ीड बताता है।
एसक्यूएल सर्वर डेटाबेस में, एसक्यूएल स्क्रिप्ट धारा के तहत प्रदान की बनाने के स्क्रिप्ट का उपयोग कर dbo.FlatFile
नाम के एक तालिका बनाने के।
एक नया एसएसआईएस पैकेज बनाएं और एक नया ओएलई डीबी कनेक्शन मैनेजर जोड़ें जो SQL सर्वर डेटाबेस से कनेक्ट होगा। आइए मान लें कि ओएलई डीबी कनेक्शन मैनेजर को एसक्यूएलसेवर नाम दिया गया है।
- पैकेज के नियंत्रण प्रवाह टैब पर, एक डेटा प्रवाह कार्य जगह।
डाटा प्रवाह कार्य पर डबल क्लिक करें और आप डाटा प्रवाह टैब पर ले जाया जाएगा। डेटा प्रवाह टैब पर, फ्लैट फ़ाइल स्रोत रखें। फ्लैट फ़ाइल स्रोत पर डबल-क्लिक करें और फ्लैट फ़ाइल स्रोत संपादक दिखाई देगा। फ्लैट फ़ाइल कनेक्शन प्रबंधक संपादक खोलने के लिए नया बटन क्लिक करें।
फ्लैट फ़ाइल स्रोत संपादक के सामान्य अनुभाग पर, कनेक्शन प्रबंधक नाम (माना स्रोत) में एक मान डालना और फ्लैट फ़ाइल का स्थान ब्राउज़ और फ़ाइल का चयन करें। यह उदाहरण पथ C:\temp\Fixed_Width_File.txt
पथ में नमूना फ़ाइल का उपयोग करता है यदि आपके पास अपनी फ़ाइल में हेडर पंक्तियां हैं, तो आप हेडर पंक्ति को छोड़ने के लिए टेक्स्टबॉक्स को छोड़ने के लिए शीर्षलेख पंक्तियों में मान 1 दर्ज कर सकते हैं।
- कॉलम पर क्लिक करें अनुभाग। अपनी पसंद के अनुसार फ़ॉन्ट बदलें मैंने कूरियर न्यू चुना है ताकि मैं कम स्क्रॉलिंग के साथ अधिक डेटा देख सकूं। पंक्ति चौड़ाई टेक्स्ट बॉक्स में मान
69
दर्ज करें। यह मान पंक्ति डिलीमीटर के लिए आपके सभी कॉलम + 2 की चौड़ाई का योग है। एक बार जब आप सही पंक्ति चौड़ाई निर्धारित कर लेंगे, तो आपको स्रोत डेटा कॉलम अनुभाग पर निश्चित चौड़ाई फ़ाइल डेटा को सही ढंग से देखना चाहिए। अब, आपको कॉलम सीमा निर्धारित करने के लिए उचित स्थानों पर क्लिक करना होगा। खंड 4, 5, 6 और नीचे स्क्रीनशॉट पर ध्यान दें।
- उन्नत खंड पर क्लिक करें। पिछले चरण में कॉलम अनुभाग पर सेट की गई कॉलम सीमाओं के आधार पर आप स्वचालित रूप से आपके लिए बनाए गए 5 कॉलम देखेंगे। पांचवां कॉलम पंक्ति डेलीमीटर के लिए है।
- रूप
FirstName
, LastName
, Id
, Date
और RowDelimiter
- डिफ़ॉल्ट रूप से स्तंभ नाम का नाम बदलें, कॉलम रों हो जाएगा और डेटाटाइप स्ट्रिंग [DT_STR] के साथ। यदि हम काफी निश्चित हैं, तो एक निश्चित कॉलम अलग-अलग डेटा प्रकार का होगा, हम इसे उन्नत अनुभाग में कॉन्फ़िगर कर सकते हैं। हम
Id
स्तंभ बदल जाएगा डेटा प्रकार four-byte signed integer [DT_I4]
और दिनांक स्तंभ का होना date [DT_DATE]
- पूर्वावलोकन खंड पर क्लिक करें डेटा प्रकार की होनी चाहिए। डेटा कॉलम कॉन्फ़िगरेशन के अनुसार दिखाया जाएगा।
- क्लिक करें ठीक फ्लैट फ़ाइल कनेक्शन प्रबंधक संपादक और फ्लैट फ़ाइल कनेक्शन पर डाटा प्रवाह कार्य में फ्लैट फ़ाइल स्रोत को सौंपा जाएगा।
- फ्लैट फ़ाइल स्रोत संपादक पर, स्तंभ अनुभाग पर क्लिक करें। आप उन कॉलम को नोटिस करेंगे जो फ्लैट फ़ाइल कनेक्शन मैनेजर में कॉन्फ़िगर किए गए थे।
RowDelimiter
अनचेक करें क्योंकि हमें इसकी आवश्यकता नहीं होगी।
- डाटा प्रवाह कार्य पर, एक
OLE DB Destination
जगह। फ्लैट फ़ाइल स्रोत से ओएलई डीबी गंतव्य तक आउटपुट कनेक्ट करें।
- OLE DB गंतव्य संपादक पर, OLE DB कनेक्शन प्रबंधक
SQLServer
नामित चयन और सेट तालिका के नाम या [dbo].[FlatFile]
करने के लिए नीचे दृश्य ड्रॉप
- ओएलई डीबी गंतव्य संपादक पर, मैपिंग अनुभाग पर क्लिक करें। चूंकि फ्लैट फ़ाइल कनेक्शन प्रबंधक में कॉलम नाम डेटाबेस में कॉलम के समान हैं, इसलिए मैपिंग स्वचालित रूप से हो जाएगी। यदि नाम अलग हैं, तो आपको कॉलम मैन्युअल रूप से मैप करना होगा। ओके पर क्लिक करें।
- अब पैकेज तैयार है। डेटाबेस में निश्चित चौड़ाई वाले फ्लैट फ़ाइल डेटा को लोड करने के लिए पैकेज निष्पादित करें।
- आप डेटाबेस में तालिका dbo.FlatFile क्वेरी हैं, तो आप डेटाबेस में आयात फ्लैट फ़ाइल डेटा देखेंगे।
यह नमूना है आप कैसे डेटाबेस में निश्चित-चौड़ाई फ्लैट फ़ाइल आयात करने के बारे में एक विचार देना चाहिए। यह त्रुटि लॉगिंग को संभालने के तरीके की व्याख्या नहीं करता है लेकिन यह आपको प्रारंभ करना चाहिए और पैकेज के साथ खेलते समय अन्य एसएसआईएस संबंधित सुविधाओं को खोजने में आपकी सहायता करनी चाहिए।
उम्मीद है कि मदद करता है।
SQL Scripts
:
CREATE TABLE [dbo].[FlatFile](
[Id] [int] NOT NULL,
[FirstName] [varchar](25) NOT NULL,
[LastName] [varchar](25) NOT NULL,
[Date] [datetime] NOT NULL
)
स्रोत
2012-04-24 07:10:35
इसकी वर्तमान समस्या के लिए इसकी कोई प्रासंगिकता नहीं थी, लेकिन मैं अभी भी बहुत उत्साहित हूं क्योंकि आपने इतना अच्छा काम किया है। – SteveCav