oracle10G无法正确显示字符集的问题

  作   者: 隗公万

  一、我的环境:
  版  本: CentOS release 5 (Final)
  内  核: 2.6.18-8.el5
  数据库: oracle 10G

  二、问题说明:
  装了好久的操作系统和oracle 10G数据库一直都是只用些英文的数据和数字,今天突然有日文数据的需求了,所以就顺手插入些日文数据,问题随即就来了居然全是乱码或问号。顺便又试了试中文,居然效果跟日文一样都是乱码或问号。这下就有些郁闷了。只好去网上搜索,去DBA的群中问,无奈大家的方法都解决不了我的问题,最后他们都让我重装系统。这个怎么能重装呢,里面还那么多东西呢!

  三、解决问题:
  首先,要先明白这个问题的原因:是由于数据库的客户端、服务器端、还有个会话的字符集不统一并且有无法显示日文的字符集。

  然后,查看下系统的这些字符集,很简单直接输入一些命令就可以查到:

  select * from sys.nls_database_parameters;--查看数据库参数
  select * from sys.nls_instance_parameters; --查看客户端参数
  select * from sys.nls_session_parameters; --查看会话的参数

  最后,修改这些NLS_LANGUAGE的值,我的就修改成了一致的WE8ISO8859P1。并且在环境变量中增加了export NLS_LANGUAGE=Japanese_Japan.WE8ISO8859P1的环境变量。再从sqlplus登入oracle数据插入中文或者日文都可以正常显示了。到此问题就算是解决了。