Benutzer mit den meisten Antworten
bcp Massendatenimport mit Formatdatei Problem mit Datumsformat

Frage
-
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- Typ geändert Robert BreitenhoferModerator Sonntag, 4. Oktober 2009 14:39 Frage
Antworten
-
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- Bearbeitet Elmar Boye Dienstag, 4. August 2009 16:31 Integration Services Hinweis
- Als Antwort markiert Robert BreitenhoferModerator Sonntag, 4. Oktober 2009 14:40
-
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- Als Antwort markiert Robert BreitenhoferModerator Sonntag, 4. Oktober 2009 14:40
Alle Antworten
-
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- Bearbeitet Elmar Boye Dienstag, 4. August 2009 16:31 Integration Services Hinweis
- Als Antwort markiert Robert BreitenhoferModerator Sonntag, 4. Oktober 2009 14:40
-
-
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- Als Antwort markiert Robert BreitenhoferModerator Sonntag, 4. Oktober 2009 14:40