Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Desde la versin 9 de Oracle se ofrece soporte de datos nativos a la informacin que se encuentra
almacenada en formato XML. Oracle soporta todos los mtodos de definicin, estructura y
transformacin de datos XML (tales como XSD, XSLT, XPATH, XQUERY, entre otros). Para el
almacenamiento de los archivos XML se utilizan formato Character Large Objects (CLOB) que
permite almacenar texto en grandes cantidades sin prdida de informacin.
Para que Oracle pueda realizar el proceso de parsing de la informacin XML existe un componente
denominado XDB, el cual tiene dos funciones principales: La primera es XMLType, la cual contiene
toda la sintaxis para realizar toda la manipulacin, registro, validacin o transformacin de los
archivos XML y la segunda es el repositorio XML DB en donde se encuentra la sintaxis para realizar
persistencia, versionamiento y control de acceso de los archivos XML. Para validar si en el
esquema de base de datos se encuentra registrado el componente Oracle XML DB basta con
ejecutar la siguiente consulta: select comp_name, status from dba_registry where
comp_name='Oracle XML Database'; la cual retorna el nombre del componente (Oracle XML
Database) y su estado (Debe tener estado valid).
Una vez validado que el componente XML DB est activo se procede a generar el esquema de
validacin. Este esquema busca describir la estructura de los XML que recibir para el tratamiento
de los datos de una tabla particular. En este esquema se definen no solo los campos que deben
registrarse en la base de dates sino que se especifica el tipo de dato que debern recibir e
inclusive validaciones de los datos mnimos y mximos esperados para los campos. A continuacin
se puede ver un ejemplo de la estructura del esquema de la tabla Reserva:
Para el ejemplo la tabla reserva se compone de un campo de tipo XMLType que ser almacenado
como Binary XML, el cual internamente en la base dedatos se guarda como un SecureFile LOB.
Para efectos de validar la consistencia de la nueva tabla se procede a insertar un registro en la
tabla Reserva que no cumpla la definicin del esquema pedidos.xsd para observar su
comportamiento:
Como se puede ver en el ejemplo existe un error porque el campo del cdigo de pedido no se
incluye en la etiqueta denominada pedido. La forma correcta para realizar la insercin de datos es
la siguiente:
Con respecto a las actualizaciones de registros en la tabla reserva hay que considerar de igual
forma que en la insercin que el documento xml interno est bien formado con respecto a las
definiciones del esquema XSD. A continuacin un ejemplo de una actualizacin en la tabla
Reserva:
Si se desea actualizar el mismo valor en elementos diferentes del archivo embebido XML por
medio de la misma consulta basta con especificar el id de las etiquetas padre. A continuacin un
ejemplo de como se puede realizar actualizacin del valor del elemento pu en los pedidos con
cdigo 1 y 3 asignando nuevo valor 20:
Si se desea eliminar elementos dentro del xml interno basta con utilizar la funcin deletexml
indicando el nombre del campo y los elementos a eliminar. El siguiente ejemplo busca eliminar los
pedidos con cdigo 1 y 3 del XML del campo pedidos de la tabla reserva: