Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसएसआईएस के माध्यम से एसक्यूएल में एक्सएमएल फाइल डालें

आप दो अलग-अलग तरीके अपना सकते हैं।

पहला उपयोगकर्ता 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 गंतव्य

कॉन्फ़िगर करें। फास्ट लोड विकल्प का समर्थन नहीं करता।

संदर्भ

आयात स्तंभ परिवर्तन का उपयोग करने पर अच्छी पोस्ट




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में एकाधिक तालिकाओं में शामिल होना

  2. SQL सर्वर में स्तंभ द्वारा समूह के साथ अल्पविराम विभाजकों में समेकित परिणाम प्राप्त करने के लिए SQL क्वेरी

  3. डेटाटाइम कॉलम को वर्ष, महीने और सप्ताह में विभाजित करना

  4. T-SQL का उपयोग करके किसी लिंक किए गए सर्वर पर डेटाबेस बनाने के 2 तरीके

  5. SQL सर्वर तालिका को भिन्न फ़ाइल समूह में ले जाना