SSIS Access-Spalte übernehmen

30/07/2009 - 11:03 von Fred Aurich | Report spam
Hallo,

irgendwie will es in keiner Variante klappen.

Ich möchte aus einer Acces97 DB eine Spalte vom Typ: Zahl -> Double in eine
SQL2K5 - Tabelle -> Spalte vom Typ: decimal(7,2) kopieren.

SQL-Server erkennt die Access-Spalte als: Gleitkommawert mit doppelter
Genauigkeit [DT_R8].

Ein direktes zuordnen der Spalten schlug fehl, deshalb habe ich
zum konvertieren im SSIS ein "Abgeleitete Spalte" Objekt verwendet.

Die Überführung in ein varchar() - Feld funktioniert:
Ausdruck: SUBSTRING((DT_STR,20,1252)WRBA,1,7)
Typ: DTSTR
sobald ich diesen Ausdruck aber wieder in einen numerischen Ausdruck
überführen will, mit z.B.
Ausdruck: (DT_NUMERIC,7,2)SUBSTRING((DT_STR,20,1252)WRBA,1,7)
Typ: numeric [DT_NUMERIC] Genauigkeit:7 Skala: 2

kommt diese Fehlermeldung:

[Abgeleitete Spalte 1 [1231]] Fehler: Fehler beim Ausführen einer
Typumwandlung.

[Abgeleitete Spalte 1 [1231]] Fehler: SSIS-Fehlercode
'DTS_E_INDUCEDTRANSFORMFAILUREONERROR'. Fehler bei 'Komponente 'Abgeleitete
Spalte 1' (1231)' aufgrund des Fehlercodes 0xC0049064, und die
Fehlerzeilendisposition in 'Ausgabespalte 'WR_BA' (1608)' gibt an, dass bei
einem Fehler der Vorgang fehlschlàgt. Im angegebenen Objekt in der
angegebenen Komponente ist ein Fehler aufgetreten. Möglicherweise wurden
bereits Fehlermeldungen veröffentlicht, die weitere Fehlerinformationen
beinhalten.

Im Überwachungsfenster sehen die String-Werte gut aus. Was könnte denn die
Ursache sein?

Fred
 

Lesen sie die antworten

#1 Willfried Faerber [MVP]
30/07/2009 - 12:56 | Warnen spam
Hallo Fred,

ich denke, es liegt am Dezimaltrennzeichen, möglicherweise Komma.
Möglicherweise hilft:
(DT_NUMERIC,7,2)REPLACE(SUBSTRING((DT_STR,20,1252)WRBA,1,7),",",".")

Viele Grüsse
Willfried Fàrber

"Fred Aurich" wrote in message
news:
Hallo,

irgendwie will es in keiner Variante klappen.

Ich möchte aus einer Acces97 DB eine Spalte vom Typ: Zahl -> Double in
eine
SQL2K5 - Tabelle -> Spalte vom Typ: decimal(7,2) kopieren.

SQL-Server erkennt die Access-Spalte als: Gleitkommawert mit doppelter
Genauigkeit [DT_R8].

Ein direktes zuordnen der Spalten schlug fehl, deshalb habe ich
zum konvertieren im SSIS ein "Abgeleitete Spalte" Objekt verwendet.

Die Überführung in ein varchar() - Feld funktioniert:
Ausdruck: SUBSTRING((DT_STR,20,1252)WRBA,1,7)
Typ: DTSTR
sobald ich diesen Ausdruck aber wieder in einen numerischen Ausdruck
überführen will, mit z.B.
Ausdruck: (DT_NUMERIC,7,2)SUBSTRING((DT_STR,20,1252)WRBA,1,7)
Typ: numeric [DT_NUMERIC] Genauigkeit:7 Skala: 2

kommt diese Fehlermeldung:

[Abgeleitete Spalte 1 [1231]] Fehler: Fehler beim Ausführen einer
Typumwandlung.

[Abgeleitete Spalte 1 [1231]] Fehler: SSIS-Fehlercode
'DTS_E_INDUCEDTRANSFORMFAILUREONERROR'. Fehler bei 'Komponente
'Abgeleitete
Spalte 1' (1231)' aufgrund des Fehlercodes 0xC0049064, und die
Fehlerzeilendisposition in 'Ausgabespalte 'WR_BA' (1608)' gibt an, dass
bei
einem Fehler der Vorgang fehlschlàgt. Im angegebenen Objekt in der
angegebenen Komponente ist ein Fehler aufgetreten. Möglicherweise wurden
bereits Fehlermeldungen veröffentlicht, die weitere Fehlerinformationen
beinhalten.

Im Überwachungsfenster sehen die String-Werte gut aus. Was könnte denn die
Ursache sein?

Fred

Ähnliche fragen