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
Remarque : |
---|
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>
Remarque : |
---|
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>
Remarque : |
---|
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>
Remarque : |
---|
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 :
- Utilisation d'un fichier de format pour ignorer une colonne de table
- Utilisation d'un fichier de format pour ignorer un champ de données
- Utilisation d'un fichier de format pour mapper les colonnes d'une table sur les champs d'un fichier de données
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 |
|
14 avril 2006 |
|