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

sauutmhj  于 2023-08-04  发布在  Oracle
关注(0)|答案(8)|浏览(614)

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

py49o6xq

py49o6xq1#

有两种可能的原因:
试图使用无效的NLS参数或值发出ALTER SESSION语句。
NLS_LANG环境变量包含无效的语言、地区或字符集。
修正:
取消设置NLS_LANG环境变量
Windows -必须在Windows注册表中取消设置NLS_LANG(最好重新命名)。在\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下的注册表中查找NLS_LANG子项,并将其重命名。
Linux/UNIX -在此只需发出Linux命令“unset NLS_LANG”即可

kuhbmx9i

kuhbmx9i2#

Oracle 10g XE和Windows 7我的解决方法如下:
转到控制面板>区域和语言选项>格式并设置您的语言。

ryevplcw

ryevplcw3#

按照以下过程为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:导航到控制面板>系统,然后单击高级选项卡。单击“环境变量”。在“系统变量”部分中,单击“新建”。在“变量名称”字段中,输入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变量(如本过程所述),否则数据将无法正确显示。
创建变量后重新启动计算机。

anhgbhbe

anhgbhbe4#

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

flvlnr44

flvlnr445#

Oracle Instant client的环境变量中添加路径后,OracleSQLPLUSW将转到Oracle Instant client,并且需要为该客户端设置NLS LANG AS American_America.UTF8

ojsjcaue

ojsjcaue6#

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

gtlvzcf8

gtlvzcf87#

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

9bfwbjaz

9bfwbjaz8#

我试图在WebLogic 12c上配置指向11g数据库的数据源,但一直出现此错误。我发现WL 12c与Oracle 11g数据库不兼容。我知道这是不相关的,但我相信别人会发现这是有用的。

相关问题