不爱学习的xulin_ui
有两种可能造成上面这种情况,一种是由于Oracle服务器端字符编码 和 Oracle客户字符编码不一致引起的。另一种是服务器端和客户端字符编码都是AMERICAN_AMERICA.WE8MSWIN1252
检查Oracle服务器端字符编码:SQL>select userenv('language') from dual;
检查Oracle客户端字符编码:SQL>select * from v$nls_parameters a where a.PARAMETER = 'NLS_CHARACTERSET';
第一种情况,网上很多资料可以找到解决方法,我这里讲一下第二种情况怎么解决。划重点了,这是要考的喔。
首先进入Docker的Oracal容器中,输入sqlplus后以SYS超级管理员登录:sys/你的sys用户密码 as sysdba

将数据库启动到RESTRICTED模式下做字符集更改。SQL>alter system enable restricted session;
将字符集设置成AMERICAN_AMERICA.ZHS16GBK: SQL>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
到这一步,如果显示SQL>Database altered.就设置成功啦,如果你提示是ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active


最最后SQL> alter system disable restricted session;关掉RESTRICTED模式。大功告成!



关注的都是帅哥美女,(>Д<)

