gpt4 book ai didi

sql-server - 在 SQL Select 语句中读取 XML 值

转载 作者:行者123 更新时间:2023-12-04 08:04:27 24 4
gpt4 key购买 nike

我正在尝试从 SQL Server 列中提取 XML 值并将其放入 SQL 语句中。我的问题是,如果有空格或 "",我找到的文档没有解释如何执行此操作。在 XML 路径中。
我正在尝试提取 value此处显示的 XML 中的属性(XML 中没有命名空间)。 SQL Server 列名为 Settings :

<properties>
<settings hwid="stream:0.0.0">
<setting typeid="78622C19-58AE-40D4-8EEA-17351F4273B6">
<name>Codec</name>
<value>4</value>
</setting>
</settings>
</properties>

最佳答案

您可以使用 OPENXML要从 xml 检索数据,首先创建如下程序:

CREATE PROCEDURE GetXmlValueProc
@xml NVARCHAR(max)
AS
BEGIN

SET NOCOUNT ON;

DECLARE @hdoc INT;

EXEC sp_xml_preparedocument @hdoc OUTPUT, @xml;

DECLARE @Result NVARCHAR(50);
SELECT value
FROM
OPENXML(@hdoc, '/properties/settings/setting', 2)
WITH
(
value VARCHAR(100)
);

EXEC sp_xml_removedocument @hdoc;
END
GO
并以这种方式调用过程:
DECLARE @xml NVARCHAR(MAX)='<properties><settings hwid="stream:0.0.0"><setting typeid="78622C19-58AE-40D4-8EEA-17351F4273B6"><name>Codec</name><value>4</value></setting></settings></properties>'

EXEC dbo.GetXmlValueProc @xml
即使您可以使过程更通用并传递 xml 路径以获取数据。

关于sql-server - 在 SQL Select 语句中读取 XML 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66299727/

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