2013-06-18 50 views
0

使用xmlelement在Oracle中編寫一段html代碼。如何讓多行適合xmlattributes中的一個單元格

我目前的數據庫中存儲這些數據

 
+---------+----------------+-----------------------+-----------+ 
| menu_id | title   | url     | upper_lvl | 
+---------+----------------+-----------------------+-----------+ 
|  1 | Forms   | null     |   0 | 
|  2 | Basic forms | forms-basic.html  |   1 | 
|  3 | Extended forms | forms-extended.html |   1 | 
|  4 | Validation  | forms-validation.html |   1 | 
|  5 | Wizard321  | forms-wizard.html  |   1 | 
+---------+----------------+-----------------------+-----------+ 

這裏是我想要得到的格式:

<ul class="dropdown-menu"> 
    <li> 
     <a href="forms-basic.html">Basic forms</a> 
    </li> 
    <li> 
     <a href="forms-extended.html">Extended forms</a> 
    </li> 
    <li> 
     <a href="forms-validation.html">Validation</a> 
    </li> 
    <li> 
     <a href="forms-wizard.html">Wizard</a> 
    </li> 
</ul> 

我嘗試使用下面這段代碼來獲得結果,但我知道它不起作用,導致內部查詢返回多行。只要把它放在這裏,如果任何人都可以修改或其他解決方案是受歡迎的。

select 
    xmlelement("ul", 
    xmlattributes('dropdown-menu' as "class"), 
    xmlelement("li", 
     xmlelement("a", 
     xmlattributes(url as "href"), 
     (select title from att1 where upper_lvl = 1) 
    ) 
    ) 
) 

from att1 
where menu_id = 1; 

回答

1

您需要使用XMLAGG(XML聚合函數)來實現這一

select 
    xmlelement("ul", xmlattributes('dropdown-menu' as "class"), 
     XMLAgg(xmlelement("li", 
         xmlelement("a", 
         xmlattributes(url as "href"),title) as "Menu Element" 
         ) 
      ) 
     ) as Menu 
    from att1 where upper_lvl = 1 

讓我知道這不適合你

+0

美麗,這正是我在找工作。謝謝,它運作良好 –

相關問題