【问题标题】:How to retrieve data from oracle database in XSD format? [closed]如何从 Oracle 数据库中检索 XSD 格式的数据? [关闭]
【发布时间】:2020-01-27 21:07:02
【问题描述】:

在 Oracle 数据库中,我有一个包含简单属性的表,例如:

namefirst nameage

目标:我想以 XSD 格式恢复这些数据。

是否有相应的 SQL 函数或执行此操作的 java 库?

提前致谢

【问题讨论】:

  • 请提供样本数据和预期结果以阐明您的要求。
  • 你的意思是XML格式还是XSD格式?
  • xml 或 xsd 格式,如果你有解决方案,我会接受。
  • 您不能只说“XML 或 XSD,......我会接受”它们可能都是 XML 文档,但它们实现的功能截然不同。一个包含数据 (XML),另一个描述数据的结构 (XSD)。

标签: java sql oracle11g xsd ojdbc


【解决方案1】:

XSD 代表XML Schema Definition,用于描述XML 文档的结构、约束、数据类型。因此,您可以将数据放入 XML 文档中,但该文档的结构/格式(没有任何数据)将由关联的 XSD 描述。

既然您在谈论数据,您可能需要一个 XML 文档(而不是 XSD)并且可以使用Oracle's XML functions

Oracle 设置

CREATE TABLE table_name ( first_name, last_name, date_of_birth ) AS
SELECT 'Alice', 'Adams', DATE '1970-01-01' FROM DUAL UNION ALL
SELECT 'Beryl', 'Booth', DATE '1980-01-01' FROM DUAL UNION ALL
SELECT 'Carol', 'Cross', DATE '1990-01-01' FROM DUAL;

查询

SELECT XMLELEMENT(
         "People",
         XMLAGG(
           XMLELEMENT( 
           "Person",
             XMLFOREST(
               first_name AS "FirstName",
               last_name  AS "LastName",
               EXTRACT( YEAR FROM ( SYSDATE - date_of_birth ) YEAR TO MONTH ) AS "Age"
             )
           )
         )
       ) AS XML
FROM   table_name

输出

| XML | | :------------------------------------------------ -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------- | | AliceAdams50BerylBooth40CarolCross30 |

db小提琴here

如果您真的想生成 XSD,那么您可以使用与 XSD 本身相同的功能来生成 XML 文档;但它不是您将数据放入的东西。

【讨论】:

  • 感谢您的回复,但如果我不知道我的表格内容怎么办?或者我有很多桌子?有没有更简单的方法?
  • @H_A_92s7 请edit 向我们提供有关您实际要求的更多详细信息。您在问题中说您有一个表格并给我们其中的字段,然后您在上面的评论中说您不知道您有哪些列/表格;是哪一个?你是什​​么意思更简单的方法?上面的 SQL 查询与生成单个 XML 文档一样简单。
猜你喜欢
  • 2015-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 2013-07-14
相关资源
最近更新 更多