plsql中文乱码(查询显示问号???)

本文介绍了在PLSQL中遇到中文显示乱码的问题及解决方案。通过查看服务器和本地字符集,设置NLS_LANG环境变量,成功解决了新插入记录的中文显示。但原有记录仍显示为问号,未找到解决原有数据乱码的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

1、打开 plsql,执行 sql 语句,中文显示乱码:

---查询表中记录
select * from person;

 解决办法:

1)查看服务器端编码

        输入 sql 语句: select userenv('language') from dual       -- 查看数据库字符集

         我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK

2)执行 sql 语句 :select * from V$NLS_PARAMETERS    -- 查看本地字符集

查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第一步得到的值一样。如果不是,需要设置环境变量,否则PLSQL客户端使用的编码和服务器端编码不一致,插入中文时就会出现乱码.

 我实际查到的为AMERICAN

3)设置环境变量
计算机->属性->高级系统设置->环境变量->新建
设置变量名:NLS_LANG,变量值:第1步查到的值,(这里的变量值需要与数据库服务器相同 我的是    AMERICAN_AMERICA.ZHS16GBK

 4)重新打开 plsql,执行 sql 语句,问题解决

过程中遇到的问题:

    注:当完成以上4个步骤时,查询原来的记录还是问号????,只有新插入的记录才会正常显示。不知道这个怎么解决?

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值