CSV SQLJak zaimportować plik CSV na SQL Server? Jak odczytać dane z pliku CSV i umieścić je na tabeli.
Zwykle piszę długie wstępy ,ale tym razem nie ma takiej potrzeby. Oto co należy zrobić.
Na dysku “C” utworzyłem plik tekstowy “csv.txt” i umieściłem w nim następujące dane.
1,Cezary,Walenciuk,19881112
2,Paweł,Krótszy,19780412
3,Paweł,Wodnisty,19650521
4,Bartek,Barteczki,19850112
Jak widać są one odpowiednio sformatowane.
Następnie wykonałem poniższy skrypt. Skrypt ten tworzy tymczasową tabele i umieszcza w niej dane z pliku CSV.
CREATE TABLE #CSVTable
(ID INT,
FirstName VARCHAR(40),
LastName VARCHAR(40),
BirthDate SMALLDATETIME)
BULK
INSERT CSVTable
FROM 'c:\csv.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
SELECT *
FROM #CSVTable
DROP TABLE #CSVTable
Wyrażenie BULK odczytuje plik i wykonuje odpowiedni Insert do tabeli. Pole FILEDTERMINATOR określa znak końcowy danego pola. ROWTERINATOR natomiast określa znak kończący dany wiersz danych.
“\n” jest symbole nowej linii. W ten sposób dane zostały do tabelki.
W tym przykładzie nie kod T-SQL jest najważniejszy. Otóż w zależności od rodzaju kodowania pliku CSV może otrzymać różne rezultaty.
Jeśli plik jego kodowany w UTF-8 to SQL Serwer zwróci błąd, ponieważ operacja BULK nie wspiera tego kodowania. Przy kodowaniu w ANSI polskie znaki zostają utracone.
SQL Server musi też mieć uprawienia administratorskie do otwarcia danego pliku.