Csv in dem datenbank speichern



  • Hallo!
    Ich habe eine CSV-Datei(Symikolon getrennt). Ich wollte die CSV in der Datenbank in Tabellenform zu speichern. Ich habe versucht Texttreiber in der Menu:Datenbank-Explorer einfügen. Aber bei öffnen den Textdatei wolltet von mir Benutzername und Password. Wo soll ich das eingeben? Oder vielleicht gibt die andere Lösu 😕 ng, ohne Texttreiber?



  • Wenn Du MySQL verwendest kannst Du mit LOAD DATA INFILE eine CSV-Datei in die Datenbank laden. Vorraussetzung ist eine bestehende Tabelle mit den entsprechneden vordefinierten Spalten.

    Im Beispiel wird der File "C:/Programme/MySQL-Front/import.csv" in die Tabelle "daten" der Datenbank "testdb" geladen. Alle Felder werden durch ";" getrennt und in die Spalten "id, name" usw. geladen:

    LOAD DATA INFILE 'C:/Programme/MySQL-Front/import.csv' INTO TABLE testdb.daten FIELDS TERMINATED BY ';' (id, name, wert, datum)
    


  • Danke, für die Antwort, aber leider benutze ich keine MySQL. Die Daten müssen in der Tabelle von Oracle Datanbank gespeichert sein.



  • Hm, ich verstehe Dein Problem nicht ganz 🙄. Ich würde die CSV-Datei zeilenweise einlesen, die durch Semi getrennten Items auseinander dröseln und per INSERT-Statement in die Datenbank fummeln ....



  • @Beata

    Schau mal, ob's bei Oracle nicht auch einen SQL-Statment gibt, das Textdateien Zeilenweise in eine Table transferiert.



  • In Oracle gibts so was ähnliches, wird aber in einem Control-File verwendet um ein spezielles Import-Utility zu steuern.



  • Danke, probiere ich aus



  • joh, die Steuerungsdateien (*.ctl" steuern den Import und sehen zum Beispiel so aus:

    *LOAD DATA
    INFILE 'C:\projekt\import\data\nzg.txt'
    INTO TABLE imp_nzg

    TRUNCATE
    TRAILING NULLCOLS
    (
    DATUM POSITION(1:8) DATE "YYYYMMDD",
    F_25_49 POSITION(9:16),
    E_16_34 POSITION(17:24),
    M_30_59_HHNE_2500_EU POSITION(25:32),
    E_20_49_HHNE_2000_EU POSITION(33:40)

    )*

    Dann kann man zum Beispiel ne *.cmd- Datei erstellen:

    rem Loader
    rem führe ctl aus
    sqlldr USERNAME/PASSWORD@oracle c:\projekt\import\loader\imp.ctl
    DIRECT=TRUE

    wobei sqlldr der Loader von Oracle ist, der sich im bin- Verzeichnis befindet

    [ Dieser Beitrag wurde am 07.05.2003 um 14:56 Uhr von AndreasW editiert. ]


Anmelden zum Antworten