2009-03-30 9 views
34

Hat jemand irgendwelche Tipps zu Dienstprogrammen, die zum Massenladen von Daten verwendet werden können, die in Textdateien mit Trennzeichen in einer SQLite-Datenbank gespeichert sind?Massendaten in sqlite?

Im Idealfall etwas, das als Stand-alone-Programm von einem Skript aufgerufen werden kann usw.

Eine Gruppe mit dem ich arbeite hat eine Oracle-Datenbank, die eine Reihe von Daten, um Datei-Dump los ist und dann diese Daten laden in eine SQLite-Datenbank für die Verwendung auf einem mobilen Gerät und suchen nach dem einfachsten Weg, um diese Art von Szenario zu implementieren.

Antwort

60

Sehen Sie sich den Befehl "sqite .import" an, der genau dies tut.
Sie können den Separator mit dem .separator Befehl

sqlite3 myDatabase 
create table myTable (a, b, c); 
.separator ',' 
.import myFile myTable 
+5

wow. Das ist eine viel bessere Wahl. Ich werde meine Antwort in Schande löschen ... + 1 – MikeJ

+1

wollte kommentieren, dass ich dachte, die "in Schande" Kommentar war ziemlich lustig;) –

+0

+1 + Antwort! Habe das gerade bemerkt, während ich meine alten Fragen durchkämmte. Nett. –

1

Warum möchten Sie eine Textdatei?

Verwenden Sie einfach Java, die leicht verfügbaren Bibliotheken für Oracle und SQLite Zugriff hat. Verbinden Sie sich mit beiden Datenbanken und wählen Sie einfach aus einer db und einfügen in eine andere ohne zusätzliche Komplexität von CSV, das ist kein sehr gut definiertes Format und wird Ihnen Probleme mit Zeichenkodierung, Anführungszeichen, comas/Tabs oder Semikolons, Zeilenumbrüche usw. in deine Daten.

+0

Sie Wette gesetzt. Sie wollen eins, weil das der Weg ist, an den sie denken. Ich werde diesen Ansatz vorschlagen (wie es der klügere wäre ...) und sehen, was daraus wird. Sie haben vielleicht keinen erfahrenen Java-Typ, in diesem Fall werde ich es einfach lernen und es tun. –

+2

Es gibt keinen Grund, warum es Java sein muss. Jede andere Sprache, die sowohl Oracle- als auch SQLite-Datenbanken verwenden kann, kann diese Aufgabe übernehmen. Das ist so ziemlich jede Hauptsprache. –

+0

Da sqlite auf Schreibvorgänge sperrt, kann es nett sein, sie aus einer Datei zu laden. Gibt es eine Massenladeoption direkt von der Java-Schnittstelle (oder anderen Hauptsprachen?), Ohne in eine Datei zu schreiben? – qwerty9967