We have two Oracle databases. We read data from database1 in database2 through dblink.
In database1 we have NLS_CHARACTERSET = AL32UTF8
and in database2 NLS_CHARACTERSET = EE8ISO8859P2
.
The problem is that reading data in database2 it's wrong. Some special characters are wrong. For example:
Data in database1: ÎNTREPRINDERE INDIVIDUALĂ
Data in database2: ?NTREPRINDERE INDIVIDUAL?
Can someone explain why (bytes representation ) and what are the solutions (are more than the one to modify nls_characterset)?
The typecasting I suggested in my comment seems to work (for me).
Demo
I have an
AL32UTF8
remote DB and anEE8MSWIN1250
local DB to my avail, so I had to use something different than Romanian as those chars are present in the cp1250 codepage. Went for some Russian, then.At remote DB...
At local DB...
As for "why this happens"...
I don't know. ISO8859-2 should, by definition, allow for storing Romanian characters, hence they should get transferred via DB link without problems. Yet, in your case, they don't.