" im Textfeld des Batch escapen

J

JCB

Mitglied
Moin,

ich muss täglich mehrere Dateien einlesen die sind Fixed Lenght. Leider enthalten diese manchmal auch Anführungszeichen im Text, so daß MySQL meckert und die nicht importieren will. Wie kann ich Mysql sagen daß er alle " aus diesem Import ignoriert?

Code:
root@KanoServer:/pub/l# awk 'BEGIN{FIELDWIDTHS="10 9 90 64 64 30 30 9 2 16 5 16 200 1"};{print "INSERT INTO TEMP_MST (UID,  Name1, Address1, Address2, City, State, Postcode, Country,Phone,NationalRegisterType, NationalRegisterNumber, Comment,Type) VALUES(\""$1"\",\""$2"\",\""$3"\",\""$4"\",\""$5"\",\""$6"\",\""$7"\",\""$8"\",\""$9"\",\""$10"\",\""$11"\",\""$12"\",\""$13"\",\""$14"\");"}' /pub/Test_Sql/input.txt | mysql -r -u root --password=geheim sollers_min

Jemand ne Idee?

Danke,

JCB
 
Vielleicht ein

Code:
tr -d \"

zwischenschalten.

Gruss, Xanti
 
Hallo Xanti,

danke dür deine Antwort. Daran hab ich auch gedacht, eher durch sed, damit ich die Stelle mit einem blank ersetze (Fixed Lenght!)

Jedoch weiss ich jetzt noch nicht, ob ich diese Anführungszeichen mal brauche, da es in einigen Fällen ein Namensbestandteil ist.

Ich dachte, da gibt es einen Schlüssel in der Import Routine um diese Zeichen, wo immer sie auftreten, als Steuerzeichen zu ignorieren.

Gruß,

JCB
 
Vielleicht bringt es etwas, wenn man das " escaped, also ein \ davorstellt. Vielleicht wird dies von sql ordentlich interpretiert.
 
Schon, aber ich weiß ja nicht wo eines im Batch ist. und mit sed einfach suchen und ersetzen, zerhau ich mir ja die Feldlänge?(

Dann scheint es wohl nix in MySQL zu geben.

Gruß,

JCB
 
Hmm, komplexes Thema. Vielleicht kann man die Feldlänge auch um die Anzahl der " verlängern. Vorausgesetzt, SQL kommt mit \" klar.
 
Moin Xanti,

ich hab das erst mal mit suchen und ersetzen "blank" gemacht. Die Zukunft wird zeigen ob die Fehlenden " sich auf die Gesamtaufgabe auswirken.

Danke auf jeden Fall,

Gruß,
JCB
 

Ähnliche Themen

Akonadi startet nicht mehr

Debian Routing Problem

Fedora 20 - Unlösbare Paket-Duplikat Konflikte

Modulfehler?

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

Zurück
Oben