xmltable tabla read leer insertar guardar consultar archivos xml oracle xsd xmltype oracle-xml-db

read - Cómo almacenar datos XML en tablas de Oracle



xml string oracle (2)

Definitivamente quieres comenzar con XMLDB.

XMLDB es todo un mundo de funciones y funcionalidades dentro de sí mismo.

Muy brevemente, tiene tres opciones de almacenamiento con datos XMLDB y XMLTYPE.

Puedes almacenar:

1.) En un tipo de datos CLOB. Si hace esto, el XML simplemente se sienta en la base de datos, y es un LOB. No puede indexarlo, buscarlo, etc. La base de datos tiene un pequeño espacio y usted almacena el XML.

2.) BINARY XML: esta es la opción más nueva, introducida en 11gR2. Esto hará tokenizar y comprimir el XML, y almacenarlo en un formato binario codificado. La ventaja aquí es que puede usar los índices de dominio Oracle Text y XMLINDEX para indexar y buscar el contenido. Esta es la opción con la que tengo más experiencia. Tenemos un billón de documentos, tamaño promedio alrededor de 12k, almacenados en una base de datos 11gR2. Está funcionando realmente bien para nosotros.

3.) XML al mapeo relacional: usted define un esquema relacional para almacenar los datos en su esquema XML y define cómo los elementos XML se asignan a qué tablas y campos relacionales. En la ingestión, el XML se descompone y se almacena en un modelo relacional convencional. A continuación, puede buscar, ordenar, indexar, como lo haría con cualquier base de datos tradicional.

Realmente depende de lo que quiera hacer, en cuanto a qué modelo de almacenamiento XML elija.

Puede intentar hacer sus preguntas en el foro Oracle XMLDB. Es bastante activo, y tiene algunas personas que están mucho más informadas sobre el tema que yo. https://forums.oracle.com/forums/forum.jspa?forumID=34

Espero que ayude.

Responder a la Actualización 1:

Realmente solo tengo experiencia con la opción de almacenamiento XML binario, lo siento. Creo que sería útil consultar el código de ejemplo XMLDB en OTN.

Por favor mira:

http://www.oracle.com/technetwork/indexes/samplecode/xmldb-sample-523617.html

En nuestro negocio, recibimos y necesitamos procesar miles de archivos XML por día y todos estos archivos están en el mismo formato. Nos gustaría almacenar estos datos en tablas de Oracle y reservar la relación jerárquica de estos datos y luego podemos consultarlos utilizando SQL tradicional y hacer un análisis más detallado. ¿Cuál es la mejor manera de hacer eso? ¿XML DB es la elección correcta?

Actualizar:

Actualmente, estoy pensando en usar XML DB con datos almacenados en almacenamiento estructurado. Así que entiendo que puedo definir un Esquema XML con anotaciones y sé cuáles son los pasos involucrados, pero me gustaría obtener respuestas confirmadas para las siguientes preguntas:

  1. ¿Puedo anotar un esquema XML para crear varias tablas para la relación padre-hijo? Me gustaría que los datos se guarden en tablas relacionales, no en objetos.
  2. ¿Puedo definir las claves principales, claves foráneas para todas estas tablas? No tengo muy claro cómo Oracle mantiene la relación padre-hijo en estas tablas.
  3. ¿Alguien puede mostrarme un buen ejemplo?

Hay un buen libro, lo usé y me ayudó a través de todas las preguntas fundamentales. Se trata de Oracle 11g, pero también se puede usar con 12c.

Se llama "Creación de aplicaciones Oracle XML DB", sugiero, cómprela y reserve dos días para leer e intentar.