0

xmlelement を使用して、オラクルで HTML コードを記述しています。

私の現在のデータベースにはこれらのデータが保存されています

+---------+----------------+---------------------- -----------+
| | menu_id | タイトル | URL | 上位レベル |
+---------+----------------+---------------------- -----------+
| | 1 | フォーム | null | null | 0 |
| | 2 | 基本フォーム | フォーム-basic.html | 1 |
| | 3 | 拡張フォーム | フォーム-extended.html | 1 |
| | 4 | 検証 | フォーム検証.html | 1 |
| | 5 | ウィザード321 | フォームウィザード.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;
4

1 に答える 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

これがうまくいかない場合はお知らせください

于 2013-06-18T21:44:24.187 に答える