如何以XSD格式从Oracle数据库检索数据?

问题描述 投票:-1回答:1

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

[namefirst nameage

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

是否有执行该操作的SQL函数或Java库?

提前感谢

java sql oracle11g xsd ojdbc
1个回答
0
投票

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 || :------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------- ||    Alice  FirstName>  Adams  LastName>  50  Age>  Person>   Beryl  FirstName>  Booth < / LastName>  40  Age>  Person>   Carol  FirstName>  Cross  LastName>  30  Age>  Person>  People> |

db <>小提琴here

如果您确实要生成XSD,则可以使用与XSD相同的功能来完成此工作,而XSD本身就是XML文档;但这不是您将数据放入其中的内容。

© www.soinside.com 2019 - 2024. All rights reserved.