Textdatei in SQLExpress-Datenbank importieren. Trennung funktioniert nicht korrekt.?

...komplette Frage anzeigen

1 Antwort

so geht das nicht. der assistent geht bei einer *.txt davon aus, dass es sich um eine csv-datei (im allgemeineren sinne) handelt. csv steht für "comma separated values"  - wobei comma auch was anderes sein kann, der assisent bietet die ja einiges an (sogar für die kopfzeile und datenzeilen verschiedene?).

deine textdatei ist aber eine json - datei (javascript object notation), enthält ein array [...] von objects {...}

wenn der assistent das nicht anbietet, musst du diese datei über ein SQL-befehl importieren (stichwort: JSON):

https://blogs.msdn.microsoft.com/sqlserverstorageengine/2015/09/22/openjson-the-easiest-way-to-import-json-text-into-table/

geht wohl aber nur mit einer neuen version.

schmidtsteffen9 11.05.2016, 16:03

Ja richtig, ist eine JSON-Datei. Musste mich da auch erst belesen...mit MS SQL 2016 soll der Import wohl unterstützt werden, jedoch soll es momentan auch bereits etwas umständlicher über entsprechende Programmierungen möglich sein. Leider bekomme ich das jedoch nicht hin.

0
maximilianus7 12.05.2016, 17:06
@schmidtsteffen9

(für mich) am einfachsten wäre es dies mit php zu realisieren, da gibt es für csv und json mächtige funktionen dafür. ich hab die mal ein script gebastelt: http://paste2.org/mLtMVYBI

wie php?
wenn du in deiner (firmen?)-umgebung schon einen webserver mit php hast, auf dessen filesystem du zugang hast, kannst du - nachdem du json.txt mit den aktuellen daten überschrieben hast - das script einfach aufrufen.

oder du lädst dir php für windows (http://windows.php.net/download/) runter und kannst es auf der kommandozeile aufrufen:

php scriptname <json-datei >csv-datei

(z.b. als teil eines bat-scriptes.)

fragen?

0
maximilianus7 12.05.2016, 18:54
@maximilianus7

vergessen zu erwähnen: der einfachheit halber gehe ich davon aus, dass alle datensätze, also die  {...} - ausdrücke gleich aufgebaut sind (auch in bezug auf die reihenfolge der attribute), so dass der 1. eintrag als referenz für die spaltennamen dienen kann.

0

Was möchtest Du wissen?