创建t_gtype表:

SQL> create table t_gtype(
  2  gtid char(6) primary key,
  3  gtname varchar2(20) not null
  4  );

 

插入数据:

SQL> insert into t_gtype values('T00001','日常百货');

 

查询数据中文显示乱码:

 

SQL> select * from t_gtype;

GTID   GTNAME
------ --------------------

T00001 ????????

 

查询数据库服务端字符集:

SQL> select * from v$nls_parameters;

NLS_DATE_LANGUAGE
SIMPLIFIED CHINESE

NLS_CHARACTERSE
ZHS16GBK

 

服务端字符集为中文字符集,猜测客户端字符集问题,退出sql,设置客户端字符集:

[oracle@apex ~]$  export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

 

进入sql,重新插入数据:

SQL> insert into t_gtype values ('T00002','儿童用品');

 

查询数据显示,更改客户端字符集后插入的中文正常显示,但之前插入的仍显示为乱码:

 

SQL> select * from t_gtype;

GTID   GTNAME
------ --------------------
T00001 ????????

T00002 儿童用品