2017-03-01 23 views
2

我使用下面的代码,以提取从源传统数据库中的数据,并把成CLOB列在目标11g数据库保留特别Charcters虽然迁移数据

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;,&amp;

即使我将数据从源迁移到目标,我如何保留上述值?

感谢

+0

你是什么意思:

你可以扭转这种局面? '<' , '>','&''被'<' , '>'替换,'&''? –

+0

@WernfriedDomscheit对不起,有一个格式问题,纠正了我的问题。 – Ponic

+0

只需在数据库链接上使用'datapump' – klashxx

回答

1

这就是甲骨文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>&gt;</E> 
+0

不知道如何在我的SQL语句中使用它。 – Ponic