Vinzenz Mai: Zugriffsfehler bei Output in ein File

Beitrag lesen

Hallo,

1.: Ist es moeglich, statt des Statements einen Dateinamen einer SQL-Datei zu uebergeben, die ausgefuehrt werden soll?

siehe dedlfix' Antwort.

2.: Kann man das Format der Ausgabe individuell vorgeben? (XML-Ausgabe kann man laut Doku vorgeben, aber CSV nicht).

individuell nicht, aber Du hast im Batchmodus, den Du entweder mit

-b

oder durch Einlesen der Statements aus einer Datei, was Du ja vorhast, bekommst, nahezu schon tabulatorgetrenntes CSV-Format. Vier spezielle Zeichen sind maskiert, siehe Handbuch, Option --raw.

Folgendes müsste doch ausreichen (ich hoffe, ich habe nichts übersehen):

Für jede Zeile
    Entferne das Zeilenende
    Trenne am Tabulator
    Für jeden Eintrag
        Verdopple das Begrenzungszeichen
        Entferne die Transportsicherung bei maskierten Zeichen
        Packe (wenn nötig) den Eintrag in Begrenzungszeichen [1]
    Ende Für
    Verbinde alle Einträge mit dem gewünschten Feldtrennzeichen
    Hänge das gewünschte Zeilenendezeichen an
Ende Für

sollte nicht zu schwer umzusetzen sein. Muss ja nicht Shellskript sein, könnte auch in $programmiersprache gelöst sein, könnte aber von STDIN lesen und nach STDOUT ausgeben, damit Du die Ausgabe von mysql einfach durchpipen kannst.

Freundliche Grüße

Vinzenz