I am using the below code to extract data from source legacy database and putting into a CLOB column in target 11g database
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 column has '<' , '>' '&' and other special characters, these are getting replaced with <
>
, &
respectively.
How can I preserve the above values even I migrate the data from source to target?
Thanks
That's a side effect of Oracle XML
tools.
You can reverse it with:
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>