Bonjour,

J'aimerai récupérer les éléments d'une requête qui me renvoie une réponse de type XMLELEMENT.

Voici ma requête :

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
23
24
25
26
27
28
29
SELECT XMLELEMENT
       ("XSCHEMA",
        XMLAGG
           (XMLELEMENT
               ("XTABLE",
                xmlattributes (object_name AS "NAME",
                               object_type AS "TYPE"),
                (SELECT XMLAGG
                           (XMLELEMENT
                               ("XCOLUMN",
                                xmlattributes
                                            (column_name AS "NAME",
                                             data_type AS "TYPE",
                                             data_length AS "LENGTH",
                                             data_precision AS "PRECISION",
                                             data_scale AS "SCALE",
                                             nullable,
                                             column_id AS "INDEX"
                                            )
                               )
                           )
                   FROM user_tab_cols
                  WHERE user_tab_cols.table_name = user_objects.object_name
                  AND user_tab_cols.column_name not like 'SYS%$')
               )
           )
       ) AS xschema
FROM user_objects
WHERE user_objects.object_type IN ('TABLE') ;
je souhaite mapper l'element XSCHEMA (en clé) et mettre XTABLE, NAME, TYPE en attribut.

je souhaite ensuite mapper l'element XTABLE (en clé) et mettre XCOLUMN, NAME, TYPE, LENGHT, NULLABLE en attribut.

Je ne sais pas trop comment récupérer les éléments de ma requête.

Voici comment se présente le résultat de celle-ci :

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
<XSCHEMA>
  <XTABLE NAME="REFEDITION_REFTYPEEDITION" TYPE="TABLE">
    <XCOLUMN NAME="IDTYPEEDITION" TYPE="NUMBER" LENGTH="22" PRECISION="10" SCALE="0" NULLABLE="N" INDEX="1"></XCOLUMN>
    <XCOLUMN NAME="IDEDITION" TYPE="NUMBER" LENGTH="22" PRECISION="10" SCALE="0" NULLABLE="N" INDEX="2"></XCOLUMN>
  </XTABLE>
  <XTABLE NAME="REFETATCADREJURID" TYPE="TABLE">
    <XCOLUMN NAME="IDETATCADREJURID" TYPE="NUMBER" LENGTH="22" PRECISION="10" SCALE="0" NULLABLE="N" INDEX="1"></XCOLUMN>
    <XCOLUMN NAME="CODE" TYPE="VARCHAR2" LENGTH="10" NULLABLE="N" INDEX="2"></XCOLUMN>
    <XCOLUMN NAME="LIBELLE" TYPE="VARCHAR2" LENGTH="100" NULLABLE="N" INDEX="3"></XCOLUMN>
    <XCOLUMN NAME="DATEDEBUT" TYPE="DATE" LENGTH="7" NULLABLE="N" INDEX="4"></XCOLUMN>
    <XCOLUMN NAME="DATEFIN" TYPE="DATE" LENGTH="7" NULLABLE="Y" INDEX="5"></XCOLUMN>
  </XTABLE>
  <XTABLE NAME="REFETATCONTROLE" TYPE="TABLE">
    <XCOLUMN NAME="IDETATCONTROLE" TYPE="NUMBER" LENGTH="22" PRECISION="10" SCALE="0" NULLABLE="N" INDEX="1"></XCOLUMN>
    <XCOLUMN NAME="CODE" TYPE="VARCHAR2" LENGTH="10" NULLABLE="N" INDEX="2"></XCOLUMN>
    <XCOLUMN NAME="LIBELLE" TYPE="VARCHAR2" LENGTH="100" NULLABLE="N" INDEX="3"></XCOLUMN>
    <XCOLUMN NAME="DATEDEBUT" TYPE="DATE" LENGTH="7" NULLABLE="N" INDEX="4"></XCOLUMN>
    <XCOLUMN NAME="DATEFIN" TYPE="DATE" LENGTH="7" NULLABLE="Y" INDEX="5"></XCOLUMN>
  </XTABLE>
[...]
</XSCHEMA>
j'espère être clair....

Merci pour vos réponses.

Cdt,

Lynk..