
登录以sysdba登录,查看视图select * from v$nls_parameters,可以知道具体的字符集参数,正常的应该是1NLS_LANGUAGE=SIMPLIFIED CHINESE2NLS_TERRITORY=CHINA3NLS_CHARACTERSET=ZHS16GBK然后有问题就去修改参数文件里面的参数,最好做个备份哦!因为改字符集有风险。客户端设置(linux) $NLS_LANG=“simplified chinese”_china.zhs16gbk $export NLS_LANG.数据库服务器字符集select * from nls_database_parameters是表示数据库的字符集,或者v$nls_parameters 客户端字符集环境select * from nls_instance_parameters或者v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表 会话字符集环境select * from nls_session_parametersv$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。以上都没问题 就会OK了,(仅供参考,若有雷同纯属巧合)
首先,检查DB中字符集,可以通过以下的SQL来查得,
SELECT * FROM v$nls_parameters或者
SELECT USERENV ('language') FROM DUAL比如查询结果:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
那么字符集就是:ZHS16GBK;
然后设置客户端的本地字符集:
注册表:
默认情况下,windows上的Oracle安装使用注册表来定义这个设置。
版本 10g 及以上:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<oracle_home_name>
这里您会看到一个条目名为NLS_LANG
在64位windows平台上安装32位软件,会使用32位兼容性路径
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_<oracle_home_name>
或者环境变量:'我的电脑' ->'属性' >'高级' ->'环境变量'
增加一个:nls_lang = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
重启一下机器就可以了。
数据库字符集设置不对,修改下就好了。1、先用system和密码登陆SQLPLUS(如果不能直接以sys登陆到sqlplus的话),进入到sql*plus之后,可以通过conn / as sysdba转变为sysdba身份连接到数据库
2、开始修改编码
shutdown immediate停止oracle服务以及监听。如果服务停止,这部可省略
startup mount
alter system enable restricted session
alter system set job_queue_processes=0初始化设置job
alter database open
alter database character set internal_use utf8设置编码 (alter database character set internal_use ZHS16GBK)(alter database character set internal_use WE8ISO8859P1)
shutdown immediate关闭
startup重启
至此编码已经设置完成。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)