Here is the answer of the microsoft:
I have the information that you have a VB.Net 2005 application connected to an Oracle database 8.1.7.4 hosted on a UNIX server.
This database has the CharacterSet WE8ISO8859P1.
When retrieving Greek characters from this database in the application, you cannot see them.
Could you please send me a screenshot of these characters in the .Net application?
Are they displayed as gibberish, or as inverted questions marks (?)?
I already had similar cases with Hebrew characters hosted on an Oracle database.
These characters were displayed as questions marks on the client side.
This is due to the fact that System.Data.OracleClient is using the Server CharacterSet to display the characters.
If your Greek characters are not stored in the WE8ISO8859P1 characterset, then they won’t display correctly on the client-side.
This is different from OLEDB where you could interact on client side by modifying the NLS_LANG parameter in the registry HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0.
The client NLS_LANG and the server CharacterSet had to match in order to correctly display the data, and avoid SQL*NET conversion.
So there are two solutions to your case:
- The first one is to create a new database using the P8 characterset. The Oracle .Net managed provider will so be able to use it and display the characters correctly.
- The second one is to use the OLEDB.Net managed provider, and then use OLEDB for Oracle provider. OLEDB will take care of the client NLS_LANG registry parameter.
Would it be possible to test your application against an Oracle database with WE8ISO8859P8 characterset?
Would it be possible to test it with the OLEDB .Net managed provider, and after checking the NLS_LANG client registry parameter?