We have a Oracle database 8.1.7 running for many years on Win-2000. We wanted to move the database on a newer machine running Win 2003. I did the following
- I made a cold backup of old database.
- Installed the oracle database same ver on the new machine and moved
the data files from the old to the new server. - Imported the data dump taken from export (taken from old server) on
the new server. - Without a full test we shifted live to the new server.
- Everything was OK on the new oracle server except for the Arabic
characters. I am getting??
(questions marks) characters in the
Arabic fields.
I checked the nls_database_parameters on both the servers.
Select * from nls_database_paramters;
The old database had: nls_char & nls_nchar = Ar8mswin1256
The new database had nls_char & nls_nchar = We8iso8859p1
I then did the following in the new server:
- Changed the character set (nls_char)in the new database to
AR8mswin1256. - Changed the Nls Nchar set to Ar8mswin1256.
All the above done were by an alter database
command as below:
SVRMGR> STARTUP MOUNT;
SVRMGR> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SVRMGR> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SVRMGR> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SVRMGR> ALTER DATABASE OPEN;
SVRMGR> AALTER DATABASE NATIONAL CHARACTER SET ar8mswin1256;
SVRMGR> SHUTDOWN IMMEDIATE;
SVRMGR> STARTUP;
I checked nls_database_parameters in the new server both nls_char, nls_nchar was changed to Ar8mswin1256.
I checked the database through our ERP applicatoin but still Arabic characters displaying in ??
.
I then checked the registry of new Oracle server. The value of nls_lang is We8iso8859p1
whereas the registry of the old server had value of nls_lang as Ar8mswin1256. I changed
the value in new server to be American_america.Ar8mswin1256. Checked the database still
arabic characters displaying as ??
.
The registry of Client has nls_lang as American_america.Ar8mswin1256.
It is a production database. How can I solve the problem of Arabic characters being displayed as ???
in the new server?
I still have the old server database but it is not live. It doesnt contain updated
data.
Best Answer