将XML导入SQL Server表

时间:2017-11-22 09:52:20

标签: sql-server xml ssis xsd

我想将xml文件导入到平面表中。源文件格式略有不寻常

forward

我认为这完全是关于xsd格式的,或者我需要执行一些xml任务操作。目前在SSIS XML源(数据流任务)中,当我尝试生成xsd时,它给了我一个" f"包含数据的表,没有任何标记和字段的枚举。

xml

current "f" table output

结果我希望有一个包含所有11列的表。

1 个答案:

答案 0 :(得分:0)

我不知道这是否会对您有所帮助,但以下b=0.1方法会将您的XML压缩为可导入的集合。您必须依赖y_out = deepnn(x_given, False)T_SQL元素的隐式排序,因为它们只能按位置匹配。

这应该适用于任何表的计数和任何行数,只要表的名称是唯一的

<field>

- 我假设你的XML生活在声明的变量<f>

DECLARE @xml XML=
N'<db xmlns:site="http://www.google.com">
  <params>
    <param name="parser_version" value="2" />
    <param name="data_type" value="Events" />
    <param name="created" value="2017-11-15T12:21:18" />
    <param name="program_version" value="4.5.20.1092" />
  </params>
  <tables>
    <table name="Events">
      <fields>
        <field name="UniqueID" type="Integer" />
        <field name="ID" type="AutoInc" />
        <field name="Date" type="Date" />
        <field name="Time" type="Time" />
        <field name="Code" type="Integer" />
        <field name="UserID" type="Integer" />
        <field name="UserGUID" type="String" />
        <field name="ReaderID" type="Integer" />
        <field name="Type" type="Integer" />
        <field name="Modified" type="Boolean" />
        <field name="ModifReason" type="String" />
      </fields>
      <rows>
        <row>
          <f>3086647</f>
          <f>18091842</f>
          <f>2017-11-14</f>
          <f>21:32:10</f>
          <f>1</f>
          <f>202</f>
          <f>{ED53D55D-4B99-41F3-95BD-6945A989155C}</f>
          <f>803</f>
          <f>32</f>
          <f>null</f>
          <f>null</f>
        </row>
      </rows>
    </table>
  </tables>
</db>';

结果

@xml

包括TableInx,FieldInx,RowInx和ValueInx以分离结果