IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Extensions PostgreSQL Discussion :

Problème avec schéma autre que public


Sujet :

Extensions PostgreSQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Problème avec schéma autre que public
    Bonjour

    J'utilise l'extension postgis de postgresql mais j'ai un problème depuis que je travaille avec un autre schéma que public, celui par défaut.
    Lors des créations de tables et insertions avec mon_schema.ma_table sans utiliser les fonctions postgis tout se passe très bien.
    Par contre, dans une table nommée track, j'ai une colonne géométrique trk_ne donc de type mon_schema.geometry et lorsque je tente une insertion dans cette table j'ai une erreur à cause de la colonne géométrique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO mon_schema.track VALUES (..., ST_SetSRID(ST_MakePoint(3.2198183,50.4165317), 4326),...);
    ERROR: column "trk_ne" is of type kinomap.geometry but expression is of type geometry
    LINE 2: ...1,'','0','1',0.0,0.0,0.0,0,3,'0','0','0',46,1,0,2,ST_SetSRID...
    ^
    HINT: You will need to rewrite or cast the expression.

    ********** Erreur **********

    ERROR: column "trk_ne" is of type kinomap.geometry but expression is of type geometry

    Pouvez-vous m'aider svp??

    Merci

  2. #2
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Bonjour,

    Je peux me tromper, mais il semblerait plutôt qu'il s'agisse d'un souci de CAST de données plutôt qu'un souci de schéma... Mais je ne connaît pas le type de données kinomap...

    Pouvez-vous faire un
    sur la table track de votre schéma et sur votre table de test dans le schéma public?

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Pardon , j'ai oublié de vous préciser que kinomap est mon schéma.

    La commande \d+ tablename je le tape où?

  4. #4
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Citation Envoyé par sarah59 Voir le message
    La commande \d+ tablename je le tape où?
    Sous psql.
    A bove ante, ab asino retro, a stulto undique caveto

  5. #5
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    J'ai trouvé un commentaire ici http://blog.daniel-azuma.com/archives/69 qui explique qu'il faut bien setter le search path du user qui effectue la requête sous risque d'échouer avec l'erreur qu'on vient de voir.

    Il faudrait donc que vous fassiez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE votreBase SET search_path = ‘$user’,'kinomap’,'public’;
    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    \d+ table sur les 2 tables me donne le même résultat hormis le nom de la table évidemment kinomap.track et public.track.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE votreBase SET search_path = ‘$user’,'kinomap’,'public’;
    J'avais déjà essayé mais ça ne marche pas non plus.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    C'est bon, ça marche avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET search_path = "$user", "kinomap", "public";
    Merci

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

Discussions similaires

  1. Probléme avec une fonction que j'ai créé.
    Par yann123456 dans le forum Langage
    Réponses: 6
    Dernier message: 06/02/2009, 16h05
  2. Réponses: 3
    Dernier message: 01/03/2007, 14h51
  3. Problème avec le prix que je dois appliquer
    Par paradeofphp dans le forum Langage
    Réponses: 3
    Dernier message: 13/12/2006, 11h42
  4. Problèmes avec des nombres... que faire ?
    Par sducos81 dans le forum C++
    Réponses: 6
    Dernier message: 21/07/2005, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo