[Oracle] Pb de charset

Le
Stephane Dupille
Hello,

J'ai un petit soucis avec une base Oracle 10.2. La base en question
a été déclarée avec un charset WE8ISO8859P15 (donc en iso-latin-9 ou
iso-8859-15 ?).

Quand on insère un enregistrement dans une table, les caractères
euros sont transformés en point d'interrogation inversé, que cette
insertion se fasse via une appli java ou par toad.

Une idée de ce qui pourrait clocher ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry Thomas
Le #21862701
Lundi 26 mars 2007 à 08:50 GMT, Stephane Dupille a écrit :

J'ai un petit soucis avec une base Oracle 10.2. La base en question
a été déclarée avec un charset WE8ISO8859P15 (donc en iso-latin-9 ou
iso-8859-15 ?).

Quand on insère un enregistrement dans une table, les caractères
euros sont transformés en point d'interrogation inversé, que cette
insertion se fasse via une appli java ou par toad.



Quel est l'encodage déclaré dans les sessions clientes ? (à l'insert et
à la lecture)
--
Th. Thomas.
Stephane Dupille
Le #21862691
Thierry Thomas
Quand on insère un enregistrement dans une table, les caractères
euros sont transformés en point d'interrogation inversé, que cette
insertion se fasse via une appli java ou par toad.


Quel est l'encodage déclaré dans les sessions clientes ? (à l'insert et
à la lecture)



Bonne question. Je suis une truffe en Oracle, comment on fait pour
vérifier, ou pour fixer ça ?
Stephane Dupille
Le #21862661
Thierry Thomas
Quand on insère un enregistrement dans une table, les caractères
euros sont transformés en point d'interrogation inversé, que cette
insertion se fasse via une appli java ou par toad.


Quel est l'encodage déclaré dans les sessions clientes ? (à l'insert et
à la lecture)



Je viens de vérifier, le client est un client Java ODBC thin. Il
n'est pas censé faire de conversion de charset. Il y a un truc que je
ne pige pas.

Comment on fait pour déclarer au client JDBC thin d'Oracle le
charset qu'on souhaite manipuler ?


Je fais un xpost vers fclj. Rappel pour les nouveaux : j'ai une base
Oracle, et il me transforme les euros en point d'interrogation
inversé. Le charset de la base est bon. Mais il fait une conversion
quelque part, je ne sais pas où.
Thierry Thomas
Le #21862651
Mardi 27 mars 2007 à 10:36 GMT, Stephane Dupille a écrit :
Je viens de vérifier, le client est un client Java ODBC thin. Il
n'est pas censé faire de conversion de charset. Il y a un truc que je
ne pige pas.

Comment on fait pour déclarer au client JDBC thin d'Oracle le
charset qu'on souhaite manipuler ?



Habituellement on peut régler ça avec un alter session, mais via ce type
de client je ne sais pas si c'est possible...

Voir tout de même la FAQ
pour voir ce qui peut s'appliquer.
--
Th. Thomas.
Stephane Dupille
Le #21862641
Thierry Thomas
Comment on fait pour déclarer au client JDBC thin d'Oracle le
charset qu'on souhaite manipuler ?


Habituellement on peut régler ça avec un alter session, mais via ce type
de client je ne sais pas si c'est possible...



J'ai essayé, on peut bien entendu faire un « alter session », qui
est une commande SQL comme une autre, mais on ne peut pas régler le
charset par cette méthode : le charset n'est pas défini dans la
session, c'est au client de gérer ce problème, pas au serveur.

Voir tout de même la FAQ
pour voir ce qui peut s'appliquer.



Malheureusement, le client thin JDBC ne comprends pas la variable
d'env NLS_LANG.

J'ai trouvé ça :
http://fadace.developpez.com/oracle/nls/

Ça indique qu'il existe un nls_charset.jar qui sert à faire les
conversions. Comment marche ce truc ?
William Marie
Le #21862611
"Stephane Dupille" news:

Je fais un xpost vers fclj. Rappel pour les nouveaux : j'ai une base
Oracle, et il me transforme les euros en point d'interrogation
inversé. Le charset de la base est bon. Mais il fait une conversion
quelque part, je ne sais pas où.



Il est vrai que c'est vicelard. J'ai recherché dans toutes les tables de
caractères possibles. Si le symbole ¤ (euro) peut se trouver confondu (à la
même place) avec ? (petit symbole - qui représente quoi ? Athon ? - obtenu
par Alt-Gr sur la touche $) il ne l'est jamais avec ¿ (point d'interrogation
inversé). Il y a effectivement une conversion biscornouille quelque part. Je
sèche et vous laisse danser la java pour invoquer l'Oracle.
--
=================================== William Marie
Attention antiSpam remplacer trapellun.invalid
par free.fr
Web : http://wmarie.free.fr
http://www.pandemonium.dnsalias.org (site expérimental)
====================================
Stephane Dupille
Le #21862601
"William Marie"
Il est vrai que c'est vicelard. J'ai recherché dans toutes les
tables de caractères possibles. Si le symbole ¤ (euro) peut se
trouver confondu (à la même place) avec ? (petit symbole - qui
représente quoi ? Athon ? - obtenu par Alt-Gr sur la touche $)



C'est le symbole currency, pour désigner une monnaie sans symbole
particulier. Et effectivement, les deux peuvent être confondus, car
les deux codes ont le même numéro dans iso-8859-1 et iso-8859-15.

il ne l'est jamais avec ¿ (point d'interrogation inversé). Il y a
effectivement une conversion biscornouille quelque part. Je sèche et
vous laisse danser la java pour invoquer l'Oracle.



Ouin !
Gabriel
Le #21862591
"William Marie" 460a13df$0$29399$

je sèche et vous laisse danser la java pour invoquer l'Oracle.



MDR :-)) c'est idiot mais ta chute m'a déclenché un bon éclat de rire :-))
ce doit être le caractère inattendu dans le sérieux du sujet.

--
Cordialement,
Gabriel
TestMan
Le #21862581
Stephane Dupille a écrit :
Thierry Thomas
Quand on insère un enregistrement dans une table, les caractères
euros sont transformés en point d'interrogation inversé, que cette
insertion se fasse via une appli java ou par toad.


Quel est l'encodage déclaré dans les sessions clientes ? (à l'insert et
à la lecture)



Je viens de vérifier, le client est un client Java ODBC thin. Il
n'est pas censé faire de conversion de charset. Il y a un truc que je
ne pige pas.

Comment on fait pour déclarer au client JDBC thin d'Oracle le
charset qu'on souhaite manipuler ?

Je fais un xpost vers fclj. Rappel pour les nouveaux : j'ai une base
Oracle, et il me transforme les euros en point d'interrogation
inversé. Le charset de la base est bon. Mais il fait une conversion
quelque part, je ne sais pas où.



Bonjour,

Quel est l'encodage interne de votre base ?

Pouvez-vous nous coller les méta-propriétés de votre connexion JDBC (par
exemple, à l'aide de SquirelSQL)?

Histoire d'y voir plus clair ...

A+
TM
William Marie
Le #21862571
"Gabriel" 460a957e$0$27381$


MDR :-)) c'est idiot mais ta chute m'a déclenché un bon éclat de rire :-))
ce doit être le caractère inattendu dans le sérieux du sujet.



C'est mon côté Zen (un premier pas vers la sérénité...). On effet si on
n'est que sérieux dans les discussions sérieuses on va mourir d'ennui.
--
=================================== William Marie
Attention antiSpam remplacer trapellun.invalid
par free.fr
Web : http://wmarie.free.fr
http://www.pandemonium.dnsalias.org (site expérimental)
====================================
Publicité
Poster une réponse
Anonyme