in reply to setting oracle home globally through perl

One of the ways that I have solved this and issues like it in the past has been to create a DBConfig.pm file somewhere in the list of directories pointed to by @INC.

A sample sniglet looks like:

package DBConfig;

sub new {
           $self = { 
                     ORACLE_HOME => '/home/oracle',
                     SYBASE_HOME => '/home/sybase',
                     DBParms=>{
                       oracle => {
                         host => 'oraclehost',
                         user => 'user',
                         password => 'secret'
                        }
            
           };
    bless $self;
    return $self;
}

<snip!>

To instantiate the information:

use DBConfig;
use DBI;

my $dbconf=new DBConfig;
#
# Some hand waving here...
my $dbh=DBI->connect(
                       $dbconf->{DBParms}->{oracle}->{user}
               ...etc....

You get the idea I hope.

Now if the database information changes OR you add a supported database you just have to edit one place.

A very cute extension to this idea that I saw recently was to read in the $ORACLE_HOME/network/admin/tnsnames.ora file and parse it to get data for individual application databases

Hope this helps.


Peter L. BergholdBrewer of Belgian Ales
Peter@Berghold.Netwww.berghold.net
Unix Professional
  • Comment on Re: setting oracle home globally through perl