Question

J'ai des données du fournisseur qui a le SOH (caractère ASCII 1) comme séparateur de champ et STX (caractère ASCII 2) comme séparateur d'enregistrement. Est-il possible de charger ces données avec INFILE LOAD DATA sans pré-traitement du fichier et de remplacer ces personnages quelque chose de plus commun?

Était-ce utile?

La solution

Je l'ai.

LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE my_table 
    CHARACTER SET UTF8 
    FIELDS TERMINATED BY X'01'
    LINES TERMINATED BY X'02'
    (col1, col2, col3);

Autres conseils

Vous pouvez essayer FIELDS TERMINATED BY _ascii 0x02. Je ne sais pas si cela fonctionnera pour LOAD DATA INFILE, mais il fonctionne en SELECT (à savoir, les rendements SELECT _ascii 0x61 a ').

Si vous utilisez mysqlimport le format pour les valeurs hexagonales dans les champs à terminaison par des lignes à terminaison par etc est:

mysqlimport --local --user = nom d'utilisateur --password = secrètes --ignore-lines = 4 --default-character-set = UTF8 --fields à terminaison par = 0x01 --lines-terminaison par = 0x02 --verbose databasename thefiletoimport

Vous pouvez essayer simplement d'envoyer le ascii ombles directement dans la chaîne littérale .. si votre connexion ne dispose pas d'un jeu de caractères ou le codage attribué, alors MySQL peut simplement l'accepter comme une chaîne valide. Il faudrait le faire via une connexion réseau ou des données de tuyauterie au client mysql. Je ne pense pas que vous allez être capable de taper que sur une console.

  

FIELDS TERMINATED PAR X'01'

fonctionne pour moi

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top