IBM Books

Administración y programación


Almacenamiento de datos

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:

  1. Asegúrese de que ha creado o actualizado el archivo DAD.
  2. Determine el tipo de datos que utilizará para almacenar el documento.
  3. Elija un método para almacenar los datos en la tabla DB2 (funciones de conversión de datos o funciones UDF).
  4. Mediante una sentencia INSERT de SQL, especifique la tabla y columna XML donde residirá el documento XML.

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

Uso de una función predefinida de conversión de datos
Para cada UDT, existe una función predefinida de conversión de datos para convertir el tipo base SQL al UDT. Para insertar datos, puede utilizar funciones de conversión de datos, proporcionadas por el XML Extender, en una cláusula VALUES. La Tabla 9 muestra las funciones de conversión de datos proporcionadas:

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

Uso de una UDF de almacenamiento:
Para cada UDT de XML Extender, existe una UDF de almacenamiento para importar datos a DB2 desde una fuente distinta del tipo base de DB2. Por ejemplo, si desea importar un documento de archivos XML a DB2 en forma de XMLCLOB, puede utilizar la función XMLCLOBFromFile().

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.


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