【发布时间】:2022-01-24 11:55:54
【问题描述】:
在从数据库中表的列中选择 XML 格式的特定信息时遇到问题。我需要提取 ModuleID 959 的成功消息
| SubmissionID | ModuleID | CreatedOn | XMLCOL | UpdatedOn |
|---|---|---|---|---|
| 25 | 959 | 1-1-22 | "see XML below" | 1-1-22 |
| 26 | 339 | 2-1-22 | Null | 2-1-22 |
以下是数据库中 XML 列中的数据 - 我想要实现的是使用 SQL 在查询中显示第二个 ResultType“成功”。
<ArrayOfActionResult xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ActionResult>
<ResultType>Redirected to Payment</ResultType>
<ActionName>Payment</ActionName>
<ExecutionTime></ExecutionTime>
<ConditionSet>
<Conditions />
<ExecuteCondition>Always</ExecuteCondition>
<MatchCondition>All</MatchCondition>
<ExecuteStatus>0</ExecuteStatus>
<Groups />
</ConditionSet>
<ConditionsMet>true</ConditionsMet>
<Condition />
</ActionResult>
<ActionResult>
<ResultType>Success</ResultType>
<ActionName>Payment</ActionName>
<ExecutionTime></ExecutionTime>
<ConditionSet>
<Conditions />
<ExecuteCondition>Always</ExecuteCondition>
<MatchCondition>All</MatchCondition>
<ExecuteStatus>0</ExecuteStatus>
<Groups />
</ConditionSet>
<ConditionsMet>true</ConditionsMet>
</ActionResult>
</ArrayOfActionResult>
目前我正在尝试使用下面的 SQL 无济于事
SELECT [XMLCOL].value('/ArrayOfActionResult/ActionResult/ResultType[2]') as PaymentMessage
FROM Databasetable
where [ModuleID] = 959
希望这是有道理的,我发现它很难解释,我对 SQL 很陌生
【问题讨论】:
-
XML 支持高度特定于供应商 - 所以请添加标签以指定您是否使用
mysql、postgresql、sql-server、oracle或db2- 或完全不同的东西。
标签: sql xml database xml-column