ASCII vers UTF-8 via DBLINK
Bonjour,
J'ai une base en ASCII, et une autre en UTF-8.
Je copie une table de la permière vers la deuxième via un dblink du genre:
Code:
INSERT INTO TABLE_UTF8 ( MONCHAMP ) SELECT MONCHAMP FROM DBLINK.TABLE_ASCII
Problème, dans le champs de la table source ascii j'ai un 'é', codé sur 1 octet 0xE0.
Dans ma seconde table, au lieu de me le convertir en UTF-8 sous la forme 0xC3A9 (2 octets représentant le 'é' en UTF-8), il me le converti en 0xEFBFBD (15712189 en décimal) et me le représente comme un carré dans SQLDevelopper.
J'ai essaye UNISTR(), CONVERT() mais rien n'y fait.
Une recherche de '15712189' sous Google donne plein de résultats mais pas de réponse à ce problème.
Avez_vous une idée ?
Cordialement.
Informations complèmentaires
Re,
Pour info je suis en:
Code:
NLS_LANG=FRENCH_FRANCE.WE8MSWIN1252
Mais le problème est identique en;
Code:
NLS_LANG=FRENCH_FRANCE.AL32UTF8
Ce qui serait normal d'après:
http://www.oracle.com/technology/tec...lang%20faq.htm
car ils dient:
Citation:
The NLS_LANG on the server (or client) has no influence on character set conversion through a database link.
et les requètes suivantes donnent:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| select chr(15712189) as caractere from dual;
CARACTERE
---------
�
1 rows selected
select chr(50089) as caractere from dual;
CARACTERE
---------
é
1 rows selected |
Bon chez moi le � (et#65533point_virgule) est représenté par un carré dans SQL Developper...
Cordialement.