Supposed that we have few handerds of data stored in US7ASCII database, and we need to switch the system to an UTF8 database, how could we get the system switched in just few minutes without long period outage window?
Usually we need to unload the data into flat file form US7ASCII database (with NLS_LANG = .US7ASCII), and then change the NLS_LANG to local language character set, for example ZHS16GBK, and load the text file into UTF8 database.
It seems hard in the past, but now have can use DataCopy & DataSync to get it done. I added two new command line options into them to support character set conversion.
* charset = character set name of the target database.
* ncharset= national character set name of the target database.
Both DataCopy & DataSync have two database connections, source connection and target connection. The character set of source connection is controled by the NLS_LANG variable, and the character set of target connection can be controled by the two new command line options now. So we can do the character set conversion without flat file generation, we can do it in one command.
datacopy user1=... user2=... table=... charset=ZHS16GBK ncharset=AL32UTF8
We can use DataSync to do incremental conversion, and then just take few minutes to swithover the system to new database. If you have these kind of data migration jobs, you should use them to relax your works.