Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Converting from WE8MSWIN1252 to WE8ISO8859P1
On Sat, 17 Apr 2004 20:34:55 +0100, "Adam McDonagh" <adam_at_ski2000.fsnet.co.uk>
wrote:
>I have a Win2k Pro server running Oracle 9i from which a database is
>currently stored. I wish to transfer everything from this server onto a new
>Linux PC that I have, running 10g.
>
>The charset on Windows database is WE8MSWIN1252, and WE8ISO8859P1 on my
>Linux box.
>
>I have exported the database from the windows server to import onto my Linux
>box. This all imports fine, however all the pound signs (£) are replaced
>with hashes (#).
>
>I have tried changing the Linux box to the MSWIN charset, but this didn't
>work... What would be the correct procedure for me to be able to keep all
>the poundsigns in my database? Do I need to change the windows box to the
>ISO character set and then run an export... But if I do this, will the
>poundsigns on the windows box still be ok?
One of the least understood concepts when dealing with NLS_LANG and db-charset is:
The DATABASE CHARACTERSET is dictated by the codepage used by the client OS! It must be a logical superset of the client characterset.
and
The codepage of the server OS is of no interest, as long as the server machine isn't used for client apps.
For NLS_LANG keep in mind:
NLS_LANG is dictated by the setting of your client OS! You can't toggle NLS_LANG. You have no choice! For example: my PC runs XP with german settings. Therefore NLS_LANG must be GERMAN_GERMANY.WE8MSWIN1252. Nothing other!
In your case:
the migration from a W2k box to a Linux box doesn't affect the database
characterset used. Go this way:
Settings:
Check the client app OS for correct setting of NLS_LANG. For windows apps in UK
it's <bla>.WE8MSWIN1252.
Check the database characterset to be a superset of all used client
charactersets. If is was 1252 from beginning on, it's ok, don't touch it.
Migration:
Check the NLS_LANG of the w2k server box. exp.exe is now a client app. NLS_LANG
on the w2k server box must be <bla>.WE8MSWIN1252. Do the export.
Build a new database on the linux box. The database characterset must be a
superset of all client charactersets. When you're only dealing with windows
apps, 1252 is ok. Check the NLS_LANG of the linux box. imp.exe is now a client
app. NLS_LANG will be <bla>.WE8ISO8859P15. Transfer the dump to the linux box.
Now do the import. Alternatively you can do the import remotely from the w2k
server. Then you may ignore the NLS_LANG of the linux box.
hth
-- Marc Blum mailto:blumNOSPAM_at_marcblum.de http://www.marcblum.deReceived on Sun Apr 18 2004 - 03:41:17 CDT