前几天我得到了这个恼人的oracle错误:ORA-12705:无法访问NLS数据文件或指定的无效环境。有趣的是我没有尝试访问NLS数据文件
答案 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
。它帮助我解决了我的问题。