问题描述:windows客户端执行insert,中文是乱码的。
windows客户端的字符集:
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
oracle数据库的字符集:
14:15:52 idle> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
所以是字符集不一致,修改windows客户段的字符集即可。
D:\Users>SET NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
SQL> insert into test values ('字符集');
已创建 1 行。
SQL> select * from test;
NAME
--------------------
字符集