gpt4 book ai didi

sql-server - 在sql server中解析xml

转载 作者:行者123 更新时间:2023-12-04 05:14:29 25 4
gpt4 key购买 nike

我有一个包含 xml 的 ntext 类型列的表。我已尝试应用许多示例,说明如何从特定节点的 xml 中提取公司名称的值,但仍然出现语法错误。下面是我所做的,除了用我的 select 语句替换了实际的 xml 输出

DECLARE @companyxml xml

SET @companyxml =
'<Home>
<slideshowImage1>1105</slideshowImage1>
<slideshowImage2>1106</slideshowImage2>
<slideshowImage3>1107</slideshowImage3>
<slideshowImage4>1108</slideshowImage4>
<slideshowImage5>1109</slideshowImage5>
<bottomNavImg1>1155</bottomNavImg1>
<bottomNavImg2>1156</bottomNavImg2>
<bottomNavImg3>1157</bottomNavImg3>
<pageTitle>Acme Capital Management |Homepage</pageTitle>
<metaKeywords><![CDATA[]]></metaKeywords>
<metaDescription><![CDATA[]]></metaDescription>
<companyName>Acme Capital Management</companyName>
<logoImg>1110</logoImg>
<pageHeader></pageHeader>
</Home>'

SELECT c.value ('companyName','varchar(1000)') AS companyname
FROM @companyxml.nodes('/Home') AS c

出于某种原因, select c.value 语句有一个我无法弄清楚的语法问题。在 SSMS 中悬停时,它说“找不到列“c”或用户定义的函数或聚合“c.value”,或者名称不明确。

对语法的任何帮助将不胜感激。

最佳答案

试试这个

 DECLARE @companyxml xml

SET @companyxml =
'<Home>
<slideshowImage1>1105</slideshowImage1>
<slideshowImage2>1106</slideshowImage2>
<slideshowImage3>1107</slideshowImage3>
<slideshowImage4>1108</slideshowImage4>
<slideshowImage5>1109</slideshowImage5>
<bottomNavImg1>1155</bottomNavImg1>
<bottomNavImg2>1156</bottomNavImg2>
<bottomNavImg3>1157</bottomNavImg3>
<pageTitle>Acme Capital Management Homepage</pageTitle>
<metaKeywords>CDATA</metaKeywords>
<metaDescription>CDATA</metaDescription>
<companyName>Acme Capital Management</companyName>
<logoImg>1110</logoImg>
<pageHeader></pageHeader>
</Home>'


DECLARE @Result AS varchar(50)

SET @result = @companyxml.value('(/Home/companyName/text())[1]','varchar(50)')

SELECT @result

关于sql-server - 在sql server中解析xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14465015/

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