0

我需要将任何空字符串列设置为 SSIS 中的实际空值

通常我可以只使用派生列并将其设置为 NULL(DSTR, 18, 1252)

由于我有很多字段并且想一次性完成,因此我决定使用脚本组件来执行此操作。这是到目前为止的代码

foreach (PropertyInfo inputColumn in Row.GetType().GetProperties())
{
    if (!inputColumn.Name.EndsWith("IsNull")
    { 
        if (inputColumn.GetValue(Row, null).ToString().Equals(""))
        {                       
            inputColumn.SetValue(Row, null, null);
        }
    }
}

但它抛出了这个错误:

[脚本组件 [11692]] 错误:System.NullReferenceException:对象引用未设置为对象的实例。在
Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException(Exception e) 在
Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer 缓冲区) 在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostProcessInput(IDTSManagedComponentWrapper100 包装, Int32 inputID, IDTSBuffer100 pDTSBuffer, IntPtr bufferWirePacket)

如何在派生列中将其设置为 NULL(type) 的等效项?

4

1 回答 1

0

根据我的评论,只需将等效的 _IsNull 属性设置为 true。

Row.GetType().GetProperty(inputColumn.Name + "_IsNull").SetValue(Row, true, null);
于 2016-02-02T00:54:17.673 回答