我正在使用XMLQuery()在我的表中执行一些XQuery,这些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上。
答案 0 :(得分:0)
尝试使用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