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

#1 Général » Erreur avec les expressions rationnelles insensibles à la casse ~* » 27/07/2009 15:39:05

Martin Bécue
Réponses : 3

Bonjour,

J'utilise PostgreSQL 8.3.7 en français (UTF-8), et j'ai remarqué que l'opérateur ~* était sensible à la casse des caractères accentués, contrairement au comportement attendu (cf. § 9.7.3, page 117 du manuel en français). Par exemple :

CREATE TABLE "text_irex" (
   "prénom" character varying(32) NOT NULL
);

INSERT INTO "test_irex" VALUES ('Édouard VII');
INSERT INTO "test_irex" VALUES ('Aliénor d’Aquitaine');
INSERT INTO "test_irex" VALUES ('Richard Cœur de Lion');
INSERT INTO "test_irex" VALUES ('Œdipe');

SELECT * FROM "test_irex" WHERE "prénom" ~* 'é';

On ne retrouve qu'Aliénor d'Aquitaine.

SELECT * FROM "test_irex" WHERE "prénom" ILIKE '%é%';

On retrouve Édouard VII et Aliénor.

SELECT * FROM "test_irex" WHERE "prénom" ~* 'A';

On retrouve Édouard, Aliénor et Richard.


S'agit-il d'un problème connu ?

Pied de page des forums

Propulsé par FluxBB