Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server sur Linux
Cet article explique comment utiliser l’utilitaire bcp pour copier en bloc des données entre une instance de SQL Server sur Linux et un fichier de données dans un format spécifié par l’utilisateur.
Vous pouvez utiliser bcp pour importer un grand nombre de lignes dans des tables SQL Server ou pour exporter des données de SQL Server tables dans des fichiers de données. À l’exception de l’option de requête, bcp ne nécessite aucune connaissance de Transact-SQL. L’utilitaire bcp en ligne de commande fonctionne avec SQL Server fonctionnant sur site ou dans le cloud sur Linux, Windows ou Docker, ainsi qu’avec Azure SQL Database et Azure Synapse Analytics.
Cet article vous montre comment :
- Importer des données dans une table à l’aide de la commande
bcp in - Importer des données à partir d’une table à l’aide de la commande
bcp out
Installer les outils en ligne de commande SQL Server
bcp fait partie des outils en ligne de commande SQL Server, qui ne sont pas installés automatiquement avec SQL Server sur Linux. Si vous n’avez pas encore installé les outils en ligne de commande SQL Server sur votre machine Linux, vous devez les installer. Pour plus d’informations sur l’installation des outils, sélectionnez votre distribution Linux dans la liste suivante :
Importer des données avec bcp
Dans ce tutoriel, vous allez créer un exemple de base de données et de table sur l’instance de SQL Server locale (localhost), puis utiliser bcp pour charger dans l’exemple de table à partir d’un fichier texte sur le disque.
Créer un exemple de base de données et de table
Commencez par créer un exemple de base de données avec une table simple utilisée dans le reste de ce didacticiel.
Sur votre boîte Linux, ouvrez un terminal de commande.
Copiez et collez les commandes suivantes dans la fenêtre du terminal. Ces commandes utilisent l’utilitaire sqlcmd pour créer une base de données d’exemple (
BcpSampleDB) et une table (TestEmployees) sur l’instance locale de SQL Server (localhost). N’oubliez pas de remplacersaet<password>si nécessaire avant d’exécuter les commandes.
Votre mot de passe doit respecter la stratégie de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.
Créer la base de données BcpSampleDB :
sqlcmd -S localhost -U sa -P <password> -Q "CREATE DATABASE BcpSampleDB;"
Créer la table TestEmployees dans la base de données BcpSampleDB :
sqlcmd -S localhost -U sa -P <password> -d BcpSampleDB -Q "CREATE TABLE TestEmployees (Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, Name NVARCHAR(50), Location NVARCHAR(50));"
Créer le fichier de données source
Copiez et collez la commande suivante dans la fenêtre du terminal. La commande intégrée cat crée un fichier texte d’exemple avec trois enregistrements et enregistre le fichier dans votre dossier personnel sous ~/test_data.txtla forme . Les champs des enregistrements sont délimités par une virgule.
cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF
Vous pouvez vérifier que le fichier de données a été créé correctement en exécutant la commande suivante dans la fenêtre du terminal :
cat ~/test_data.txt
Ce qui suit s’affiche dans la fenêtre du terminal :
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
Importer des données à partir du fichier de données source
Copiez-collez la commande suivante dans la fenêtre du terminal. Cette commande utilise bcp pour se connecter à l’instance SQL Server locale (localhost) et importer les données du fichier de données (~/test_data.txt) dans la table (TestEmployees) dans la base de données (BcpSampleDB). N’oubliez pas de remplacer sa et <password> au cas où c’est nécessaire avant d’exécuter la commande.
bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Voici une brève vue d’ensemble des paramètres de ligne de commande que bcp nous avons utilisés dans cet exemple :
-
-S: spécifie l’instance de SQL Server à laquelle se connecter -
-U: spécifie l'ID de connexion utilisé pour se connecter à SQL Server -
-P: spécifie le mot de passe de l’ID de connexion -
-d: spécifie la base de données à laquelle se connecter -
-c: effectue des opérations en utilisant un type de données caractères -
-t: spécifie le délimiteur de champ. Cet exemple utilise une virgule comme terminateur de champ pour les enregistrements dans le fichier de données
Note
Dans cet exemple, nous ne spécifions pas de délimiteur de ligne personnalisé. Les lignes du fichier de données texte étaient correctement terminées par newline lorsque nous avons utilisé la commande cat pour créer le fichier de données précédemment.
Vous pouvez vérifier que les données ont été correctement importées en exécutant la commande suivante dans la fenêtre du terminal. N’oubliez pas de remplacer sa et <password> au cas où c’est nécessaire avant d’exécuter la commande.
sqlcmd -S localhost -d BcpSampleDB -U sa -P <password> -I -Q "SELECT * FROM TestEmployees;"
Les résultats suivants doivent s’afficher :
Id Name Location
----------- ------------------- -------------------
1 Jared Australia
2 Nikita India
3 Tom Germany
Exporter des données avec bcp
Dans ce tutoriel, vous utilisez bcp pour exporter des données à partir de l’exemple de table que nous avons créé précédemment vers un nouveau fichier de données.
Copiez-collez la commande suivante dans la fenêtre du terminal. Cette commande utilise l’utilitaire bcp en ligne de commande pour exporter des données de la table TestEmployees de la base BcpSampleDB de données vers un nouveau fichier de données appelé ~/test_export.txt. N’oubliez pas de remplacer sa et <password> au cas où c’est nécessaire avant d’exécuter la commande.
bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Vous pouvez vérifier que les données ont été exportées correctement en exécutant la commande suivante dans la fenêtre du terminal :
cat ~/test_export.txt
Ce qui suit s’affiche dans la fenêtre du terminal :
1,Jared,Australia
2,Nikita,India
3,Tom,Germany