Spécifier des formats de données pour la compatibilité lors de l’utilisation de bcp (SQL Server)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Cet article décrit les attributs de format de données, les invites spécifiques aux champs et le stockage de données champ par champ dans un fichier au format non xml du

commande SQL Server bcp. La compréhension de ces notions peut être utile lorsque vous exportez des données SQL Server en bloc à des fins d’importation en bloc dans un autre programme, tel qu’un autre programme de base de données. Les formats de données par défaut (natif, caractère ou Unicode) dans la table source peuvent être incompatibles avec la disposition des données attendue par l'autre programme. S'il existe une discordance lorsque vous exportez les données, vous devez décrire la disposition des données.

Notes

Si vous ne maîtrisez pas les formats de données pour l’importation ou l’exportation de données, consultez Formats de données pour l’importation ou l’exportation en bloc (SQL Server).

Attributs de format de données bcp

La commande bcp vous permet de spécifier la structure de chaque champ dans un fichier de données, selon les attributs de format de données suivants :

  • type de stockage de fichier

    Le type de stockage de fichier décrit la façon dont les données sont stockées dans le fichier de données. Les données peuvent être exportées vers un fichier de données correspondant à son type de table de base de données (format natif), dans sa représentation caractère (format caractère) ou en tant que tout type de données pour lequel la conversion implicite est prise en charge, par exemple, en copiant un type de données smallint comme int. Les types de données définis par l'utilisateur sont exportés en tant que leurs propres types de base. Pour plus d’informations, consultez Spécifier le type de stockage de fichiers à l’aide de bcp (SQL Server).

  • Longueur de préfixe

    Pour un stockage de fichier plus compact lors de l’exportation en bloc de données au format natif vers un fichier de données, la commande bcp ajoute devant chaque champ un ou plusieurs caractères indiquant la longueur du champ. Ces caractères portent le nom de caractères de préfixe de longueur. Pour plus d’informations, consultez Spécifier une longueur de préfixe dans des fichiers de données à l’aide de bcp (SQL Server).

  • Longueur du champ

    La longueur de champ indique le nombre maximal de caractères nécessaires pour représenter les données au format caractères. La longueur de champ est déjà connue si les données sont stockées au format natif. Pour plus d’informations, consultez Spécifier la longueur des champs au moyen de (SQL Server).

  • Marque de fin de champ

    Pour les champs de données caractères, des caractères de fin facultatifs vous permettent de marquer la fin de chaque champ dans un fichier de données (à l’aide d’une marque de fin de champ), ainsi que la fin de chaque ligne (avec une marque de fin de ligne). Les caractères de fin constituent un moyen d'indiquer aux programmes lisant le fichier de données la fin d'un champ ou d'une ligne et le début du suivant. Pour plus d’informations, consultez Spécifier des indicateurs de fin de champ et de fin de ligne (SQL Server).

Vue d'ensemble des invites spécifiques aux champs

Si une commande bcp interactive contient l’option in ou out, mais ni le commutateur de fichier de format (-f) ni le commutateur de format de données (-n, -c, -w ou -N), pour chaque colonne de la table source ou cible, la commande vous invite à fournir successivement chacun des attributs précédents. À chaque invite, la commande bcp fournit une valeur par défaut basée sur le type de données SQL Server de la colonne de table. L’acceptation de la valeur par défaut pour toutes les invites produit le même résultat que la spécification du format natif ( -n) sur la ligne de commande. Chaque invite affiche une valeur par défaut entre crochets : [valeur par défaut]. En appuyant sur la touche Entrée, vous acceptez les valeurs par défaut affichées. Pour spécifier une valeur différente de celle par défaut, entrez cette nouvelle valeur à l'invite.

Exemple

L’exemple suivant utilise la commande bcp pour l’exportation en bloc interactive de données à partir de la table HumanResources.myTeam vers le fichier myTeam.txt . Avant de pouvoir exécuter cet exemple, vous devez créer cette table. Pour plus d’informations sur la table et la manière de la créer, consultez Exemple de table HumanResources.myTeam (SQL Server).

La commande ne spécifie ni un fichier de format, ni un type de données ; l’utilitaire bcp vous invite donc à fournir des informations de format de données. À l’invite de commandes Windows Microsoft , entrez :

bcp AdventureWorks.HumanResources.myTeam out myTeam.txt -T

Pour chaque colonne, l'utilitaire bcp demande des valeurs spécifiques au champ. L'exemple suivant illustre les messages spécifiques au champ pour les colonnes EmployeeID et Name de la table. En outre, il suggère le type de stockage de fichier par défaut (le format natif) pour chaque colonne. Les longueurs de préfixe des colonnes EmployeeID et Name sont 0 et 2, respectivement. L'utilisateur spécifie une virgule (,) en tant que marque de fin pour chaque champ.

Enter the file storage type of field EmployeeID [smallint]:

Enter prefix-length of field EmployeeID [0]:

Enter field terminator [none]:,

Enter the file storage type of field Name [nvarchar]:

Enter prefix length of field Name [2]:

Enter field terminator [none]:,

.

.

.

Des messages équivalents (si nécessaire) s'affichent pour chacune des colonnes de table dans l'ordre.

Stocker des données champ par champ dans un fichier de format non XML

Une fois toutes les colonnes de table spécifiées, la commande bcp vous invite à générer facultativement un fichier de format non-XML qui stocke les informations champ par champ venant d’être fournies (voir l’exemple précédent). Si vous choisissez de générer un fichier de format, vous pouvez effectuer cette opération dès que vous exportez des données vers cette table ou que vous importez des données structurées de la sorte dans SQL Server.

Notes

Vous pouvez utiliser le fichier de format pour importer en bloc des données à partir du fichier de données vers une instance de SQL Server ou exporter en bloc des données depuis la table, sans devoir spécifier à nouveau le format. Pour plus d’informations, consultez Fichiers de format pour l’importation ou l’exportation de données (SQL Server).

L'exemple suivant crée un fichier de format non XML nommé myFormatFile.fmt.

Do you want to save this format information in a file? [Y/n] y

Host filename: [bcp.fmt]myFormatFile.fmt

Le nom par défaut du fichier de format est bcp.fmt, mais vous pouvez spécifier un nom différent si vous le souhaitez.

Notes

Pour un fichier de données qui utilise un seul format de données pour son type de stockage de fichiers, tel qu’un format caractère ou natif, vous pouvez créer rapidement un fichier de format sans exportation ni importation de données, à l’aide de l’option format . Cette approche présente les avantages d'être aisée et de vous permettre de créer un fichier de format XML ou non-XML. Pour plus d’informations, consultez Créer un fichier de format (SQL Server).

Aucun.

Étapes suivantes