由于字符集导致的常见问题:
1,汉字乱码
2,dump的时候报错ora-01401
问题的出现常常是由于,oracle客户端和服务端字符集不一致导致。
解决办法:
1,查询字符集
客户端:
select * from V$NLS_PARAMETERS
结果中看到 NLS_CHARACTERSET 的值,比如ZHS16GBK
而服务端如果不同,比如为WE8ISO8859P1,此时就会出现乱码的情况
2,system用户登录sqlplus
运行
create database character set WE8ISO8859P1
将客户端的字符集也设置为通服务端一样
虽然此时报错:
create database character set WE8ISO8859P1
*
ERROR at line 1:
ORA-01501:CREATE DATABASE failed
ora-01100:database already mouted
但运行
select * from V$NLS_PARAMETERS 可以看到 NLS_CHARACTERSET 的值 已经改变
再查看乱码情况,问题解决。
此外,由于字符集的原因,可能会导致用imp导表的时候发生
ora-01401错误,修改字符集后问题也解决。