Objectif
La procédure mémorisée dxxShredXML() est appariée à la procédure mémorisée dxxGenXML(). Pour que dxxShredXML() puisse s'exécuter, le fichier DAD doit indiquer des tables existantes, ainsi que des colonnes et des types de données cohérents avec celles-ci. Pour la procédure mémorisée dxxShredXML(), la relation clé primaire - clé associée entre les tables de jointure, créée par l'Extension XML lors de l'activation de la collection, n'est pas nécessaire. Cependant, les colonnes de condition de jointure indiquées dans le noeud RDB du noeud d'élément racine doivent exister dans les tables.
dxxShredXML(CLOB(100K) DAD, /* input */ CLOB(1M) xmlobj, /* input */ long returnCode, /* output */ varchar(1024) returnMsg) /* output */
Paramètres
Tableau 48. Paramètres dxxShredXML()
Paramètre | Description | Paramètre IN/OUT |
---|---|---|
DAD | Objet CLOB contenant le fichier DAD. | IN |
xmlobj | Objet document XML de type XMLCLOB. | IN |
returnCode | Code retour renvoyé par la procédure mémorisée. | OUT |
returnMsg | Message renvoyé en cas d'erreur. | OUT |
Exemples
Voici un exemple d'appel de la procédure dxxShredXML().
#include "dxx.h" #include "dxxrc.h" EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; SQL TYPE is CLOB dad; /* DAD*/ SQL TYPE is CLOB_FILE dadFile; /* DAD file*/ SQL TYPE is CLOB xmlDoc; /* input XML document */ SQL TYPE is CLOB_FILE xmlFile; /* input XMLfile */ long returnCode; /* error code */ char returnMsg[1024]; /* error message text */ short dad_ind; short xmlDoc_ind; short returnCode_ind; short returnMsg_ind; EXEC SQL END DECLARE SECTION; /* initialize host variable and indicators */ strcpy(dadFile.name,"c:\dxx\samples\dad\getstart_xcollection.dad"); dadFile.name_length=strlen("c:\dxx\samples\dad\getstart_xcollection.dad"); dadFile.file_option=SQL_FILE_READ; strcpy(xmlFile.name,"c:\dxx\samples\cmd\getstart.xml "); xmlFile.name_length=strlen("c:\dxx\samples\cmd\getstart.xml "); xmlFile.file_option=SQL_FILE_READ; SQL EXEC VALUES (:dadFile) INTO :dad; SQL EXEC VALUES (:xmlFile) INTO :xmlDoc; returnCode = 0; returnMsg[0] = '\0'; dad_ind = 0; xmlDoc_ind = 0; returnCode_ind = -1; returnMsg_ind = -1; /* Call the store procedure */ EXEC SQL CALL db2xml!dxxShredXML(:dad:dad_ind; :xmlDoc:xmlDoc_ind, :returnCode:returnCode_ind,:returnMsg:returnMsg_ind);