Sql server SSIS NULL(DT#WSTR,10)不';t返回空值
我想在我的SSIS包中将“OLD_LEASE_NUMBER”列的空字符串设置为NULL值,因此下面是公式Sql server SSIS NULL(DT#WSTR,10)不';t返回空值,sql-server,ssis,null,Sql Server,Ssis,Null,我想在我的SSIS包中将“OLD_LEASE_NUMBER”列的空字符串设置为NULL值,因此下面是公式 TRIM(OLD_LEASE_NUMBER) == "" ? NULL(DT_WSTR,10) : TRIM(OLD_LEASE_NUMBER) 当我在我的SQL表上进行选择时,该列不显示NULL。此派生列在将记录插入表之前完成。该字段为旧租赁编号(nvarchar(10),空) 为什么这个公式不起作用?如果这不是正确的方法,如何设置空值 更新:目标是OLE DB,它是SQL server
TRIM(OLD_LEASE_NUMBER) == "" ? NULL(DT_WSTR,10) : TRIM(OLD_LEASE_NUMBER)
当我在我的SQL表上进行选择时,该列不显示NULL。此派生列在将记录插入表之前完成。该字段为旧租赁编号(nvarchar(10),空)
为什么这个公式不起作用?如果这不是正确的方法,如何设置空值
更新:目标是OLE DB,它是SQL server上的表。它没有默认值。使用LEN返回相同的结果。访问模式为“使用FastLoad的OpenRowset”,FastLoadKeepNull为true
抱歉,图像无法显示
新更新:
对不起,我的错,我没有看表中的所有记录。实际上,仅前30行的值不是null。为什么?试试这样的方法
LEN(LTRIM(RTRIM([ColumnName])))==0 ? NULL(DT_WSTR, 10) : LTRIM(RTRIM([ColumnName]))
我发现了我的错误。谢谢你试着帮助我
我有另一个数据流,它在同一个表中添加了30条记录作为测试记录,并且假设是禁用的,但事实并非如此。Duh您使用的目标组件是什么?如何配置?目标表是SQL Server表吗?您是否正在使用“快速加载”,如果是,是否已选中“保持空值”?表中该列是否有默认值?
LEN(旧租赁编号)
为插入的行显示了什么?是的,目标是SQL server上的表。它没有默认值。使用LEN返回相同的结果。访问模式是“使用FastLoad的OpenRowset”,FastLoadKeepNull是真的。我在发布后也尝试过。我得到了相同的结果。右键单击表格并选择design
,然后在第三列中,您将看到allownulls
和检查了案例
最后保存您的修改
它被选中。事实上,所有字段都是允许空值。我试过了。同样的结果。我有一种感觉,这一定是一个非常愚蠢的错误。你们的专栏旧租赁号的数据类型是什么