我正在尝试从表中的 HTML 字符串中获取一些文本。文本是这样的,我正在尝试获取输出
ID,TEXT
1,<font face="Microsoft Sans Serif" size="8" color="#000000">ABC 123</font>
2,<font face="Microsoft Sans Serif" size="8" color="#000000">1 ETG</font>
3,<font face="Microsoft Sans Serif" size="8" color="#000000">Gatelys PERC</font>
4,<font face="Microsoft Sans Serif" size="8" color="#000000">Gml TK 144</font>
ID,TEXT
1,ABC 123
2,1 ETG
3,Gatelys PERC
4,Gml TK 144
我已经尝试过,但没有得到正确的输出。
select ID,regexp_substr(TEXT, '[^>]+',1,2) from TABLE
where TEXT is not null;
如果您的 HTML 始终是有效的 XHTML,那么您应该使用 XML 函数来解析字符串:
SELECT id,
XMLQUERY('*/text()' PASSING XMLTYPE(text) RETURNING CONTENT) AS text
FROM table_name;
对于样本数据:
CREATE TABLE table_name (id, text) AS
Select 1, '<font face="Microsoft Sans Serif" size="8" color="#000000">ABC 123</font>' FROM DUAL UNION ALL
Select 2, '<font face="Microsoft Sans Serif" size="8" color="#000000">1 ETG</font>' FROM DUAL UNION ALL
Select 3, '<font face="Microsoft Sans Serif" size="8" color="#000000">Gatelys PERC</font>' FROM DUAL UNION ALL
Select 4, '<font face="Microsoft Sans Serif" size="8" color="#000000">Gml TK 144</font>' FROM DUAL;
输出:
身份证 | 文字 |
---|---|
1 | ABC 123 |
2 | 1 个 ETG |
3 | Gatelys PERC |
4 | Gml TK 144 |