Temat: [MSSQL] - BULK INSERT Polskie znaki MSSQL2008

Witam

Na ogół takie rzeczy robiłem poprzez SSIS, ale tym razem chciałem oskryptować import, gdyż będzie to prościej oskryptować niż zrobić to poprzez SSIS. A i tak potrzebuję to do testów.
Patrzyłem co piszą na forach i większości wypadków pomaga parametr CODEPAGE = 'ACP'
Lecz u mnie nie działa to za bardzo. Polskie znaki zamienia na angielskie, czyli np. Ł->L, Ą->A itd.
Myślę, że ma na to wpływ język systemowy który jest angielski.
Testowa baza danych nie była robiona przeze mnie, ale ma collation=Polish_CI_AS_KS_WS. Poprzez SSIS i DTSy, które jeszcze posiadam nie ma problemów z polskimi znakami. Dodam, że pola do których są przesyłane dane są formatu varchar(255)

Taki prosty skrypcik działa.

BULK
INSERT [TEST].[dbo].[TEST_TABLE]
FROM 'C:\TEST\test.txt'
WITH
(
CODEPAGE = 'ACP',
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\n'
)

pozdrawiam i z góry dziękuję za odpowiedź.

konto usunięte

Temat: [MSSQL] - BULK INSERT Polskie znaki MSSQL2008

jakie jest kodowanie tego pliku txt? UTF-8? jeżeli tak to jest mały problem

Temat: [MSSQL] - BULK INSERT Polskie znaki MSSQL2008

Z tego co widzę to oryginały przychodzą w UTF-8, ale mam programik i zamieniam jest na CP1250:

iconv -f utf-8 -t CP1250

Zawartość pliku

SPÓ£KA Z OGRANICZON¥|ODPOWIEDZIALNOŒCI¥

Może uda mi się załatwić, aby pliki przychodziły w lepszym formacie.

konto usunięte

Temat: [MSSQL] - BULK INSERT Polskie znaki MSSQL2008

jak już konwertujesz w commandline to importuj też z commandline za pomocą BCP.EXE

Temat: [MSSQL] - BULK INSERT Polskie znaki MSSQL2008

Dziękuję za odpowiedź. Zobaczę jak to zadziała.
Robert Chmielewski

Robert Chmielewski Senior SQL
Developer, Sagra
Technology sp. z
o.o.

Temat: [MSSQL] - BULK INSERT Polskie znaki MSSQL2008

Zamiast w BULK INSERT
CODEPAGE = 'ACP'
daj
CODEPAGE = 'windows-1250'

Na SQL 2005 i 2008 na pewno mi działał
CODEPAGE = 'UTF-16'
Więc jeśli masz plik UTF-8 to sprawdź czy parametr:
CODEPAGE = 'UTF-8'
zadziała, może nie będziesz musiał nic z linii komend konwertowaćTen post został edytowany przez Autora dnia 05.05.14 o godzinie 22:28
Robert Chmielewski

Robert Chmielewski Senior SQL
Developer, Sagra
Technology sp. z
o.o.

Temat: [MSSQL] - BULK INSERT Polskie znaki MSSQL2008

Sprawdziłem w kodzie i dla
CODEPAGE = 'UTF-16'
potrzebny był dodatkowo parametr:
DATAFILETYPE = 'widechar'
więc podejrzewam, że przy UTF-8 też może będzie potrzebny.
Robert Chmielewski

Robert Chmielewski Senior SQL
Developer, Sagra
Technology sp. z
o.o.

Temat: [MSSQL] - BULK INSERT Polskie znaki MSSQL2008

Sprawdziłem w dokumentacji. UTF-8 nie ma.



Wyślij zaproszenie do