【发布时间】:2011-09-28 09:24:19
【问题描述】:
我对 (VB) 脚本完全陌生,正在尝试在 SSIS 脚本组件中找到一种方法,将 3 个输入列转换为一个 XML 结构化输出列。
Input:
ID NAME DATE
1 AAA 2011-01-01
2 BBB 2011-02-01
3 CCC 2011-03-01
Expected Output:
<output>
<row>
<id>1</id>
<name>AAA</name>
<date>2011-01-01</date>
</row>
<row>
<id>2</id>
<name>BBB</name>
<date>2011-02-01</date>
</row>
<row>
<id>3</id>
<name>CCC</name>
<date>2011-03-01</date>
</row>
</output>
我正在寻找的解决方案需要可扩展,因为可以有 x 个列,脚本只需要遍历每一列并生成名称标签和值。
我通过将每个值输出到一个通用的“param”节点来达到这个目的,但我不确定如何获取列名。
Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal Buffer As Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer)
inputBuffer = Buffer
MyBase.ProcessInput(InputID, Buffer)
End Sub
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Dim xml_string As String = ""
Dim counter As Integer
xml_string = "<output>"
For counter = 0 To inputBuffer.ColumnCount - 1
xml_string = xml_string + "<param>" + inputBuffer.Item(counter).ToString() + "</param>"
Next
xml_string = xml_string + "<output>"
Row.xmloutput = xml_string
End Sub
【问题讨论】:
标签: sql-server xml vb.net ssis