sqlplus 连接Oracle 乱码的 解决方法

安装了oracle好久了,但 一直没怎么用过,但是当时 的确 很正常。最近要用到时发现 连接以及后面的操作时,不光中文,连后面的数值以及个别字母都有乱码,这就不能忍了,上网搜寻半天答案,并没有任何用处。

有人说是因为oracle的设置字符集和Windows的不一致导致的。我觉得应该是这样的。
通过连接数据库后,输入sql语句select * from V$NLS_PARAMETERS查看字符集,在查询结果中可见,数据库的字符集设置的是ZHS16GBK
这里写图片描述
知道数据库的字符集后,接着便是 更改电脑客户端的字符编码了,在之前配置的oracle环境变量中的NLS_LANG环境变量中,将原来设置的 字符改为AMERICAN_AMERICA.AL32UTF8即可。
至于为什么不设置成来的 SIMPLIFIED CHINESE_CHINA.ZHS16GBK,我也不知道

最后附上 配置oracle环境变量的教程
当然注意,如果 按照教程 乱码的话,记得改字符集为AMERICAN_AMERICA.AL32UTF8

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!有关 Oracle SQL*Plus 乱码的问题,我可以给您一些可能的解决方案。请尝试以下步骤来解决乱码问题: 1. 确保您的终端或客户端工具设置正确。在 Windows 环境下,可以在命令提示符中使用 `chcp` 命令检查当前的代码页设置,并确保它与数据库字符集一致。例如,如果数据库使用 UTF-8 字符集,则可以使用 `chcp 65001` 将代码页设置为 UTF-8。 2. 检查数据库字符集。您可以使用以下查询来确定数据库的字符集: ```sql SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET'; ``` 确保客户端工具和数据库字符集一致。 3. 检查会话字符集。在 SQL*Plus 中,可以使用以下语句来检查当前会话的字符集: ```sql SELECT value FROM nls_session_parameters WHERE parameter = 'NLS_CHARACTERSET'; ``` 如果会话字符集与数据库字符集不匹配,可以尝试使用以下命令将会话字符集设置为数据库字符集: ```sql ALTER SESSION SET NLS_CHARACTERSET = <数据库字符集>; ``` 例如: ```sql ALTER SESSION SET NLS_CHARACTERSET = 'UTF8'; ``` 如果需要修改客户端字符集,可以使用以下语句: ```sql ALTER SYSTEM SET NLS_LANG = <客户端字符集>; ``` 例如: ```sql ALTER SYSTEM SET NLS_LANG = 'AMERICAN_AMERICA.UTF8'; ``` 4. 检查操作系统环境变量。确保操作系统的语言和区域设置正确,并与数据库字符集匹配。在 Windows 环境下,可以在控制面板的“区域和语言选项”中进行设置。 5. 确保数据库中存储的数据是正确的字符集编码。如果数据库中的数据已经损坏或包含错误的字符集编码,显示乱码是正常的。 6. 如果以上步骤都没有解决问题,可能需要考虑升级或重新安装 Oracle 数据库以确保字符集设置正确。 请注意,这些解决方案可能会因您的具体环境而有所不同。如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助您解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值