Partager via


Exemples de fichiers de format XML

Mis à jour : 17 juillet 2006

Les exemples de cette rubrique illustrent des aspects essentiels de l'utilisation de fichiers de format XML. La syntaxe d'un fichier de format ne dépend pas de la direction dans laquelle s'effectue l'opération : elle est la même qu'il s'agisse d'une exportation ou d'une importation en bloc.

Les exemples illustrent les opérations suivantes :

  • Classement de champs de données caractères dans le même ordre que les colonnes d'une table
  • Classement de champs de données et de colonnes d'une table dans un ordre différent
  • Omission d'un champ de données
  • Mappage de différents types de champs sur des colonnes
  • Mappage de données XML sur une table
  • Importation de champs à longueur fixe ou à largeur fixe
ms191234.note(fr-fr,SQL.90).gifRemarque :
Pour plus d'informations sur la création des fichiers de format, consultez Création d'un fichier de format.

Exemples

Dans les fichiers de données illustrés dans les exemples ci-dessous, <tab> indique un caractère de tabulation et <return>, un retour chariot.

A : Classement de champs de données caractères dans le même ordre que les colonnes d'une table

L'exemple suivant illustre un fichier de format XML décrivant un fichier de données qui contient trois champs de données caractères. Le fichier de format mappe le fichier de données sur une table contenant trois colonnes. Les champs de données correspondent un-à-un aux colonnes de la table.

Table (ligne) : Person (Age int, FirstName varchar(20), LastName varchar(30))

Fichier de données (enregistrement) : Age<tab>Firstname<tab>Lastname<retour>

Le fichier de format XML suivant lit les données du fichier de données et les écrit dans la table.

Dans l'élément <RECORD>, le fichier de format représente les valeurs de données de chacun des trois champs au format caractère. Pour chaque champ, l'attribut TERMINATOR indique le terminateur qui suit la valeur de données.

Les champs de données correspondent un-à-un aux colonnes de la table. Dans l'élément <ROW>, le fichier de format mappe la colonne Age au premier champ, la colonne FirstName au deuxième et la colonne LastName au troisième.

<?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>
ms191234.note(fr-fr,SQL.90).gifRemarque :
Pour un exemple AdventureWorks équivalent, consultez Création d'un fichier de format.

B : Classement de champs de données et de colonnes d'une table dans un ordre différent

L'exemple suivant illustre un fichier de format XML décrivant un fichier de données qui contient trois champs de données caractères. Le fichier de format mappe le fichier de données sur une table contenant trois colonnes classées dans un ordre différent de celui des champs du fichier de données.

Table (ligne) : Person (Age int, FirstName varchar(20), LastName varchar(30))

Fichier de données (enregistrement) : Age<tab>Lastname<tab>Firstname<retour>

Dans l'élément <RECORD>, le fichier de format représente les valeurs de données de chacun des trois champs au format caractère.

Dans l'élément <ROW>, le fichier de format mappe la colonne Age au premier champ, la colonne FirstName au troisième et la colonneLastName au second.

Les caractéristiques qui distinguent cet exemple sont indiquées en gras.

<?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>
ms191234.note(fr-fr,SQL.90).gifRemarque :
Pour un exemple AdventureWorks équivalent, consultez Utilisation d'un fichier de format pour mapper les colonnes d'une table sur les champs d'un fichier de données.

C: Omission d'un champ de données

L'exemple suivant illustre un fichier de format XML décrivant un fichier de données qui contient quatre champs de données caractères. Le fichier de format mappe le fichier de données sur une table contenant trois colonnes. Le deuxième champ de données ne correspond à aucune colonne de la table.

Table (ligne) : Person (Age int, FirstName varchar(20), LastName varchar(30))

Fichier de données (enregistrement) : Age<tab>employeeID<tab>Firstname<tab>Lastname<retour>

Dans l'élément <RECORD>, le fichier de format représente les valeurs de données de chacun des quatre champs au format caractère. Pour chaque champ, l'attribut TERMINATOR indique le terminateur qui suit la valeur de données.

Dans l'élément <ROW>, le fichier de format mappe la colonne Age au premier champ, la colonne FirstName au troisième et la colonneLastName au quatrième.

Les caractéristiques qui distinguent cet exemple sont indiquées en gras.

<?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="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>
ms191234.note(fr-fr,SQL.90).gifRemarque :
Pour un exemple AdventureWorks équivalent, consultez Utilisation d'un fichier de format pour ignorer un champ de données.

D: Mappage de <FIELD> xsi:type sur <COLUMN> xsi:type

L'exemple suivant illustre différents types de champs et leurs mappages sur des colonnes.

<?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: Mappage de données XML sur une table

Dans l'exemple ci-dessous, une table à deux colonnes vide (t_xml) est créée : sa première colonne est mappée sur le type de données int et la seconde, sur le type de données xml.

CREATE TABLE t_xml (c1 int, c2 xml)

Le fichier de format XML chargerait un fichier de données dans la table 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 : Importation de champs à longueur fixe ou à largeur fixe

L'exemple suivant décrit des champs fixes de 10 ou 6 caractères chacun. Le fichier de format représente ces longueurs-largeurs de champ sous la forme de LENGTH="10" et LENGTH="6", respectivement. Chaque ligne des fichiers de donnée se termine par une combinaison retour chariot/saut de ligne, {CR}{LF}, représentée par le fichier de format sous la forme 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>

Autres exemples

Les rubriques suivantes contiennent des exemples supplémentaires de fichiers de format non XML et de fichiers de format XML :

Voir aussi

Concepts

Description des fichiers de format XML
Description des fichiers de format non XML
Syntaxe de schéma pour les fichiers de format XML
Utilisation de fichiers de format

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

17 juillet 2006

Nouveau contenu :
  • Ajout de l'exemple « F : Importation de champs à longueur fixe ou à largeur fixe ».

14 avril 2006

Nouveau contenu :
  • Ajout de liens vers d'autres rubriques contenant des exemples de fichiers de format XML qui mappent les champs avec les colonnes pendant l'importation en bloc.