Hi,
I want to migrate to AL32UTF8, but i have windows characters to keep and i need to don't impact the client in some environnements.
I search to find the better scenario to do this.
My actual situation is :
11g database in character set WE8ISO8859P1 with windows WE8MSWIN1252 characters.
My clients has NLS_LANG with WE8ISO8859P1 and the client use a lot of database (dev, acceptance, production).
I want :
Migrate my database to AL32UTF8 in 12c and my client to NLS_LANG WE8MSWIN1252.
I need to do this change in some environnement without impact the client.
Actually the client see the windows characters, but if i change the client NLS_LANG, it will not see the windows characters.
The source of my issues :
During this work, we find on the database a lot of windows characters.
Same as describe in a lot of doc_id, my client has a NLS_LANG WE8ISO8859P1 instead of WE8MSWIN1252 a.
If i change my client to WE8MSWIN1252 without changing anyting on the database, the client will receive some bad information when appears good before change it.
Ex :
The client with NLS_LANG WE8ISO8859P1 can insert and read the EURO sign € because sqlnet don’t translate anathing.
If i change the client NLS_LANG to WE8MSWIN1252, when it read the EURO sign it receive the character : ¿
For history :
We had try DMU tool to migrate from 8859P1 to AL32UT8 with the assume characterset MSWIN1252, this tool work but it need a lot of manual step to realize it (drop a lot of objets for proceed) and this tool need a complete day to done and has a high risk to fail and need recovery.
We try the CSSCAN and CSALTER for migrate from 8859P1 to MSWIN1252, but it’s again need a real big work for a lot of objet to drop.
Now :
We think to pass by WE8MSWIN1252 before go to UTF8 will help the migration steps.
Change database characterset from 8859p1 to MSWIN1252 with an "ALTER DATABASE CHARACTER SET".
After this, migrate to 12c with a full datapump to a new database with the characterset AL32UTF8.
If i can change the database characterset by an alter database, i’m able to do in the same day, migrate all database to Characterset WE8MSWIN1252 (more than 10 database) and all oracle client to NLS_LANG WE8MSWIN1252 (more than 5000 clients).
I search to migrate to 12c UTF8 and don’t lost my windows characters in the actual database 8859P1 while the client need to see the good information in a lot of database in the same time (all database can’t migrate with DMU or CSALTER in the same day while an ALTER DATABASE CHARACTER SET can be done).
Can i use on my 11g database the command :
ALTER DATABASE CHARACTER SET INTERNAL_USE WE8MSWIN1252; ?
I do this in succes on a test database.
In a SR, Oracle support say me, with this command i will corrupt data in the dictionnary, but it don't explain this.
My database has windows characters, what is this impact ? what corruption ?
Thanks
François Gauvin