SSIS未知字符错误

时间:2014-06-12 09:08:21

标签: sql sql-server csv ssis character

我们有一个审核数据库,它是根据我们其中一个网站的尝试登录而构建的。我们得到一些案例,无论出于什么原因,人们都在添加包含特殊字符的文本。我使用的程序似乎没有理解这些字符是什么。

我有一个SSIS包,可将此表拉入CSV文件,但失败并显示消息:

  

列" UserName"的数据转换返回状态值4和状态文本"文本被截断或目标代码页中的一个或多个字符不匹配"

我是否可以运行SQL查询来删除任何未知字符?

谢谢!

2 个答案:

答案 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无法显示它也能理解该字符,所以如果我们转换它,我们可以轻松替换它吗?