11gpath失败 oracle_当我尝试连接到Oracle 11g时,为什么Perl的DBI会抱怨“失败:错误OCIEnNN创建”?...

8 个答案:

答案 0 :(得分:6)

检查您的Oracle客户端配置(包括,如消息所示,ORACLE_HOME),检查文件权限等.DBI本身不太可能与问题有关,而且我知道DBD :: Oracle的事实与11g库(至少11g InstantClient)兼容。

答案 1 :(得分:3)

将use DBD::Oracle;添加到您的perl脚本中。

这使我的问题消失了。

答案 2 :(得分:2)

很抱歉让这个帖子再次活跃起来,但我一直试图解决这个问题好几个星期。我没有找到最终为我解决的问题。

环境:RedHat 6.5,Oracle Instant Client 12.1,Apache 2.2

为我解决了什么:

更改安装Oracle Instant Client的目录的权限,该权限也必须是LD_LIBRARY_PATH的值。 “其他”,只是所有者和组无法访问该目录。这个命令完全不同:

# chmod o+rx INSTANTCLIENT-DIRECTORY

我一直在尝试创建ORACLE_HOME和LD_LIBRARY_PATH的所有可能组合。 (甚至“未设置”ORACLE_HOME;我找到了可以解决问题的建议,因为Instant Client只需要LD_LIBRARY_PATH和!NOT!ORACLE_HOME。)没有任何帮助,直到......

它让我在错误信息中进一步查看:

failed: ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var

or PATH (Windows) and or NLS settings, permissions, etc.

权限是关键词!

希望这有助于其他人!

答案 3 :(得分:2)

Afther将Oracle表单10.2.0.4升级到10.2.0.5我的Perl-CGI无法正常工作,Apache的error.log文件出错了:

DBI connect('DB','user',...)失败:ERROR OCIEnvNlsCreate。校验

ORACLE_HOME(Linux)env var或PATH(Windows)和/或NLS设置,

权限等...

OCIEnvNlsCreate。检查ORACLE_HOME(Linux)env var或PATH(Windows)

和/或NLS设置,权限等!在......

添加以下指令解决问题:

my $ORACLE_HOME = "/usw/app/oracle/product/10.2";

$ENV{ORACLE_HOME}=$ORACLE_HOME;

答案 4 :(得分:0)

我也遇到了同样的问题。在我的情况下,ORACLE_HOME环境变量不正确。

答案 5 :(得分:0)

检查#!/usr/bin/perl(脚本的第一行)是否也是您想要使用的perl版本!

答案 6 :(得分:0)

用于指定Oracle库的环境变量可能因系统而异。在大多数系统上,使用LD_LIBRARY_PATH但它也可能是LIBPATH(特别是在AIX上),DYLD_LIBRARY_PATH或其他系统。

答案 7 :(得分:0)

以前的答案并没有解决这个问题,但他们确实指出了我正确的方向:启动的环境缺少Oracle即时客户端的DYLD_LIBRARY_PATH。您可以致电:launchctl export进行检查

OS X 10.10中的

launchctl getenv variable_name

我对.bash_profile的输出进行了比较,发现instanclient的路径不在launchctl PATH和DYLD_LIBRARY_PATH中 - 一旦我添加了以下内容就可以了:

launchctl setenv PATH /path/to/instantclient

launchctl setenv DYLD_LIBRARY_PATH /path/to/instantclient

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值