Vous n'êtes pas identifié(e).

#1 13/01/2011 14:19:43

mentat
Membre

Erreur avec la clause "AS"

Bonjour.

Quand j'effectue une requete dans microsoft query avec le driver ODBC de postgresql, si j'utilise une clause as,
j'obtiens un message d'erreur.

Exemple:
select code as groupe_vendeurs
from groupes_vendeurs

=>ERREUR: Erreur de syntaxe sur ou près de 'groupe_vendeurs';
Error while executing the query

Alors que la requête passe bien avec pgAdmin.
Si j'enlève "as groupe_vendeurs" cela passe bien.

Postgresql 8.4, windows 2003 server

J'ai cherché un peu sur internet, mais comme le terme as sert beaucoup, je ne trouve rien de bien probant.

Merci d'avance à ceux qui se pencheront sur mon problème.
Crodialement

Hors ligne

#2 13/01/2011 15:09:06

gleu
Administrateur

Re : Erreur avec la clause "AS"

Quelle est la requête affichée dans les logs de PostgreSQL ? parce que peut-être que microsoft query ou le connecteur ODBC la modifie. Il n'y a aucune raison pour qu'elle ne passe pas si elle fonctionne dans pgAdmin.


Guillaume.

Hors ligne

#3 13/01/2011 15:31:50

Marc Cousin
Membre

Re : Erreur avec la clause "AS"

microsoft query bousille les requêtes. j'ai déjà eu la chance de pouvoir le vérifier.


Marc.

Hors ligne

#4 13/01/2011 17:29:39

mentat
Membre

Re : Erreur avec la clause "AS"

Le log dit (merci, j'avais pas pensé à regarder là...) :
2011-01-13 13:02:49 CET ERREUR:  erreur de syntaxe sur ou près de « 'groupe_vendeurs' » au caractère 33
2011-01-13 13:02:49 CET INSTRUCTION :  SELECT groupes_vendeurs.code AS 'groupe_vendeurs'
    FROM public.groupes_vendeurs groupes_vendeurs

Bon, comment on peut lui dire d'utiliser " au lieu de ' ?

Dernière modification par mentat (13/01/2011 18:39:45)

Hors ligne

#5 13/01/2011 17:34:38

gleu
Administrateur

Re : Erreur avec la clause "AS"

Pas de guillemets simples pour les noms de colonne et leur alias. Les guillemets doubles sont possibles par contre.


Guillaume.

Hors ligne

#6 13/01/2011 18:42:12

mentat
Membre

Re : Erreur avec la clause "AS"

Je suis d'accord, sauf que ma requête initiale c'est :
select code as groupe_vendeurs
from groupes_vendeurs

C'est microsoft query ou le driver ODBC qui ajoute tout seul des '

Hors ligne

#7 14/01/2011 09:05:18

jmax
Membre

Re : Erreur avec la clause "AS"

sur ce que j'ai déjà vu, le driver ODBC retransmet tel quel et n'a pas de connaissance sémantique sur la requête

Hors ligne

#8 14/01/2011 10:40:18

gleu
Administrateur

Re : Erreur avec la clause "AS"

Le plus simple serait d'essayer avec un autre outil qui utilise une connexion ODBC. Par exemple http://www.sqlmaestro.com/products/anysql/maestro/, http://www.razorsql.com/ ou http://www.risetobloome.com/Page_1_S.aspx?ITEM=1756. Je ne connais que le premier qui est très bien. Il en existe une version gratuite qui devrait permettre de vérifier d'où vient le problème (du pilote ODBC ou de l'application (Microsoft Query)).


Guillaume.

Hors ligne

#9 14/01/2011 15:44:02

Marc Cousin
Membre

Re : Erreur avec la clause "AS"

Oui, c'est un bug spécifique de MS-Query. J'ai déjà eu la chance d'en profiter un jour, en liant un tableau excel et une base postgres.


Marc.

Hors ligne

#10 24/01/2011 10:30:56

mentat
Membre

Re : Erreur avec la clause "AS"

Ok, c'est un bug ms-query. Donc il n'y a pas de solution ?

Le problème c'est que ms-query est l'outil intégré à Excel pour récupérer des données de BDD et qu'apparemment on ne peut le remplacer par un outil plus moderne (fonctionnel ou mieux développé...).
On doit bientôt migrer vers Office 2010, mais toujours avec ms-query...

Hors ligne

#11 24/01/2011 10:41:58

gleu
Administrateur

Re : Erreur avec la clause "AS"

Non. Pour être franc, je ne vois pas bien ce qu'on pourrait faire.


Guillaume.

Hors ligne

Pied de page des forums