PLSQL:[1]plsql中文乱码,显示问号

汉字乱码?字符集错误。

PLSQL 查询参数:从 v$nlsp_parameters 中选择。

请检查 NLS_LANG 值。
中文环境需要ZHS1 6 GBK。

同时检查注册表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\home\NLS_LANG。

该值必须是SIMPLIFIEDCHINESE_CHINA.ZHS1 6 GBK。

环境变量不是NLS_LANG吗?建造一个。

名称:NLS_LANG。

值:SIMPLIFIEDCHINESE_CHINA.ZHS1 6 GBK。

重新启动 PLSQL。

plsql中文乱码解决方法

说实话,乱七八糟的PL/SQL汉字真的很烦人。
通常是由于字符集不匹配造成的。

1 .更改 NLS_LANG 环境变量。
在控制面板中找到环境变量,并在系统变量中创建一个新的NLS_LANG。
填写此值:<数据库字符集>_<国家/地区>.<字符集>,例如SIMPLIFIEDCHINESE_CHINA.ZHS1 6 GBK或ZH_CN.ZHS1 6 GBK。
进行更改后,您需要重新启动计算机。
这一步非常重要。

2 更改数据库的字符集。
您必须以管理员身份连接到数据库,例如 SQLPlus。
键入以下命令:CHANGE DATABASE CHARACTERS <目标字符集>。
例如,更改数据库设置 ZHS1 6 GBK。
但你必须小心这一点,如果数据有冲突,它就会结束。
在进行更改之前最好进行备份。
如果数据库中已经有很多数据,可能无法直接更改。
您将需要使用 CSALTER 实用程序或创建一个新数据库。

3 更改会话字符集。
在 PL/SQL Developer 或 SQLPlus 中键入:ALTER SESSION SET NLS_CHARACTERSET=<目标字符集>。
例如,ALTER SESSION SET NLS_CHARACTERSET=ZHS1 6 GBK。
这只会影响当前会话并且可以临时更改。

4 文本文件必须匹配。
如果中文数据来自CSV或SQL脚本,请确保文件的编码与数据库的字符集相同。
用Notepad++打开文件,另存为时,ZHS1 6 GBK选择GBK,AL3 2 UTF8 选择UTF-8 一个常见的问题是导入数据时,文件是UTF-8 ,数据库是ZHS1 6 GBK。
这时,要么需要转换文件编码,要么改变数据库字符集。

字符集推荐:ZHS1 6 GBK支持简体中文,兼容性好; AL3 2 UTF8 支持多种语言,但客户端和文件必须一致。

验证方法:输入 SELECT FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET';并从 NLS_SESSION_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET' IN SQL 中进行选择。
环境变量在命令行上键入 echo %NLS_LANG% (Windows) 或 echo $NLS_LANG (Linux)。

FAQ:更改NLS_LANG后,字符仍然混乱。
检查数据库字符集和 NLS_LANG 是否相同,并确认 PL/SQL Developer 本身没有更改会话字符集。
ALTER DATABASE 报错,可能是字符集冲突。
您必须使用 CSALTER 实用程序或导出和导入来重建数据库。

文件编码转换工具:Linux 下的 iconv 和 Windows 下的 Notepad++。
这些完成后,PL/SQL中的中文应该就正常了。
如果仍然不行,则应检查网络传输层或应用程序字符集配置。

plsql出乱码怎么办?

上周我在电脑上打开PLSQL,登录并写了一条查询语句,但结果被截断了。
我检查了Oracle服务器端的字符编码。
然后我设置了环境变量,问题就解决了。
返回桌面,打开计算机属性,单击高级系统设置,然后选择环境变量,创建新变量,设置名称和值,然后确认保存。
添加环境变量后,我重新打开PLSQL并重写查询,没有出现乱码。
就是这样。
对了,我还发现了一个新问题,下次再说吧。