PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : " im Textfeld des Batch escapen



JCB
12.07.2006, 19:52
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?


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

Xanti
12.07.2006, 19:57
Vielleicht ein


tr -d \"

zwischenschalten.

Gruss, Xanti

JCB
12.07.2006, 20:18
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

Xanti
12.07.2006, 21:02
Vielleicht bringt es etwas, wenn man das " escaped, also ein \ davorstellt. Vielleicht wird dies von sql ordentlich interpretiert.

JCB
12.07.2006, 21:09
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

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

JCB
14.07.2006, 22:02
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