簡體   English   中英

將oracle數據庫轉換為xml

[英]Convert oracle database to xml

我在 Oracle 中有一個關系數據庫。

我想將此數據庫轉換為 xml。 例如,我在 Oracle 中有一個表,如下所示:(這是一個非常簡單的例子,在我的數據庫中沒有這樣的表)

 TABLE: PERSON
 ----------------------------------------------------
 ID | NAME | DESCRIPTION
 ----------------------------------------------------
 1  | George | Employee
 2  | Mary   | Student
 3  | Joe    | Employee
-------------------------------------------------------

xml 輸出將是

<?xml version="1.0" encoding="UTF-8"?>
<persons>
  <person>
    <ID>1</ID>
    <NAME>George</NAME>
    <DESCRIPTION>Employee</DESCRIPTION>
  </person>
  <person>
    <ID>2</ID>
    <NAME>Mary</NAME>
    <DESCRIPTION>Student</DESCRIPTION>
  </person>
  <person>
    <ID>3</ID>
    <NAME>Joe</NAME>
    <DESCRIPTION>Employee</DESCRIPTION>
  </person>
</persons>

進行轉換的最佳方法是什么?

1)要我自己做嗎?

a)根據數據庫的設計創建我自己的 xsd 模式b)創建我自己的機制,該機制將通過選擇和加入表來自動創建 xml 文檔。

或者

2)我應該使用在線工具來進行轉換嗎? 如果是的話,哪些是最適合這種轉換的?

提前致謝

直接通過oracle引擎:

select xmlelement( "PERSON", xmlforest( id, name, description ) ) 
from PERSON;    

Oracle 為此提供了內置功能:

with v_data as (
  select 1 as id, 'George' as name, 'Employee' as description from dual union all
  select 2 as id, 'Mary' as name, 'Student' as description from dual union all
  select 3 as id, 'Joe' as name, 'Employee' as description from dual)
select 
  xmlelement("Persons", 
    xmlagg(
      xmlelement("Person", 
        xmlforest(e.id, e.name, e.description)
      ) 
     order by id)
  ) as "Person list"
from v_data e

根據您的真實數據,您可能希望使用 DBMS_XMLGEN 或類似方法使用增量方法,請參閱Oracle XML DB Developer's Guide

如果您使用任何編程語言,如 Java,則可以使用任何對象關系映射框架,如 JPA/Hibernate/等。 並使用 JAXB 或 XStream 或任何其他 xml 序列化 API 將映射對象序列化為 xml。

如果您想手動完成,如果您負擔得起,也可以使用 Altova MapForce 等工具

http://www.altova.com/mapforce/database-mapping.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM