gpt4 book ai didi

sql-server - XML 到 SQL 的映射

转载 作者:数据小太阳 更新时间:2023-10-29 01:56:56 27 4
gpt4 key购买 nike

我们正在寻找一种方法来解析大量符合严格模式(特别是 this one)的 XML 文件。我们要做的就是在几个数据库表和XML文件之间创建一对一的数据映射,所以我们可以在我们的web服务软件包插入文件的表上设置一个触发器,然后自动解析它并插入按照我们的定义将数据存入数据库。

在 Microsoft 的 SQL Server 和类似领域内实现这一目标的最佳方法是什么?

最佳答案

您可以使用 SQLXML 批量加载 4.0 将您的 XML 文件批量加载到 SQL Server 表中。
SQLXML bulkload 对象使用 XML 数据文件和架构文件。

SCHEMA(XSD 或 XML)文件包含 XML 节点到数据库列名称之间的映射信息

set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "Connection String"
objBL.ErrorLogFile = "c:\error.log"
objBL.Execute "SampleSchema.xml", "SampleXMLData.xml"

http://msdn.microsoft.com/en-us/library/ms171878.aspx

http://msdn.microsoft.com/en-us/library/ms171806.aspx

以下是示例数据文件和架构文件。

数据文件

<ROOT>  
<Order OrderID="11" CustomerID="ALFKI">
<Product ProductID="11" ProductName="Chai" />
<Product ProductID="22" ProductName="Chang" />
</Order>
<Order OrderID="22" CustomerID="ANATR">
<Product ProductID="33" ProductName="Aniseed Syrup" />
<Product ProductID="44" ProductName="Gumbo Mix" />
</Order>
</ROOT>

模式定义

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
<xsd:appinfo>
<sql:relationship name="OrderOD"
parent="Ord"
parent-key="OrderID"
child="OrderDetail"
child-key="OrderID" />

<sql:relationship name="ODProduct"
parent="OrderDetail"
parent-key="ProductID"
child="Product"
child-key="ProductID"
inverse="true"/>
</xsd:appinfo>
</xsd:annotation>

<xsd:element name="Order" sql:relation="Ord"
sql:key-fields="OrderID" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Product" sql:relation="Product"
sql:key-fields="ProductID"
sql:relationship="OrderOD ODProduct">
<xsd:complexType>
<xsd:attribute name="ProductID" type="xsd:int" />
<xsd:attribute name="ProductName" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="OrderID" type="xsd:integer" />
<xsd:attribute name="CustomerID" type="xsd:string" />
</xsd:complexType>
</xsd:element>
</xsd:schema>

关于sql-server - XML 到 SQL 的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1702535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com