Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL - Tworzenie XML - Jak ustawić Unicode UTF-8

Znalazłem rozwiązanie w inny sposób. (nie pamiętam, na której stronie ją znalazłem) Zobacz kod poniżej. Ten kod wyeksportuje mój plik w kodowaniu UTF-8-BOM.

@File        VARCHAR(2000)
AS 

BEGIN 

DECLARE @OLE            INT 

EXECUTE sp_OACreate 'ADODB.Stream',  @OLE OUTPUT

DECLARE @Text XML
SET @Text = (SELECT TOP(1) [xml] from VW_WARP_LEVERANCIERS_XML)     
DECLARE @Converted NVARCHAR(MAX)
SET @Converted = CONVERT(nvarchar(MAX), @Text)

EXECUTE sp_OASetProperty             @OLE,    'Type',             2                           --1 = binary, 2 = text
EXECUTE sp_OASetProperty             @OLE,    'Mode',             3                           --0 = not set, 1 read, 2 write, 3 read/write
EXECUTE sp_OASetProperty             @OLE,    'Charset',          'UTF-8'                     --'ISO-8859-1'
EXECUTE sp_OASetProperty             @OLE,    'LineSeparator',    'adLF'
EXECUTE sp_OAMethod                  @OLE,    'Open'  
EXECUTE sp_OAMethod                  @OLE,    'WriteText',        NULL,       @Converted      --text method

--Commit data and close text stream
EXECUTE sp_OAMethod                  @OLE,    'SaveToFile',       NULL,       @File, 2   --1 = notexist 2 = overwrite
EXECUTE sp_OAMethod                  @OLE,    'Close'
EXECUTE sp_OADestroy                 @OLE

EXECUTE sp_OADestroy @OLE 

END 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. rozwiązywanie problemu z kursorami

  2. dlaczego wstawianie wierszy powyżej 8053 bajtów nie daje błędu, kiedy powinno, ponieważ maksymalny dozwolony limit wierszy to 8060

  3. Wiele wartości w jednym polu (klucze obce?)

  4. Zaktualizuj jeden z 2 duplikatów w tabeli bazy danych serwera sql

  5. Edytuj wybrane wiersze ręcznie w SQL Server