Utiliser le format caractère pour importer ou exporter des données (SQL Server)
Le format caractère est recommandé pour l'exportation en bloc de données dans un fichier texte qui doit être utilisé dans un autre programme, ou pour l'importation en bloc de données à partir d'un fichier texte généré par un autre programme.
[!REMARQUE]
Lors du transfert en bloc de données entre des instances de Microsoft SQL Server, si le fichier de données contient des données de caractères Unicode mais aucun caractère étendu ou DBCS, utilisez le format de caractères Unicode. Pour plus d'informations, consultez Utiliser le format caractère Unicode pour importer ou exporter des données (SQL Server).
Le format caractère utilise le format de données de caractères pour toutes les colonnes. L'enregistrement d'informations au format caractère est utile lorsque les données sont exploitées par un autre programme, par exemple un tableur, ou lorsque les données doivent être copiées dans une instance de SQL Server à partir d'une base de données issue d'un autre éditeur comme Oracle.
Considérations relatives à l'utilisation du format caractère
Lors de l'utilisation du format caractère, tenez compte des points suivants :
Par défaut, l'utilitaire bcp sépare les champs de données de caractères par le caractère de tabulation et termine les enregistrements par un caractère de nouvelle ligne. Pour plus d'informations sur la définition d'autres marques de fin, consultez Spécifier des indicateurs de fin de champ et de fin de ligne (SQL Server).
Par défaut, avant l'exportation ou l'importation en bloc de données en mode caractère, les conversions suivantes sont réalisées :
Sens de l'opération en bloc
Conversion
Exporter
Convertit les données en représentation caractère. Si la demande est faite explicitement, les données sont converties vers la page de codes demandée pour les colonnes de caractères. Si aucune page de codes n'est spécifiée, les données de caractères sont converties à l'aide de la page de codes OEM de l'ordinateur client.
Importation
Convertit les données de caractères en représentation native si nécessaire, puis traduit les données de caractères de la page de codes du client vers la page de codes des colonnes cibles.
Pour éviter la perte de caractères étendus pendant la conversion, utilisez le format de caractères Unicode ou spécifiez une page de codes.
Les données sql_variant stockées dans un fichier au format caractère sont enregistrées sans métadonnées. Chaque valeur de données est convertie au format char suivant les règles de conversion implicite des données. Importées dans une colonne sql_variant, les données sont importées au format char. Importées dans une colonne dont le type de données est différent de sql_variant, les données sont converties à partir du format char à l'aide de la conversion implicite. Pour plus d'informations sur la conversion des données, consultez Conversion de types de données (moteur de base de données).
L'utilitaire bcp exporte les valeurs de type money sous forme de fichiers de données au format caractère, avec quatre chiffres après le séparateur décimal et sans symboles de groupement de chiffres comme les espaces de séparation. Par exemple, une colonne money contenant la valeur 1 234 567,123456 est exportée en bloc dans un fichier en tant que chaîne de caractères 1234567,1235.
Options de commande pour le format caractère
Vous pouvez importer des données au format caractère dans une table à l'aide de l'utilitaire bcp, BULK INSERT ou INSERT ... SELECT * FROM OPENROWSET(BULK...). Si vous utilisez une commande bcp ou une instruction BULK INSERT, vous pouvez spécifier le format de données dans la ligne de commande. Pour une instruction INSERT ... SELECT * FROM OPENROWSET(BULK...), vous devez spécifier le format de données dans un fichier de format.
Le format caractère est pris en charge par les options de ligne de commande suivantes :
Commande |
Option |
Description |
---|---|---|
bcp |
-c |
Impose à l'utilitaire bcp d'utiliser les données de caractères.1 |
BULK INSERT |
DATAFILETYPE = 'char' |
Utilise le format caractère lors de l'importation en bloc des données. |
1 Pour charger les données de caractères (-c) dans un format compatible avec les versions antérieures des clients SQL Server, utilisez le commutateur -V. Pour plus d'informations, consultez Importer des données au format natif et caractère à partir de versions antérieures de SQL Server.
Pour plus d'informations, consultez Utilitaire bcp, BULK INSERT (Transact-SQL) ou OPENROWSET (Transact-SQL).
[!REMARQUE]
Vous pouvez également spécifier le formatage par champ dans un fichier de format. Pour plus d'informations, consultez Fichiers de format pour l'importation ou l'exportation de données (SQL Server).
Exemples
Les exemples suivants montrent comment exporter en bloc des données de caractères à l'aide de l'utilitaire bcp et comment importer en bloc les mêmes données à l'aide de l'instruction BULK INSERT.
Exemple de table
Les exemples nécessitent la création d'une table myTestCharData dans l'exemple de base de données AdventureWorks d'après le schéma dbo. Avant d'exécuter les exemples, vous devez créer cette table. Pour ce faire, dans l'éditeur de requête SQL SQL Server Management Studio, exécutez le code suivant :
USE AdventureWorks;
GO
CREATE TABLE myTestCharData (
Col1 smallint,
Col2 nvarchar(50),
Col3 nvarchar(50)
);
Pour remplir cette table et afficher le contenu résultant, exécutez les instructions suivantes :
INSERT INTO myTestCharData(Col1,Col2,Col3)
VALUES(1,'DataField2','DataField3');
INSERT INTO myTestCharData(Col1,Col2,Col3)
VALUES(2,'DataField2','DataField3');
GO
SELECT Col1,Col2,Col3 FROM myTestCharData
Utilisation de bcp pour exporter en bloc des données de caractères
Pour exporter des données de la table vers le fichier de données, utilisez bcp avec l'option out et les qualificateurs suivants :
Qualificateurs |
Description |
---|---|
-c |
Spécifie le format caractère. |
-t , |
Virgule (,) servant d'indicateur de fin de champ.
|
-T |
Spécifie que l'utilitaire bcp se connecte à SQL Server avec une connexion approuvée qui utilise la sécurité intégrée. Si -T n'est pas spécifié, vous devez indiquer -U et -P pour pouvoir vous connecter. |
L'exemple suivant exporte en bloc les données au format caractère de la table myTestCharData dans un nouveau fichier de données nommé myTestCharData-c.Dat, qui utilise la virgule (,) comme marque de fin de champ. À l'invite de commandes Microsoft Windows, entrez :
bcp AdventureWorks..myTestCharData out C:\myTestCharData-c.Dat -c -t, -T
Utilisation de l'instruction BULK INSERT pour importer en bloc des données de caractères
L'exemple suivant utilise l'instruction BULK INSERT pour importer les données du fichier de données myTestCharData-c.Dat dans la table myTestCharData. Dans l'Éditeur de requête SQL Server Management Studio, exécutez :
USE AdventureWorks;
GO
BULK INSERT myTestCharData
FROM 'C:\myTestCharData-c.Dat'
WITH (
DATAFILETYPE='char',
FIELDTERMINATOR=','
);
GO
SELECT Col1,Col2,Col3 FROM myTestCharData;
GO
Tâches associées
Pour utiliser des formats de données pour l'importation ou l'exportation en bloc
Importer des données au format natif et caractère à partir de versions antérieures de SQL Server
Utiliser le format natif pour importer ou exporter des données (SQL Server)
Utiliser le format caractère Unicode pour importer ou exporter des données (SQL Server)
Utiliser le format natif Unicode pour importer ou exporter des données (SQL Server)
Voir aussi
Référence
Types de données (Transact-SQL)
Concepts
Importer des données au format natif et caractère à partir de versions antérieures de SQL Server