Vous n'êtes pas identifié(e).
Pages : 1
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
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
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
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
Sans plus d'infos, difficile de dire quoi que ce soit. Il va falloir bien plus détailler votre demande.
Guillaume.
Hors ligne
Pages : 1