Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2011, 14h28   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 13
Points : 2
Points : 2
Par défaut Problème d'Opérateur inexistant

Bonjour,
je n'arrive pas à comprendre l'erreur
voilà j'execute cette requête
Code :
SELECT * FROM parcelle003 WHERE pcl_id IN (SELECT pcl_id FROM parcelles_et_departements WHERE dpt_numero='003')
et j'obtiens cette erreur
Citation:
Error: ERREUR: l'opérateur n'existe pas : character varying = integer
Indice*: Aucun opérateur ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
Position*: 40
SQLState: 42883
ErrorCode: 0

Alors je ne sais pas d'où ça vient parce que la sous-requête me retourne bien des tuples.
et on dirait que la position 40 correspond à l'opérateur IN

merci d'avance!!
misseva3105 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 16h23   #2
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
D'après l'erreur il est vraisemblable que parcelle003.pcl_id est de type chaine de caractères alors que parcelles_et_departements.pcl_id est de type entier.
S'ils désignent la même chose, ils devraient avoir le même type.
Si ce n'est pas possible, alors il faut utiliser un CAST pour convertir le type dynamiquement dans la requête.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 16h31   #3
Invité de passage
 
Inscription : octobre 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 13
Points : 2
Points : 2
Ah oui c'est bien ça.
En fait parcelles_et_departements est une vue.

la requête suivante marche bien
Code :
SELECT * FROM parcelles_et_departements WHERE dpt_numero='003' AND pcl_id NOT IN (SELECT DISTINCT cast(pcl_id AS integer) FROM parcelle003)
merci beaucoup
misseva3105 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h53.


 
 
 
 
Partenaires

Hébergement Web