转载请在文章显眼位置注明出处:https://www.cnblogs.com/sunshine5683/p/10036321.html
今天在plsql连接oracle时候报错提示“数据库字符集和客户端字符集(2%)是不同的,字符集转化可能会造成不可预期的后果”如下图:

经过查阅资料发现数据库编码与客户端编码问题,然后通过以下命令顺利解决:
- 这段引用于:https://blog.csdn.net/t_wangjiyang/article/details/79020173
问题描述:本地连接服务器oracle数据库时,提示(数据库字符集和客户端字符集(2%)是不同的,字符集转化可能会造成不可预期的后果)- 问题原因:问题出在oracle服务端的字符集不支持中文导致。
- 可以通过:
- sselect * from nls_database_parameters; 命令可以查看服务端的使用的字符集。
- 查询结果中,NLS_CHARACTERSET的值就是字符集
- 解决步骤如下
- 1、ssh登录,切换到oracle用户
- 切换用户命令:su -oracle
- 之后用sqlplus登录oracle,命令:
- sqlplus /nolog
- connect /as sysdba
- 2、更改字符集
- 首先 sqlplus登录后,关闭oracle数据库
- 1.shutdown immediate ;
- 2.startup mount ;
- 3.alter system enable restricted session ;
- 4.alter system set JOB_QUEUE_PROCESSES=0;
- 5.alter system set AQ_TM_PROCESSES=0;
- 6.alter database open ;
- 7. alter database character set INTERNAL_USE ZHS16GBK;
- 8.shutdown immediate ;
- 9.startup ;
- 注:第七步报错可修改成:alter database character set INTERNAL_USE ZHS16GBK;

此处确实如上面所说,报错了,使用第七步的修改语句顺利执行

此时连接数据库,不再提示,说明编码已经修改

到此,问题解决!