我在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>
<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>"
结果应如下所示:
"<div class="pi-tier3"><div class="pi-pdpmainbody"><p><b>FIT</b></p><p>Core Indy - Compression </p>
答案 0 :(得分:0)
如果你真的想要将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
请查看this以获取更多信息。
答案 1 :(得分:0)
我会使用REGEXP_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;
干杯