我有一個用於轉換UTF8字符的函數。當我使用字符串調用函數時,它按預期工作。SQL UDF在字符串上工作,在列上不起作用
select dbo.fn_PolskieZnaki_utf8('Kraków')
回報Kraków
但是,當我從表中選擇一列這是行不通的。它返回Kraków
。哪裏不對?
use MyDataBase
GO
select dbo.fn_PolskieZnaki_utf8(MyColumn)
from MyTable
下面是函數本身:
CREATE FUNCTION [dbo].[fn_PolskieZnaki_utf8](@string NVARCHAR(MAX))
RETURNS NVARCHAR(MAX)
AS
begin
RETURN REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE
(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE
(@string,
'Ä,,', N'Ą'),
'Ä...', N'ą'),
'Ć', N'Ć'),
'ć', N'ć'),
'Ę', N'Ę'),
'Ä™', N'ę'),
'Å', N'Ł'),
'Å,', N'ł'),
'Ń', N'Ń'),
'Å„', N'ń'),
'Ã"', N'Ó'),
'ó', N'ó'),
'Åš', N'Ś'),
'Å›', N'ś'),
'Ź', N'Ź'),
'Å°', N'ź'),
'Å»', N'Ż'),
'ż', N'ż')
end
這適用於我 –
什麼是您的MyTable定義? – ughai
@ughai我只是寫dbo.MyTableName –