从 Oracle 表中获取 XML

标签: XML Oracle
发布时间: 2017/4/15 0:02:13
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

当我运行

SELECT XMLElement("product", 
                  XMLAttributes(fp.col2 AS "attr2",fp.col4 as "attr4",fp.col5 as "attr5",fp.col6 as "attr6")
                  XMLElement(SELECT (XMLElement("dataset",
                                    XMLAttributes(ds.col3 AS "attr3")
                                    FROM Table2 ds
                                   WHERE fp.col1 = ds.col1 and fp.col2 = ds.col2 and ds.col2='ABC')) )
                  )
FROM Table2 fp
WHERE fp.col1 = 'XYZ'

我得到错误

ORA-00917: missing comma
00917. 00000 -  "missing comma"
*Cause:    
*Action:
Error at Line: 5 Column: 18

我不能理解为什么

我期待着像输出

<product>
  <dataset></dataset>
</product>

你也可以点我到教程 / 例子从加入生成 xml 时多个表。我要仔细看看语法。

大多数例子我寻找了 xml 生成从单个表 (员工)

解决方法 1:

---编辑--

我已经修改了您的查询。它应该工作︰

SELECT XMLElement("product"
  , XMLAttributes(fp.col2 AS "attr2",fp.col4 as "attr4",fp.col5 as "attr5",fp.col6 as "attr6")
  , (
    SELECT XMLElement("dataset"
      , XMLAttributes(ds.col3 AS "attr3")
    )
    FROM Table2 ds
    WHERE fp.col1 = ds.col1 and fp.col2 = ds.col2 and ds.col2='ABC'
  )
)
FROM Table2 fp
WHERE fp.col1 = 'XYZ';

在您的查询是不必要 XMLElement 子句 (二之一) 和子查询之前,逗号是失踪。

赞助商