Tâche en cours :
L'Extension XML comporte deux méthodes d'extraction des données :
Tableau 12. Fonctions de transtypage par défaut de l'Extension XML
Transtypage utilisé dans la clause SELECT | Type de données renvoyé | Description |
---|---|---|
varchar(XMLVARCHAR) | VARCHAR | Document XML dans VARCHAR |
clob(XMLCLOB) | CLOB | Document XML dans CLOB |
varchar(XMLFile) | VARCHAR | Nom de fichier XML dans VARCHAR |
EXEC SQL SELECT db2xml.varchar(order) from sales_tab
Par exemple, vous pouvez stocker votre document XML en fichier XMLFILE et l'utiliser dans la mémoire interne. Dans ce cas, vous avez recours à la fonction UDF Content() qui accepte des données d'entrée de type XMLFILE et renvoie un objet CLOB.
La fonction UDF Content() offre deux modes d'extraction, selon le type de données indiqué :
XMLFILE vers CLOB : Extrait des données d'un fichier et les exporte vers un releveur de coordonnées CLOB.
Content(xmlobj XMLFile)
Type XML vers fichier externe : Extrait le contenu XML stocké comme type XML et l'exporte vers un fichier externe.
Content(xmlobj XML type, filename varchar(512))
Où :
Dans l'exemple ci-dessous, un petit segment de programme C comportant des instructions SQL imbriquées illustre la procédure d'extraction d'un document XML d'un fichier vers la mémoire interne. Cet exemple suppose que la colonne BOOK est de type XMLFILE.
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 c1 CURSOR FOR SELECT Content(order) from sales_tab EXEC SQL OPEN c1; do { EXEC SQL FETCH c1 INTO :xml_buff; if (SQLCODE != 0) { break; } else { /* do whatever you need to do with the XML doc in buffer */ } } EXEC SQL CLOSE c1; EXEC SQL CONNECT RESET;