Frage

Ich habe einige Lieferantendaten, die die SOH (ASCII-Zeichen 1) als Feldtrennzeichen und STX (ASCII-Zeichen 2) als Satzbegrenzer hat. Ist es möglich, diese Daten mit LOAD DATA INFILE zu laden, ohne Vorverarbeitung die Datei und ersetzt diese Zeichen mit etwas häufiger?

War es hilfreich?

Lösung

Ich habe es.

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);

Andere Tipps

Sie könnten versuchen, FIELDS TERMINATED BY _ascii 0x02. Ich weiß nicht, ob es für LOAD DATA INFILE funktioniert, aber es funktioniert in SELECT (das heißt, SELECT _ascii 0x61 Erträge ‚a‘).

Wenn Sie das Format für die Hex-Werte in Felder-terminated-by mit mysqlimport sind und Linien-terminated-by etc ist:

mysqlimport --local --user = username --password = secret --ignore-Linien = 4 --default-character-set = UTF8 --fields-terminated-by = 0x01 --lines-terminated-by = 0x02 --verbose database thefiletoimport

Sie können nur versuchen, die ASCII-Zeichen zu senden direkt im Stringliteral .. wenn Ihre Verbindung kein charset oder Codierung zugewiesen ist, dann kann mysql einfach als gültigen Zeichenfolge akzeptieren. Sie müßten es über eine Netzverbindung tun, oder Leitungsdaten an das MySQL-Client. Ich glaube nicht, dass du in der Lage sein, dass an einer Konsole eingeben.

  

FIELDS TERMINATED BY X'01'

funktioniert für mich

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top