oracle字符集乱码的解决

今天晚上吃完饭,继续回到公司加班,只为了解决那个乱码的问题。
结果奇迹出现了,回来查看一下,居然好了。现在向大家说一下过程,呵呵。

从原来的数据库里面导出了一个数据库的备份,结果数据是乱码的。但是原来的数据库是别的系统的,我们做数据的移植,因此没办法从原来的数据库着手,通过沟通了解到原来的数据库的字符集是 WE8MSWIN1252,然后用 select * from v$nls_parameters查看了一下我们数据库的字符集,是 ZHS16GBK。 于是尝试使用

UPDATE SYS.PROPS$ SET VALUE$ = 'WE8MSWIN1252' WHERE NAME = 'NLS_CHARACTERSET';更改字符集,重启后发现整个数据库都不能使用了,这时候想,现在的字符集和原来的一样,再导进去的话会不会解决问题了呢?于是,新建用户,导入数据库。 还是不行。也没有将那个用户删除,直接将字符集改回到 ZHS16GBK。 重启数据库,乱码解决了,神奇!

现在能做的解释是:在相同的字符集下导入数据库后,再将字符集改回来,整个字符集就都改回来了,也就不会有字符集不一样的问题了。只是猜测,不敢误导大家。

你可能感兴趣的:(oracle)