

Bulk insert txt file do sql databáze
Zdravím, mám problém uložit obsah txt souboru do databáze sql server 2000.
Pokud použiju bulk insert načte se pouze toto :
12.02.2008 #30
země|měna|množství|kód|kurz
Austrálie|dolar|1| AUD|15,955
Brazílie|real|1|BRL|10,081
Bulharsko|lev |1|BGN|13,092
Čína|renminbi|1|CNY|2,450
Dánsko|koru na|1|DKK|3,436
EMU|euro|1|EUR|25,610
Estonsko|korun a|1|EEK|1,637
Filipíny|peso|100|PHP|43,310
Dál už nic.
Příkaz vypadá takto :
declare @SQL nvarchar(300)
set @SQL= 'BULK INSERT #WRK FROM ''c:\denni_kurz.txt' + ''' WITH (CODEPAGE = ''1250'' , FIELDTERMINATOR = ''|'',ROWTERMINATOR =''\n'') '
CREATE TABLE #WRK (TEXT_STRING text)
EXEC(@SQL)
SELECT * FROM #WRK
DROP TABLE #WRK
Zkoušel jsem uložení do tabulky pomocí DTS ale tam mi to napsalo : Unexpected End of File.
Pokud vytvořím visual basic project ve visual studiu 2005 a použiju objekt StreamReader, tak normálně přečtu celý soubor.
Napadá někoho kde je chyba, nikde chybu v souboru nevidím.
Soubor je ke stažení zde :
http://www.edisk.cz/stahni/81999/denni_kurz.txt_1.1 8KB.html
Celý text je v jednom řádku, pokud text rozdělím do více řádku tak ho přečtu přes bulk insert celý, přes DTS to píše pořád to samé. Nejspíš bude řádek asi omezený na 255 znaků, jestli to chápu správně, jenomže nemám možnost automaticky soubor rozdělit na více řádků. Jde to teda nějak pomocí DTS nebo sql ?
A zkoušel jsi ten typ text? Nebo zkus jako oddělovač řádků použít \r\n místo \n.
1. Tabuľka, do ktorej vkladáš dáta, má iba jeden stĺpec (TEXT_STRING). Zrejme by ich malo byť viac.
2. V SQL príkaze je '\n' reťazec dlhý dva znaky, nie jeden znak nového riadka. Namiesto toho tam musíš vložiť CHAR(10).
Momentálne mám možnosť skúšať len na MS SQL 2005, kde to takto funguje:
Čo sa týka importu cez DTS, tak tam bude problémom najskôr ten prázdny riadok na konci súboru. Keď ho vymažeš, tak by to mohlo ísť.
Mockrát díky Losi, funguje to tak jak jsem chtěl.