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 Re : Général » Pb d'utilisation de CONVERT() sur serveur 8.3. et plus » 20/01/2010 16:12:34

Merci Marc pour ta réponse.

Je vais essayer de modifier ma requête en prenant en compte les nouvelles fonctions et si je trouve quelque chose d'intéressant je fais un retour sur ce post.

#2 Général » Pb d'utilisation de CONVERT() sur serveur 8.3. et plus » 20/01/2010 14:46:23

fab2b
Réponses : 4

Bonjour à tous,

j'utilisais jusqu'à aujourd'hui la formule de conversion suivante  :

select LOWER(TO_ASCII(CONVERT('Azerbaïdjan', 'UNICODE', 'LATIN9'), 'LATIN9'))

select LOWER(TO_ASCII(CONVERT('Algérie', 'UNICODE', 'LATIN9'), 'LATIN9'))

qui me permet de récupérer une chaine sans caractères spéciaux afin de pouvoir effectuer ensuite une recherche ou un filtre sur une partie de la chaine.

la requête réellement passée est celle ci :
SELECT idpays, nompays, zonepays, devisepays FROM pays WHERE  LOWER(TO_ASCII(CONVERT(nompays, 'UNICODE', 'LATIN9'), 'LATIN9')) LIKE 'm%'  ORDER BY nompays ASC

qui me permet de récupérer tous les pays commençant par la lettre 'm' mais pour correspondre à mes exemples ci-dessus, si je tape 'alge' en chaine de recherche il me sort 'Algérie' comme résultat.

Cette conversion fonctionne très bien sur le serveur que j'utilisais, un "PostgreSQL 8.1.3".

je suis monté en version sur un de mes serveurs de dev et cette conversion ne fonctionne plus; j'ai fait le test sur un "PostgreSQL 8.4.1" et également sur un "PostgreSQL 8.3.9"; voilà l'erreur que j'obtiens :

ERROR:  function convert(character varying, unknown, unknown) does not exist
LINE 1: ...epays, devisepays FROM pays WHERE  LOWER(TO_ASCII(CONVERT("n...
                                                             ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

********** Erreur **********

ERROR: function convert(character varying, unknown, unknown) does not exist
État SQL :42883
Astuce : No function matches the given name and argument types. You might need to add explicit type casts.
Caractère : 78

Or la fonction convert() existe toujours et ca syntaxe semble la même.

Est ce quelqu'un aurait une idée sur la raison de cette erreur et sur la façon de la corriger ?!

Merci d'avance, Fab.

Pied de page des forums

Propulsé par FluxBB