在 oracle sql 中从包含 XML 格式化字符串的列中获取子字符串

Fetch sub-string from a column containing XML formatted String in oracle sql

作为我查询的一部分,我有一列具有如下两种模式的字段值

First Pattern:-

"First Name:<a class='text-lg text-info'> David Peter </a><br>
Deadline:<a class='text-lg text-info'>2019-12-07 20:05:01</a><br>
Remarks:<a class='text-lg text-info'>Some remarks with multiple spaces</a><br>"

Second Pattern:-

FirstName: <a class='text-lg text-info'>Alex Vander Veen</a><br>DeadLine: <a class='text-lg text-info'>2019-11-16 16:30:35</a>

我正在尝试从这两个字段中取出 First Name/FirstNameDeadline 值。

输出需要如下:-

要获取此详细信息,需要在提到的两个模式上使用 case statement,但我真的不知道如何仅从中获取 First Name/FirstNameDeadline XML 格式化字符串。

我能够找到解决上述问题的方法。

SELECT SUBSTR(REGEXP_SUBSTR(A.FIELD_CONTENT,'>[^>]+<'),2,LENGTH(REGEXP_SUBSTR(A.FIELD_CONTENT,'>[^>]+<')) - 2 )  AS First_Name,
SUBSTR(SUBSTR(A.FIELD_CONTENT, REGEXP_INSTR(a.FIELD_CONTENT, '>', 1,4)+1),1, (REGEXP_INSTR(SUBSTR(A.FIELD_CONTENT, REGEXP_INSTR(a.FIELD_CONTENT, '>', 1,4)+1),'<',1,1) -1)) AS DEADLINE
FROM table_name1  a 
WHERE a.FIELD_CONTENT like '%First%'

我想到了这个。如果有人有任何建议可以降低成本。欢迎提出建议.. :-)