我想知道从oracle数据库中查询和提取文本的最佳方法。
我有个问题:
SELECT
navigation_url
FROM
content_i18n
LEFT JOIN
content
ON content_i18n_content_id = content_id
LEFT JOIN
navigation
ON content_navigation_id = navigation_id
WHERE
content_i18n_text LIKE '%### PHP%'
OR content_i18n_extra_text LIKE '%### PHP%'
OR content_i18n_custom_slider LIKE '%### PHP%'
OR content_i18n_home_slider LIKE '%### PHP%'
OR content_i18n_js LIKE '%### PHP%'
OR content_i18n_see_also LIKE '%### PHP%'
这个查询返回我的导航网址,但我也想得到之间的文本片段 ### PHP
以及 ###
(3#( ###
)用于打开和关闭php内容)。如果可能的话,它出现的区域( content_i18n_text
, content_i18n_extra_text
等)。
下面的例子来自现场 content_i18n_text
但它也可以来自where子句的每个字段。
"(CLOB)
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="row">
<div class="col-sm-6 ">
### PHP echo insertar_video_youtube('5joUgy6doRo'); ###
</div>
<div class="col-sm-6">
<p><strong>Text bold</strong>. This is an example .</p>
</div>
### PHP another_funcion_in_php(...)
$hello = 4
echo "Hello!"
###
</div>
</div>
</div>
"
我想得到一个带有导航url的列(已经工作了),另一个列的代码介于“####php”和“####”之间,该名称可能是它出现的字段( content_i18n_text
). 在这个例子中,我有两个匹配的表达式,我如何处理这个?
谢谢!
2条答案
按热度按时间mrfwxfqh1#
你可以用
regexp_replace()
:zynd9foi2#
你可以用
replace()
功能,