不管错误信息中你的数据库字符集是什么,都是由于数据库服务端和你的客户端字符集不统一造成的。影响Oracle数据库字符集最重要的参数是NLS_LANG参数。它的格式如下: NLS_LANG = language_territory.charset。它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:

Language: 指定服务器消息的语言, 影响提示信息是中文还是英文

Territory: 指定服务器的日期和数字格式,

Charset:  指定字符集。


一、查询客户端字符集 

SELECT * FROM V$NLS_PARAMETERS;

二、查看服务器端字符集

SELECT * FROM NLS_DATABASE_PARAMETERS;

 

由于已经修改过了字符集,上图中字符集都是utf8.

三、修改客户端字符集与服务器端一致的步骤(图文)

1.登入 

C:\Windows\system32>sqlplus

请输入用户名:sys

输入口令:as sysdba

 

SQL> shutdown immediate;      // (把database停了)

SQL> startup mount;  //(把database重开)

SQL> alter system enable restricted session;

SQL> alter system set job_queue_processes=0;

SQL> alter system set aq_tm_processes=0;

SQL> alter database open;

SQL> alter database character set utf8;

SQL> alter database character set internal_use utf8;

SQL> shutdown immediate;

SQL> startup;   //(重开正常oracle)

验证的话,看文章一二两步骤即可。

更多推荐