witam,
Próbuje zaimportować pliki XML UTF8 z danymi do bazy. Napotykam problem przy polskich znakach, nie importują się one poprawnie. Co może być tego przyczyną? Plik XML jest dobry. Pole w bazie typu nvarchar, bezpośrednio insert into działa z polskimi znakami ale z innych plików nie. Mój skrypt:
USE nazwabazy
-- Upewnij się, że masz włączoną opcję Ad Hoc Distributed Queries
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
DECLARE @xml NVARCHAR(MAX);
-- Wczytaj plik XML do zmiennej
SELECT @xml = CONVERT(NVARCHAR(MAX), BulkColumn)
FROM OPENROWSET(BULK 'sciezka do pliku xml', SINGLE_CLOB) AS x;
-- Zainicjalizuj dokument XML
DECLARE @hDoc INT;
EXEC sp_xml_preparedocument @hDoc OUTPUT, @xml;
-- Wstaw dane do tabeli
INSERT INTO pracownicy (zdjecie, imie, nazwisko, nr_poz)
SELECT
CAST(CAST(z.zdjecieBase64 AS XML).value('.', 'NVARCHAR(MAX)') AS VARBINARY(MAX)),
z.imie,
z.nazwisko,
z.nr_poz
FROM OPENXML(@hDoc, '/root/pracownicy/pracownik', 2)
WITH (
zdjecieBase64 NVARCHAR(MAX) 'zdjecieBase64',
imie NVARCHAR(50) 'imie',
nazwisko NVARCHAR(50) 'nazwisko',
nr_poz NVARCHAR(10) 'nr_poz',
data_wyd NVARCHAR(10) 'data_wyd'
) AS z;
-- Zakończ dokument XML
EXEC sp_xml_removedocument @hDoc;
