0
我完全不熟悉(VB)脚本,并试图在SSIS脚本组件中找到一种方式将3个输入列转换为一个XML结构化输出列。SSIS - VB脚本组件将输入转换为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个,只是需要通过每列迭代并生成名称标签和值的脚本。
我有一种通过输出每个值到一个通用的“参数”节点,但我不确定如何获得列名。
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
找到我的答案在这里:http://agilebi.com/jwelch/2007/06/03/xml-变换部分-2 / – shakedown7