PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 01/03/2024 02:36:06

Erreur de syntaxe impossible à expliquer

Bonjour La Team,

Je me permets de revenir vers vous avec une nouvelle question à propos de l'erreur de syntaxe inexpliquée sur les Expressions régulières(REGEXP). Margé le fait que je la saisisse comme dans les cours que je suis, je reçois ce même message d'erreur bloquant:
Mon code:
SELECT*
FROM "DLC".clients
WHERE numerotelephone REGEXP '^05'|'04$';

Message d'erreur:

ERROR:  erreur de syntaxe sur ou près de « REGEXP »
LINE 3: WHERE numerotelephone REGEXP '^05'|'04$';
                              ^

ERREUR:  erreur de syntaxe sur ou près de « REGEXP »
SQL state: 42601
Character: 50

S'il vous plaît pourriez-vous m'aider à comprendre l'origine du problème?

Merci d'avance pour l'aide.

Bien à vous,

Stéphane

Hors ligne

#2 01/03/2024 04:30:12

rjuju
Administrateur

Re : Erreur de syntaxe impossible à expliquer

Bonjour,


Peut-être avez vous mal saisi les cours?  Il vous manque l'opérateur d'expression régulière, et j'imagine que "REGEXP" devait à la base être substitué par l'expression elle même.


Pour résumer; vous devriez saisir :

WHERE numerotelephone ~ '^05'|'04$';

Voir https://www.postgresql.org/docs/current … SIX-REGEXP pour la documentation.

Hors ligne

#3 01/03/2024 13:12:57

Re : Erreur de syntaxe impossible à expliquer

Bonjour Julien,

Merci pour votre réponse. Je ne comprends pas  bien ce que vous voulez dire. Dans le code que j'envoie dans ma demande, il y a bien l'opérateur d'expression régulière (REGEXP). Et je fais exactement ce que je vois passer dans le cours en ligne que je suis. Et malgré cela, l'expression ne réagit pas et ne change même pas de couleur lorsque je la saisis. Du coup je ne comprends pas où ça bloque.
Merci bien,

Stephane

Hors ligne

#4 01/03/2024 17:04:12

rjuju
Administrateur

Re : Erreur de syntaxe impossible à expliquer

REGEXP n'est pas un operateur, du moins pas sur postgres (aucune idee sur d'autres moteurs).  Soit votre cours est fait pour autre chose que postgres soit votre dis de remplacer REGEXP par quelquechose d'autre.

Hors ligne

#5 01/03/2024 17:43:25

Re : Erreur de syntaxe impossible à expliquer

Re bonjour à tous,
Décidément, je ne sais pas pourquoi la clause REGEXP ne fonctionne dans mon code. J'ai toujours cette erreur de syntaxe qui s'affiche et pourtant je reprends exactement un code du cours. Je reprends tous les éléments sans erreur mais j'ai toujours la même erreur qui revient. Comme si j'écrivais mal cette clause. Je précise au passage que j'utilise la version 16 de pgAdmin4. Rien qu'en écrivant la clause, la couleur de la clause ne change même pas comme si cette clause n'était pas reconnue dans cette version de l'application. Voici mon code et l'erreur signalée.
SELECT*
FROM "DLC".clients
WHERE nom REGEXP '^D|E$';

ERROR:  erreur de syntaxe sur ou près de « REGEXP »
LINE 3: WHERE nom REGEXP '^D|E$';
                  ^

ERREUR:  erreur de syntaxe sur ou près de « REGEXP »
SQL state: 42601
Character: 38
S'il vous plaît je sollicite vos lumières.
Merci d'avance pour votre bienveillante aide.
Stephane

Hors ligne

#6 01/03/2024 21:48:18

gleu
Administrateur

Re : Erreur de syntaxe impossible à expliquer

Julien vous a déjà répondu sur ce point. REGEXP n'est pas un opérateur. Soit votre support de cours contient une erreur, soit vous n'avez pas compris son contenu. L'opérateur habituel pour les expressions rationnelles est le tilde ~, ce qui donnerait pour votre exemple :

SELECT*
FROM "DLC".clients
WHERE nom ~ '^D|E$';

Guillaume.

Hors ligne

#7 04/03/2024 11:37:43

Re : Erreur de syntaxe impossible à expliquer

Bonjour Guillaume,

Merci bcp pour votre aide. Je viens de tester votre éclairage, et ça marche! J'étais presque découragé. Je ne comprenais pourquoi l'expression régulière(REGEXP) ne fonctionnait pas sur pgAdmin4. En fait, ici elle n'est pas représentée exactement comme sur MySql. Merci infiniment. Et encore une fois merci aussi à Julien.

Belle journée à vous!

Stephane

Hors ligne

#8 15/04/2024 18:33:32

Re : Erreur de syntaxe impossible à expliquer

Bonjour à Tous,
Je suis un bloqué dans ma tentative d'extraction du mois de Décembre dans une liste des dates du type YYY-MM-DD. Pourriez-vous s'il vous plaît m'éclairer?

Merci d'avance pour votre aide.

Bien à vous,

Stephane

Hors ligne

Pied de page des forums