SQL plus版本:
[oracle@pg-xc2 ~]$ sqlplus -v
SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
操作系统:CentOS Linux 7 (Core)
数据库:Oracle 19c Version 19.3.0.0.0
同样的SQL脚本在windos CMD sqlplus 执行没问题。下面直接看图:
![](https://i-blog.csdnimg.cn/direct/689474bccc0e44df9cce2b1919b98882.png)
![](https://i-blog.csdnimg.cn/direct/ee449b0781544d619a30d73f3ac93653.png)
![](https://i-blog.csdnimg.cn/direct/bf794d80a39641128ff5be5475273b1c.png)
问题在"大"字,可能还有不少中文组合会出现这个情况。神奇不神奇?大家遇到吗?
接着后面插入数据和更新数据发现问题:
![](https://i-blog.csdnimg.cn/direct/7b3a433a200649d79752786c1362da91.png)
后面想了想这个问题和之前查询的引号里中文出错是同样的原因。
查看操作系统的默认字符集是:en_US.utf8
经过修改配置发现是因为之前查询中文结果是乱码,在使用SQL plus登录数据库之前设置了字符集
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
取消这个字符集设置之后在登录数据执行插入和更新操作,正常了。
![](https://i-blog.csdnimg.cn/direct/19246c9917d7441c924f572c9628d6b0.png)
我估计是某些中文字符的组合解析之后 ,系统编码解析把后面的双引号判断为 列名的一部分去了。还是字符集的问题,请问这个问题怎么解决?既让查询结果中文正常显示,又不会出现中文影响单引号和双引号的问题?