Bonjour,

j'ai déjà souvent rencontré des soucis avec des paramètres NLS mal renseignés qui posaient des problèmes avec nos chers accents (et compagnie).

Aujourd'hui, j'ai un nouveau souci pour lequel je bloque un peu.

Jusqu'à présent, quand j'avais des problèmes d'encodage, un accent était affiché sous la forme d'un caractère genre "?" ou autre symbole.

Dans le cas présent, les caractères accentués s'affichent simplement sans accent.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SQL> select distinct (nom) from test where nom like 'ETT%';
 
NOM
-------------------------
ETTE
ETTE
 
SQL> select distinct asciistr(nom) from test where nom like 'ETT%';
 
ASCIISTR(NOM)
--------------------------------------------------------------------------------
ETTE
ETT\00C9
 
SQL> select distinct dump(nom) from test where nom like '%CETT%';
 
DUMP(NOM)
--------------------------------------------------------------------------------
Typ=1 Len=12: 69,84,84,201
Typ=1 Len=12: 69,84,84,69
Ce que j'ai du mal à comprendre, c'est que le "É" est bien géré dans le shell:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
bash-3.2$ echo "É" | od -xc
0000000     c90a
           É  \n
Mais pas dans Oracle:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
SQL> select asciistr('Éé') from dual;
 
ASCIISTR(
----------
\00BF\00BF
 
SQL> select dump('Éé') from dual;
 
DUMP('??')
---------------------
Typ=96 Len=2: 191,191
De plus, quand j'essaye de positionner NLS_LANG au niveau du shell, j'ai une erreur à la connexion :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
bash-3.2$ sqlplus mabase
 
SQL*Plus: Release 10.2.0.5.0 - Production on Wed Sep 28 16:48:25 2011
 
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
 
Enter password:
ERROR:
ORA-12705: Cannot access NLS data files or invalid environment specified
Si vous avez des pistes...

Merci

Alexis