2014-09-17 3 views
1

J'ai donc des données dans lesquelles tous les champs sont entourés de guillemets et sont délimités par un tuyau. Certains champs contiennent du texte html, de sorte qu'il y a de nouveaux caractères de ligne dans le champ. Je veux que ces nouveaux caractères de ligne fassent partie du champ de texte. Les données ressemble à ceci:Chargement d'un fichier avec des caractères de nouvelle ligne dans le champ de texte

"ABCD" | "1" | "" | "abcdegf

"|" ABCD"

En outre, les données HTML est énorme quantité de texte (exemple montre rès moins de données) et j'obtiens l'erreur 'multi-octets enlose chaîne non supportée.' Je suis sur infobright.Je vais bien même si je peux supprimer ces champs du fichier CSV.Ils ne sont pas nécessaires pour l'analyse.Quelle devrait être la bonne CHARGEZ LOCAL DATA Syntaxe INFILE pour cela?

Je suis nouveau dans ce domaine, l'aide est grandement appréciée

Répondre

0
LOAD DATA INFILE 'filename' "STR '\r\n'" 
APPEND INTO TABLE tablename FIELDS TERMINATED BY "|" 
OPTIONALLY ENCLOSED BY '"' 
TRAILING NULLCOLS 
+0

Merci. La syntaxe ci-dessus donne une erreur. Est-ce à cause de l'ancienne version de MySQL? Y a-t-il une solution de contournement? – MySQLLearner

0

S'il vous plaît ajouter le code ci-dessous au fichier CTL -

LOAD DATA INFILE 'filename' APPEND CONTINUEIF LAST =! "|" INTO TABLE IDP.M_ACTION FIELDS TERMINATED PAR "|" OPTIONNELLEMENT ENCLOSED BY '' ' NULLCOLS TRAILING (

La réponse précédente n'est pas prise en charge sur toutes les versions de SQL Loader. Vous pouvez essayer cette solution à la place.

3
load data infile '<file>' into table <table> fields enclosed 
by '"' terminated by '|'; 
Questions connexes