Connexion avec bcp
L’utilitaire bcp est disponible dans Microsoft ODBC Driver for SQL Server sur Linux et macOS. Cette page décrit les différences par rapport à la version Windows de bcp.
La marque de fin de champ est une tabulation (« \t »).
La marque de fin de ligne est un saut de ligne (« \n »).
Le mode caractère est le format préféré pour les fichiers au format
bcp
et les fichiers de données qui ne contiennent pas de caractères étendus.
Notes
Une barre oblique inverse « \ » dans un argument de ligne de commande doit être placé entre guillemets ou précédé d’un caractère d’échappement. Par exemple, pour spécifier un saut de ligne en tant que marque de fin de ligne personnalisée, vous devez utiliser l»un des mécanismes suivants :
- -r\\n
- -r"\n"
- -r'\n'
Voici un exemple d’appel de commande de l’utilitaire bcp
pour copier des lignes de table dans un fichier texte :
bcp AdventureWorks2008R2.Person.Address out test.dat -Usa -Pxxxx -Sxxx.xxx.xxx.xxx
Options disponibles
Dans la version actuelle, la syntaxe et les options suivantes sont disponibles :
[database.]schema.table in data_file | out data_file
-a packet_size
Spécifie le nombre d’octets, par paquet réseau, envoyés depuis/vers le serveur.
-b batch_size
Nombre de lignes par lot de données importées.
-c
Utilise un type de données caractères.
-d database_name
Spécifie la base de données à laquelle se connecter.
-D
Fait en sorte que la valeur passée à l’option -S de bcp
soit interprétée comme un nom de source de données (DSN). Pour plus d’informations, consultez « Prise en charge du nom de source de données dans sqlcmd et bcp » dans Connexion avec sqlcmd.
-e error_file
Spécifie le chemin complet d’un fichier d’erreur utilisé pour stocker les lignes que l’utilitaire bcp
ne peut pas transférer du fichier vers la base de données.
-E
Utilise une ou plusieurs valeurs d’identité figurant dans le fichier de données importé pour la colonne d’identité.
-f format_file
Spécifie le chemin complet au fichier de format.
-F first_row
Spécifie le numéro de la première ligne à exporter à partir d’une table ou à importer à partir d’un fichier de données.
-G
Ce commutateur est utilisé par le client durant la connexion à la base de données Azure SQL, à Azure SQL Managed Instance ou à Azure Synapse Analytics pour spécifier que l’utilisateur soit authentifié à l’aide de Microsoft Entra ID (anciennement Azure Active Directory). Il peut être combiné avec l’option -P seule pour utiliser l’authentification par jeton d’accès (v17.8 et versions ultérieures). Le commutateur -G nécessite au moins la version bcp 17.6. Pour déterminer votre version, exécutez bcp -v.
Important
L’option -G
s’applique uniquement à la base de données Azure SQL, à Azure SQL Managed Instance et à Azure Synapse Analytics.
L’authentification interactive Microsoft Entra n’est actuellement prise en charge ni sur Linux ni sur macOS. L’authentification intégrée Microsoft Entra requiert la version 17.6.1 ou une version ultérieur du pilote ODBC Microsoft 17 pour SQL Server et un environnement Kerberos correctement configuré.
-k
Spécifie que les colonnes vides doivent conserver une valeur null pendant l’opération et que les colonnes insérées ne doivent pas prendre les valeurs par défaut.
-l
Spécifie un délai de connexion. L’option -l spécifie le nombre de secondes au terme duquel une connexion de SQL Server expire quand vous tentez de vous connecter à un serveur. Par défaut, le délai d'expiration de la connexion est de 15 secondes. Le délai de connexion doit être un nombre compris entre 0 et 65534. Si la valeur fournie n’est pas numérique ou n’est pas comprise dans cet intervalle, bcp
génère un message d’erreur. Une valeur 0 spécifie un délai d’expiration infini.
-L last_row
Spécifie le numéro de la dernière ligne à exporter à partir d’une table ou à importer à partir d’un fichier de données.
-m max_errors
Spécifie le nombre maximal d'erreurs de syntaxe tolérées avant l'annulation de l'opération bcp
.
-n
Utilise les types de données natifs (base de données) pour effectuer l’opération de copie en bloc.
-P password
Spécifie le mot de passe de l’ID de connexion. Lorsqu’il est utilisé avec l’option -G sans -U, spécifie un fichier contenant un jeton d’accès (v17.8 et versions ultérieures). Le fichier de jeton doit être au format UTF-16LE (pas de marque d’ordre d’octet).
Les jetons d’accès peuvent être obtenus par le biais de différentes méthodes. Il est important de s’assurer que le jeton d’accès est de type correct octet par octet, car il est envoyé tel quel. Vous trouverez ci-dessous un exemple de commande qui obtient un jeton d’accès. La commande utilise les commandes Azure CLI et Linux, et les enregistre dans un fichier au format approprié. Si l’encodage par défaut de votre système ou de votre terminal n’est pas ASCII ou UTF-8, vous devrez peut-être ajuster les options iconv
. Veillez à sécuriser soigneusement le fichier obtenu et à le supprimer quand il n’est plus nécessaire.
az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > /tmp/tokenFile
-q
Exécute l'instruction SET QUOTED_IDENTIFIER ON dans la connexion entre l'utilitaire bcp
et une instance de SQL Server.
-r row_terminator
Spécifie l’indicateur de fin de ligne.
-R
Spécifie que les données de type devise, date et heure sont copiées en bloc dans SQL Server en utilisant le format régional défini par les paramètres régionaux de l'ordinateur client.
-S server
Spécifie le nom de l’instance SQL Server à laquelle se connecter, ou si -D est utilisé, un DSN.
-t field_terminator
Spécifie l’indicateur de fin de champ.
-T
Spécifie que l’utilitaire bcp
se connecte à SQL Server avec une connexion approuvée (sécurité intégrée).
-u
Faire confiance au certificat de serveur. (disponible depuis la version bcp
18)
-U login_id
Spécifie l'ID de connexion utilisé pour une connexion à SQL Server.
-v
Indique le numéro de version et le copyright de l'utilitaire bcp
.
-w
Utilise des caractères Unicode pour effectuer l’opération de copie en bloc.
Dans cette version, les caractères Latin-1 et UTF-16 sont pris en charge.
-Y[s|m|o]
Spécifie le mode de chiffrement de la connexion. Les options sont Strict, Obligatoire et Facultatif. L’utilisation de -Y sans aucun paramètre utilise le mode de chiffrement obligatoire et est équivalent à -Ym. (disponible depuis la version bcp
18)
Options non disponibles
Dans la version actuelle, la syntaxe et les options suivantes ne sont pas disponibles :
-C
Indique la page de codes des données dans le fichier.
-h hint
Spécifie les indications utilisées pendant l’importation en bloc des données dans une table ou une vue.
-i input_file
Spécifie le nom d’un fichier réponse.
-N
Utilise les types de données (base de données) natifs pour les données non-caractères et les caractères Unicode pour les données caractères.
-o output_file
Spécifie le nom d’un fichier recevant la sortie redirigée à partir de l’invite de commandes.
-V (80 | 90 | 100)
Utilise les types de données d’une version antérieure de SQL Server.
-x
Utilisé avec les options format et -f formal_file, génère un fichier au format XML à la place du fichier au format non-XML par défaut.