我们有一个审核数据库,它是根据我们其中一个网站的尝试登录而构建的。我们得到一些案例,无论出于什么原因,人们都在添加包含特殊字符的文本。我使用的程序似乎没有理解这些字符是什么。
我有一个SSIS包,可将此表拉入CSV文件,但失败并显示消息:
列" UserName"的数据转换返回状态值4和状态文本"文本被截断或目标代码页中的一个或多个字符不匹配"
我是否可以运行SQL查询来删除任何未知字符?
谢谢!
答案 0 :(得分:0)
您可以使用REPLACE功能,如此
declare @ash varchar (3) = 'ash'
select REPLACE(@ash,'s','') -- remove character 's'
返回'ah'
显然,你必须提供你想要删除的角色。
希望有所帮助,
灰
答案 1 :(得分:0)
感谢回复Ash!问题是我不知道角色是什么,SQL / SSIS不理解它(它甚至不在扩展的ASCII表中!)
如果有人有兴趣,我想出了一种做法!
SELECT REPLACE(CONVERT(VARCHAR(MAX),USERNAME), '?', '') FROM TABLENAME
由于VARCHAR不理解该字符,因此将其替换为?该列是NVARCHAR,即使SQL无法显示它也能理解该字符,所以如果我们转换它,我们可以轻松替换它吗?