我要求更换'&'在其中一个表格列中,在插入时未编码。
我用以下查询尝试了它,
select regexp_replace('hello & hai & " ''
,'&[^((amp;)|(quot;)|(apos;))]','&') as decodedval
from dual;
正在转换非编码'&'正如所料,但删除'&'之间的空间和'海'。请问有谁能告诉我我在做什么?
答案 0 :(得分:0)
解码所有内容,然后重新编码字符串:
Oracle 11g R2架构设置:
查询1 :
SELECT DBMS_XMLGEN.CONVERT(
DBMS_XMLGEN.CONVERT(
'hello & hai & " '',
1
),
0
) AS decodeval
FROM DUAL
<强> Results 强>:
| DECODEVAL |
|-------------------------------------|
| hello & hai & " ' |
查询2 - 更新以保留周围标记:
SELECT REGEXP_REPLACE(
REGEXP_REPLACE(
DBMS_XMLGEN.CONVERT(
DBMS_XMLGEN.CONVERT(
'<tag>hello & hai & " '</tag>',
1
),
0
),
'^<(.*?)>',
'<\1>'
),
'<(/.*?)>$',
'<\1>'
) AS decodeval
FROM DUAL
<强> Results 强>:
| DECODEVAL |
|------------------------------------------------|
| <tag>hello & hai & " '</tag> |