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:
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:
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))
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:
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'