如何解决脚本组件错误
| 嗨,我在将数据从table1(stg)加载到table2(std)时遇到了以下错误。在脚本组件中,我试图在垂直胶体中找到字符串“ ABC”并将该字符串替换为“ 0.00 \”。 “在脚本组件中使用c#。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).Error表示该列具有空值。
我已经将约束应用为cleanbuffer.column_isnull = true;
它仍然显示相同的错误。
请帮助解决上述问题。我是C#编码的新手。
谢谢。
解决方法
为什么不在派生列中这样做呢?
ISNULL(std)== TRUE?NULL(DT_STR,10,1252):replace(std,\“ ABC \”,\“ 0.00 \”)
以上行说
\“如果std列为null,则返回null,否则返回ABC替换为0.00的字符串”
需要注意的一件事。在示例中,我假设字符串为char(10)。用适当的大小替换10。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。