zoukankan      html  css  js  c++  java
  • Oracle:sqlplus查询出的中文是乱码问题的解决(转)

    有一台远程服务器不能通过Oracle客户端远程登陆,只能通过Secure CRT的ssh登陆(估计原因是1521端口被封)。在这种情况下要select数据

    就只能先ssh到远程服务器,然后运行sqlplus了。

    登陆进sqlplus以后,执行select语句,英文都是正常的,但中文全都是????。

    问题解决:

    首先,确定问题的原因所在:是字符集的问题是肯定的了,但问题是那里的字符集设置有错误。

    在sh下# locale
    LANG=zh_CN.GB18030
    LC_CTYPE="zh_CN.GB18030"
    LC_NUMERIC="zh_CN.GB18030"
    LC_TIME="zh_CN.GB18030"
    LC_COLLATE="zh_CN.GB18030"
    LC_MONETARY="zh_CN.GB18030"
    LC_MESSAGES="zh_CN.GB18030"
    LC_PAPER="zh_CN.GB18030"
    LC_NAME="zh_CN.GB18030"
    LC_ADDRESS="zh_CN.GB18030"
    LC_TELEPHONE="zh_CN.GB18030"
    LC_MEASUREMENT="zh_CN.GB18030"
    LC_IDENTIFICATION="zh_CN.GB18030"
    LC_ALL=

    这些值都是可以正确显示中文的。应该不是操作系统字符集的问题。

    那么肯定就是Oracle字符集设置的问题了。于是就联想到导出数据库时:EXP-00091错误也是由于字符集环境设置的问题。

    sh下执行$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

    再进入sqlplus查询,中文果然显示正常了。

    至此,问题顺利解决。

    使用sqlplus的一些窍门:

    ★ 由于sqlplus对行宽的设置比较小,所以查出来的记录的列名和值自动折行,都挤在一个非常小的宽度内,非常难看。

    SQL> set linesize 32767

    这样就把行宽设置为最大。在sqlplus的范围内一般不会自动折行了。

    但由于Secuer CRT 也有行宽的设置,所以还是会堆在一起。这个问题比较简单。

    设置Secuer CRT 行宽,或把结果粘贴Editplus中,就一行是一行的显示了。
     

  • 相关阅读:
    SharePoint Framework (SPFx) 开发入门教程
    SharePoint 2013 Designer 入门教程
    SharePoint 2013 开发教程
    SharePoint 2013 入门教程
    SharePoint Online 部署SPFx Web部件
    SharePoint Online SPFx Web部件绑定数据
    SharePoint Online 创建SPFx客户端Web部件
    SharePoint Online 配置框架(SPFx)开发环境
    SharePoint Online 创建应用程序目录
    SharePoint Online 启用 IRM
  • 原文地址:https://www.cnblogs.com/hssbsw/p/1285905.html
Copyright © 2011-2022 走看看