2015-04-04 84 views
0

我是新来处理在SQL Server和这个论坛语言...SQL Server 2012的-SSIS-问题查询从Unicode唯有文化串

下面的查询:

SELECT [CultureCode], [Target] 
FROM [Str].[dbo].[LatestReversal] 
where [Target] = N'' 

CultureCode |目标

am-ET | ማዕከላዊየብራዚልየቀንብርሃንጊዜ

am-ET | ፓስፊክየቀንብርሃንጊዜ ...


预期: 在代码段的查询是到形成ETL过程的第一步骤的表。使用这个查询我期望看到只有返回的行有空字符串。

结果: 但是,我返回了900多行的字段值为Target。所有这些字符串都来自Unicode仅有的文化,即窗口没有针对它们的特定代码页。有人可以解释为什么会这样吗?

  1. CSV文件是UTF8,我试过Unicode格式。
  2. 的SSIS作业使用NTEXT源和目的地连接的数据类型(无转换)
  3. 在DB目标字段类型为nvarchar(最大)

在这个过程后来我尝试处理多维数据集允许失败。完全相同的字符串在加载过程中失败。

任何帮助表示赞赏。即使有其他特殊处理的指示,我也需要申请这些文化。

干杯,

西莫

回答

-1

,你可以简单地使用IS NULL功能仅检索目标字段空字符串...

SELECT [CultureCode], [Target] 
    FROM [Str].[dbo].[LatestReversal] 
    where [Target] IS NULL; 
+0

IS NULL没有返回。问题中的字符串有价值。问题是为什么对空字符串的查询返回带有值的行。 – user2276259 2015-04-04 15:47:43

+0

你可以使用这个条件WHERE DATALENGTH(COLUMN)= 0 – 2015-04-06 12:19:05