将XML文件插入SQL Server
我正在尝试将XML文件导入SQL表。我找到了一些这样做的代码示例,但我似乎无法让它工作。我在代码中尝试了一些变体,但现在我不确定问题是XML文件结构还是SQL 下面是我正在使用的代码以及XML文件(截断为一条记录) XML文件示例:将XML文件插入SQL Server,sql,sql-server,xml,Sql,Sql Server,Xml,我正在尝试将XML文件导入SQL表。我找到了一些这样做的代码示例,但我似乎无法让它工作。我在代码中尝试了一些变体,但现在我不确定问题是XML文件结构还是SQL 下面是我正在使用的代码以及XML文件(截断为一条记录) XML文件示例: <?xml version="1.0" encoding="utf-8"?> <methodResponse> <item> <methodName> <![CDATA[]]>
<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
<item>
<methodName>
<![CDATA[]]>
</methodName>
<responseData>
<manifest>
<contact_data>
<email>jason.kang@stanfordalumni.org</email>
</contact_data>
</manifest>
</responseData>
<responseNum>
<![CDATA[1]]>
</responseNum>
<responseCode>
<![CDATA[]]>
</responseCode>
</item>
</methodResponse>
杰森。kang@stanfordalumni.org
尝试使用内置的本机XQuery支持,而不是笨重的老式OPENXML
支持:
SELECT
Email = XC.value('(email)[1]', 'varchar(255)')
FROM
workspace.dbo.tbt_SED_XMLwithOpenXML
CROSS APPLY
XMLData.nodes('/methodResponse/item/responseData/manifest/contact_data') AS XT(XC)
这将为您输出所需的电子邮件地址:您使用了错误的xPath表达式
将
'responseData/manifest/contact_data'
更改为'methodResponse/item/responseData/manifest/contact_data'
1)workspace.dbo.tb使用的电子邮件的结构在哪里。。。。。。。。。。。。。2) 键入路径而不是文件名。。例如:d:\File.xml而不是File.xml您遇到了什么错误?
SELECT
Email = XC.value('(email)[1]', 'varchar(255)')
FROM
workspace.dbo.tbt_SED_XMLwithOpenXML
CROSS APPLY
XMLData.nodes('/methodResponse/item/responseData/manifest/contact_data') AS XT(XC)