希望你做得好。我正在寻找一些帮助。
我有一个包含Key_documents列的Share Points列表。此列包含许多嵌入到DIV和HTML标记中的HTML代码段,如下所示。对于某些字符串值,编码看起来不太好(这来自源系统)。我试图在查询输出中修复编码问题。
Key_Documents表中的数据
<a href="http://tarregsp01p/sites/Regulatory/NextDocs Document Library/VEGF Trap-Eye/Module 5 - Clinical/03 Study Reports/311523 (VIEW 2)/01 Study Report/311523-Report Body.pdf">Year 1 CSR</a></div>
所需输出
<a href="http://tarregsp01p/sites/Regulatory/NextDocs%20Document%20Library/VEGF%20Trap-Eye/Module%205%20-%20Clinical/03%20Study%20Reports/311523%20(VIEW%202)/01%20Study%20Report/311523-Report%20Body.pdf">Year 1 CSR</a></div>
请注意空格已编码为<{1}}以上
我正在尝试使用%20
e。这个问题是它编码了所有特殊字符,这反过来又破坏了我的HTML代码。
有任何帮助吗?从技术上讲,我想在utl_url.escap
之后和之前的utl_url.escape
之前使用href=
函数
答案 0 :(得分:0)
select
id,
listagg(case mod(n,2) when 0 then utl_url.escape(substring) else substring end)
within group (order by n) string
from
(
select
id,
n,
regexp_substr(string, '(.*?)'||chr(1), 1, n, '', 1) as substring
from
(select id,
regexp_replace(string, '(href=")(.*?)"',
'\1'||chr(1)||'\2'||chr(1)||'"')||chr(1) string
from your_table),
(select level n from dual connect by level < 999)
where
regexp_substr(string, '(.*?)'||chr(1), 1, n, '', 1) is not null
)
group by id
order by id