【问题标题】:PL/SQL Developer displays does not display Hebrew characters properlyPL/SQL Developer 显示无法正确显示希伯来语字符
【发布时间】:2026-02-09 23:50:02
【问题描述】:

大家好, 我上传了一张我在 PL/SQL Developer 中查看日期方式的照片,我看到的是问号而不是完整日期(例如,需要看起来像“02-Aug-2013 13:50:21.663”,如上所示其他电脑)...

如果有人知道我的喜好是什么让它看起来像这样 - 我很想知道... 谢谢!

更新: NLS 参数:

NLS 数据库参数:

【问题讨论】:

  • 您可以尝试只输入月份来运行相同的查询吗? (从日期中提取月份)
  • 在SQL*Plus中运行查询,你还有这个问题吗?
  • 我认为您的 NLS_CHARACTERSET 不支持希伯来字符;它不需要是IW8MSWIN1255吗? (或 UTF)。月份值由 NLS_DATE_LANGUAGE 控制,它继承自 NLS_TERRITORY,因此您可以在客户端中更改这些值。如果您要连接到将我们设置为“美国”的数据库,那么可能需要让您的客户匹配以使一切看起来“正确”。您电脑的区域设置也可能会影响默认设置。
  • 请给我们看一下存储过程。也许你在那里做错了什么。

标签: sql oracle plsqldeveloper


【解决方案1】:

问题似乎是由于 clientdatabase 中的 NLS 参数 不匹配造成的。对于此类问题,请始终记住发布操作系统详细信息,数据库版本最多 4 位小数。

检查参数值:

SELECT * FROM v$nls_parameters;
SELECT * FROM nls_database_parameters;
  1. 在客户端设置NLS_DATE_LANGUAGE与数据库完全相同。在您的情况下,数据库中的 NLS_DATE_LANGUAGE 是 AMERICAN

  2. NLS_LANG的环境变量设置为:

[NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]

所以,设置为AMERICAN_AMERICA.WE8MSWIN1252

  1. 另一个观察是,您的其他 NLS 参数也需要在客户端更改以匹配数据库。否则,您会不时发现类似的问题,只是 DATE 没有。

【讨论】:

  • 我已经上传了主信息中的 2 张照片
  • 布拉马特,所以现在很清楚,语言环境 NLS 参数与数据库 NLS 参数不匹配。准确地说, NLS_DATE_LANGUAGE 是不同的。因此,当您在客户端显示从 DB 获取的日期列时,英语在希伯来语中显示为垃圾。最重要的是 WE8MSWIN1252 字符集不支持希伯来字符。您需要设置正确的字符集以支持希伯来语。然后,编辑您的环境变量以匹配它。
  • @Brmat:这解决了你的问题吗?请将其标记为答案,以便最终阅读您帖子的人更清楚。
【解决方案2】:

我想离开这里一个 解决方案 与国家语言设置无关,并且作为post这导致我自己指出,像您这样的问题的 10 个案例中有 9 个(我遇到的情况相同) - 而是在 此解决方案 之后得到修复。

我一直在搞乱 NLS 一段时间,但无济于事。然后我刚刚结束了this 的帖子,这就是解决我的问题的原因。

简而言之,如果选择用于显示 SQL 结果的字体不支持您尝试显示的语言,那么它将不起作用。在我的情况下,需要显示希伯来语,我只需选择 Tahoma 作为显示字体就可以了,正如前面提到的帖子所建议的那样。

这是一个显示过程的屏幕截图:

首选项 -> 用户界面 -> 字体 -> 网格 -> 选择

【讨论】:

    【解决方案3】:

    您可以尝试更改“日期格式”、“时间戳格式”、“时间戳 TZ 格式” 到“DD-MON-YYYY HH24:MI:SS”(减引号)或您想要的格式。

    Tools->Preferences->Database->NLS访问首选项

    【讨论】:

    • 问题出在MON 值上,所以这真的没有帮助吗?