Announcement

Collapse
No announcement yet.

Textdateien einlesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Textdateien einlesen

    Hallo,

    ich stehe vor einem Problem.

    Ich muss Textdateien aus einem Verzeichnis in eine Tabelle einlesen und habe nur das SQL Server Management Studio zur Verfügung.

    Die Dateien liegen in einem Verzeichnis, jeweils mit einem eigenen Unterverzeichnis. Also

    -- Daten
    --- Daten201001
    -- 201010.TXT
    --- Daten20102
    -- 201002.TXT

    [....]

    Ich wollte eigentlich die Textdatei mit BULK INSERT einlesen, mir geht dann aber die Information des Dateinamens verloren.

    Wie kann ich z.B. die Textdatei einlesen und zusätzlich (in einem weiteren Feld??) den Dateinamen mit speichern?

    Jeder Hinweis wird dankend angenommen...

    Gruß

    Heiko

  • #2
    hallo,
    machst du das manuell oder soll das dann kontinuierlich automatisch ablaufen? Irgendwie muss du auf die einzulesenden Daten kommen, bzw. den Aufruf. Wenn du dir eine Prozedur schreibst mit dem Bulkinsert und im Aufruf dieser Prozedur den Dateinamen eingibst hast du ihn schon mal in der Prozedur.

    Jetzt kommt es drauf an ob die Daten immer alle in die a) gleiche Tabelle geschrieben werden oder immer in b) neue, dem Dateinamen entsprechenden.

    Für a) wenn du den Dateinamenparameter nicht beim Insert unterbringen kannst, dann könntest du noch nach dem Insert ein Update fahren das den Dateinamen für die Datensätze nachträgt wo der Dateiname noch nicht gesetzt ist.

    b) dann muss dein bulkinsertziel der Dateinamenparameter sein

    Weitere Möglichkeit wäre noch mit einer weiteren Tabelle zu arbeiten.
    Aufbau
    ID, Dateiname, Datum
    und dann nur die ID in die per Bulkinsert eingefügten Datensätze schreiben.

    Comment


    • #3
      Ich habe nun einen Weg gefunden die Datein zunächst einmal einzulesen.

      Leider sind die Textdateien ohne Trennzeichen, also hab ich den ganzen Datensatz in ein Feld importiert und zerlege ihn dann später in einzelne Feldinhalte.

      Wie könnte ich denn per Bulk Insert - wie jetzt getan - den Datensatz aus der Textdatei einlesen UND pro Datensatz in der Zieltabelle ein weiteres Feld beschreiben. Also, eine Tabelle mit zwei Feldern, das eine gefüllt durch den Bulk Insert, as zweite "von Hand" durch einen eigenen Eintrag? Ich bekomme schon eine Fehlermeldung "... Fehler beim Massenladen..." Meldung 4866, Ebene 16 wenn ich nur versuche in ein Tabelle mit zwei Feldern zu importieren.

      Comment

      Working...
      X