2015-01-06 97 views

回答

2

可以使用dbms_xmlgen.convert() function

select dbms_xmlgen.convert('<element>Text with "quotes" and ''&''</element>') 
from dual; 

DBMS_XMLGEN.CONVERT('<ELEMENT>TEXTWITH"QUOTES"AND''&''</ELEMENT>')                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
--------------------------------------------------------------------------------- 
&lt;element&gt;Text with &quot;quotes&quot; and &apos;&amp;&apos;&lt;/element&gt; 

有重載版本爲varchar2clob值。只需使用您的表格列而不是固定的字符串。或者將其轉換爲自動編碼的XMLType變量,或者使用其他XMLGen函數(如果適合您的數據和所需輸出)。

2

htf.escape_sc()功能做你所期望的。但我寧願用Java本身來做這件事。

SQL> select htf.escape_sc('<Welcome>Hello WOrld</Welcome>') parsed FROM DUAL; 

PARSED 
-------------------------------------------------------------------------------- 
&lt;Welcome&gt;Hello WOrld&lt;/Welcome&gt; 

最大的侷限性是..它被限制爲4000個charcters(解析後)最大爲VARCHAR柱。而如果它超過它引發了異常!!所以,請在客戶端進行這些解析。

More on this from Docs

+0

我相信4000限制是在12c發佈之前,我不確定它是否也適用於這種情況。 –

+0

這不會將''''轉換爲''',但這可能並不重要。 –

+0

@AlexPoole和Lalit是的,你們是對的! –