Automator "CSV in SQL-Befehle konvertieren"

thowi

thowi

Aktives Mitglied
Thread Starter
Dabei seit
14.10.2007
Beiträge
560
Reaktionspunkte
33
Moin zusammen,

ich habe eine CSV-Datei, die über ein Apple Script generiert wird. Die Inhalte dieser Datei möchte ich gerne automatisiert in eine entfernte Microsoft SQL Datenbank einspeisen.

Eine Möglichkeit, die ich dazu gefunden habe, ist per Automator über den Befehl "CSV in SQL-Befehle konvertieren".

Meine CSV-Datei sieht so aus:
Code:
ID;Spalte1;Spalte2;Spalte3;Spalte4
1;A;B;3,5;D
2;E;F;7,9;H
Die Werte sind also per Semikolon getrennt, es gibt keine "".

Im Automator bin ich mittlerweile so weit, dass ich die CSV Datei eigelesen bekomme und hänge gerade daran, die Werte an den Semikolons zu separieren
Code:
INSERT INTO Tabelle (ID, Spalte1, Spalte2, Spalte3, Spalte4)
VALUES (%{1}@, %{2}@, %{3}@, %{4}@)

Mit %{1}@ kann ich auf das 1. Feld zugreifen usw.:

Bildschirmfoto 2021-09-29 um 10.42.41.png


Mein Problem ist nun: Ich möchte nicht an Kommas trennen, sondern an den Semikolons. Die Doku im Automator ist hier recht spärlich und ansonsten konnte ich dazu leider nichts sinnvolles ergooglen, was sich mit semikolon-getrennten Werten beschäftigt.

Wie kann ich dem Automator hier beibringen, am Semikolon zu trennen? Oder ist der Ansatz komplett zu umständlich?

Vielen Dank für eure Hilfe!
 
Probier mal sep=; in das CSV zu schreiben.
Eventuell beherzigt der Automator das wie andere Apps.
Sonst musst du halt beim erstellen des CSV ansetzen.
 
Danke, guter Tipp! Leider funktioniert das so nicht :(
Sehe ich also richtig, es gibt in dieser Automator-Funktion keine Möglichkeit, den Separator anzugeben? Das ist ja schon auch schwach irgendwie....
 
Musst wohl auf Applescript gehen, da kannst den Delimiter setzen.
Ich weiß nicht, ob man das Automator Action bearbeiten kann.
 
Das alles im AppleScript zu lösen wäre tatsächlich die eleganteste Lösung, weil ich das CSV ja eh schon aus einer anderen Anwendung heraus im AppleScript generiere.
Aber ich hab keine Ahnung, wie ich im AppleScript eine MSSQL Verbindung aufbaue, das CSV parse, in ein INSERT konvertiere und dann in die DB füttere.
Eigentlich gibt es dafür ja utilitys wie mysql. Ich hab was gefunden mit einem SQL Treiber von Actual Technologies und ODBCKit in einer cocoa Anwendung. Aber das ist für mich schon zu hoch :)
 
Da wäre es einfacher das in PHP zu machen.
 
Wäre auch eine coole Sache. Das CSV könnte ich per FTP an einen bestimmten Platz syncen von wo das PHP Skript dass dann aufnimmt und nach MSSQL schiebt. Das PHP Skript müsste ich dann ebenfalls über das Apple Script / Shell Skript aufrufen, geht das denn so easy? Also kann ich per Skript eine php Datei "Starten"? Das ganze soll ja im Hintergrund laufen, ohne dass Safari aufgeht und die Datei aufruft.
 
Klar, du kannst das mit der shell script Action aufrufen.
Entweder halt mit
php script.php
Oder du packst das entsprechende shebang
#!/usr/bin/php
als erste Zeile ins Script und machst es ausführbar.
 
  • Gefällt mir
Reaktionen: wegus
Zurück
Oben Unten