Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SSIS membaca beberapa file xml dari folder

Berikut adalah opsi yang memungkinkan yang menunjukkan cara memuat beberapa file XML yang memiliki definisi yang sama ke dalam tabel SQL Server. Contoh menggunakan SQL Server 2008 R2 dan SSIS 2008 R2 . Contoh yang ditampilkan di sini memuat tiga file XML ke dalam tabel SQL menggunakan Data Flow Task SSIS dengan bantuan XML Source komponen.

Proses langkah demi langkah:

  1. Buat tabel bernama dbo.Items menggunakan skrip yang diberikan di bawah Skrip SQL bagian.
  2. Buat file XSD bernama Items.xsd di jalur folder C:\temp\xsd menggunakan konten yang disediakan di bawah File XSD bagian.
  3. Buat tiga file XML yaitu Items_1.xml , Items_2.xml dan Items_3.xml di jalur folder C:\temp\xml menggunakan konten yang disediakan di bawah File XML bagian.
  4. Pada package, buat 3 variabel yaitu FileExtension , FilePath dan FolderPath seperti yang ditunjukkan pada tangkapan layar #1 .
  5. Pada Manajer Koneksi paket, buat Koneksi DB OLE bernama SQLServer untuk terhubung ke SQL Server Instance seperti yang ditunjukkan pada tangkapan layar #2 .
  6. Pada Control Flow tab, tempatkan Foreach loop container dan Data Flow Task dalam wadah loop Foreach seperti yang ditunjukkan pada tangkapan layar #3 .
  7. Konfigurasikan Foreach Loop container seperti yang ditunjukkan pada tangkapan layar #4 dan #5 .
  8. Klik dua kali pada Data Flow Task untuk menavigasi ke Data Flow tab. Tempatkan XML Source komponen dan OLE DB Destination seperti yang ditunjukkan pada tangkapan layar #6 .
  9. Konfigurasikan XML Source seperti yang ditunjukkan pada tangkapan layar #7 dan #8 . Jalur file XML akan diambil dari variabel FilePath . Variabel ini akan diisi oleh Foreach Loop container . Catatan: Dalam versi Visual Studio yang lebih baru, Sumber XML akan error karena properti ValidateExternalMetadata. Untuk memperbaikinya, Klik sekali "XML Source" lalu Properties dan setel ValidateExternalMetadata ke False .
  10. Konfigurasikan OLE DB Destination seperti yang ditunjukkan pada tangkapan layar #9 dan #10 .
  11. Tangkapan layar #11 dan #12 tampilkan eksekusi paket.
  12. Tangkapan layar #13 menampilkan data tabel sebelum eksekusi paket. Tangkapan layar #14 menampilkan data tabel setelah eksekusi paket. Data dalam tabel dbo.Items sekarang berisi data yang ada dalam tiga file XML.

Semoga membantu.

Skrip SQL:

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

Berkas 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>

File XML

Items_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>

Item_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>

Items_3.xml

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

Tangkapan Layar #1:

Tangkapan Layar #2:

Tangkapan Layar #3:

Tangkapan layar #4:

Tangkapan layar #5:

Tangkapan layar #6:

Tangkapan layar #7:

Tangkapan layar #8:

Tangkapan layar #9:

Tangkapan layar #10:

Tangkapan layar #11:

Tangkapan layar #12:

Tangkapan Layar #13:

Tangkapan layar #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 server pilih kolom dengan nomor

  2. Apa alat yang ideal untuk menganalisis skrip sql?

  3. Ubah ukuran Gambar dari 150*150 menjadi 70*70 dalam menggunakan kueri sql?

  4. SQL Server:Bagaimana cara mendapatkan referensi kunci asing dari information_schema?

  5. Akses TimeZoneInfo dari SQL 2005 Server