从 CLOB 列中提取某些行

Extract certain lines from CLOB column

我有一个 CLOB 列,其中有这样的行:

[2019-01-24 11:57:05]: Serial.no is: 12330

[2019-01-24 11:57:05]: Buyers: 3

[2019-01-24 11:57:06]: Serial.no is: 23340

[2019-01-24 11:57:06]: Buyers: 6

现在我想在该列上添加 Select 并仅提取 "Serial.no" 所在的行,例如:

[2019-01-24 11:57:05]: Serial.no is: 12330
[2019-01-24 11:57:06]: Serial.no is: 23340

我希望有一些简单的解决方案,因为我不太了解到目前为止发现的所有内容,在此先感谢。

编辑:

这个returns我一行,第一个:

select regexp_substr(My_CLOB, 'Serial.no.*',1) as clob_data from MyTable
WHERE id='1163753'; 

它是 CLOB 数据类型的 returns 列,但如果我可以检索所有行,那将不是问题。

这是使用 connect by 子句增加 regexp 索引的技巧。似乎有效

WITH test AS (
     SELECT
         '[2019-01-24 11:57:05]: Serial.no is: 12330
[2019-01-24 11:57:05]: Buyers: 3
[2019-01-24 11:57:06]: Serial.no is: 23340
[2019-01-24 11:57:06]: Buyers: 6'
         my_clob
     FROM
         dual
 )
 SELECT
     regexp_substr(my_clob,'Serial.no.*',1,level) AS clob_data
 FROM
     test
 CONNECT BY
     level <= regexp_count(my_clob,'Serial.no.*')