in reply to Re: Environment variable woes connecting to Oracle
in thread Environment variable woes connecting to Oracle

LD_LIBRARY_PATH *must* be set before perl is loaded.

Generally, yes, but for loading the propritary DLLs required by DBD::Oracle, no. It is sufficient to set up the environment variables before DBD::Oracle is loaded.

This should also work:

#!/usr/bin/perl use lib '/home/install/perl'; BEGIN { # Setup Environment for Oracle - has to happen *before* DBD::Oracl +e is loaded, # and because DBI loads DBD::Oracle during its startup, this has t +o happen # before the first "use DBI". $ENV{'ORACLE_HOME'}="/home/root/home/xyzco/oracle/oracle/product/1 +2.1.0/dbHome_1"; $ENV{'LD_LIBRARY_PATH'}="/home/root/home/xyzco/oracle/oracle/produ +ct/12.1.0/dbHome_1/lib:/lib:/usr/lib"; } use DBI; print $ENV{'LD_LIBRARY_PATH'}; $dbh = DBI->connect("dbi:Oracle:host=127.0.0.1;sid=V1011679;port=1521" +, "user", "password", { AutoCommit => 1});

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

Replies are listed 'Best First'.
Re^3: Environment variable woes connecting to Oracle
by stevieb (Canon) on Apr 12, 2017 at 17:33 UTC

    That's great! Thanks for digging deeper on the issue.

      Actually, it's a quite old trick.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)