Tags

, , , , , , , , ,

There have been numerous questions on almost all the Oracle discussion forums about “Why are junk values displayed on my client” or ” Why do I see question marks or special characters in the table”. And, 99% of the cases are due to the mismatch between the locale-specific NLS characterset and the database characterset. Or else, the NLS_LANG value is not correctly set in the OS environmental variable.

You need to follow these simple steps :

  1. Check the locale-specific NLS characterset :
select value from v$nls_parameters where parameter = 'NLS_CHARACTERSET';
  1. Check the database characterset :

select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';

If you see a mismatch between the two, then set the locale-specific NLS characterset to that of database characterset.

If the above charactersets match, then you need to set the NLS_LANG value in the OS environmental variable.

For Windows OS, the format is [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]

Follow the instruction in the documentation regarding setting up the NLS_LANG : Setting the NLS_LANG Environment Variable for Oracle Databases

Hope it helps!