SQL Server Developer Center > SQL Server Foren > SQL Server Express > bcp Massendatenimport mit Formatdatei Problem mit Datumsformat
Stellen Sie eine FrageStellen Sie eine Frage
 

Beantwortetbcp Massendatenimport mit Formatdatei Problem mit Datumsformat

  • Dienstag, 4. August 2009 10:48chrishelg TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     

    Ich muss regelmäßig Massendaten aus einem Fremdsystem die ich per .txt Datei bekomme in eine Tabelle des SQLServers 2005 importieren. Alles klappt soweit sehr gut bis auf den Import des Datumfeldes. So sieht das Feld aus: 19.7.2009 00:00:00 (durch ; getrennte Felder). Der SQLServer erwartet ja dieses Format: 2009-7-19 00:00:00 . Kann mir bitte jemand sagen, ob es mittels bcp mit Formatdatei möglich ist beim Import das Format zu korrigieren, so dass es eingelesen werden kann und wenn ja, wie es funktioniert. Oder kennt jemand einen anderen besseren Weg.

    Danke und Gruß, Franz

Antworten

  • Dienstag, 4. August 2009 16:30Elmar BoyeMVPTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Beantwortet
    Hallo Franz,

    BCP interpretiert seit SQL Server 7 Datumsspalten im ODBC Format:
    http://msdn.microsoft.com/de-de/library/ms191212.aspx

    Und allgemein eine empfehlenswerte Lektüre zu Datum/Zeit:
    Der ultimative Guide für die Datetime Datentypen

    Wenn das Eingabeformat nicht passt, sollte man eine Importtabelle dazwischenschalten,
    in der man für solche Felder eine ausreichend dimensionierte Zeichenspalte (VARCHAR) verwendet.
    Und erst anschliessend die Daten via CAST/CONVERT in die Zieltabelle zu übertragen.

    Das Vorgehen empfiehlt sich - unabhängig vom speziellen Formaten - immer bei
    Fremddaten, da man selten davon ausgehen kann, dass dort alles passt.

    Eine Alternative wären die Integration Services, wo man mehr Einfluß auf die Konvertierung
    nehmen kann, die gibt es allerdings nicht bei SQL Server Express, sondern nur bei Vollversionen.

    Gruß Elmar
  • Mittwoch, 5. August 2009 17:12Elmar BoyeMVPTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Beantwortet
    Hallo Franz,

    BCP war und ist niemals als allgemeines Tool zum Importieren von Textdateien gedacht,
    auch wenn es häufig dafür genutzt wird.
    Das Zeichenformat ist ein Format aus frühen Zeiten, wo es noch wenig andere Programme gab
    (und man auch mal Großrechner Dateien anhand von Ausdrucken importieren musste ;-).

    Auch wenn es ähnlich einem CSV/Textformat ist, von denen es zu dem unterschiedlichen Variationen gibt,
    ist es damit nicht identisch. Und letztendlich muß sich das Eingabeformat an bcp ausrichten.

    Gruß Elmar

Alle Antworten

  • Dienstag, 4. August 2009 16:30Elmar BoyeMVPTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Beantwortet
    Hallo Franz,

    BCP interpretiert seit SQL Server 7 Datumsspalten im ODBC Format:
    http://msdn.microsoft.com/de-de/library/ms191212.aspx

    Und allgemein eine empfehlenswerte Lektüre zu Datum/Zeit:
    Der ultimative Guide für die Datetime Datentypen

    Wenn das Eingabeformat nicht passt, sollte man eine Importtabelle dazwischenschalten,
    in der man für solche Felder eine ausreichend dimensionierte Zeichenspalte (VARCHAR) verwendet.
    Und erst anschliessend die Daten via CAST/CONVERT in die Zieltabelle zu übertragen.

    Das Vorgehen empfiehlt sich - unabhängig vom speziellen Formaten - immer bei
    Fremddaten, da man selten davon ausgehen kann, dass dort alles passt.

    Eine Alternative wären die Integration Services, wo man mehr Einfluß auf die Konvertierung
    nehmen kann, die gibt es allerdings nicht bei SQL Server Express, sondern nur bei Vollversionen.

    Gruß Elmar
  • Mittwoch, 5. August 2009 14:44chrishelg TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Hallo Elmar,
    danke für deine Links, insbesondere der Guide ist sehr gut. Der Weg über die temp Tabelle ist mir bekannt, ich wollte aber einfach auch wissen, ob es denn direkt beim Import die Möglichkeit der Änderung gibt, leider wohl nicht. Danke!
  • Mittwoch, 5. August 2009 17:12Elmar BoyeMVPTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Beantwortet
    Hallo Franz,

    BCP war und ist niemals als allgemeines Tool zum Importieren von Textdateien gedacht,
    auch wenn es häufig dafür genutzt wird.
    Das Zeichenformat ist ein Format aus frühen Zeiten, wo es noch wenig andere Programme gab
    (und man auch mal Großrechner Dateien anhand von Ausdrucken importieren musste ;-).

    Auch wenn es ähnlich einem CSV/Textformat ist, von denen es zu dem unterschiedlichen Variationen gibt,
    ist es damit nicht identisch. Und letztendlich muß sich das Eingabeformat an bcp ausrichten.

    Gruß Elmar