IBM Books

Administración y programación


Actualización de datos XML

Mediante el XML Extender, puede actualizar el documento XML completo sustituyendo los datos de las columnas XML, o puede actualizar los valores de elementos o atributos especificados.

Visión general de las tareas:

  1. Asegúrese de que ha almacenado el documento en una tabla XML y determine qué datos desea recuperar.
  2. Elija un método para actualizar los datos de la tabla DB2 (funciones de conversión de datos o funciones UDF).
  3. Mediante una consulta SQL, especifique la tabla y columna XML que se debe actualizar.

Importante: Cuando se actualiza una columna que está habilitada para XML, el XML Extender actualiza automáticamente las tablas secundarias para reflejar los cambios. Pero el usuario no debe actualizar directamente estas tablas, modificando el correspondiente valor de elemento o de atributo XML, sin actualizar el documento XML original contenido en la columna XML. Dichas actualizaciones puede provocar problemas de falta de coherencia en los datos.

Para actualizar un documento XML:

Utilice uno de los métodos siguientes:

Uso de una función predefinida de conversión de datos
Para cada UDT (tipo definido por el usuario), existe una función predefinida de conversión de datos para convertir el tipo base SQL al UDT. Para actualizar el documento XML, puede utilizar las funciones de conversión de datos proporcionadas por el XML Extender. La Tabla 9 muestra las funciones de conversión de datos proporcionadas; se supone que la columna ORDER está creada mediante un UDT diferente proporcionado por el XML Extender.

Ejemplo: El ejemplo anterior actualiza el tipo XMLVARCHAR, a partir del tipo convertido VARCHAR, suponiendo que xml_buf es una variable de lenguaje principal que está definida con el tipo VARCHAR.

UPDATE sales_tab VALUES('123456', 'Sriram Srinivasan',
  db2xml.XMLVarchar(:xml_buff))

Uso de una UDF de almacenamiento
Para cada UDT del XML Extender, existe una UDF de almacenamiento para importar datos a DB2 desde una fuente distinta del tipo base de DB2. Puede utilizar una UDF de almacenamiento para actualizar el documento XML completo mediante su sustitución.

Ejemplo: El ejemplo siguiente actualiza un documento XML utilizando la función XMLVarcharFromFile():

UPDATE sales_tab
       set order = XMLVarcharFromFile('c:\dxx\samples\cmd\getstart.xml')
   WHERE sales_person = 'Sriram Srinivasan'

El ejemplo siguiente actualiza el objeto XML desde el archivo llamado c:\dxx\samples\cmd\getstart.xml a la columna ORDER de la tabla SALES_TAB.

Vea la Tabla 10 para obtener una lista de las funciones de almacenamiento proporcionadas por el XML Extender.

Para actualizar elementos o atributos determinados de un documento XML:

Utilice la UDF Update() para especificar cambios específicos, en lugar de actualizar el documento completo. Mediante la UDF, especifique una vía de ubicación y el valor del elemento o atributo que se debe cambiar, que está representado por la vía de ubicación. (Vea Vía de ubicación para obtener la sintaxis de la vía de ubicación.) No es necesario que edite el documento XML: el XML Extender realiza el cambio automáticamente.

Update(objxml, vía, valor)
 

En este ejemplo:

objxml
Es el nombre de la columna XML para la que debe actualizar el valor del elemento o atributo.

vía
Es la vía de ubicación del elemento o atributo que se debe actualizar. Vea Vía de ubicación para obtener la sintaxis de la vía de acceso a la ubicación.

valor
Es el valor que se debe actualizar.

Ejemplo: La sentencia siguiente actualiza el valor del elemento <Customer> para que sea igual a la serie de caracteres "IBM"; para ello se utiliza la UDF Update():

UPDATE sales_tab
       set order = Update(order, '/Order/Customer/Name', 'IBM')
   WHERE sales_person = 'Sriram Srinivasan'


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]