1、在US7ASCII的数据库svrmgr30中:
select * from sys.props$ where NAME= 'NLS_CHARACTERSET'
update sys.props$ set value$='ZHS16GBK' where NAME= 'NLS_CHARACTERSET';
commit;
设置注册表NLS_LANG = …….ZHS16GBK
如
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
以上设置临时环境为ZHS16GBK
2、重起数据库
3、导入zhs.dmp
4、select * from sys.props$ where NAME= 'NLS_CHARACTERSET'
update sys.props$ set value$='US7ASCII' where NAME= 'NLS_CHARACTERSET';
commit;
设置注册表NLS_LANG = …….US7ASCII
"NLS_LANG"="AMERICAN_AMERICA.US7ASCII"
重起数据库
5、select * from v$nls_parameters;
NLS_CHARACTERSET = US7ASCII
6、查询test1,正常。
-----------------------------
需要注意的是:
1、这里通过props$来强行修改字符集是可以的。
但是修改的同时不要忘了环境变量NLS_LANG 一定要同时修改。
2、导入的那台数据库的字符集只是临时通过props$改变,如果想导入
ZHS16GBK字符集数据,可以改成ZHS16GBK,但先前一定要是US7ASCII,导完了再改回来
3、改字符集后一定要重新启动数据库使之生效
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/169330/viewspace-716779/ ,如需转载,请注明出处,否则将追究法律责任。