L'Extension XML permet d'insérer dans une colonne XML des documents XML en l'état. Si vous définissez des tables annexes, l'Extension XML les met à jour automatiquement. Lorsque vous stockez directement un document XML, l'Extension XML mémorise son type de base en tant que type XML.
Tâche en cours :
L'Extension XML comporte deux méthodes de stockage des documents XML
: les fonctions de transtypage par défaut et les fonctions UDF
d'archivage. Le Tableau 8 indique la pertinence d'utilisation de chaque
méthode.
Tableau 8. Fonctions d'archivage de l'Extension XML
Type de base | Type dans DB2 | ||
---|---|---|---|
XMLVARCHAR | XMLCLOB | XMLFILE | |
VARCHAR | XMLVARCHAR() | Non applicable | XMLFileFromVarchar() |
CLOB | Non applicable | XMLCLOB() | XMLFileFromCLOB() |
FILE | XMLVarcharFromFile() | XMLCLOBFromFile() | XMLFILE |
Tableau 9. Fonctions de transtypage par défaut de l'Extension XML
Transtypage utilisé dans la clause SELECT | Type de données renvoyé | Description |
---|---|---|
XMLVARCHAR(VARCHAR) | XMLVARCHAR | Données d'entrée de la mémoire tampon VARCHAR |
XMLCLOB(CLOB) | XMLCLOB | Données d'entrée de la mémoire tampon CLOB ou releveur de coordonnées CLOB |
XMLFILE(VARCHAR) | XMLFILE | Nom du fichier de stockage uniquement |
Exemple : L'instruction ci-après insère dans le type XMLVARCHAR un type VARCHAR transtypé :
INSERT INTO sales_tab VALUES('123456', 'Sriram Srinivasan', db2xml.XMLVarchar(:xml_buff))
Le Tableau 10 répertorie les fonctions d'archivage fournies par
l'Extension XML.
Tableau 10. Fonctions UDF d'archivage de l'Extension XML
Fonction UDF d'archivage | Type de données renvoyé | Description |
---|---|---|
XMLVarcharFromFile() | XMLVARCHAR | Lit un document XML à partir d'un fichier de serveur et renvoie une valeur de type XMLVARCHAR. |
XMLCLOBFromFile() | XMLCLOB | Lit un document XML à partir d'un fichier de serveur et renvoie une valeur de type XMLCLOB. |
XMLFileFromVarchar() | XMLFILE | Lit un document XML dans la mémoire en tant que VARCHAR, l'écrit dans un fichier externe et renvoie une valeur de type XMLFILE correspondant au nom du fichier. |
XMLFileFromCLOB() | XMLFILE | Lit un document XML dans la mémoire en tant que CLOB ou releveur de coordonnées CLOB, l'écrit dans un fichier externe et renvoie une valeur de type XMLFILE correspondant au nom du fichier. |
Exemple : L'instruction ci-après stocke un enregistrement en tant qu'objet XMLCLOB dans une table XML à l'aide de la fonction XMLCLOBFromFile().
EXEC SQL INSERT INTO sales_tab(ID, NAME, ORDER) VALUES( '1234', 'Sriram Srinivasan, XMLCLOBFromFile('c:\dxx\samples\cmd\getstart.xml'))
Dans l'exemple précédent, l'objet XML est importé du fichier c:\dxx\samples\cmd\getstart.xml vers la colonne ORDER de la table SALES_TAB.