Udostępnij za pośrednictwem


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: