刚安装好的oracle9i,使用pl/sql developer连接上去操作表的时候就报错:ORA-01460 :转换请求无法实现或不合理 。
问题原因是:客户端和服务端字符集不一致。
事后回想一下,产生问题的原因应该是,事前装过oracle10g,没有卸载干净,后面又装oracle9i设置的字符集和oracle10g不一致。
解决办法:
1.通过执行
select * from V$NLS_PARAMETERS
where parameter in('NLS_LANGUAGE','NLS_ISO_CURRENCY','NLS_CHARACTERSET');
查看服务器字符集。
-------------------------------------------
PARAMETER VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_ISO_CURRENCY CHINA
NLS_CHARACTERSET ZHS32GB18030
2.修改注册表:
通过regedit修改注册表(仅讨论windows版)进行客户端的字符集
位置/HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0/NLS_LANG (右键修改)
修改为[NLS_LANGUAGE ]_[NLS_ISO_CURRENCY].[NLS_CHARACTERSET],
如上面的的服务器,应该修改为:SIMPLIFIED CHINESE_CHINA.ZHS32GB18030
ok了!!!