Bonjour,
J'ai une table contenant des objets correspondant à des pays. Ils ont donc une géométries et un attribut donnant le code du pays ('FR' pour France). J'ai des pays qui sont consitués de 2 objets et je voudrais les fusionner pour n'avoir qu'un seul objet par pays. Dans ce cas, ils ont le même code mais un autre attribut est de valeur différente (rg_id).
J'ai créé une table temporaire contenant le code du pays et le count. J'ai ensuite enlevé les pays qui étaient "bien formés" :
1 2
| CREATE TABLE PAYS_TEMP AS SELECT COUNT(CODE) AS COUNT, CODE FROM PAYS GROUP BY CODE;
DELETE FROM PAYS_TEMP WHERE COUNT < 2; |
J'ai testé une première fonction SDO_AGGR_UNION :
SELECT SDO_AGGR_UNION(MDSYS.SDOAGGRTYPE(a.geom,0.5)) FROM PAYS a WHERE a.CODE IN (SELECT CODE FROM PAYS_TEMP GROUP BY CODE);
J'ai une erreur :
ORA-13000: dimension number is out of range
ORA-06512: at "MDSYS.MD", line 1723
ORA-06512: at "MDSYS.MDERR", line 8
ORA-06512: at "MDSYS.SDO_CONSTRUCT_DIM_ARRAY", line 27
ORA-06512: at "MDSYS.AGGRUNION", line 20
J'ai testé une autre fonction SDO_GEOM.SDO_UNION :
1 2 3 4 5 6
| SELECT SDO_GEOM.SDO_UNION(a.geom,m.diminfo,b.geom,m.diminfo)
FROM PAYS a, PAYS b, USER_SDO_GEOM_METADATA m
WHERE m.table_name='PAYS'
AND m.column_name='GEOM'
AND a.CODE = b.CODE
AND a.RG_ID != b.RG_ID; |
Et là j'ai l'erreur :
ORA13050: unable to construct spatial object
ORA-06512: at "MDSYS.SDO_3GL", line 715
ORA-06512; at "MDSYS.SDO_GEOM", line 2968
Si quelqu'un connaissant cette fonction peut m'aider...
Merci!
WwAvE
Partager