Этот SQL не требует подключения.Используя опцию 'm', regexp_replace обрабатывает каждую строку как отдельную строку.Я поставил два аргумента, разделенных 'или' (вертикальная черта).Первая строка - это желаемая строка, вторая строка - это все остальное.
Сохраняется только нужная строка ('\ 1'), но дополнительные возвраты каретки все еще есть, поэтому окружающее regexp_replace для удаления несколькихвозврат каретки.
-- Just setting up a test dataset
WITH aset AS( SELECT '<p><img alt="" src="/library/NATIONWIDE/CCS_SUPPORT/Emmy2.jpg"
style="height:67px; width:50px" /></p>
<p><img alt="" src="/library/NATIONWIDE/CCS_SUPPORT/Emmy%201.jpg"
style="height:133px; width:100px" />Please test this document</p>
<p>nbsp;</p>
<p><img alt="" src="/library/NATIONWIDE/CCS_SUPPORT/Kenny.jpg" style="height:250px;
width:200px" /></p>
<p>nbsp;</p>' test FROM DUAL )
-- Magic starts here
SELECT test
, regexp_replace( REGEXP_REPLACE( test
, '(^.*/library/NATIONWIDE/.*$)|(.*$)'
, '\1'
, 1
, 0
, 'im' )
, CHR( 10 ) || '+'
, CHR( 10 ) ) one
FROM aset
Это привело к следующему:
<p><img alt="" src="/library/NATIONWIDE/CCS_SUPPORT/Emmy2.jpg" style="height:67px; width:50px" /></p>
<p><img alt="" src="/library/NATIONWIDE/CCS_SUPPORT/Emmy%201.jpg" style="height:133px; width:100px" />Please test this document</p>
<p><img alt="" src="/library/NATIONWIDE/CCS_SUPPORT/Kenny.jpg" style="height:250px; width:200px" /></p>