"Konvertierung ist fehlgeschlagen, da der Datenwert traten die angegebene type" - Fehler bezieht sich nur auf eine Spalte in der gleichen Tabelle
Ich versuche zu importieren Daten aus der Datenbank access-Datei in SQL server. Zu tun, die ich erstellt habe, SSIS Paket SQL Server-Import/Export-Assistenten. Alle Tabellen haben die Prüfung passiert, wenn ich das Paket ausführen über execute package utility mit "validieren, ohne die Ausführung" option aktiviert. Aber bei der Ausführung erhalte ich folgende chunk-Fehler (mit einem Bild, da blockquote verwendet eine Menge Speicherplatz):
Auf der Untersuchung, fand ich genau die Tabelle und die Spalte, die hat das problem verursacht. Aber dieses problem habe ich versucht zu lösen, für ein paar Tage jetzt, und ich bin trocken über mögliche Optionen.
Struktur der unruhigen Tabelle Spalte
Wie bereits angemerkt in der Fehlerliste, das Problem tritt bei RHF Reparaturen-Tabelle auf das Datum Zurückgegebenen Spalte. In Access die betreffende Spalte ist Datum/Zeit-Typ. Innerhalb der eigentlichen Tabelle sind alle Eingänge in form von 'mmddyy', die, wenn darauf geklickt wird, auf, wiederum in 'mm/dd/yyyy" - format:
In SSIS-Paket wurde mit OLE DB Source/Destination-Beziehung wie folgt aus:
Innerhalb dieser Beziehung, in der beide output-Spalten und externen Spalten-Datentyp ist DT_DATE (ich denke immer noch, es ist eine wichtige Ursache meiner Probleme). Was mich nervt am meisten, dass die neben Zurückgegebene Datum-Spalte ist genau das gleiche wie das, was ich oben beschrieben habe, und keiner der Fehler, die an ihm angewendet werden oder anderen Spalten der gleichen Art, Datum Zurückgegeben wird, ist buchstäblich das einzige schwarze Schaf in der Herde.
Was habe ich versucht
Ich habe versucht, jede option aus der folgenden thread, der Fehler bleibt der gleiche.
Ich habe versucht, Daten-Konvertierungs-option, versuchen zu konvertieren dieser Spalte in Zeitstempel oder sogar unicode-string. Es hat nicht funktioniert.
Versuchte ich Daten angeben geben Sie mit den advanced-source-editor, um beide Zeitstempel/unicode-Zeichenfolge. Ich habe versucht, die Angabe nur in den output-Spalten, versuchte in beiden externen und der Ausgang Spalten, Gleiches Ergebnis.
Pflügen durch die Daten in der access-Tabelle haben auch mir nichts geben. Sie alle nutzen die gleiche 6-char Formatierung über alles.
Ich an dieser Stelle wörtlich erschöpft alle Möglichkeiten, die ich denken konnte. Können Sie bitte zeigen Sie mich in die richtige Richtung, was anderes könnte ich vielleicht versuchen, es zu beheben, da Sie Laufwerke mich Nüsse für die letzten zwei Tage.
PS: Auf mein Ende, ich werde Pflügen durch jede Zeile einzeln, während Sie nicht versuchen zu erhalten entmutigt durch die Tatsache, dass es 4000+ Zeilen-Einträge...
UPDATE:
Ich entschloss mich, dieser Sache durch das Pflügen durch die Daten. Es wurden 3 fehlerhafte Einträge unter 4000+ Zeilen... Da das Problem gelöst wurde, in einer Weise, die unwahrscheinlich sind, um anderen zu helfen, schließen Sie bitte diese Frage.
CREATE TABLE
- Anweisung in Access (wenn das überhaupt möglich ist; ich weiß nicht viel darüber), und vergleichen Sie Sie mit der create table-Anweisung in SQL Server? Auch könnte ein Gebietsschema Unterschied zwischen SQL Server und Access vielleicht? Vielleicht Geige mit SET DATEFORMAT
? Oder SET LANGUAGE
?Danke, ich werde auf jeden Fall versuchen alle Vorschläge...
InformationsquelleAutor Vadzim Savenok | 2016-10-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es klingt für mich wie Sie haben eine oder mehrere schlechte Daten in der Spalte. Mit 4.000 Zeilen, ich möchte tatsächlich visuell zu Scannen und suchen Sie nach etwas sehr kurz oder sehr lang.
Könnte man ändern Sie Ihre Quelle auswählen und oben 1, statt alle 4.000. Diese legen? Wenn ja, würde zu verleihen Gewicht auf das ungültige Datums-Szenario. Wenn 1 Zeile fließt nicht durch, das ist ein anderes Thema.
Typische Zugang. Ich habe entdeckt, dass die Daten wie "03462" in einer date-Spalte. Argh.
Hier werden einige Kostenlose bonus, bevor die Frage geschlossen.
InformationsquelleAutor Rachel P
(Ich will nur meine Erfahrung mitteilen, wie ich überwand dieses problem, falls es jemandem hilft)
Mein Szenario:
Einer der Spalte Identifier in der ole db-Datenquelle hat sich geändert von int auf bigint. Ich war immer die Fehlermeldung - Fehler bei der Konvertierung, da der Datenwert überflutet von dem angegebenen Typ.
Grundsätzlich, er erzählte mir die source Daten Größe war größer als das Ziel-data-Größe.
Was ich versucht habe:
In der ole db-Datenquelle und das Ziel beide Orte, klickte ich auf "show advanced Editor", checkd der Datentyp Bezeichner wurde bigint. Aber trotzdem war ich immer die Fehlermeldung
Die Lösung bei mir funktioniert:
In der ole db-Datenquelle--> show advanced edition option--> Input-und Output-Eigenschaften--> OLE DB Source Output--> es gibt zwei Optionen - Externe Spalten & Output-Spalten.
In meinem Fall, obwohl die Id-Spalte in der Externen Spalten zeigt den Datentyp "bigint", aber in den Output-Spalten zeigte den Datentyp int. So, ich habe den Datentyp auf bigint und es hat mein problem gelöst.
Jetzt und dann bekomme ich dieses problem, speziell, wenn ich eine große Tabelle mit vielen Daten.
Ich hoffe, es hilft.
InformationsquelleAutor Goldfish
Wir hatten diesen Fehler, wenn jemand hatte in dem Jahr als 216 statt 2016. Die Datenquelle war das Lesen der Daten ok, aber es wurde nicht auf die OLE DB-Ziel-Aufgabe.
Wir verwenden ein Skript Aufgabe in den Datenfluss für die Validierung. Durch hinzufügen überprüfen Sie, dass die Termine nicht zu weit in die Vergangenheit wir sind in der Lage, trap diese Art von Fehler und mindestens erzeugen eine aussagekräftige Fehlermeldung zu finden, und beheben Sie das problem schnell.
InformationsquelleAutor Webbo