Re: SSIS Problem mit Excel Spalten
- From: "Berthold Neumann" <anmeldung@xxxxxxx>
- Date: Tue, 25 Jul 2006 11:34:06 +0200
Am 25.07.2006, 10:34 Uhr, schrieb Ralf Hermanns <Ralf.Hermanns@xxxxxx>:
Hallo Ralf,
der Import von Excel-Daten ist wirklich ein sehr spezielles Thema.
Das Problem ist, dass Excel als Datenbank angesehen wird und versucht wird, anhand der ersten Spalteneinträge den Datentyp zu bestimmen. Passen die Daten in weiteren Zeilen nicht zu dieser Entscheidung, dann wird eine Null ausgegebn ==> genau dein Problem.
Man kann Excel aber daran hindern, selbstständig eine Entscheidung zu treffen:
- öffne das Eigenschaftsfenster deines Excel-Verbindungsmanagers (Verbindungsmanger im Fensterbereichbereich Verbindungs-Manager markieren und dann F4)
- Die Eigenschaft ConnectionString muss um ;IMEX= 1 ergänzt werden
- Die Properties solltet dann so aussehen: ;Extended Properties="EXCEL 8.0;HDR=YES;IMEX=1";
Durch diese Angabe wird erreicht, dass alle Spalten als String zurückgegeben werden.
Die Spalten müssen deshalb teilweise explizit in den richtigen Datentyp konvertiert werden.
Geht es nur um den Update in den SQL_Server, kannst du i.d.R. die Konvertierung von Zahlen dem SQL-Server überlassen.
Du übergibst den String und der SQL-Server konvertiert es implizit in das richtige Format.
Die explizite Konvertierung im SSIS ist natürlich die sauberere Lösung.
Gruß Berthold
Hallo!
Ich habe ein Problem mit einem Excel Dokument, welches ich in eine SQL
Tabelle laden möchte.
Eine Spalte enthält neben den Texten "Gut" und "Schlecht" durch einen Fehler
beim Export auch ein paar mal -3. Die SQL Server Spalte in die diese Werte
sollen ist nvarchar(20) und NOT NULL.
Die "OLE DB SQL Ziel" Box meldet beim debuggen "Cannot insert NULL into
<diese Spalte>". Das macht so keinen Sinn, denn es gibt nirgendwo eine NULL
in dieser Spalte. Leider kann dieses OLE DB Ziel nicht die fehlerhaften
Zeilen ausgeben (oder doch? Wie?).
Der Wert -3 sollte sich doch auch in ein nvarchar abbilden lassen. Zwischen
der Quelle-Box und der Ziel-Box sind noch 2 andere Funktionskisten, eine
abgeleitete Spalte (die ihre Fehler ausweisen kann) und eine Konvertierung
(in der ich alle Textfelder auf Länge schneide und in nvarchar umwandele,
diese Box macht auch ein Fehlerlogging... meine -3 geht aber problemlos da
durch, und schlägt dann beim SQL Ziel als Fehler auf.
Was läuft da falsch???
Grüße
Ralf
--
Berthold Neumann
http://www.sql-ssis.de
Ich unterstütze PASS Deutschland e.V. (http://www.sqlpass.de)
.
- References:
- SSIS Problem mit Excel Spalten
- From: Ralf Hermanns
- SSIS Problem mit Excel Spalten
- Prev by Date: Re: SELECT gesucht...
- Next by Date: Re: SELECT gesucht...
- Previous by thread: SSIS Problem mit Excel Spalten
- Next by thread: SQL Server 2005: DB exklusiv sperren
- Index(es):
Relevant Pages
|