Connected to: Oracle Database 10g Release 10.1.0.2.0 - ProductionSQL> set linesize 3000 SQL> select * from nls_database_parameters where parameter='NLS_LANGUAGE';PARAMETER VALUE ------------------------------------------------------------ --------------------------------------- NLS_LANGUAGE SIMPLIFIED CHINESESQL> create table word(name varchar2(10));Table created.SQL> insert into word values('晗');1 row created.SQL> select * from word;NAME -------------------- 晗SQL>
SQL> select userenv('language') from dual;USERENV('LANGUAGE') ---------------------------------------------------- SIMPLIFIED CHINESE_CHINA.ZHS16GBKSQL>
需要修改的话,执行: alter database character set internal_convert zhs16gbk;
谁都ORACLE装在繁体操作系统上的?打这个字是否显示正确
SQL> create table word(name varchar2(10));Table created.SQL> insert into word values('晗');1 row created.select utl_raw.cast_to_varchar2(utl_raw.cast_to_raw(name)) from word ;
Oracle Database 10g Release 10.1.0.2.0 - ProductionSQL> set linesize 3000
SQL> select * from nls_database_parameters where parameter='NLS_LANGUAGE';PARAMETER VALUE
------------------------------------------------------------ ---------------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESESQL> create table word(name varchar2(10));Table created.SQL> insert into word values('晗');1 row created.SQL> select * from word;NAME
--------------------
晗SQL>
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBKSQL>
alter database character set internal_convert zhs16gbk;
原因主要是客户端和服务端字符集不一致。如果你是通过中间件来连接数据库的,可能要注意环境变量的配置。
不知道你的环境是LINUX/UNIX/AIX还是WIN的?
也有可能是由于某些疑难字在某些字符集中没有包含所致。