Manuali IBM

XML Extender - Gestione e programmazione


Memorizzazione dati

Utilizzando XML Extender è possibile inserire documenti XML integri in una colonna XML. Se si definiscono tabelle laterali, XML Extender automaticamente aggiorna tali tabelle. Quando si memorizza direttamente un documento XML, XML Extender memorizza il tipo di base come tipo XML.

Panoramica delle attività:

  1. Accertarsi di aver creato o aggiornato il file DAD.
  2. Determinare il tipo di dati da utilizzare quando si memorizza il documento.
  3. Scegliere un metodo per la memorizzazione dei dati nella tabella DB2 (funzioni cast o UDF).
  4. Specificare un'istruzione SQL INSERT che specifichi la colonna e la tabella XML in cui contenere il documento XML.

XML Extender fornisce due metodi per la memorizzazione dei documenti XML: le funzioni cast predefinite e le funzioni UDF di memorizzazione. La sezione Tabella 8 illustra quando utilizzare ciascun metodo.

Tabella 8. Le funzioni di memorizzazione XML Extender
Tipo di base Memorizzare in DB2 come...
XMLVARCHAR XMLCLOB XMLFILE
VARCHAR XMLVARCHAR() N/D XMLFileFromVarchar()
CLOB N/D XMLCLOB() XMLFileFromCLOB()
FILE XMLVarcharFromFile() XMLCLOBFromFile() XMLFILE

Utilizzare una funzione cast predefinita
Per ciascun UDT, esiste una funzione cast predefinita per eseguire un tipo di base SQL nell'UDT. E' possibile utilizzare le funzioni cast fornite da XML Extender nella clausola VALUES per inserire i dati. La sezione Tabella 9 illustra le funzioni cast fornite:

Tabella 9. Le funzioni cast predefinite di XML Extender
Cast utilizzato nella clausola SELECT Tipo restituito Descrizione
XMLVARCHAR(VARCHAR) XMLVARCHAR Immissione dal buffer di memoria di VARCHAR
XMLCLOB(CLOB) XMLCLOB Immissione dal buffer di memoria di CLOB o del relativo indicatore di posizione
XMLFILE(VARCHAR) XMLFILE Memorizzazione solo del nome file

Esempio: La seguente istruzione inserisce un tipo VARCHAR cast nel tipo XMLVARCHAR:

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

Utilizzo di una UDF di memorizzazione:
Per ciascun UDT di XML Extender, esiste un'UDF di memorizzazione per eseguire l'importazione di dati in DB2 da una risorsa diversa dal relativo tipo di base. Ad esempio, se si desidera importare un documento file XML in DB2 come XMLCLOB, è possibile utilizzare la funzione XMLCLOBFromFile().

La sezione Tabella 10 illustra le funzioni di memorizzazione fornite da XML Extender.

Tabella 10. UDF di memorizzazione di XML Extender
UDF (user-defined function) di memorizzazione Tipo restituito Descrizione
XMLVarcharFromFile() XMLVARCHAR Legge un documento XML da un file situato sul server e restituisce il valore di tipo XMLVARCHAR.
XMLCLOBFromFile() XMLCLOB Legge un documento XML da un file situato sul server e restituisce il valore di tipo XMLCLOB.
XMLFileFromVarchar() XMLFILE Legge un documento XML dalla memoria come VARCHAR, lo scrive in un file esterno e restituisce il nome file come tipo XMLFILE.
XMLFileFromCLOB() XMLFILE Legge un documento XML dalla memoria come CLOB o indicatore di posizione CLOB, lo scrive in un file esterno e restituisce il nome file come tipo XMLFILE.

Esempio: la seguente istruzione memorizza un record in una tabella XML utilizzando la funzione XMLCLOBFromFile() come XMLCLOB.

EXEC SQL INSERT INTO sales_tab(ID, NAME, ORDER) 
    VALUES( '1234', 'Sriram Srinivasan,
      XMLCLOBFromFile('c:\dxx\samples\cmd\getstart.xml'))

Il precedente esempio esegue l'importazione dell'oggetto XML dal file denominato c:\dxx\samples\cmd\getstart.xml nella colonna ORDER della tabella SALES_TAB.


[ Inizio pagina | Pagina precedente | Pagina successiva | Indice | Indice analitico ]