© 有一个 XML 文档来存储 Oracle 数据库中的记录。
CourseXML 表将包含:
Record_Number int
XML_Type int
XMLDoc clob
...etc
© 想要通过 XML 标记在 XMLDoc 列中进行搜索。 XML 文档具有如下 XML 模式:
<root>
<UnitID="2" Name="Jerry" SName="Potter"/>
<UnitID="3" Name="Jim" SName="Carelyn"/>
</root>
© 想在 UnitID="2"中进行搜索,我只想要 Jerry 的 xml 行。我必须如何进行 select 语句查询才能获取该 xml 行?
最佳答案
您可能需要使用节点位来获得准确的结果。
SELECT
y.item.value('@UnitID', 'int') AS UnitID,
y.item.value('@Name', 'varchar(100)') AS [Name],
y.item.value('@SName', 'varchar(100)') AS [SName]
FROM
<table>
CROSS APPLY
XMLDoc.nodes('/root') AS y(item)
WHERE
y.item.value('@UnitID', 'int') = 2
编辑:更正代码以使用表,而不是 xml 局部变量
关于xml - 在 SQL 中搜索 XML 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697256/