场景:服务器上有个编码为UTF8的数据库,然后本地是ZHS16GBK。我直接用EXP命令导下来之后,发现数据库是乱码。

解决过程:由于服务器上的编码不敢轻易更改,所以考虑将本地编码改为UTF8,进行导入之后,再将本地编码转换为ZHS16GBK。

1、先查一下本地数据库的编码,语句是

select * from nls_database_parameters 

2、然后开始修改本地的数据库编码:打开CMD,输入sqlplus,然后输入用户名密码登录。

3、使用以下代码,更改数据库编码(直接复制粘贴进CMD就可以直接运行),这里是将本地的数据库国际编码改为UTF8,国家编码暂时不用管。

 sqlplus / as sysdba;
 shutdown immediate;
 startup mount;
 ALTER SYSTEM ENABLE RESTRICTED SESSION;
 ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
 ALTER SYSTEM SET AQ_TM_PROCESSES=0;
 alter database open;
 alter database character set INTERNAL_USE UTF8; 
 shutdown immediate;
 startup;

4、使用EXP导出服务器上的UTF8库,再用IMP导入到本地。

更多推荐

oracle数据库编码转换