Re: NLS question

From: Yechiel Adar <adar666_at_inter.net.il>
Date: Wed, 16 Mar 2011 15:12:03 +0200
Message-id: <4D80B723.7060409_at_inter.net.il>



That is exactly the point where you are mistaken. Sql net does a translation of the data from the client nls_charset to the database nls_charset replacing any illegal, for the database nls_charset, characters in the data with 191 , or (I think) 61. So the database gets the unknown (191) character and store it. There is no way to get the original data back.

What you are saying is true if the database nls_charset and the storing client nls_charset are the same.
In this case no translation is done and the illegal characters in the data are not replaced and are stored as is.

In this case, if the reading client has the same nls_charset as the database he will receive the same data.
If he has another nls_charset, again sql net will do translation and will replace the illegal characters with 191 before passing them to the user program.

Displaying the data on the terminal is, of course, depends on the code page of the terminal but has nothing to do with what data is received from the database.

Yechiel Adar
Israel

On 16/03/2011 09:32, De DBA wrote:
> As far as I understand, the bytes that make up the character are not
> changed between the client and the server.

--
http://www.freelists.org/webpage/oracle-l
Received on Wed Mar 16 2011 - 08:12:03 CDT

Original text of this message