2013-06-18 2 views
0

Im, используя xmlelement, чтобы написать часть кода html в oracle.Как получить несколько строк, помещенных в одну ячейку в 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

красиво, это именно то, что я ищу , спасибо, он работал хорошо –

Смежные вопросы