brainstocker 10 Geschrieben 24. Juni 2004 Melden Teilen Geschrieben 24. Juni 2004 Hallo, habe folgendes Problem, Ich bekomme von extern immer wieder Textdateien geliefert. Die lese ich zur besseren Verarbeitung per DTS in eine SQL Tabelle ein. Da die Textdatei ja rein sichtlich gesehen nut text enthält legt der SQL Server eine Tabelle an in der nur nvarchar (255) Felder enthalten sind. Ich möchte nun nach dem Import der Daten ein Update SQL-Script laufen lassen das 2 Felder von nvarchar (255) auf decimal ändert. Leider sagt SQL Server immer das er nicht von text auf numeric konvertieren kann. Hat jemand ne Idee wie ich das bewältigen kann? Gruss brainstocker Zitieren Link zu diesem Kommentar
Sascha1971 10 Geschrieben 24. Juni 2004 Melden Teilen Geschrieben 24. Juni 2004 n'Abend! Ich gehe davon aus, dass Du den Masseneinfügetask für den Import verwendest. Für diesen kannst Du eine Formatdatei generieren. Das geht über den Button "Generieren" im Dialog Eigenschaften vom Task oder auch mit dem Befehl "bcp". In der Formatdatei kannst Du dann die Feldtypen definieren. Würde Dir aber für die Zukunft empfehlen direkt mit dem "bcp" zu arbeiten. Hoffe ich konnte helfen. Gruss Sascha Zitieren Link zu diesem Kommentar
brainstocker 10 Geschrieben 25. Juni 2004 Autor Melden Teilen Geschrieben 25. Juni 2004 Original geschrieben von Sascha1971 n'Abend! Ich gehe davon aus, dass Du den Masseneinfügetask für den Import verwendest. Für diesen kannst Du eine Formatdatei generieren. Das geht über den Button "Generieren" im Dialog Eigenschaften vom Task oder auch mit dem Befehl "bcp". In der Formatdatei kannst Du dann die Feldtypen definieren. Würde Dir aber für die Zukunft empfehlen direkt mit dem "bcp" zu arbeiten. Hoffe ich konnte helfen. Gruss Sascha Bahnhof !!??? Sorry aber ich finds nicht bcp schau ich mir an ... Gruss brainstocker Zitieren Link zu diesem Kommentar
Sascha1971 10 Geschrieben 25. Juni 2004 Melden Teilen Geschrieben 25. Juni 2004 Moin! Dann ganz von vorn. Wie importierst Du die Daten (Textdatei) mit DTS? Mit dem Assistenten für Import/Export? Gruss Sascha Zitieren Link zu diesem Kommentar
brainstocker 10 Geschrieben 25. Juni 2004 Autor Melden Teilen Geschrieben 25. Juni 2004 Original geschrieben von Sascha1971 Moin! Dann ganz von vorn. Wie importierst Du die Daten (Textdatei) mit DTS? Mit dem Assistenten für Import/Export? Gruss Sascha Hallo, ja mit DTS. Nein ohne den Assistenen. Habe erst mal einen SQL Befehl lauen der meine Tablelle löscht. Danach hab ich einen Text File (Source) in dem ich nur festlegen kann wie die Trennzeichen aussehen und ob ich ein OEM oder ANSI Format importierne will. (Einstellungen = Dateityp(OEM), Textqualifizierer(~), Erste Spalte enthält Spaltennamen(Ja), Spaltentrennzeichen(|)) Dann hab ich mir eine Verbindung zu meiner SQL Datenbank angelegt. Das kopieren läuft wiederum über einen Task in dem ich zwar eine bestehende Tabelle auswählen kann (hier erscheint auch der Importfehler) aber ich will ja in eine neue Tabelle importieren und dann die Feldtypen ändern, also lasse ich die Tabelle anlegen. Über erstellen -> kann ich zwar beim SQL Script zur Erstellung der Tabelle die Feldtypen festlegen - > aber dann laufe ich wieder auf den gleichen Fehler da ja die Tabelle zuerst angelegt wird und dann die Daten importiert werden. Hoffe das reicht als Info ? Gruss brainstocker Zitieren Link zu diesem Kommentar
brainstocker 10 Geschrieben 25. Juni 2004 Autor Melden Teilen Geschrieben 25. Juni 2004 Hallo, ich kapier zwar bei bcp was die Formatdatei machen soll, aber ich hab das Problem das ich irgendwie nichts in der Hilfe finde wie man eine Formatdatei erstellt. Gruss brainstocker Zitieren Link zu diesem Kommentar
Sascha1971 10 Geschrieben 25. Juni 2004 Melden Teilen Geschrieben 25. Juni 2004 Bin eben nochmal so ein Szenario durchgegangen. Denke im Moment ist es für Dich am Einfachsten einfach den "DTS-Import-Assistenten" zu verwenden. Das klickt sich ganz gut... :D Wichtig für Dich: Im Schritt "Quelltabellen und Sichten auswählen" in der Spalte "Transformieren" den Button drücken. Da kommt dann der Dialog "Spaltenzuordnungen und Transformationen". Dort kannst Du dann die Zieltabelle neu erstellen lassen und den Spaltentyp zuordnen und Spaltennamen anpassen. Im nächsten Schritt kannst Du dann das Paket speichern. Und schon hast Du ein DTS Paket und alle Felder werden entsprechend zugewiesen mit Ihrem gewünschten Typ. Hoffe das hilft bei Dir! Gruss Sascha Zitieren Link zu diesem Kommentar
brainstocker 10 Geschrieben 25. Juni 2004 Autor Melden Teilen Geschrieben 25. Juni 2004 Original geschrieben von Sascha1971 Bin eben nochmal so ein Szenario durchgegangen. Denke im Moment ist es für Dich am Einfachsten einfach den "DTS-Import-Assistenten" zu verwenden. Das klickt sich ganz gut... :D Wichtig für Dich: Im Schritt "Quelltabellen und Sichten auswählen" in der Spalte "Transformieren" den Button drücken. Da kommt dann der Dialog "Spaltenzuordnungen und Transformationen". Dort kannst Du dann die Zieltabelle neu erstellen lassen und den Spaltentyp zuordnen und Spaltennamen anpassen. Im nächsten Schritt kannst Du dann das Paket speichern. Und schon hast Du ein DTS Paket und alle Felder werden entsprechend zugewiesen mit Ihrem gewünschten Typ. Hoffe das hilft bei Dir! Gruss Sascha Genau so hatte ich es auch schon gemacht. Das Problem ist nur das ich zwar den Datentyp und Namen setzen kann, aber der Import bringt dann trotzdem den Fehler. Letztenendlich lege ich mit der Transformation -> Neu erstellen ja VORHER eine Tabelle an und importieren dann in diese mit den neuen Feldtypen. Aber ! irgendwie erkennt SQL Server da nur text. Als decimal trennzeichen im Textfile wird "," verwendet. Hab die Daten überprüft und keine Fehler gefunden. Gruss brainstocker Zitieren Link zu diesem Kommentar
brainstocker 10 Geschrieben 25. Juni 2004 Autor Melden Teilen Geschrieben 25. Juni 2004 Ach so, wenn ich das ganze in einen MySQL Server importiere funtzt es einwandfrei. Aber leider kann die Anwendung die dann drauf zugreift nix mit MySQL anfangen. Gruss brainstocker Zitieren Link zu diesem Kommentar
Sascha1971 10 Geschrieben 25. Juni 2004 Melden Teilen Geschrieben 25. Juni 2004 Grübel... Hab das eben nochmal versucht. Wenn ich als Typ "decimal" wähle und in der Text Datei tatsächlich Zahlen mit Nachkommastellen habe, dann knallt das auch. Wenn ich die Nachkommastellen mit Punkten statt mit Komma schreibe gehts. Ist das bei Dir dann auch so? Da muss ich kurz mal drüber nachdenken... Sascha Zitieren Link zu diesem Kommentar
brainstocker 10 Geschrieben 25. Juni 2004 Autor Melden Teilen Geschrieben 25. Juni 2004 Hallo, LÖSUNG gefunden!!! Hab mich grad selber drauf gebracht, Ist eigentlich nur ein mini Problem aber damit gehts. Hab ja vorhin gesagt in dem Textfile ist ein Komma als decimal Trennzeichen. SQL Server will aber kein Komma sondern einen punkt beim import von decimal. MySQL nimmt auch Komma deshalb gehts. Hab mich mal grade mit den Daten hypnotisiert und dann den Fehler gesehen (Newbie Fehler eigentlich SORRY) jetzt muss ich mir was einfallen lassen wie ich die decimal Felder vor dem Import im DTS Paket konvertiere. Einer Ideen ? Mit BizTalk wüßt ichs aber das soll lt vorgabe meines Chefs nicht über BizTalk laufen. Gruss brainstocker Zitieren Link zu diesem Kommentar
brainstocker 10 Geschrieben 28. Juni 2004 Autor Melden Teilen Geschrieben 28. Juni 2004 Hallo, nachdem ich die Sache mit dem decimal und einem Datum - Uhrzeit Problem gelöst habe... erhalte ich einen Fehler ! . Mehr sagt der DTS Import nicht mehr! wie krieg ich nun raus was für einen Fehler er hat? Mfg brainstocker Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.