Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Futur Membre du Club
    Inscrit en
    août 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 89
    Points : 18
    Points
    18

    Par défaut Variable geometry dans fonction

    Bonjour,

    J'ai besoin d'utiliser une variable de type geometry dans une fonction.
    Je la déclare :
    Code :
    1
    2
    3
     
    DECLARE
    geom_com geometry;
    Quand j'utilise :
    Code :
    SELECT ... INTO geom_com;
    je récupère très bien ma variable et l'utilise sans soucis.
    Par contre, j'ai besoin d'intégrer directement plusieurs variables dans une requête SQL (dont celle-ci) et je n'y arrive plus :
    J'ai testé :
    Code :
    1
    2
     
    EXECUTE 'SELECT st_intersection(nom_table,'||geom_com||')...';
    et j'obtiens cette erreur :
    Code :
    1
    2
    3
    4
     
    ERREUR: l'opérateur n'est pas UNIQUE : unknown || geometry
    État SQL :42725
    Astuce : N'a pas pu choisir un meilleur candidat pour l'opérateur. Vous devez ajouter une conversion explicite de type.
    J'ai du mal à interpréter le problème ...

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 554
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 554
    Points : 30 029
    Points
    30 029

    Par défaut

    Un type geometry, comme son nom l'indique n'est pas une chaine de caractère. Vous devez donc la transformer en WKT avant de la concaténer.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Futur Membre du Club
    Inscrit en
    août 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 89
    Points : 18
    Points
    18

    Par défaut

    J'ai utilisé la fonction GeomFromText() pour convertir ma variable et cela fonctionne.
    J'ai aussi testé le changement de type de variable (de geometry en text) et cela marche également.

    Merci pour votre réponse !

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 554
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 554
    Points : 30 029
    Points
    30 029

    Par défaut

    GeomFromText() comme CAST AS <type littéral> donne du WKT (Well Known Text).

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •