22. februar 2012 - 14:34Der er
7 kommentarer og 1 løsning
Bulk insert fejler
Hej
Jeg kører dagligt et sql script der skal læse en delta fil ind.
Jeg har det problem at jeg får en fejl da der er en "blank" linje til sidst i filen filen har ikke samme antal emner fra dag til dag.
DECLARE @sql AS VARCHAR(4000) SET @sql = 'BULK INSERT Data.dbo.Temp_indlaest FROM ''G:\SQLData\DELTA.csv'' WITH (CODEPAGE=''1252'', FIELDTERMINATOR=''|'', ROWTERMINATOR=''' + CHAR(10) + ''')' PRINT @sql EXECUTE (@sql)
den fejl jeg får nu er :
Server: Msg 4832, Level 16, State 1, Line 1 Bulk Insert: Unexpected end-of-file (EOF) encountered in data file. Server: Msg 7399, Level 16, State 1, Line 1 OLE DB provider 'STREAM' reported an error. The provider did not give any information about the error. OLE DB error trace [OLE/DB Provider 'STREAM' IRowset::GetNextRows returned 0x80004005: The provider did not give any information about the error.]. The statement has been terminated.
Min plan er at lave det så jeg bruger Lastraw' (antal emner -1) ' men jeg ved ikke lige hvordan jeg skal få det til at fungere i praksis.
hvis jeg sletter den tomme linje fejler importen ikke, men det vil jeg jo helst udenom at skulle gøre dagligt, jeg har desværre ikke mulighed for at få leveret filen uden denne tomme linje i bunden :/
Nu er jeg så heldig at kunne importere filer via min Biztalk server, så den laver alt det beskidte arbejde for mig.
Men du må kunne lave et script som: 1. Drop temp tabel 2. Opret temp tabel med 1 nvarchar(max) kolonne 3. Bulk Insert alle records i temp tabel 4. Slet alle poster som er "tomme" eller NULL fra temp tabel 5. Eksporter temp tabel til ny fil 6. Bulk Insert fra ny fil
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.