【发布时间】:2021-11-14 02:50:57
【问题描述】:
我正在尝试在 SQL 表 (BLOB) 的 XML 二进制类型列中搜索给定值。
该表有 +3000 条记录。我需要从如下所示的 XML 中查找与 /properties/ip/ 中特定 IP 对应的所有值:
<?xml version="1.0" encoding="UTF-8"?>
<properties>
<port>8000</port>
<ip>12.345.67.80</ip>
</properties>
到目前为止,我已经能够获得 一些 输出,但不是我需要的(我只能使用最后一个 WHERE 子句运行查询,而不是没有):
SELECT
d.*,
extractvalue(xmltype(d.CONFIGURATION,nls_charset_id('AL32UTF8')),'properties/ip') as ip_lookup
FROM
AZ.DEVICES d
WHERE
NAME = 'Door-Entrance';
我对查找具有特定 IP 的所有记录很感兴趣,所以是这样的:
SELECT
d.*,
extractvalue(xmltype(d.CONFIGURATION,nls_charset_id('AL32UTF8')),'properties/ip') as ip_lookup
FROM
AZ.DEVICES d
WHERE
ip_lookup = '12.345.67.80';
有什么想法吗?
【问题讨论】: