【发布时间】:2015-06-09 06:51:00
【问题描述】:
使用 PL/SQL Developer,我可以在我的 Oracle 数据库中插入法语字符而不会出现任何错误。
查询:
SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_NCHAR_CHARACTERSET';
输出:AL16UTF16
但是当我使用 select 语句检索数据时,它会被转换为一些垃圾字符,例如:
système 被转换为 système 等等....
我们将不胜感激任何建议/解决方法。
【问题讨论】:
-
你的操作系统是什么?您的特定于语言环境的 NLS 字符集是什么?这是一个显示问题,您的客户端无法正常显示。
-
我使用的是 Windows 7。Pl/SQL 字符集 字符大小:4 字节 CharSetID:873 NCharSetID:2000 Unicode 支持:真 NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252 NLS_CHARACTERSET:AL32UTF8 NLS_NCHAR_CHARACTERSET:AL16UTF16
-
你是怎么插入的?你是怎么查询的?什么是列数据类型?
dump()show 到底存储了什么? -
最初只有英文,更新为添加其他语言,使用 Update 语句。列类型为 SYS.XMLTYPE,dump() 显示一些数值数据 Typ=58 Len=118:
-
看起来您将 sql 文件保存为 UTF-8。在这种情况下,您的 NLS_LANG 也必须是 UTF8。
标签: oracle unicode plsqldeveloper