我使用以下代码从源遗留数据库中提取数据并放入目标11g数据库中的CLOB列
RTRIM (
XMLAGG (XMLELEMENT (
e,
REPLACE (
REGEXP_REPLACE (
REPLACE (prod_desc, CHR (10), '~~~'),
'[[:cntrl:]]'),
'~~~',
CHR (10)),
CHR (10)) ORDER BY prod_date DESC).EXTRACT ('//text()').getclobval (),
CHR (10))
prod_desc列有'&lt;' ,'&gt;' '&安培;'和其他特殊字符分别被<
>
,&
取代。
即使我将数据从源迁移到目标,我如何保留上述值?
由于
答案 0 :(得分:1)
这是Oracle XML
工具的副作用。
您可以通过以下方式撤消它:
SQL> SELECT UTL_I18N.UNESCAPE_REFERENCE(RTRIM(XMLAGG(XMLELEMENT(E,'>')))) AS XML FROM dual;
XML
--------------------------------------------------------------------------------
<E>></E>
<强> VS 强>
SQL> SELECT RTRIM(XMLAGG(XMLELEMENT(E,'>'))) AS XML FROM dual;
XML
--------------------------------------------------------------------------------
<E>></E>