Salut,

Je souhaiterais pouvoir récupérer tous les enregistrements d'une table dont la géométrie est incluse dans une géométrie donnée (bounding box).

Ma table contient un champ de type sdo_geometry.

Voici les différentes requêtes que j'ai essayé pour récupérer des enregistrements :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT count(*) as TOUCH FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=TOUCH') = 'TRUE';
SELECT count(*) as OVERLAPBDYDISJOINT FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=OVERLAPBDYDISJOINT') = 'TRUE';
SELECT count(*) as OVERLAPBDYINTERSECT FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=OVERLAPBDYINTERSECT') = 'TRUE';
SELECT count(*) as EQUAL FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=EQUAL') = 'TRUE';
SELECT count(*) as INSIDE FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=INSIDE') = 'TRUE';
SELECT count(*) as COVEREDBY FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=COVEREDBY') = 'TRUE';
SELECT count(*) as CONTAINS FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=CONTAINS') = 'TRUE';
SELECT count(*) as COVERS FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=COVERS') = 'TRUE';
SELECT count(*) as ANYINTERACT FROM SCHEMA.TABLE WHERE SDO_RELATE(COL_GEOMETRY, SDO_GEOMETRY('POLYGON((-170 80,170 80,170 -80,-170 -80,-170 80))', 8307),'mask=ANYINTERACT') = 'TRUE';
Les points présents dans la table sont tous contenus dans le polygon mais rien n'est renvoyé.

Est-ce que quelqu'un aurait une solution à ce problème.
Merci d'avance.