SSIS 脚本组件代码的一些问题,Sql Server 2008
我有一个平面文件,其结构为
Id Value
1 1,2,3
2 4,5
输出需要,因为
ID Value
1 1
1 2
1 3
2 4
2 5
我有一个平面文件源和一个异步脚本组件。在脚本编辑器中,我编写了以下代码
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
MyOutputBuffer.AddRow();
string[] arr = Row.Column1.Split(',');
foreach (string s in arr)
{
if (!string.IsNullOrEmpty(Row.Column0))
{
MyOutputBuffer.ID = Row.Column0;
MyOutputBuffer.Values = s;
MyOutputBuffer.AddRow();
}
}
}
public override void Input0_ProcessInput(Input0Buffer Buffer)
{
while (Buffer.NextRow())
{
Input0_ProcessInputRow(Buffer);
}
if (Buffer.EndOfRowset())
{
MyOutputBuffer.SetEndOfRowset();
}
}
,但我得到以下输出
Id Value
NULL NULL
1 1
1 2
1 3
NULL NULL
2 4
2 5
NULL NULL
程序中有什么问题。
请帮忙
I have a flat file whose structure is as
Id Value
1 1,2,3
2 4,5
The output needs to as
ID Value
1 1
1 2
1 3
2 4
2 5
I have a flat file source and a script component which is being made as asynchronous. And in the script editor I have written the below code
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
MyOutputBuffer.AddRow();
string[] arr = Row.Column1.Split(',');
foreach (string s in arr)
{
if (!string.IsNullOrEmpty(Row.Column0))
{
MyOutputBuffer.ID = Row.Column0;
MyOutputBuffer.Values = s;
MyOutputBuffer.AddRow();
}
}
}
public override void Input0_ProcessInput(Input0Buffer Buffer)
{
while (Buffer.NextRow())
{
Input0_ProcessInputRow(Buffer);
}
if (Buffer.EndOfRowset())
{
MyOutputBuffer.SetEndOfRowset();
}
}
But I am getting the below output
Id Value
NULL NULL
1 1
1 2
1 3
NULL NULL
2 4
2 5
NULL NULL
What is wrong in the program.
Please help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已修复
Got the fix