Molto probabilmente è dovuto alla mancata corrispondenza tra il set di caratteri NLS specifico per la locale e il set di caratteri del database . Oppure, il NLS_LANG il valore non è impostato correttamente nella variabile ambientale del sistema operativo .
Dai un'occhiata a Perché sul mio client vengono visualizzati valori spazzatura/caratteri speciali/punti interrogativi?
- Il set di caratteri del tuo client non corrisponde al set di caratteri del database.
Puoi confrontare tra :
-- locale-specific characterset
select value
from v$nls_parameters
where parameter = 'NLS_CHARACTERSET';
-- database characterset
select value
from nls_database_parameters
where parameter = 'NLS_CHARACTERSET';
Se vedi una mancata corrispondenza tra i due, imposta il set di caratteri NLS specifico della locale su quello del set di caratteri del database.
- Se i set di caratteri sopra corrispondono, è necessario impostare il valore NLS_LANG nella variabile ambientale del sistema operativo.
Per il sistema operativo Windows, il formato è:
[NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]
Segui le istruzioni nella documentazione relativa alla configurazione di NLS_LANG:Impostazione della variabile di ambiente NLS_LANG per i database Oracle