Manuali IBM

XML Extender - Gestione e programmazione


Funzioni di richiamo

E' possibile utilizzare le funzioni cast predefinite per convertire un UDT XML nel tipo di dati di base. XML Extender inoltre fornisce una funzione di sovraccarico Content(), utilizzata per il richiamo.

La funzione Content() fornisce i seguenti tipi di richiamo:

Negli esempi riportati nella seguente sezione viene utilizzata la shell dei comandi DB2 in cui non è necessario immettere "DB2" all'inizio di ciascun comando.

Content(): richiamo da XMLFILE in CLOB

Scopo

Richiama i dati da un server file e li memorizza in CLOB LOCATOR.

Sintassi
XMLFILE in CLOB
>>-Content--(--xmlobj--)---------------------------------------><
 

Parametri

Tabella 26. parametro XMLFILE in CLOB
Parametro Tipo di dati Descrizione
xmlobj XMLFILE Il documento XML.

Tipo restituzione

CLOB (clob_len) come LOCATOR

clob_len per DB2 UDB è 2G.

Esempio

Di seguito è riportato l'esempio del richiamo di dati da un server file e della relativa memorizzazione in un indicatore di posizione CLOB.

EXEC SQL BEGIN DECLARE SECTION;
     SQL TYPE IS CLOB_LOCATOR xml_buff;
EXEC SQL END DECLARE SECTION;
 
EXEC SQL CONNECT TO SALES_DB
 
EXEC SQL DECLARE cl CURSOR FOR
 
     SELECT Content(order) from sales_tab
     WHERE sales_person = 'Sriram Srinivasan'
 
EXEC SQL OPEN c1;
 
do {
   EXEC SQL FETCH c1 INTO :xml_buff;
   if (SQLCODE != 0) {
                   break;
      }
   else {
     /* con doc XML nel buffer */
     }
   }
 
EXEC SQL CLOSE c1;
 
EXEC SQL CONNECT RESET;

La colonna ORDER della tabella SALES_TAB è di tipo XMLFILE, quindi la funzione UDF Content() richiama i dati da un server file e li memorizza in un indicatore di posizione CLOB.

Content(): richiamo da XMLVARCHAR in un server file

Scopo

Richiama il contenuto XML memorizzato come tipo XMLVARCHAR e lo memorizza in un server file esterno.

Sintassi
XMLVARCHAR in un server file esterno
>>-Content--(--xmlobj--,--filename--)--------------------------><
 

Importante: se un file con il nome specificato esiste già, la funzione Content ne sovrascriverà il contenuto.
Nota:

Parametri

Tabella 27. Parametri XMLVarchar in un server file esterno
Parametro Tipo di dati Descrizione
xmlobj XMLVARCHAR Il documento XML.
filename VARCHAR(512) Il nome completo del server file.

Tipo restituzione

VARCHAR(512)

Esempio

Di seguito è riportato un esempio di richiamo del contenuto XML memorizzato come tipo XMLVARCHAR e della relativa memorizzazione in un server file esterno.

CREATE table app1 (id int NOT NULL, order db2xml.XMLVarchar);
INSERT into app1 values (1, '<?xml version="1.0"?>
   <!DOCTYPE SYSTEM c:\dxx\samples\dtd\getstart.dtd"->
     <Order key="1">
        <Customer>
          <Name>American Motors</Name>
          <Email>parts@am.com</Email> 
        </Customer>
        <Part color="black">
          <key>68</key>
          <Quantity>36</Quantity>
          <ExtendedPrice>34850.16</ExtendedPrice>
          <Tax>6.000000e-02</Tax>
          <Shipment>
              <ShipDate>1998-08-19</ShipDate>
              <ShipMode>AIR </ShipMode>
          </Shipment>
          <Shipment>
              <ShipDate>1998-08-19</ShipDate>
              <ShipMode>BOAT </ShipMode>
          </Shipment>
     </Order>');
 
SELECT db2xml.Content(order, 'c:\dxx\samples\cmd\getstart_.dad') 
  from app1 where ID=1;

Content(): richiamo da XMLCLOB in un server file esterno

Scopo

Richiama il contenuto XML memorizzato come tipo XMLCLOB e lo memorizza in un server file esterno.

Sintassi
XMLCLOB in un server file esterno
>>-Content--(--xmlobj--,--filename--)--------------------------><
 

Importante: se un file con il nome specificato esiste già, la funzione Content ne sovrascriverà il contenuto.

Parametri

Tabella 28. Parametri XMLCLOB in un server file esterno
Parametro Tipo di dati Descrizione
xmlobj XMLCLOB come LOCATOR Il documento XML.
filename VARCHAR(512) Il nome completo del server file.

Tipo restituzione

VARCHAR(512)

Esempio

Di seguito è riportato un esempio di richiamo del contenuto XML memorizzato come XMLCLOB e della relativa memorizzazione in un server file esterno.

CREATE table app1 (id int NOT NULL, order db2xml.XMLCLOB not logged);
 
INSERT into app1 values (1, '<?xml version="1.0"?>
  <!DOCTYPE SYSTEM c:\dxx\samples\dtd\getstart.dtd"->
    <Order key="1">
      <Customer>
          <Name>American Motors</Name>
          <Email>parts@am.com</Email> 
      </Customer>
      <Part color="black">
          <key>68</key>
          <Quantity>36</Quantity>
          <ExtendedPrice>34850.16</ExtendedPrice>
          <Tax>6.000000e-02</Tax>
          <Shipment>
              <ShipDate>1998-08-19</ShipDate>
              <ShipMode>AIR </ShipMode>
          </Shipment>
          <Shipment>
              <ShipDate>1998-08-19</ShipDate>
              <ShipMode>BOAT </ShipMode>
          </Shipment>
    </Order>');
 
SELECT db2xml.Content(order, 'c:\dxx\samples\cmd\getstart.xml') 
	from app1 where ID=1;


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