2010-12-02 9 views
0

Ich habe eine Datenquelle FoxPro, und das Ziel ist SQL Server 2008.SSIS Datenfluss zu Terminen überquell

Auf der FoxPro Seite, ich habe eine Spalte mit dem Date Datentyp. Das ist eine Breite von 8, min Wert ist 0001-01-01 und max ist 9999-12-31. Auf der SQL Server-Seite habe ich eine datetime. Auch eine Breite von 8, min Wert ist 1753-01-01 und max ist 9999-12-31.

In meiner SSIS-Datenflusstask habe ich eine OLE DB-Quellkomponente, die die FoxPro-Tabelle einliest. Die Spalten werden als DT_DBDate in den Spalten "Extern" und "Ausgabe" zugeordnet. Das OLE DB-Ziel für die SQL Server-Tabelle übernimmt diese Spalten und leitet sie an DT_DBTIMESTAMP weiter. Ich bin sicher, dass DT_DBTIMESTAMP kann diese Datumsbereiche angemessen und einigermaßen sicher über DT_DBDATE (aber ich habe Probleme bei der Suche in MS-Dokumentation).

Das Problem

Wenn ich die Aufgabe ausführen, habe ich Mühe worden, die mit ihm versagt und klagte über „Datum ungültig Format“ und dann „Conversion schlug fehl, da der Datenwert der spezifischen Art überschwemmt“, wenn es trifft auf Werte aus der Zeit um 1900, auf Werte über 2050. Ich bin mir nicht ganz sicher, wo ich falsch gelaufen bin.

Bonus-Frage

Wie kann ich überläuft in meine Datenflußtask umgehen?

Antwort

1

möchten Sie vielleicht eine einfache VFP-Abfrage für die Datensätze suchen tun, die zusätzlich für Probleme bei diesen Aufzeichnungen

select * from yourtable 
    where YourDate < date(1753, 1, 1) 
     or YourDate > date(9999, 12, 31) 

Look sind ... über den Bereich wie einer VFP-Abfrage, Blick auf die anderen Spalten, die Ihre Grenzfragen

+0

Ja, ich denke, ich habe das in die falsche Richtung gesehen. Es ist angemessener, mit Geschäftsanforderungen als mit anderen Abfragen umzugehen. – HackedByChinese

+0

+1. Das hat es für mich bei einem Import von MS Access gelöst. In Access lautet die Syntax 'select * from yuertable wo YourDate <# 01-01-1753 # ODER YourDate> # 01-01-9999 #' –

1

ich denke, sein verursachen müssen Sie entscheiden, was Sie mit Ihren Daten

tun wollen Wenn Sie es geladen werden soll, wie es ist, müssen Sie Feld Datentyp, so dass es sich ändern wird in der Lage sein, das zu halten Daten.

Oder, wenn Sie irgendwelche falschen Daten korrigieren möchten, müssten Sie validieren und transformieren.

Wenn Sie bereit sind, etwas Geld auszugeben, denken Sie bitte daran, Advanced ETL Processor zu verwenden.

Es funktioniert mit Text, XML, Excel, Zugang, DBF, Foxpro, ODBC, OLE DB, MS SQL-Server, Oracle, MySql, PostgreSQL, Firebird, Interbase, SQLite, POP3, SMTP, Dateisystem, FTP, SSL und Unicode.