#1 Fri 05 August 2016 17:21
- grego
- Juste Inscrit !
- Date d'inscription: 10 Jan 2008
- Messages: 6
Selection coordonnées début de lignes
Bonjour,
Dans Oracle, je souhaiterais via Sqldeveloper, faire une requête qui peut paraitre simple mais que je n'arrive pas à faire...
J'ai une table AV_GL_ARRETE contenant des lignes et je souhaiterais avoir deux colonnes avec les coordonnées X et Y en WGS84 du point de départ de la ligne.
Je connais une formule permettant de récupérer le champ géométrie avec seulement la coordonnée X, Y de départ :
SELECT
A.id_arrete,
SDO_LRS.GEOM_SEGMENT_START_PT(GEOMETRIE)
FROM AV_GL_ARRETE a ;
Si la donnée était une couche de points la formule serait la suivante :
SELECT
A.id_arrete,
SDO_CS.TRANSFORM(A.GEOMETRIE,8307).SDO_POINT.X,
SDO_CS.TRANSFORM(A.GEOMETRIE,8307).SDO_POINT.Y
FROM AV_GL_ARRETE a ;
L'idéal serait d'imbriquer l'une dans l'autre mais cela dépasse mes compétences en oracle...
Si vous avez une idée, ça m'éviterais de tourner en rond.
Merci d'avance pour vos réponses
Bonne soirée et bon week-end à tous
Hors ligne
#2 Thu 01 September 2016 11:09
- hichamfstgm
- Participant occasionnel
- Lieu: Goulmima
- Date d'inscription: 11 May 2010
- Messages: 48
Re: Selection coordonnées début de lignes
Bonjour
Je connais une formule permettant de récupérer le champ géométrie avec seulement la coordonnée X, Y de départ :
SELECT
A.id_arrete,
SDO_LRS.GEOM_SEGMENT_START_PT(GEOMETRIE)
FROM AV_GL_ARRETE a ;
A tester ceci
SELECT A.id_arrete, SDE.ST_GEOMETRY (SDE.ST_ASTEXT (SDE.ST_STARTPOINT (GEOMETRIE)),8307)
AS START_POINT
FROM AV_GL_ARRETE
Hicham
CDT
Hors ligne
#3 Wed 14 September 2016 15:48
- grego
- Juste Inscrit !
- Date d'inscription: 10 Jan 2008
- Messages: 6
Re: Selection coordonnées début de lignes
Bonjour,
Merci pour votre réponse.
J'ai essayé la formule mais j'ai eu l'erreur suivante :
ORA-02315: nombre d'arguments non valide pour constructeur par défaut
02315. 00000 - "incorrect number of arguments for default constructor"
*Cause: The number of arguments specified for the default constructor
doesn't match the number of attributes of the object type.
*Action: Specify the correct number of arguments for the default
constructor and retry the operation.
Erreur à la ligne 1, colonne 20
Sigistement
Hors ligne
#4 Wed 14 September 2016 16:42
- grego
- Juste Inscrit !
- Date d'inscription: 10 Jan 2008
- Messages: 6
Re: Selection coordonnées début de lignes
Bonjour,
J'ai imbriqué les deux requêtes comme ceci :
SELECT
A.id_arrete,
SDO_CS.TRANSFORM((SELECT SDO_LRS.GEOM_SEGMENT_START_PT(GEOMETRIE) FROM AV_GL_ARRETE where a.id_av_gl_arrete=AV_GL_ARRETE.id_av_gl_arrete),8307).SDO_POINT.X as X,
SDO_CS.TRANSFORM((SELECT SDO_LRS.GEOM_SEGMENT_START_PT(GEOMETRIE) FROM AV_GL_ARRETE where a.id_av_gl_arrete=AV_GL_ARRETE.id_av_gl_arrete),8307).SDO_POINT.Y as Y
FROM AV_GL_ARRETE a ;
Mais ça renvoi des lignes nulles pour X et Y
J'ai regardé l'objet géométrique renvoyé par la première requête GEOM_SEGMENT_START_PT(GEOMETRIE) ça renvoit bien un champ géométrie avec un seul point
ex : MDSYS.SDO_GEOMETRY(2001,2154,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1,1),MDSYS.SDO_ORDINATE_ARRAY(842885.223464376,6370456.00139392))
Sinon j'ai essayé le SDE.ST_ASTEXT mais je ne pense pas que cela fonctionne correctement dans Oracle
Merci
Bonne soirée
Hors ligne