察看数据库字符集:
select * from nls_database_parameters;
转换字符集
update NLS_DATABASE_PARAMETERS set VALUE = 'ZHS16GBK' 
where PARAMETER = 'NLS_CHARACTERSET' OR PARAMETER = 'NLS_NCHAR_CHARACTERSET';

解决方案 »

  1.   

    你在建数据库的时候,是可以选择字符集的,你肯定没有注意到这一点,
    Oracle在Linux上建数据库时默认的字符集并不是  "ZHS16GBK",要改。
    而且你的.bash_profile的字符集也不是“ZHS16GBK"你应该把它设置成  "ZHS16GBK",但.bash_profile里面的字符集改了
    并不说明数据库的字符集也改了。你若手工去改数据库的字符集,要非常的小心,绝对不能改错,改错了将导致
    不能启动数据库!!!
      

  2.   

    Be very carfully : 
    察看数据库字符集:
    select * from nls_database_parameters;
    转换字符集
    update NLS_DATABASE_PARAMETERS set VALUE = 'ZHS16GBK' 
    where PARAMETER = 'NLS_CHARACTERSET' OR PARAMETER = 'NLS_NCHAR_CHARACTERSET';It looks very dangerous . Don't do that .  I think you could use alter database or alter system command (Please refer to the oracle manual for the details)
      

  3.   

    再说明一下:上面那个.bash_profile文件是安装数据库之前预先定义好的,不是装完以后改的
      

  4.   

    nls_language=american 和你的操作系统有关,并不代表你数据库所用的字符集。数据库的字符集应该表现为JA16SJIS。
      

  5.   

    select
    *
    from
    nls_database_parameters后察看NLS_CHARACTERSET的内容。这个字段才是字符集。
      

  6.   

    不管是日文字符集还是中文字符集,只要.bash_profile和数据库字符集
    相同即可,我以中文字符集举例,你可以套用到日文,水中鱼同志。