SSIS で空の文字列の列を実際の null 値に設定する必要があります
通常、派生列を使用して 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 (例外 e) でMicrosoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput
(Int32 入力 ID、PipelineBuffer バッファー) で Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostProcessInput (IDTSManagedComponentWrapper100 ラッパー) 、Int32 inputID、IDTSBuffer100 pDTSBuffer、IntPtr bufferWirePacket)
派生列で NULL(type) と同等に設定するにはどうすればよいですか?