2012-08-03 52 views
2

最近開始使用Oracle SQL Developer。我已成功運行查詢並將結果導出到XML(encoding ='UTF-8')。例如Oracle SQL Developer:無CDATA導出到XML

<RESULTS> 
    <ROW> 
     <COLUMN NAME="ACCOUNTID"><![CDATA[1]]></COLUMN> 
     <COLUMN NAME="ADDRLINE1"><![CDATA[XYZ company]]></COLUMN> 
     <COLUMN NAME="ADDRLINE2"><![CDATA[]]></COLUMN> 
     <COLUMN NAME="ADDRLINE3"><![CDATA[999 6th AVENUE]]></COLUMN> 
     <COLUMN NAME="ADDRLINE4"><![CDATA[NEW YORK]]></COLUMN> 
     <COLUMN NAME="ADDRLINE5"><![CDATA[NEW YORK, NY 10112]]></COLUMN> 
     <COLUMN NAME="COUNTRY"><![CDATA[USA]]></COLUMN> 
    </ROW> 

我的問題:有沒有辦法導出沒有CDATA的defs?即它是「簡單」的數據,我想要/需要的是:

<Row> 
    <X>1</X> 
    <ACCOUNTID>1</ACCOUNTID> 
    <ADDRLINE1>XYZ company</ADDRLINE1> 
    <ADDRLINE2/> 
    <ADDRLINE3>999 6th AVENUE </ADDRLINE3> 
    <ADDRLINE4>NEW YORK</ADDRLINE4> 
    <ADDRLINE5>NEW YORK, NY 10112</ADDRLINE5> 
    <COUNTRY>USA</COUNTRY> 
</Row> 

通過偏好查找,找不到任何有用的東西。我看到一個非常陳舊的帖子,說明生成的XML是通過XSL生成的,但我找不到任何XSL。

有沒有人曾經這樣做或有任何想法?

+0

是從數據庫中生成XML的另一種方法選擇一個選項?看看xmlelement – 2012-08-03 09:53:10

+0

,這已在6年前提出 - 但尚未提供。請閱讀此處 - https://forums.oracle.com/forums/thread.jspa?threadID=370848 – emaillenin 2012-08-03 10:15:58

回答

0

我能得到第i個查詢是這樣的最接近:

(我使用了一個WITH子句生成表記錄)

WITH t 
    AS (SELECT '1' AS x, 
      '1' AS accountid, 
      'XYZ company' AS addrline1, 
      NULL AS addrline2, 
      '999 6th AVENUE' AS addrline3, 
      'NEW YORK' AS addrline4, 
      'NEW YORK, NY 10112' AS addrline5, 
      'USA' AS country 
     FROM dual) 
SELECT xmlelement("row", 
      xmlelement(x,x), 
      xmlelement(accountid,accountid), 
      xmlelement(addrline1,addrline1), 
      xmlelement(addrline2,addrline2), 
      xmlelement(addrline3,addrline3), 
      xmlelement(addrline4,addrline4), 
      xmlelement(addrline5,addrline5), 
      xmlelement(country,country) 
     ) 
    FROM t; 

輸出生成的是:

<row> 
    <X>1</X> 
    <ACCOUNTID>1</ACCOUNTID> 
    <ADDRLINE1>XYZ company</ADDRLINE1> 
    <ADDRLINE2></ADDRLINE2> 
    <ADDRLINE3>999 6th AVENUE</ADDRLINE3> 
    <ADDRLINE4>NEW YORK</ADDRLINE4> 
    <ADDRLINE5>NEW YORK, NY 10112</ADDRLINE5> 
    <COUNTRY>USA</COUNTRY> 
</row> 

希望它有幫助...