#1 Wed 18 April 2012 13:54
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
jointure Postgres
Bonjour,
j'ai un traitement une table graphique sous PostGis en entrée sur laquelle je souhaiterais effectuer une jointure avec une table attributaire Postgres. La jointure se fait sur un champs texte (des noms de voie).
Lorsque le traitement tombe sur un enregistrement contenant des caractères accentués, le traitement s’arrête avec l'erreur suivante :
Code:
Error executing SQL query ('EXECUTE dbjoin_query_plan ('44069','R DU CHÂTEAU - CAREIL')'): 'ERREUR: séquence d'octets invalide pour l'encodage « UTF8 » : 0xc254 HINT: Cette erreur peut aussi survenir si la séquence d'octets ne correspond pas au jeu de caractères attendu par le serveur, le jeu étant contrôlé par « client_encoding ».
Ma base est en UTF8 et les données des 2 tables ont été remontés avec FME.
Par contre si je fais un export excel de mes données et que je fais la jointure sur ce fichier, je n'ai pas de problème.
Quelqu'un aurait-il une idée sur la cause du problème ?
Merci d'avance
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne
#2 Thu 19 April 2012 00:10
Re: jointure Postgres
C'est un bug que nous avons fait remonté : joiner ne marche pas avec les caractères non standards (ou alors il ne faut rien mettre en cache : prefetch the SQL Query)
Contournement : FeatureMErger ou SQLExecutor
Chaque méthode a ses inconvénients et avantages.
JOINER va être cassé et revu en FME 2013, j'espère que le problème sera corrigé car il est vraiment pénible...
Hors ligne
#3 Thu 19 April 2012 09:04
Re: jointure Postgres
Je confirme, obligé de passer par une requête SQL
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#4 Thu 19 April 2012 14:10
Re: jointure Postgres
Pourtant ça devrait marcher si vous n'utilisez pas le cache.
Hors ligne
#5 Mon 23 April 2012 09:47
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Re: jointure Postgres
Bonjour,
pour ne pas utiliser le cache, il faut laisser la case Utiliser la pré-requête décochée ? ou il faut modifier la valeur de la taille du cache ?
Merci d'avance
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne
#6 Mon 23 April 2012 10:08
Re: jointure Postgres
Il faut décocher (de mémoire...).
Hors ligne
#7 Mon 23 April 2012 15:55
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Re: jointure Postgres
Après quelques tests, j'ai réussi à trouver comment contourner le problème.
Pour désactiver le cache, il faut mettre la taille du cache à 0 en plus de ne pas cocher la case et là ça fonctionne correctement.
A noter que le bug se produit quand la donnée source comporte des caractères spéciaux par contre ça ne pose pas de problème qu'il y ai des caractère spéciaux dans la table utilisée pour la jointure.
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne