Gere XML usando o esquema XML da Oracle

8

Eu tenho algumas definições de esquema XML que foram registradas usando DBMS_XMLSCHEMA. Eu criei tabelas usando os XMLTypes gerados. Posso criar XML usando XMLQuery e, se entender corretamente, os resultados da consulta poderão ser inseridos na tabela se a definição estiver correta.

Por fim, o XML precisa ser gravado em um arquivo, mas a parte sobre a qual não tenho certeza é se escrever XMLQueries do zero é a melhor maneira de gerar o XML. Existe alguma maneira de fazer com que o esquema XML gere um stub XML para um guia ou gere XMLQuery de modelo? Atualmente, os dados estão todos em tabelas regulares do Oracle, mas organizados de maneira bem diferente, portanto, qualquer informação sobre como facilitar a exportação para XML com base em um conjunto específico de esquema registrado seria útil.

Leigh Riffel
fonte
Eu acho que há uma maneira de fazer isso se suas tabelas corresponderem ao seu esquema (acho que há até uma maneira de gerar tabelas com base em um esquema). Se suas tabelas forem estruturadas de maneira diferente, você provavelmente precisará escrever consultas para transformar os dados em XML.
FrustratedWithFormsDesigner
Posso gerar uma tabela com base no esquema, mas é apenas uma tabela de uma coluna XMLType. É isso que você quis dizer?
Leigh Riffel
@LeightRiffel: Não, tenho certeza de que havia um projeto aqui há alguns anos atrás, em que o DBA usou algum tipo de ferramenta Oracle para gerar tabelas cujas estruturas e relacionamentos correspondiam ao esquema. Não lembro o nome da ferramenta e é possível que não funcione com todos os esquemas, mas está disponível em algum lugar. Caso contrário, é um trabalho manual de escrever consultas para massagear os dados "normais" do banco de dados nas estruturas XML. Você ainda precisava de consultas quando as tabelas correspondiam ao esquema, mas eram muito mais simples. Você já tentou pesquisar / perguntar no StackOverflow?
FrustratedWithFormsDesigner
Procurando sim, perguntando, não. Parece que existem ferramentas que fazem a conversão, mas não encontrei nada incorporado ao Oracle.
precisa
Mesmo? Hum. Eu pensei que o DBA disse que era algo no Oracle. É possível que ele tenha um script personalizado que crie tabelas a partir de esquemas usando outras funções do Oracle. Ele não está por perto no momento para pedir desculpas.
FrustratedWithFormsDesigner

Respostas:

1

É bastante direto enviar por push uma seleção já existente para XML: http://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb13gen.htm#i1028612

A criação de XML faz parte das especificações básicas do SQL e está disponível na maioria dos servidores. Você pode conferir a versão do SQL Server aqui: http://blog.sqlauthority.com/2009/02/12/sql-server-simple-example-of-creating-xml-file-using-t-sql/

MarkWalls
fonte
Foi aí que acabamos; basta criar o código XMLQuery a partir do zero.
Leigh Riffel