Sample XML Format Files
W przykładach w tym temacie przedstawiono kluczowych aspektów korzystania z plików w formacie XML.Składnia plik formatu jest niezależna od kierunku działania, czyli składnia jest taka sama dla masowych eksportu i import zbiorczy.
W przykładach przedstawiono poniżej:
Kolejność pól danych znakowych taki sam, jak kolumny tabela
Kolejność pól danych i tabela kolumn w różny sposób
Pominięcie pole danych
Mapowanie różnych typów pól kolumn
Mapowanie danych XML do tabela
Importowanie pola o stałej długości lub o stałej szerokości
Uwaga
Aby uzyskać informacje dotyczące tworzenia plików w formacie zobacz Creating a Format File.
Przykłady
W pokazany w poniższych przykładach pliki danych <Karta> Wskazuje znak tabulacji w pliku danych, a <zwrot> Wskazuje znak powrotu karetki.
A.Kolejność pól danych znakowych taki sam, jak kolumny tabela
W poniższym przykładzie przedstawiono plik formatu XML, w tym artykule opisano plik danych zawierający trzy pola danych znakowych.plik formatu mapuje pliku danych do tabela, która zawiera trzy kolumny.Pola danych odpowiada jeden-do-jednego z kolumnami w tabela.
Tabela (wiersz): Osoba (int wiek, varchar(20) imię, nazwisko varchar(30))
Plik danych (rekord): < Kartę > FirstName < kartę > LastName zwrotu < > wieku
Następujący plik XML w formacie odczytuje z pliku danych do tabela.
W <RECORD> element, plik formatu reprezentuje dane znakowe wartości danych we wszystkich trzech polach. Dla każdego pole TERMINATOR atrybut wskazuje terminator, znajdujący się wartości danych.
Pola danych odpowiada jeden-do-jednego z kolumnami w tabela.W <ROW> element, plik formatu mapy kolumna Age do pierwszego pola kolumna FirstName drugie pole, a kolumna LastName do trzeciego pola.
<?xml version="1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="12"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="20" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"
MAX_LENGTH="30"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>
<COLUMN SOURCE="2" NAME="firstname" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="3" NAME="lastname" xsi:type="SQLVARYCHAR"/>
</ROW>
</BCPFORMAT>
Uwaga
Aby równoważne AdventureWorks przykład zobacz Creating a Format File.
B.Kolejność pól danych i tabela kolumn w różny sposób
W poniższym przykładzie przedstawiono plik formatu XML, w tym artykule opisano plik danych zawierający trzy pola danych znakowych.plik formatu mapuje pliku danych do tabela, która zawiera trzy kolumny, które zostały zamówione w inny sposób z pól pliku danych.
Tabela (wiersz): Osoba (int wiek, varchar(20) imię, nazwisko varchar(30))
Plik danych (rekord): okres ważności < kartę > LastName < karcie FirstName zwrotu < > >
W <RECORD> element, plik formatu reprezentuje dane znakowe wartości danych we wszystkich trzech polach.
W <ROW> element, plik formatu mapy kolumna Age do pierwszego pola kolumna FirstName trzecie pole, a kolumna LastName do drugiego pola.
<?xml version="1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="12"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="20"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"
MAX_LENGTH="30" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>
<COLUMN SOURCE="3" NAME="firstname" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="2" NAME="lastname" xsi:type="SQLVARYCHAR"/>
</ROW>
</BCPFORMAT>
Uwaga
Aby równoważne AdventureWorks przykład zobacz Using a Format File to Map Table Columns to Data-File Fields.
C.Pominięcie pole danych
W poniższym przykładzie przedstawiono plik formatu XML, w tym artykule opisano plik danych zawierający cztery pola danych znakowych.plik formatu mapuje pliku danych do tabela, która zawiera trzy kolumny.Drugie pole danych nie odpowiada dowolnej kolumna tabela.
Tabela (wiersz): Osoba (wiek int, Varchar(20) imię, nazwisko Varchar(30))
Plik danych (rekord): < Kartę > employeeID < kartę > FirstName < kartę > LastName zwrotu < > wieku
W <RECORD> element, plik formatu reprezentuje dane znakowe wartości danych we wszystkich czterech pól. Dla każdego pole atrybut TERMINATOR wskazuje terminator, znajdujący się wartości danych.
W <ROW> element, plik formatu mapy kolumna Age do pierwszego pola kolumna FirstName trzecie pole, a kolumna LastName Aby czwartym polu.
<? xml w wersja "1.0" =?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="12"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="10"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\t"
MAX_LENGTH="20"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n"
MAX_LENGTH="30"
COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="age" xsi:type="SQLINT"/>
<COLUMN SOURCE="3" NAME="firstname" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="4" NAME="lastname" xsi:type="SQLVARYCHAR"/>
</ROW>
</BCPFORMAT>
Uwaga
Aby równoważne AdventureWorks przykład zobacz Using a Format File to Skip a Data Field.
D.Mapowanie <POLE> Typ xsi: type do <kolumna> Typ xsi: type
W poniższym przykładzie pokazano różne typy pól i ich mapowania do kolumn.
<?xml version = "1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD xsi:type="CharTerm" ID="C1" TERMINATOR="\t"
MAX_LENGTH="4"/>
<FIELD xsi:type="CharFixed" ID="C2" LENGTH="10"
COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
<FIELD xsi:type="CharPrefix" ID="C3" PREFIX_LENGTH="2"
MAX_LENGTH="32" COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
<FIELD xsi:type="NCharTerm" ID="C4" TERMINATOR="\t"
MAX_LENGTH="4"/>
<FIELD xsi:type="NCharFixed" ID="C5" LENGTH="10"
COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
<FIELD xsi:type="NCharPrefix" ID="C6" PREFIX_LENGTH="2"
MAX_LENGTH="32" COLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"/>
<FIELD xsi:type="NativeFixed" ID="C7" LENGTH="4"/>
</RECORD>
<ROW>
<COLUMN SOURCE="C1" NAME="Age" xsi:type="SQLTINYINT"/>
<COLUMN SOURCE="C2" NAME="FirstName" xsi:type="SQLVARYCHAR"
LENGTH="16" NULLABLE="NO"/>
<COLUMN SOURCE="C3" NAME="LastName" />
<COLUMN SOURCE="C4" NAME="Salary" xsi:type="SQLMONEY"/>
<COLUMN SOURCE="C5" NAME="Picture" xsi:type="SQLIMAGE"/>
<COLUMN SOURCE="C6" NAME="Bio" xsi:type="SQLTEXT"/>
<COLUMN SOURCE="C7" NAME="Interest"xsi:type="SQLDECIMAL"
PRECISION="5" SCALE="3"/>
</ROW>
</BCPFORMAT>
E.Mapowanie danych XML do tabela
Poniższy przykład tworzy (puste tabelet_xml), w pierwszej kolumnie mapuje do int Typ danych i drugiej kolumna mapuje xml Typ danych.
CREATE TABLE t_xml (c1 int, c2 xml)
Następujący plik formatu XML może załadować pliku danych do tabela t_xml.
<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="NativePrefix" PREFIX_LENGTH="1"/>
<FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="8"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="c1" xsi:type="SQLINT"/>
<COLUMN SOURCE="2" NAME="c2" xsi:type="SQLNCHAR"/>
</ROW>
</BCPFORMAT>
F.Importowanie pola o stałej długości lub o stałej szerokości
W poniższym przykładzie opisano stałych pól 10 lub 6 poszczególnych znaków. Plik formatu reprezentuje te długości/szerokości pole jako LENGTH="10" i LENGTH="6", odpowiednio. Każdy wiersz kończy się pliki danych z powrotu karetki-wiersza źródła kombinacji {CR} {LF} reprezentującym jako plik formatu TERMINATOR="\r\n".
<?xml version="1.0"?>
<BCPFORMAT
xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharFixed" LENGTH="10"/>
<FIELD ID="2" xsi:type="CharFixed" LENGTH="6"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n"
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="C1" xsi:type="SQLINT" />
<COLUMN SOURCE="2" NAME="C2" xsi:type="SQLINT" />
</ROW>
</BCPFORMAT>
Dodatkowe przykłady
Przykłady dodatkowe pliki w formacie XML inny niż i pliki w formacie XML zobacz następujące tematy: