Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
1. Tabuľka, do ktorej vkladáš dáta, má iba jeden stĺpec (TEXT_STRING). Zrejme by ich malo byť viac.… nový
los 13.02.2008 14:37
los
Mockrát díky Losi, funguje to tak jak jsem chtěl. poslední
Williem 13.02.2008 19:02
Williem

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:

DECLARE @sql NVARCHAR(300)
SET @sql = 'BULK INSERT #WRK FROM ''c:\denni_kurz.txt'' WITH ' +
	'(CODEPAGE=''1250'', FIELDTERMINATOR = ''|'', ROWTERMINATOR=''' + CHAR(10) + ''')'

CREATE TABLE #WRK
(
	Zeme NTEXT,
	Mena NTEXT,
	Mnozstvi NTEXT,
	Kod NTEXT,
	Kurz NTEXT
)

EXEC(@sql)
SELECT * FROM #WRK
DROP TABLE #WRK

Č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ť.

Zpět do poradny Odpovědět na původní otázku Nahoru