ORA-12705: 无法访问 NLS 数据文件或无效环境

Posted

技术标签:

【中文标题】ORA-12705: 无法访问 NLS 数据文件或无效环境【英文标题】:ORA-12705: Cannot access NLS data files or invalid environment 【发布时间】:2011-10-08 23:03:42 【问题描述】:

前几天我收到了这个烦人的 oracle 错误:ORA-12705:无法访问 NLS 数据文件或指定的环境无效。有趣的是我没有尝试访问 NLS 数据文件

【问题讨论】:

【参考方案1】:

有两种可能的原因:

尝试使用无效的 NLS 参数或值发出 ALTER SESSION 语句。

NLS_LANG 环境变量包含无效的语言、地区或字符集。

修复:

取消设置 NLS_LANG 环境变量

Windows - NLS_LANG 必须在 Windows 注册表中取消设置(最好重新命名)。在 \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 的注册表中查找 NLS_LANG 子项,并将其重命名。

Linux/UNIX - 在这里您只需发出 Linux 命令“unset NLS_LANG”

【讨论】:

【参考方案2】:

我有 Oracle 10g XE 和 Windows 7。我解决了这个问题:

转到控制面板 > 区域和语言选项 > 格式化并设置您的语言。

【讨论】:

此分类为评论,而非完整答案 这是唯一对我有用的方法,谢谢。 在 windows 10 中:转到“控制面板 > 区域 > 格式”,然后将格式设置为“英语(美国)”,然后重新启动您的客户端工具(例如:oracle sql developer)。跨度> 【参考方案3】:

按照此过程为 Oracle 数据库设置 NLS_LANG 环境变量。 为 Oracle 数据库设置 NLS_LANG 环境变量 确定 NLS_LANG 值。 在数据仓库数据库中,运行命令 从 V$NLS_PARAMETERS 中选择 *

记下 NLS_LANG 值,其格式为 [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]。 例如:American_America.UTF8 对于 Windows: 导航到控制面板 > 系统,然后单击高级选项卡。单击环境变量。 在系统变量部分中,单击新建。 在变量名称字段中,输入 NLS_LANG。 在变量值字段中,输入在步骤 1 中返回的 NLS_LANG 值。 NLS_LANG 值的格式应为 [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]。 例如:American_America.UTF8。 对于 UNIX,如下所示设置变量: setenv NLS_LANG

例如:setenv NLS_LANG American_America.UTF8。 如果您的数据是 7 位或 8 位 ASCII 并且 Informatica Server 在 UNIX 上运行,则设置 NLS_LANG _.WE8ISO8859P1 注意:确保按照此过程中所述正确设置 NLS_LANG 变量,否则您的数据将无法正确显示。

创建变量后重启机器。

【讨论】:

【参考方案4】:

就我而言,我在 oracle weblogic 控制台中创建了一个数据库适配器,通过执行以下配置来解决问题。 Windows -> 控制面板 -> 地区: 1. 将格式更改为英语(美国)日期格式 M / d / yy 和 2. 将我的地址更改为美国。执行此配置,因为我的机器是用西班牙语配置的,然后重新启动计算机,我就可以正常工作了。

【讨论】:

所以在最新版本的 Win10 中,您无法从控制面板更改地址,所以只需更改其余部分,这对我有用。 为我工作。进行更改后不要忘记重新启动电脑。【参考方案5】:

Oracle Instant 客户端 的环境变量中添加路径后,Oracle SQLPLUSW 转到 Oracle Instant 客户端,对于该客户端,它需要设置 NLS LANG AS American_America.UTF8

【讨论】:

【参考方案6】:

您也可以在 oracle 设置中设置 NLS 配置

【讨论】:

【参考方案7】:

如果上述解决方案没有帮助,可以尝试我的解决方案。我刚刚将最新版本的Ojdbc14.jar 替换为旧版本的Ojdbc5.jar。它帮助我解决了我的问题。

【讨论】:

对于 Oracle 12C,我使用了 ojdbc7.jar,解决了我的问题。【参考方案8】:

我试图在指向 11g 数据库的 WebLogic 12c 上配置我的数据源,但我一直收到此错误。我发现 WL 12c 与 oracle 11g 数据库不兼容。 我知道这不相关,但我相信其他人会觉得这很有用。

【讨论】:

以上是关于ORA-12705: 无法访问 NLS 数据文件或无效环境的主要内容,如果未能解决你的问题,请参考以下文章

解决ORA-12705无法访问NLS问题

oracle 9i:ora-12705 指定的 nls 参数值无效或未知

ORA-12705: Cannot access NLS data files or invalid environment specified

ORA-12705: Cannot access NLS data files or invalid environment specified

ORA-12705 解决方法

ORA-00604。我创建连接池,我试图在glassfish中ping