【发布时间】:2017-06-18 10:00:39
【问题描述】:
我在 Oracle 中创建 XML 时遇到问题。
我设法创建了如下所示的 XML 结构:
<A>
<B attr1="1">
10
</B>
</A>
当 B 的值为 NULL 时,它应该返回 null。这可以通过这样一段代码来完成:
SELECT
XMLForest(
CASE
WHEN t.V IS NOT NULL
THEN
XMLElement(
"B",
XMLAttributes(
t.A1 as attr1
),
t.V
)
END as A
) as testa
FROM
(
SELECT
10 as V,
1 as A1
FROM
dual
) t
;
但我想不出任何会产生这样的结构:
<A>
<B attr1="1">
10
</B>
<C>
2
</C>
</A>
如果 B 和 C 的值都是 NULL,则应该返回 NULL。而实际上 A 元素是其他 XMLForest 中的子元素,因此不能将其封装在大 CASE 中。
希望能得到一些帮助...
【问题讨论】: