从CLOB-ORACLE中提取特定行
我在类型为CLOB的Oracle数据库中有一个字段。我从这个CLOB文件中提取第一行。以下是内容示例:从CLOB-ORACLE中提取特定行,oracle,Oracle,我在类型为CLOB的Oracle数据库中有一个字段。我从这个CLOB文件中提取第一行。以下是内容示例: "<div class="pi-tier3"><div class="pi-pdpmainbody"><p><b>FIT</b></p><p>Core Indy - Compression </p> <p><b>PRO</b></p><ul>
"<div class="pi-tier3"><div class="pi-pdpmainbody"><p><b>FIT</b></p><p>Core Indy - Compression </p>
<p><b>PRO</b></p><ul>
<li>ABCDEF:PmId12345RmLn1VlId0</li>
<li>ABCDEF:PmId12345RmLn1VlId0</li>
<li>ABCDEF:PmId12345RmLn1VlId0</li>
<li></li>
<li>ABCDEF:PmId12345RmLn1VlId0</li>
</ul>
<p><b>PRP</b></p><ul>
<li>100%</li>
<li>DRY</li>
</ul>
<p>ABCDEF:PmId12345RmLn1VlId0</p>
</div></div>"
“FIT核心印地-压缩
专业人士
ABCDEF:PmId12345RmLn1VlId0
ABCDEF:PmId12345RmLn1VlId0
ABCDEF:PmId12345RmLn1VlId0
ABCDEF:PmId12345RmLn1VlId0
PRP
- 100%
- 干的
ABCDEF:PmId12345RmLn1VlId0
"
结果应该如下所示:
"<div class="pi-tier3"><div class="pi-pdpmainbody"><p><b>FIT</b></p><p>Core Indy - Compression </p>
“FIT核心印地-压缩
如果您确实希望将clob值开头的字符返回到第一个换行符(chr 10)之前的字符,那么下面是一个示例:
create table tab1 (c1 clob);
insert into tab1 values ('line 1' || chr(10) || 'line 2');
select dbms_lob.substr(c1, dbms_lob.instr(c1, chr(10))-1, 1) from tab1;
DBMS_LOB.SUBSTR(C1,DBMS_LOB.INSTR(C1,CHR(10))-1,1)
------------------------------------------------------------------------------
line 1
查看更多信息。我会使用
REGEXP\u SUBSTR
这样做:
select
REGEXP_SUBSTR(
'<div class="pi-tier3"><div class="pi-pdpmainbody"><p><b>FIT</b></p><p>Core Indy - Compression </p>
<p><b>PRO</b></p><ul>'
, '^.*$', 1, 1, 'm')
from dual;
选择
REGEXP\u SUBSTR(
'适合核心印地-压缩
专业的
,“^.*$”,1,1,'m')
来自双重;
干杯如果我像你的答案那样使用“m”而不是“nm”,我可以让你的表达式工作。“n”允许点匹配换行符,从而使表达式匹配整个输入。编辑了响应并删除了“n”frm“nm”,我将它从另一个案例中保留下来。像soThanks@jeff6times7那样尝试,但此查询失败当CLOB只有一行时。@GanzRicanz当您说“只有一行”时,您是指“只有一行”还是指查询返回多行时?对不起,当CLOB字段只包含一行时,它将失败。