oracle字符集(英文->中文)转换
注意:请严格按照指定步骤进行!操作前请先对数据库做整库备份。
1、在原数据库(字符集为英文)执行sqlplus,连接sys用户,修改字符集参数,然后退出。
SQL> connect sys/******; (口令一般为"manager")
update props$ set value$ = ’ZHS16GBK’ where name = ’NLS_CHARACTERSET’;
update props$ set value$ = ’ZHS16GBK’ where name = ’NLS_NCHAR_CHARACTERSET’;
commit;
SQL> quit;
2、执行svrmgrl,关闭并重新开启Oracle数据库
SVRMGR> connect internal/******; (口令一般为"oracle")
SVRMGR> shutdown immediate;
SVRMGR> startup mount;
SVRMGR> alter system enable restricted session;
SVRMGR> alter system set job_queue_process=0;
SVRMGR> alter database open;
SVRMGR> alter database character set ZHS16GBK;
SVRMGR> shutdown immediate;
SVRMGR> exit;
3、执行regedit,将键值HKEY_LOCAL_MACHINE\Software\ORACLE\NLS_LANG
由 AMERICAN_AMERICA.WE8ISO8859P1
转换为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
4、执行exp导出数据
5、执行regedit将键值HKEY_LOCAL_MACHINE\Software\ORACLE\NLS_LANG
由 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
恢复为 AMERICAN_AMERICA.WE8ISO8859P1
6、执行sqlplus,连接sys用户,恢复字符集参数,然后退出。
connect sys/******; (口令一般为"manager")
update props$ set value$ = ’WE8ISO8859P1’ where name = ’NLS_CHARACTERSET’;
update props$ set value$ = ’WE8ISO8859P1’ where name = ’NLS_NCHAR_CHARACTERSET’;
commit;
SQL> quit;
7、重复步骤2,关闭并重新开启Oracle数据库
8、将导出的dmp文件导入目标数据库(字符集为中文)