Bonjour,
J'ai une requete qui fonctionne comme attendue, mais lorsque je la mets en format XML, j'ai une erreur qui apparait.
Je pars de cette requète :Mis à la sauce XML, cela donne ça :
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 SELECT NON_CTL_AREA_NAME , (SELECT min(LOWER_LEVEL) FROM R_NCA_VO r, VOLUME v WHERE r.AIRSPACE_ENV_NAME=c.AIRSPACE_ENV_NAME and v.AIRSPACE_ENV_NAME=r.AIRSPACE_ENV_NAME and r.NON_CTL_AREA_NAME=gl.NON_CTL_AREA_NAME#N_C_AREA and v.VOLUME_NAME=r.VOLUME_NAME) FROM N_C_AREA c,GRAPHICAL_LINE_SURF gl WHERE gl.AIRSPACE_ENV_NAME = c.AIRSPACE_ENV_NAME and gl.NON_CTL_AREA_NAME#N_C_AREA = c.NON_CTL_AREA_NAME and c.AIRSPACE_ENV_NAME = 'MAASNEW'; NON_CTL_AREA ------------ (SELECTMIN(LOWER_LEVEL)FROMR_NCA_VOR,VOLUMEVWHERER.AIRSPACE_ENV_NAME=C.AIRSPACE_ -------------------------------------------------------------------------------- NORB 195Par contre si j'enlève le min(LOWER_LEVEL), la requète s'exécute :
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 SELECT XMLPARSE(document XMLSERIALIZE(document( SELECT XMLELEMENT("ReservedAreaList", (SELECT XMLAgg( XMLELEMENT("ReservedArea", XMLELEMENT("ReservedAreaName", NON_CTL_AREA_NAME ), (SELECT XMLAgg( XMLELEMENT("MinFlightLevel",min(LOWER_LEVEL))) FROM R_NCA_VO r, VOLUME v WHERE r.AIRSPACE_ENV_NAME=c.AIRSPACE_ENV_NAME and v.AIRSPACE_ENV_NAME=r.AIRSPACE_ENV_NAME and r.NON_CTL_AREA_NAME=gl.NON_CTL_AREA_NAME#N_C_AREA and v.VOLUME_NAME=r.VOLUME_NAME))) FROM N_C_AREA c,GRAPHICAL_LINE_SURF gl WHERE gl.AIRSPACE_ENV_NAME = c.AIRSPACE_ENV_NAME and gl.NON_CTL_AREA_NAME#N_C_AREA = c.NON_CTL_AREA_NAME and c.AIRSPACE_ENV_NAME = 'MAASNEW') ) from dual ))) from dual;Il ne reste plus qu'à trouver un moyen pour n'avoir que la ligne avec 195 ! Mais cette différence de comportement m'est incompréhensible.
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 SELECT XMLPARSE(document XMLSERIALIZE(document( SELECT XMLELEMENT("ReservedAreaList", (SELECT XMLAgg( XMLELEMENT("ReservedArea", XMLELEMENT("ReservedAreaName", NON_CTL_AREA_NAME ), (SELECT XMLAgg( XMLELEMENT("MinFlightLevel",LOWER_LEVEL)) FROM R_NCA_VO r, VOLUME v WHERE r.AIRSPACE_ENV_NAME=c.AIRSPACE_ENV_NAME and v.AIRSPACE_ENV_NAME=r.AIRSPACE_ENV_NAME and r.NON_CTL_AREA_NAME=gl.NON_CTL_AREA_NAME#N_C_AREA and v.VOLUME_NAME=r.VOLUME_NAME))) FROM N_C_AREA c,GRAPHICAL_LINE_SURF gl WHERE gl.AIRSPACE_ENV_NAME = c.AIRSPACE_ENV_NAME and gl.NON_CTL_AREA_NAME#N_C_AREA = c.NON_CTL_AREA_NAME and c.AIRSPACE_ENV_NAME = 'MAASNEW') ) from dual ))) from dual; <ReservedAreaList> <ReservedArea> <ReservedAreaName>NORB</ReservedAreaName> <MinFlightLevel>245</MinFlightLevel> <MinFlightLevel>195</MinFlightLevel> </ReservedArea> </ReservedArea
Au cas ou mes tables :Merci de votre aide
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
30 SQL> desc graphical_line_surf Name Null? Type ----------------------------------------- -------- ---------------------------- AIRSPACE_ENV_NAME NOT NULL VARCHAR2(20) NAME NOT NULL VARCHAR2(6) AIRSPACE_ENV_NAME#N_C_AREA VARCHAR2(20) NON_CTL_AREA_NAME#N_C_AREA VARCHAR2(12) SQL> desc n_c_area Name Null? Type ----------------------------------------- -------- ---------------------------- AIRSPACE_ENV_NAME NOT NULL VARCHAR2(20) NON_CTL_AREA_NAME NOT NULL VARCHAR2(12) SQL> desc r_nca_vo Name Null? Type ----------------------------------------- -------- ---------------------------- AIRSPACE_ENV_NAME NOT NULL VARCHAR2(20) NON_CTL_AREA_NAME NOT NULL VARCHAR2(12) AIRSPACE_ENV_NAME_A NOT NULL VARCHAR2(20) VOLUME_NAME NOT NULL VARCHAR2(20) ORDER_NUMBER NUMBER(38) SQL> desc volume Name Null? Type ----------------------------------------- -------- ---------------------------- AIRSPACE_ENV_NAME NOT NULL VARCHAR2(20) VOLUME_NAME NOT NULL VARCHAR2(20) LOWER_LEVEL NOT NULL NUMBER(38) UPPER_LEVEL NOT NULL NUMBER(38)
Partager