我有一个带有HTML文档的clob。如何用文本替换其中的所有脚本?
例如,我有以下HTML文档:我有一个带有HTML文档的clob。如何用文本替换其中的所有脚本?,html,oracle,Html,Oracle,例如,我有以下HTML文档: <b>Hello world</b> <script>window.alert('Hello world')</script> 你好,世界 window.alert('Hello world') 我需要得到: <b>Hello world</b> <script>window.alert('Hello world')</script>
<b>Hello world</b>
<script>window.alert('Hello world')</script>
你好,世界
window.alert('Hello world')
我需要得到:
<b>Hello world</b>
<script>window.alert('Hello world')</script>
你好,世界
scriptwindow.alert('Hello world')/script
我想编写一个oraclepl/SQL函数来进行这种转换
我使用oracle11。我尝试使用regexp和Oracle XML函数,但没有成功。也许您可以使用(内置)REPLACE函数。示例(与Oracle 11g一起测试,请参阅):
测试表
create table myclobs ( col clob ) ;
insert into myclobs ( col )
values ( '<b>Hello world</b><script>window.alert(''Hello world'')</script>');
select * from myclobs ;
-- result
COL
<b>Hello world</b><script>window.alert('Hello world')</script>
也许您可以使用(内置)替换功能。示例(与Oracle 11g一起测试,请参阅):
测试表
create table myclobs ( col clob ) ;
insert into myclobs ( col )
values ( '<b>Hello world</b><script>window.alert(''Hello world'')</script>');
select * from myclobs ;
-- result
COL
<b>Hello world</b><script>window.alert('Hello world')</script>
对于clob,请尝试DBMS_XMLGEN.CONVERT谢谢kfinity。问题是只需要转义标记的内容。现在我添加了“hello world”来显示它。此标记需要保持未标记状态对于clob,请尝试DBMS_XMLGEN.CONVERT谢谢kfinity。问题是只需要转义标记的内容。现在我添加了“hello world”来显示它。此标签需要保持未装订
-- rst: Replace the Script Tags
create or replace function rst( theclob clob )
return clob
is
begin
return replace(
replace( theclob, '</script>','</script>' )
, '<script>','<script>'
) ;
end ;
/
select rst( col ) from myclobs ;