Utilizando el XML Extender, puede insertar documentos XML inalterados en una columna XML. Si define tablas secundarias, el XML Extender actualiza automáticamente estas tablas. Cuando almacena directamente un documento XML, el XML Extender almacena el tipo base como tipo XML.
Visión general de las tareas:
El XML Extender proporciona dos métodos para almacenar documentos
XML: funciones predefinidas de conversión de datos y funciones UDF de
almacenamiento. La Tabla 8 muestra cuándo utilizar cada método.
Tabla 8. Funciones de almacenamiento del XML Extender
Tipo base | Almacenar en DB2 como... | ||
---|---|---|---|
XMLVARCHAR | XMLCLOB | XMLFILE | |
VARCHAR | XMLVARCHAR() | N/A | XMLFileFromVarchar() |
CLOB | N/A | XMLCLOB() | XMLFileFromCLOB() |
FILE | XMLVarcharFromFile() | XMLCLOBFromFile() | XMLFILE |
Tabla 9. Funciones predefinidas de conversión de datos del XML Extender
Conversión de datos utilizada en cláusula SELECT | Tipo devuelto | Descripción |
---|---|---|
XMLVARCHAR(VARCHAR) | XMLVARCHAR | Datos de entrada procedentes de memoria intermedia de VARCHAR |
XMLCLOB(CLOB) | XMLCLOB | Datos de entrada procedentes de memoria intermedia de CLOB o de un localizador de CLOB |
XMLFILE(VARCHAR) | XMLFILE | Sólo almacenar nombre de archivo |
Ejemplo: La sentencia siguiente inserta un tipo convertido VARCHAR en el tipo XMLVARCHAR:
INSERT INTO sales_tab VALUES('123456', 'Sriram Srinivasan', db2xml.XMLVarchar(:xml_buff))
La Tabla 10 muestra las funciones de almacenamiento proporcionadas por
el XML Extender.
Tabla 10. Las UDF de almacenamiento del XML Extender
UDF de almacenamiento | Tipo devuelto | Descripción |
---|---|---|
XMLVarcharFromFile() | XMLVARCHAR | Lee un documento XML en un archivo de servidor y devuelve un valor de tipo XMLVARCHAR. |
XMLCLOBFromFile() | XMLCLOB | Lee un documento XML en un archivo de servidor y devuelve un valor de tipo XMLCLOB. |
XMLFileFromVarchar() | XMLFILE | Lee un documento XML de tipo VARCHAR contenido en la memoria, lo escribe en un archivo externo y devuelve un valor de tipo XMLFILE, que es el nombre de archivo. |
XMLFileFromCLOB() | XMLFILE | Lee un documento XML en forma de CLOB o de localizador de CLOB, contenido en la memoria, lo escribe en un archivo externo y devuelve un valor de tipo XMLFILE, que es el nombre de archivo. |
Ejemplo: La sentencia siguiente almacena un registro en una tabla XML utilizando la función XMLCLOBFromFile() como XMLCLOB.
EXEC SQL INSERT INTO sales_tab(ID, NAME, ORDER) VALUES( '1234', 'Sriram Srinivasan, XMLCLOBFromFile('c:\dxx\samples\cmd\getstart.xml'))
El ejemplo anterior importa el objeto XML desde el archivo llamado c:\dxx\samples\cmd\getstart.xml a la columna ORDER de la tabla SALES_TAB.