in reply to Environment variable woes connecting to Oracle

LD_LIBRARY_PATH *must* be set before perl is loaded. You can either set it at the command line prior to running your script, or wrap your perl script with a shell script where you can set the env var, then kick off the perl script.

Replies are listed 'Best First'.
Re^2: Environment variable woes connecting to Oracle
by afoken (Chancellor) on Apr 12, 2017 at 13:51 UTC
    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". ;-)

      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". ;-)
Re^2: Environment variable woes connecting to Oracle
by seawarrior (Initiate) on Apr 11, 2017 at 18:59 UTC
    Thank you sir.