Bonjour,
Ce problème doit être déjà résolu sur le forum mais je n'arrive pas à tomber dessus.
Je reçois un fichier XML pour lequel je dois insérer les données dans une table oracle. Je ne veux pas insérer le fichier entier dans une variable CLOB de ma table.
Nous disposons de 2 procédures.
1) Une qui prend le fichier et le transforme en CLOB par un2) Une qui fait l'insertion dans la table en appliquant une transformation en XSL
Code : Sélectionner tout - Visualiser dans une fenêtre à part DBMS_LOB.LOADFROMFILE(VLOBD, V_FICHIER, DBMS_LOB.LOBMAXSIZE);D'après ce que j'aurais compris par mes lectures, un formatage est appliqué en bonne et due forme du XML en XSL avant d'insérer les données dans la table dont le nom est contenu dans V_INSCTX.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DBMS_XMLSTORE.INSERTXML(V_INSCTX,XMLTYPE.TRANSFORM(V_XML_IN , V_XSL_IN))
Moi je reçois juste le fichier XML. Je connais les champs que je dois insérer dans ma table. Je suppose qu'il faut maintenant que j'écrive un XSL en y spécifiant mes noms de colonnes. Etant débutant, mes procédures se plantent car mon XSL n'est pas bon.
Quelqu'un pourrait-il me donner un exemple XSL d'une table TOTO comportant 3 champs Identifiant, Nom et Prénom ?
Je me perds avec les for each
J'ai qque chose de ce genre :
Merci,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <ROWSET> <xsl:for-each select="TOTO"> <ROW> <ID_DOSSIER> <xsl:value-of select="id_dossier" /> </ID_DOSSIER> <NOM> <xsl:value-of select="NOM" /> </NOM> <PRENOM> <xsl:value-of select="PRENOM" /> </PRENOM> </ROW> </xsl:for-each> </ROWSET> </xsl:template> </xsl:stylesheet>
Partager