Mysql
 sql >> Base de données >  >> RDS >> Mysql

Barre oblique inverse dans le fichier csv

Par défaut, LOAD DATA utilise \ comme caractère d'échappement. Tenez compte de votre contribution :

"abcd", "efgh\", "ijk"

Cette séquence \" est interprété comme un guillemet littéral non fermant, et non comme une barre oblique inverse suivie d'un guillemet.

Le meilleur la solution consiste à échapper correctement les barres obliques inverses dans votre fichier CSV, par exemple :

"abcd", "efgh\\", "ijk"

Si vous ne pouvez pas le faire, vous pouvez désactiver l'échappement dans votre instruction LOAD DATA INFILE en ajoutant ESCAPED BY '' à la déclaration. Cela l'empêchera de reconnaître \ comme un caractère d'échappement, mais gardez à l'esprit qu'il désactivera également toutes les autres séquences d'échappement dans votre fichier d'entrée. Cela importera également efgh\ , la barre oblique inverse ne sera pas ignorée.

Si vous importez efgh\ est inacceptable, vous devrez alors corriger le format de votre fichier d'entrée, ou supprimer le \ de fin plus tard dans votre logique d'application ou avec une autre requête SQL.

Voir Syntaxe MySQL LOAD DATA INFILE pour plus d'informations sur les options de format de fichier.

J'espère que ça aide.