【问题标题】:Formatting output XML from XMLQuery() in Oracle在 Oracle 中格式化来自 XMLQuery() 的输出 XML
【发布时间】:2014-05-30 15:43:21
【问题描述】:

我正在使用 XMLQuery() 在我的表中执行一些 XQuery,这些表由带有 XML 文档(Oracle 的 XMLTYPE)的记录组成。 Oracle 查询如下所示:

SELECT XMLQuery(
'for $b in distinct-values($rdoc//book_title)
 let $r := $rdoc//review[book_title=$b]/rating
 order by avg($r) descending
 return 
  <book>
    <title>{data($b)}</title>
    <avgrating>{avg($r)}</avgrating>
  </book>'
passing b.data as "bdoc", r.data as "rdoc"
RETURNING CONTENT).getStringVal() XMLData
FROM books b, reviews r

我得到了正确的结果,但 SQLDeveloper 在一行中向我显示了结果,而不是格式化为 XML!我注意到,如果我有一个不使用 distinct-values() 的查询,那么结果会正确显示。

有没有人遇到过同样的问题并找到了解决方案/解决方法?我在 Oracle 12c 上。

【问题讨论】:

    标签: xml oracle xquery formatting


    【解决方案1】:

    尝试使用 XMLSerialize 函数:

    SELECT
      XMLSerialize(content XMLQuery(...your expression...) indent size=2) XMLData
    FROM
      books b, reviews r
    

    为了确定您在做什么,请阅读以下内容:http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions252.htm#SQLRF06231

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 2013-07-16
      相关资源
      最近更新 更多