脚本组件出错

本文关键字:出错 组件 脚本 | 更新日期: 2023-09-27 17:58:08

HI,我在将数据从表1(stg)拖到表2(std)时遇到以下错误。在脚本组件中,我试图在相关的colulmn中找到字符串"ABC",并在脚本组件中将该字符串替换为"0.00"。

at Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer.CheckStatusAndNull(Int32 columnIndex)
at Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer.GetDecimal(Int32 columnIndex)
at Input0Buffer.get_Underlying2()
at ScriptMain.Input0_ProcessInputRow(Input0Buffer Row)
at UserComponent.Input0_ProcessInput(Input0Buffer Buffer)
at UserComponent.ProcessInput(Int32 InputID, PipelineBuffer Buffer)
at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer buffer)

但是其他列(Underlying2)的错误显示在这里。错误表示该列的值为null。我已经将约束应用为cleanbuffer.column_isull=true;但它仍然显示出相同的错误。

请帮助解决上述问题。我是c#编码的新手。

谢谢。

脚本组件出错

为什么不在派生列中执行此操作?

ISNULL(标准)==真?NULL(DT_STR,101252):替换(std,"ABC","0.00")

上面一行写着"如果std列为null,则返回null,否则返回ABC替换为0.00的字符串"

有一点需要注意。在这个例子中,我假设字符串是char(10)。。用合适的尺寸替换10。