Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 25/03/2010 11:14:41
- gilou974
- Membre
Probleme semblerait-il d'encodage ??
Bonjour à tous.
J'ai un pb qui semble venir de l'encodage mais je ne sais pas trop comment vérifier s'il s'agit bien de celà et si "oui" comment le corriger.
Voilà je veux exécuter :
SELECT
--nextval(provisionnement_id_seq)AS id_pro,
id_soc,
tca AS id_tca,
id_tga,
regexp_replace(nm_soc,' ',''),
regexp_replace(regexp_replace( trim(nm_soc), '\\.00',''),' ',''),
substring(regexp_replace(regexp_replace( nm_soc, '.00',''),' ','') FROM '[0-9]+' )AS nm_soc_soc,
nm_soc,
d_conseil, type_prov, tga, montant_prov, id_pim
FROM provisionimport pim
LEFT JOIN societaire soc ON soc.nm_soc_soc = substring( nm_soc FROM '[0-9]+' )::integer
JOIN type_garantie tga ON pim.tga = tga.st_type_tga
Mais pour certaine donnée je n'arrive pas à me débarasser de l'espace dans mon nombre.
Si je copie colle la valeur retournée par la requête et que je teste:
select regexp_replace(regexp_replace('8 167.00','.00','' ),' ','') Avec valeur retournée --> résultat 8 167
Alors que si je tape manuellement:
select regexp_replace(regexp_replace('8 167.00','.00','' ),' ','') --> résultat 8167
Quelqu'un aurait -il un idée svp.
Hors ligne
#2 25/03/2010 11:32:31
- gilou974
- Membre
Re : Probleme semblerait-il d'encodage ??
Si j'essaie comme çà :
select regexp_replace(regexp_replace(convert_from('10 336.00','UTF8'),'.00','' ),' ','') Avec valeur retournée --> résultat 8 167
select regexp_replace(regexp_replace(convert_from('10 336.00','UTF8'),'.00','' ),' ','') --> résultat 8167
rien ne change en fait ??
Pas l'encodage ? mais quoi alors ?
Hors ligne
#3 25/03/2010 11:38:04
- gilou974
- Membre
Re : Probleme semblerait-il d'encodage ??
Si j'essaie comme çà :
select regexp_replace(regexp_replace(convert_from('10 336.00','LATIN1'),'.00','' ),' ','') Avec valeur retournée --> résultat "10Â 336"
select regexp_replace(regexp_replace(convert_from('10 336.00','LATIN1'),'.00','' ),' ','') --> résultat "10336"
on voit bien là une différence ??
Hors ligne
#4 25/03/2010 12:23:33
- Marc Cousin
- Membre
Re : Probleme semblerait-il d'encodage ??
Bonjour,
Difficile à dire comme cela. Mais il existe plusieurs types d'espaces, surtout si vous êtes en encodage unicode (il y a par exemple un caractère espace insécable).
Je commencerais, à votre place, par lui demander de remplacer TOUS les espaces. Il s'agit de l'escape \s, comme indiqué ici : http://docs.postgresql.fr/8.4/functions … SIX-REGEXP
\s doit pouvoir correspondre aux espaces, espaces insécables, tabulations…
Marc.
Hors ligne
#5 25/03/2010 12:35:25
- gilou974
- Membre
Re : Probleme semblerait-il d'encodage ??
Bonjour et un grand MERCI monsieur Cousin
je n'avais pas parcouru la doc assez en avant pour ces caractères d'échappement fort utiles.
Merci bcp
Hors ligne
Pages : 1