Oracle11g 从CLOB列中提取某些行

Oracle11g 从CLOB列中提取某些行,oracle11g,clob,Oracle11g,Clob,我有一个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 现在,我希望在该列上选择,并仅提取Serial.no所在的行,例如: [2019-01-24 11:57:05]: Serial.no is: 1233

我有一个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
现在,我希望在该列上选择,并仅提取Serial.no所在的行,例如:

[2019-01-24 11:57:05]: Serial.no is: 12330
[2019-01-24 11:57:06]: Serial.no is: 23340
我希望能找到一些简单的解决办法,因为我还不太明白我找到的所有东西,提前谢谢

编辑:

这将返回一行,第一行:

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

它返回CLOB数据类型中的列,但如果我可以检索所有行,这不会是一个问题。

这是一个使用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.*')

所以clob中的文本有内嵌的换行符?@OldProgrammer,我不知道确切的意思,但我会说是的,不确定你的意思。我编辑了我的答案,CLOB中的括号完全相同,也许这告诉了你什么。也许有人知道如何将CLOB中的所有行逐行插入到另一个带有Varchar列的表中?这也会解决我的问题,我会在之后在该表上运行一个查询?这不起作用,我想是因为我的_clob Select。我需要的是先选择我的clob,就像从MyTable中选择clob_列一样,其中id='1163753'…这样做时,查询结果只有370行clob列,每行只包含Serial.no,而不是所需的整行。也许我应该在upper Select中将CLOB转换为Varchar2。怎么做到的?我的错。但它只在Serial.no之后返回字符串,直到行尾。我怎样才能修改regexp,使其在括号中也包含日期?不管怎样,我已经修改了所有内容,我只需要将此行my_clob,'Serial.no.*',1,level更改为my_clob,'^.*Serial.no.*$',1,level,'m'。非常感谢所有的帮助!