设为首页 收藏本站
查看: 1157|回复: 0

[经验分享] oracle 中文乱码

[复制链接]

尚未签到

发表于 2018-9-24 14:22:22 | 显示全部楼层 |阅读模式
最近安装个Oracle 10g数据库,dbca建库的时候没选字符集或者选错的情况,导入数据后,中文全部是乱码(搞笑的是,中文乱码 居然全部是个“靠”字),查看网络几篇文章,也做了相应修改(以前按方法修改可以解决的,今天特例!),解决办法如下:  SQL> connect / as sysdba;              ---dba用户连接数据库
  SQL> select name,value$ from props$ where name like '%NLS%';---语句查询当前数据库服务器字符集
  NAME
  ------------------------------------------------------------
  VALUE$
  --------------------------------------------------------------------------------
  NLS_LANGUAGE
  AMERICAN
  NLS_TERRITORY
  AMERICA
  NLS_CURRENCY
  $
  
  NAME
  ------------------------------------------------------------
  VALUE$
  --------------------------------------------------------------------------------
  NLS_ISO_CURRENCY
  AMERICA
  NLS_NUMERIC_CHARACTERS
  .,
  NLS_CHARACTERSET           ----找到查出来的结果中的该项参数
  WE8ISO8859P1
  
  下面是修改过程:
  SQL> shutdown immediate;     ---停止数据库
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  SQL> startup mount           ---启动数据库到mount状态
  ORACLE instance started.
  Total System Global Area 235999352 bytes

  Fixed>
  Variable>  Database Buffers 33554432 bytes
  Redo Buffers 667648 bytes
  Database mounted.
  ---下面是修改过程,按步骤修改

  SQL>>  Session>
  SQL>>
  System>
  SQL>>
  System>
  SQL>>
  System>
  SQL>>
  Database>
  SQL> set linesize 120;

  SQL>>  alter database character set zhs16gbk
  *
  ERROR at line 1:
  ORA-12712: new character set must be a superset of old character set
  SQL>>
  # 使用INTERNAL_USE可以跳过超集的检查,
  (ALTER DATABASE character set INTERNAL_USE )
  Database>
  SQL> shutdown immediate;      ---再停止数据库
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  ---启动数据库
  SQL> STARTUP
  ORACLE instance started.
  Total System Global Area 235999352 bytes

  Fixed>
  Variable>  Database Buffers 33554432 bytes
  Redo Buffers 667648 bytes
  Database mounted.
  Database opened.
  SQL>
  
  ----再次查看当前字符集
  SQL> select name,value$ from props$ where name like '%NLS%';
  NAME
  ------------------------------
  VALUE$
  --------------------------------------------------------------------------------
  NLS_LANGUAGE
  SIMPLIFIED CHINESE
  NLS_TERRITORY
  CHINA
  NLS_CURRENCY
  ?
  
  NAME
  ------------------------------
  VALUE$
  --------------------------------------------------------------------------------
  NLS_ISO_CURRENCY
  CHINA
  NLS_NUMERIC_CHARACTERS
  .,
  NLS_CHARACTERSET
  ZHS16GBK  ---【已经修改成为中文编码了】
  今天的情况特殊,修改完了,中文乱码还是“靠”字,- -
  后来试着修改系统字符集
  在oracle下 .bash_profile 文件里面加入
  export NLS_LANG="Simplified Chinese_CHINA.ZHS16GBK"
  再次登录查看,还是不行
  最后把NLS_LANG中后面的字符集ZHS16GBK修改成AL32UTF8,查看结果,搞掂完成,回家!
  总结:要系统字符集和数据库字符集相对应才会解决中文乱码问题,dbca建库时,也要注意字符集选择问题。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-600664-1-1.html 上篇帖子: Oracle外联接用法 下篇帖子: oracle 大字段
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表