有一个PL/SQL函数SC,它将像&这样的特殊字符转义到&。
示例:
SELECT HTF.ESCAPE_SC('<parameter name="port">48677</parameter>')
FROM dual;
<parameter name="port">48677</parameter>有人知道它的反函数吗?我当然可以跑
SELECT REPLACE(REPLACE(REPLACE(REPLACE(
'<parameter name="port">48677</parameter>',
'<', '<'), '>', '>'), '"','"'), '&','&')
FROM dual;但我不知道是否有内置功能。
发布于 2016-11-08 19:13:56
我找到了这个函数:XMLGEN.CONVERT i做编码和解码。
SELECT DBMS_XMLGEN.CONVERT('Please encode <this> tag', 1) FROM dual;
Please encode <this> tag
SELECT DBMS_XMLGEN.CONVERT('Please decode <this> tag', 0) FROM dual;
Please decode <this> tag发布于 2016-10-28 10:11:43
我不认为这是内置的。您可以编写一个小函数来防止对replace()的不可读堆栈调用。
create or replace function unescape_sc(p_str in varchar2)
return varchar2
is
l_str varchar2(2000) := p_str; -- adjust size as required
begin
l_str := replace(l_str, '&', '&');
l_str := replace(l_str, '>', '>');
l_str := replace(l_str, '<', '<');
l_str := replace(l_str, '"', '"');
return l_str;
end unescape_sc;
select unescape_sc('<parameter name="port">48677</parameter>')
from dual;发布于 2017-07-28 10:39:36
我发现了这个:
SELECT utl_i18n.unescape_reference ('<parameter name="port">48677</parameter>')
FROM dual产出如下:
<parameter name="port">48677</parameter>https://stackoverflow.com/questions/40281869
复制相似问题