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

时间:2011-10-08 23:03:43

标签: oracle

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

7 个答案:

答案 0 :(得分:16)

有两种可能的原因:

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

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

修正:

取消设置NLS_LANG环境变量

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

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

答案 1 :(得分:5)

我有Oracle 10g XE和Windows 7.我解决了以下问题:

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

答案 2 :(得分:2)

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

记下NLS_LANG值,格式为[NLS_LANGUAGE] _ [NLS_TERRITORY]。[NLS_CHARACTERSET]。 例如:American_America.UTF8 对于Windows: 导航到控制面板>单击系统并单击高级选项卡。单击“环境变量”。 在System variables部分中,单击New。 在“变量名称”字段中,输入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变量,否则您的数据将无法正确显示。

创建变量后重新启动机器。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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