Laden...

CSV-Datei --> Datenbank

Erstellt von nasenkalli vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.494 Views
N
nasenkalli Themenstarter:in
23 Beiträge seit 2007
vor 15 Jahren
CSV-Datei --> Datenbank

Hallo Leute,

ich möchte eine CSV-Datei, die Komma separiert ist in eine Oracle Datenbank importieren.
Dabei ist es leider so, daß die separierten Felder in unterschiedliche Tabellen der DB müssen.
Ich hatte mir überlegt ob ich die CSV-Datei nicht erst nach Excel exportiere und dann in die DB.
Soll natürlich möglichst performant sein.
Ich weiss jetzt nicht auf welche Art und weise ich es lösen soll.
Wie kann man denn eine CSV-Datei nach Excel exportieren? 🤔
Vielen Dank für Eure Hilfe.

M
368 Beiträge seit 2006
vor 15 Jahren

Auch hallo,

vielleicht kann http://www.muniqsoft.de/tipps/dba/oracle_loader.htm hier einen ideenmässigen Anstoss liefern (ohne den Umweg über Excel zu gehen)....

Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉

N
nasenkalli Themenstarter:in
23 Beiträge seit 2007
vor 15 Jahren

Hallo,

sieht so aus als wenn es etwas Kosten würde.
Daher würde ich es gerne selbst programmieren.
Ob es nun eine Oracle oder eine SQL Datenbank macht ja
auch eigentlich keinen Unterschied, der Vorgang ist ja derselbe,
nur das Handling anders.
Sonst vielleicht ne Idee?

U
237 Beiträge seit 2007
vor 15 Jahren

Wie kann man denn eine CSV-Datei nach Excel exportieren?

einfach mit excel öffnen? :evil:

du solltest einfach eine liste mit den tabellenspalten haben.

string[] spalten = new string[] {"spalte1","spalte3","spalte2"};

lade eine zeile deiner csv und importiere sie dann.

spalte1 der csv kommt in spalte1 in DB.
spalte2 der csv kommt in spalte3 in DB.
spalte3 der csv kommt in spalte2 in DB.

heute code ich, morgen debug ich und übermorgen cast ich die königin auf int

U
237 Beiträge seit 2007
vor 15 Jahren

Wie kann man denn eine CSV-Datei nach Excel exportieren?
einfach mit excel öffnen? :evil:

du solltest einfach eine liste mit den tabellenspalten haben.

string[] spalten = new string[] {"spalte1","spalte3","spalte2"};  

lade eine zeile deiner csv und importiere sie dann.

spalte1 der csv kommt in spalte1 in DB.
spalte2 der csv kommt in spalte3 in DB.
spalte3 der csv kommt in spalte2 in DB.

ähnlich kannst du dann bei verschiedenen tabellen vorgehen. im spaltenarray steht dann eben was anderes drin worauf du reagieren kannst.

string[] spalten = new string[] {"tabelle2.spalte1","tabelle3.spalte3","tabelle1.spalte2"};

spalte1 der csv kommt in tabelle2.spalte1 in DB.
usw...

heute code ich, morgen debug ich und übermorgen cast ich die königin auf int

N
nasenkalli Themenstarter:in
23 Beiträge seit 2007
vor 15 Jahren

Das ist doch ein guter Ansatz an dem ich aufbauen kann.
Besten Dank für den Tipp.

J
3.331 Beiträge seit 2006
vor 15 Jahren

Über die Forumssuche nach csv import findet man wohl noch bessere (direkte) Lösungen.

Grundsatz sollte sein: direkt einlesen in eine DataTable, dann mit passenden DbCommands (d.h. mit dem Oracle-DbProvider) in die DB übertragen. Je nach der konkreten Datenstruktur geht das mit StoredProcedures oder DbDataAdapter.Update.

Weitere Vorschläge sind zu finden für den MS-Textfile-Reader über ConnectionStrings i.V.m. einer Schema.ini oder als **CsvReader **über CodeProject.

Jürgen

PS. CSV ist immer ein Thema für Datentechnologien. Nur der Umweg über Excel hätte etwas mit "Office" zu tun.

N
nasenkalli Themenstarter:in
23 Beiträge seit 2007
vor 15 Jahren

Hallo Jürgen,

erstmal danke für deine Tipps, werde diese dann mal in die Tat umsetzen.
Über die Suche csv import bin leider vorher nicht recht fündig geworden.
Wie du schon richtig festgestellt hast, hatte ich zuerst gedacht, der Weg über Excel wäre besser und das Thema hier gut aufgehoben.
Nun bin ich schlauer.

Merci.