含有Oracle变量的Perl脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了含有Oracle变量的Perl脚本相关的知识,希望对你有一定的参考价值。

我们有大量的perl脚本,在许多服务器上运行。当我在不同的服务器上运行时,出现了如下的错误。

Can't load '/opt/vzw/perl5/lib/site_perl/5.18.1/sun4-solaris-thread-multi- 
64/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: ld.so.1: perl: fatal: libclntsh.so.11
.1: open failed: No such file or directory at /opt/vzw/perl5/lib/5.18.1/sun4-solaris-thread-multi- 
64/DynaLoader.pm line 190.
at (eval 16) line 3.
Compilation failed in require at (eval 16) line 3

当我手动设置oracle_home时,如下图所示,它就能正常运行。

export ORACLE_HOME=/db/app/oracle/product/11.2.0.4/dbhome_1

但是,看起来当perl脚本运行时,它的路径是这样的

/db/app/oracle/product/11.2.0.3/dbhome_1

在perl脚本中,我注意到有一行 "使用DBI"。我对perl不熟悉。所以只是想知道如何更改perl的设置,使其采用最新的11.2.0.4而不是11.2.0.3。

有成千上万的脚本,所以不方便在其中手动传递导出命令.我希望弄清楚当perl脚本执行时,oracle_home的变量设置在哪里。

答案

根本就没有这个东西。Perl 和 DBD::Oracle 并没有为这个变量提供任何默认值。不管设置的是什么,都是你的服务器上所提供的环境的一部分,SO不可能告诉你任何事情。

以上是关于含有Oracle变量的Perl脚本的主要内容,如果未能解决你的问题,请参考以下文章

从 PHP 调用 Perl 脚本并传入变量,同时还使用可变的 perl 脚本名称

如何在 SQL 脚本中使用 Perl 变量(使用反引号)

perl 第五弹 变量 I

如何在 Perl 脚本之间共享 ENV 变量

进入由 shell 脚本设置的 perl 程序环境变量

如何在 bash shell 脚本中的 perl 命令调用中使用 shell 变量?