Sayfalar

18 Ocak 2023 Çarşamba

SQL Sunucu'dan Excel'e Rapor Alırken Oluşan Türkçe Karakter Problemi Çözümü


SQL Sunucu'dan Excel'e Rapor Alırken Oluşan Türkçe Karakter Probleminin Çözümü için aşağıdaki fonksiyonu oluşturup,oluşan fonksiyonu view içinde çağırmamız gerekmektedir.Bu sayede Excel'de Türkçe karakter problemi çözülmüş olacaktır.




 CREATE FUNCTION [dbo].[TRK](@A NVARCHAR(4000))

RETURNS NVARCHAR(4000)  

AS 

BEGIN

 DECLARE @TMP NVARCHAR(4000) 

  SET @TMP = REPLACE(@A COLLATE LATIN1_GENERAL_BIN, CHAR(208), N'Ğ')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(220), N'Ü')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), N'Ş')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(221), N'İ')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(214), N'Ö')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(199), N'Ç')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(73), N'I')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(240), N'ğ')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(252), N'ü')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(254), N'ş')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(105), N'i')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(246), N'ö')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(231), N'ç')

  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(253), N'ı')

  RETURN @TMP

END

GO