Import aus Excel

04/12/2007 - 13:22 von Harry | Report spam
Hallo,

beim Import in eine SQL-Server DB aus div Excel-Tabellen, die per "INSERT
INTO ... FROM OPENDATASOURCE(N'Microsoft.Jet.OLEDB.4.0', N' ..." gelesen
werden, habe ich folgendes Problem:
Am Beispiel PLZ: obwohl in der ExcelTab die Spalte PLZ als Text formatiert
ist, wird als Daten-Typ der Spalte "Double" zurückgegeben
(reader.GetProviderSpecificFieldType(i).Name). Das führt z.B. dazu, dass im
empfangenden varchar PLZ-Feld in der DB führende Nullen entfernt sind, oder
Auslands-PLZ, die alphanum Zeichen enthalten, garnicht übernommen werden,
weil die Query in diesen Fàllen "Null" zurückliefert.

Kann man Excel zwingen (über Format=Text hinaus) eine komplette Spalte als
alphanumerisch zu behandeln?
Oder liegt das Problem bei der Jet-Engine?
Oder wo kann ich ansetzen um das in den Griff zu bekommen?

Vielen Dank.
Harry
 

Lesen sie die antworten

#1 Peter Fleischer
04/12/2007 - 13:34 | Warnen spam
"Harry" schrieb im Newsbeitrag
news:

beim Import in eine SQL-Server DB aus div Excel-Tabellen, die per "INSERT
INTO ... FROM OPENDATASOURCE(N'Microsoft.Jet.OLEDB.4.0', N' ..." gelesen
werden, habe ich folgendes Problem:
Am Beispiel PLZ: obwohl in der ExcelTab die Spalte PLZ als Text formatiert
ist, wird als Daten-Typ der Spalte "Double" zurückgegeben



Das bezweifle ich. Da steht bestimmt ein Zahl drin, die nur in Excel als PLZ
formatiert angezeigt wird. Das kann man einfach prüfen. Wenn das erste
Zeichen des Zelleninhaltes ein Apostroph ist, wird der gesamte Text auch als
Text übernommen. Andernfalls sucht sich die Jet ein passendes Format und das
ist bei Zahlen numerisch bzw. wandelt den numerischen Wert in eine
Zeichenkette nach den numerischen Reglen (ohne führende Nullen) um, falls in
der schema.ini eine Vorgabe steht..

(reader.GetProviderSpecificFieldType(i).Name). Das führt z.B. dazu, dass
im
empfangenden varchar PLZ-Feld in der DB führende Nullen entfernt sind,
oder
Auslands-PLZ, die alphanum Zeichen enthalten, garnicht übernommen werden,
weil die Query in diesen Fàllen "Null" zurückliefert.



Man kann das Übernehmen aller Feldinhalte als text erzwingen.

Kann man Excel zwingen (über Format=Text hinaus) eine komplette Spalte als
alphanumerisch zu behandeln?



Ja.

Oder liegt das Problem bei der Jet-Engine?



Ja.

Oder wo kann ich ansetzen um das in den Griff zu bekommen?



Anstelle Excel als Datenbank zu mißbrauchen, besser eine richtige Datenbank
nutzen oder wenigstens typgerecht erfassen, also Texte mit führenden
Apostroph ablegen.

Du erhöhst Deine Chance, dass Deine Frage überhaupt gelesen und qualifiziert
und schnell beantwortet wird, wenn Du Deinen Realnamen im Absender
einstellst (Vor- und Zuname).

Viele Grüße

Peter

Ähnliche fragen