आप दो अलग-अलग तरीके अपना सकते हैं।
पहला उपयोगकर्ता 569711 के रूप में उल्लिखित है और ForEach Enumerator का उपयोग करें और अपनी मौजूदा संग्रहीत कार्यविधि को कॉल करें। इसका लाभ यह है कि आपका व्यवहार ठीक वैसा ही होना चाहिए जैसा आप वर्तमान में अनुभव कर रहे हैं और आपके परीक्षण को केवल यह सुनिश्चित करने पर ध्यान केंद्रित करना चाहिए कि SSIS पैकेज सही फाइलें उठा रहा है।
दूसरा BLOB प्रकार के आयात से निपटने के लिए SSIS की आउट ऑफ द बॉक्स क्षमताओं का उपयोग करना है।
नियंत्रण प्रवाह
आप अपने दृष्टिकोण के आधार पर परिभाषित 1 से 2 चर चाहते हैं। दोनों स्ट्रिंग डेटा प्रकार होंगे। मैंने SourceFolder
created बनाया है और CurrentFileName
. पूर्व परिभाषित करता है कि फाइलें कहां से आएंगी और इसका उपयोग किसी भी दृष्टिकोण में किया जाता है। उत्तरार्द्ध का उपयोग "वर्तमान" फ़ाइल को कैप्चर करने के लिए ForEach लूप कंटेनर में किया जाता है।
डेटा प्रवाह
डेटा प्रवाह को काम करने के लिए, आपको पाइपलाइन में जोड़े गए फ़ाइल नामों की पूरी तरह से योग्य सूची प्राप्त करने की आवश्यकता होगी। सबसे आसान तरीका है एक स्रोत के रूप में कार्य करते हुए एक स्क्रिप्ट ट्रांसफ़ॉर्मेशन का उपयोग करना और उसमें आपकी स्थिति (*.xml) को पूरा करने वाली सभी फाइलों को जोड़ना है।
Foreach लूप कंटेनर
इस तरह कॉन्फ़िगर करें
संग्रह
परिवर्तनीय मानचित्रण
SQL कार्य निष्पादित करें
इस प्रकार कॉन्फ़िगर करें
स्क्रिप्ट स्रोत
यह कार्य उपलब्ध फ़ाइलों को डेटा प्रवाह में जोड़ देगा। माइनर नोट, यह सबफ़ोल्डर्स को पार करेगा जो कि हमारे द्वारा फ़ोरैच को कॉन्फ़िगर करने के तरीके से भिन्न है। यह केवल शीर्ष स्तर बनाने के लिए तीसरे पैरामीटर (या चूक) में एक साधारण बदलाव है।
अपने वेरिएबल को पहचानें ताकि वह स्क्रिप्ट कार्य में उपलब्ध हो
उपयुक्त आउटपुट कॉलम जोड़ें। आपके परिवेश के आधार पर आपकी लंबाई भिन्न हो सकती है।
यहां स्क्रिप्ट करें
using System;
using System.Data;
using System.IO;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
public override void CreateNewOutputRows()
{
string fileMask = string.Empty;
string sourceFolder = string.Empty;
fileMask = @"*.xml";
sourceFolder = this.Variables.SourceFolder;
foreach (string fileName in Directory.GetFiles(sourceFolder, fileMask, SearchOption.AllDirectories))
{
Output0Buffer.AddRow();
Output0Buffer.FileName = fileName;
Output0Buffer.SourceName = "Dataflow";
}
}
}
आयात स्तंभ परिवर्तन
इस तरह कॉन्फ़िगर करें
यहां आईडी नोट करें
उस आईडी को वापस कॉलम में नाम के साथ बांधें
OLE DB गंतव्य
कॉन्फ़िगर करें। फास्ट लोड विकल्प का समर्थन नहीं करता।
संदर्भ
आयात स्तंभ परिवर्तन का उपयोग करने पर अच्छी पोस्ट