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

#1 23/09/2011 16:40:19

Gold.Strike
Membre

Bytea et XML

Bonjour,

Je rencontre actuellement des difficultés lors de la restitution d'un XML sauvegardée dans une colonne de type "bytea"...

J'ai une table qui me permets de sauvegarder les configurations utilisateurs des fenêtres de mon application. La configuration des layout est enregistré dans un XML, qui est lui même stocké dans une colonne de type "bytea" de cette table. Pour mes bases qui tournent sous Postgre 8.4, tout marche bien. Par contre, lorsque j'essaie de recharger les données dans mon application, pour des bases tournant sous Postgre 9.0, j'obtiens un message d'erreur :

Données non valides au niveau racine. Ligne 1, position 1. xmlreader

J'ai essayé de vérifier le contenu de la colonne avec la fonction "convert_from", mais je ne parviens à visualiser que la première ligne du XML...

select convert_from(donnees, 'UTF-8')
from uiconfigurations

Auriez vous des explications sur ce phénomène? Y a t'il des différences entre Postgre 8 et 9 qui m'échappent?

Merci...

Hors ligne

#2 23/09/2011 16:44:16

Marc Cousin
Membre

Re : Bytea et XML

Si c'est en bytea, le format «texte» (celui qui est utilisé le plus souvent pour les manipuler) a changé en 9.0. Si vous voulez retrouver l'ancien fonctionnement, positionnez bytea_output à escape au lieu de hex dans le postgresql.conf.

Mais si possible, essayez plutôt de trouver pourquoi votre driver d'accès à la base ne comprend pas le nouveau format pour les bytea. Par exemple, si vous êtes en java, il vous faudra le driver jdbc 9. Le nouveau format a l'intérêt d'être plus performant.


Marc.

Hors ligne

#3 23/09/2011 18:01:57

Gold.Strike
Membre

Re : Bytea et XML

Effectivement, c'est bien ça...
J'avais déja eu ce problème en plus!
Mais si je trouve un driver qui gère Postgre 9 (je suis sur du .Net), je pourrais rebasculer "bytea_output" en "hex" et bénéficier de meilleures performances donc?
Merci,

Hors ligne

#4 23/09/2011 18:10:17

Marc Cousin
Membre

Re : Bytea et XML

Oui, c'est exactement ça. Il y a probablement un driver .net plus à jour…


Marc.

Hors ligne

Pied de page des forums