关于Oracle for Linux sqlplus的乱码问题

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 16:59 点击:

信好多朋友都遇到这个问题,在网上一搜一大片,但是真正回帖的人不多,在此我提供下我的解决方案,希望能对你们有帮助。
  一:故障重现
 首先在Linux shell下面连接 Oracle数据库
$sqlplus    /nolog 
SQL>conn   /as   sysdba
SQL>startup(环境变量设置好以后,数据库会自动启动)
SQL>如果有问题这里差不多能显示出来,就是一个个的?????,如果用远程软件连接的话,就可能是一个个方块。
二:解决办法
     退出sqlplus,在Oracle家目录下查看环境变量文件
     ls -la
我的是.bash_profile
vim  .bash_profile
在下面一行加入
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG
退出vim
 
 
三:$.   ./.bash_profile(重新加载环境变量)
再连数据库试试吧,应该没问题了,这里说的有个前提,就是装oracle的时候,选择的字符集是AMERICAN_AMERICA.ZHS16GBK
如果是别的字符集,就用类似方法试试。同样,在/etc/sysconfig/i18n里设置下兼容的语言以及字体。
select userenv('language') from dual
显示的结果是:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
 
那就把字符集改写成中文的NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
==================================
2011、7、11最新总结,最近的情况让我对上述结论有了新的看法,安装oracle数据库的经历少说有20次了,从11gR 1   32位跟64位,到11gR2  64位。装几次就会遇到不同的问题。R2 64位版本貌似对系统的要求比较高,内存资源池的共享区要求貌似不小。

总之,今天有得到个心得结论。

上面说的都不完全对,要自己试试以后才知道。这装好之后,select  userenv('language') from dual; 结果就是简体中文,一点都没错我装的时候就是选得简体中文,这样报错之后能看个明白。
可是不管我怎么变更shell下的语言,都是显示乱码,郁闷至极的时候我就把NLS_LANG=AMERICAN_AMERICA.ZHS16GBK结果好了。
我服气了,不过显示的都是英文。
英文也行啊,总比乱码好多了。
想了想原因,可能是本机的语言没装完全吧。

继续....
让各种错误都发生出来吧!
本文出自 “勇攀高峰” 博客

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Table函数使用简介
    • Oracle数据库Constraint约束的常用操作及异常处理
    • Bulk Collect性能分析(zz)
    • export/import的使用
    • OCP043第十五讲 Database Security
    • ORACLE10gr2数据导入MySQL方案
    • oracle 让sys用户可以使用isqlplus
    • 在oracle数据库下使用iSQL*Plus DBA访问数据库
    • Oracle行列转换小结
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1