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

एसएसआईएस फ़ोल्डर से कई एक्सएमएल फाइलें पढ़ रहा है

यहां एक संभावित विकल्प है जो दर्शाता है कि SQL सर्वर तालिका में समान परिभाषा वाली एकाधिक XML फ़ाइलों को कैसे लोड किया जाए। उदाहरण SQL Server 2008 R2 का उपयोग करता है और SSIS 2008 R2 . यहां दिखाया गया उदाहरण SSIS Data Flow Task का उपयोग करके तीन XML फ़ाइलों को SQL तालिका में लोड करता है XML Source . की सहायता से अवयव।

चरण-दर-चरण प्रक्रिया:

  1. dbo.Items named नाम की एक टेबल बनाएं SQL Scripts के अंतर्गत दी गई स्क्रिप्ट का उपयोग करना अनुभाग।
  2. Items.xsd named नाम की एक XSD फ़ाइल बनाएं फ़ोल्डर पथ में C:\temp\xsd XSD फ़ाइल . के अंतर्गत प्रदान की गई सामग्री का उपयोग करना अनुभाग।
  3. तीन XML फ़ाइलें बनाएं, जैसे Items_1.xml , Items_2.xml और Items_3.xml फ़ोल्डर पथ में C:\temp\xml XML फ़ाइलें . के अंतर्गत प्रदान की गई सामग्री का उपयोग करना अनुभाग।
  4. पैकेज पर, 3 वेरिएबल बनाएं, जिसका नाम है FileExtension , FilePath और FolderPath जैसा कि स्क्रीनशॉट #1 . में दिखाया गया है ।
  5. पैकेज के कनेक्शन मैनेजर पर, SQLServer . नाम का एक OLE DB कनेक्शन बनाएं स्क्रीनशॉट में दिखाए गए अनुसार SQL सर्वर इंस्टेंस से कनेक्ट करने के लिए #2
  6. Control Flow पर टैब में, एक Foreach loop container रखें और एक Data Flow Task फ़ोरैच लूप कंटेनर के भीतर जैसा कि स्क्रीनशॉट #3 . में दिखाया गया है ।
  7. Foreach Loop container जैसा कि स्क्रीनशॉट में दिखाया गया है #4 और #5
  8. Data Flow Task पर डबल-क्लिक करें Data Flow पर नेविगेट करने के लिए टैब। एक XML Source रखें घटक और एक OLE DB Destination जैसा कि स्क्रीनशॉट #6 . में दिखाया गया है ।
  9. XML Source कॉन्फ़िगर करें जैसा कि स्क्रीनशॉट #7 . में दिखाया गया है और #8 . XML फ़ाइल पथ को वेरिएबल FilePath . से पुनर्प्राप्त किया जाएगा . यह वेरिएबल Foreach loop container . द्वारा पॉप्युलेट किया जाएगा . नोट: Visual Studio के बाद के संस्करणों में, XML स्रोत होगा ValidateExternalMetadata प्रॉपर्टी के कारण त्रुटि हुई। इसे ठीक करने के लिए, सिंगल क्लिक करें "XML स्रोत" फिर गुण और ValidateExternalMetadata को गलत पर सेट करें
  10. OLE DB Destination कॉन्फ़िगर करें जैसा कि स्क्रीनशॉट में दिखाया गया है #9 और #10
  11. स्क्रीनशॉट #11 और #12 पैकेज निष्पादन दिखाएं।
  12. स्क्रीनशॉट #13 तालिका डेटा पहले . दिखाता है पैकेज निष्पादन। स्क्रीनशॉट #14 तालिका डेटा बाद . दिखाता है पैकेज निष्पादन। तालिका में डेटा dbo.Items अब तीन एक्सएमएल फाइलों में मौजूद डेटा है।

आशा है कि यह मदद करता है।

एसक्यूएल स्क्रिप्ट:

CREATE TABLE [dbo].[Items](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [ItemNumber] [nvarchar](50) NOT NULL,
    [ItemName] [nvarchar](60) NOT NULL,
    [Price] [numeric](18, 2) NOT NULL,
CONSTRAINT [PK_Items] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY]
GO

XSD फ़ाइल

<xsd:schema xmlns:schema="ItemsXSDSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" targetNamespace="ItemsXSDSchema" elementFormDefault="qualified">
    <xsd:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
    <xsd:element name="Items">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element minOccurs="0" maxOccurs="unbounded" name="Item">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Id" type="sqltypes:int" />
                            <xsd:element name="ItemNumber">
                                <xsd:simpleType>
                                    <xsd:restriction base="sqltypes:nvarchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth" sqltypes:sqlSortId="52">
                                        <xsd:maxLength value="20" />
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="ItemName">
                                <xsd:simpleType>
                                    <xsd:restriction base="sqltypes:nvarchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth" sqltypes:sqlSortId="52">
                                        <xsd:maxLength value="60" />
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                            <xsd:element name="Price">
                                <xsd:simpleType>
                                    <xsd:restriction base="sqltypes:numeric">
                                        <xsd:totalDigits value="18" />
                                        <xsd:fractionDigits value="2" />
                                    </xsd:restriction>
                                </xsd:simpleType>
                            </xsd:element>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

XML फ़ाइलें

आइटम_1.xml

<?xml version="1.0"?>
<Items xmlns="ItemsXSDSchema">  
    <Item>
        <Id>1</Id>
        <ItemNumber>I2345343</ItemNumber>
        <ItemName>Monitor</ItemName>
        <Price>299.99</Price>
    </Item>
</Items>

आइटम_2.xml

<?xml version="1.0"?>
<Items xmlns="ItemsXSDSchema">  
    <Item>
        <Id>1</Id>
        <ItemNumber>J1231231</ItemNumber>
        <ItemName>Mouse</ItemName>
        <Price>29.99</Price>
    </Item>
</Items>

आइटम_3.एक्सएमएल

<?xml version="1.0"?>
<Items xmlns="ItemsXSDSchema">  
    <Item>
        <Id>1</Id>
        <ItemNumber>K0456212</ItemNumber>
        <ItemName>Keyboard</ItemName>
        <Price>49.99</Price>
    </Item>
</Items>

स्क्रीनशॉट #1:

स्क्रीनशॉट #2:

स्क्रीनशॉट #3:

स्क्रीनशॉट #4:

स्क्रीनशॉट #5:

स्क्रीनशॉट #6:

स्क्रीनशॉट #7:

स्क्रीनशॉट #8:

स्क्रीनशॉट #9:

स्क्रीनशॉट #10:

स्क्रीनशॉट #11:

स्क्रीनशॉट #12:

स्क्रीनशॉट #13:

स्क्रीनशॉट #14:




  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 सर्वर 2008 में PIVOT का उपयोग करना

  3. पहचान कॉलम में डुप्लिकेट मान

  4. SQL सर्वर 2008 - लेन-देन लॉग को सिकोड़ना - स्वचालित करने का कोई तरीका?

  5. SQL सर्वर में NULL को किसी अन्य मान से कैसे बदलें - ISNULL ()