如何在ssis中将空白转换为null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在ssis中将空白转换为null相关的知识,希望对你有一定的参考价值。

我从ssis的excel中提取数据。其中一个excel列包含blank值。所以我需要用null替换blank值,否则我的包将失败。任何建议?

答案

您可能还想检查源和目标连接上的保持空值的选项(如果可用)

另一答案

在DataFlow中使用DerivedColumn组件。

替换你的列,并在表达式中放置这行代码

ColumnName == "" ? NULL(DT_WSTR,50) : ColumnName

如果列为空,它将确保返回null

另一答案

你尝试过类似的东西(假设数据类型是string / varchar):

LEN(TRIM([ColumnName]))==0 ? NULL(DT_WSTR, 10) : [ColumnName] 
另一答案

修复上述问题:::::

必须使用选项allow null values检查源和目标,它将起作用。

另一答案

我有一个类似的实例,我想将日期列中的字符串替换为NULL,我使用以下代码:

LEN(your_data)<2? NULL(DT_WSTR,50):your_data

在这种情况下,字符串的长度仅为1.然后我使用数据转换转换将其转换为dt_dbtimestamp类型。

希望有所帮助!

另一答案

您应该使用派生列组件和条件表达式。由于这是条件语句,因此数据类型需要相同才能创建布尔结果。

试试这个:

ColumnName == (DT_DATE)"" ? NULL(DT_DATE) : ColumnName

以上是关于如何在ssis中将空白转换为null的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL SERVER 2012 中将 NULL 转换为空白

如何在 SSIS 中将 Y2K 日期转换为 SQL 日期?

HTTP转换为null什么意思?

使用SSIS从SQL Server 2005中的平面文件导入时如何保留NULL值

在 SSIS 中将 varchar 数据类型转换为日期时间

在 SQL Server 中将值分配给类似列后,使用 SSIS 将 Oracle 表列更新为 Null