RE: Connecting to more than one oracle database
- From: Philip.Garrett@xxxxxxxxxxx (Philip Garrett)
- Date: Wed, 29 Nov 2006 09:26:21 -0500
Malka Cymbalista wrote:
I am running Apache 2.0.55 with mod_perl 2.0.1 and Perl 5.8.1 on a Sun
Solaris machine. I am using DBI/DBD to connect to an Oracle database.
I am running DBI 1.39 and DBD-Oracle 1.16.
In order to connect to an oracle database on a different machine I
have a tnsnames.ora file with the appropriate definition. I also have
a file startup.pl with the following information:
$ENV{ORACLE_HOME} = '/usr/local/ora9i/9.2.0';
$ENV{ORACLE_SID} = 'asdb';
$ENV{TWO_TASK} = 'asdb';
$ENV{TNS_ADMIN} = '/usr/local/ora9i/9.2.0/network/admin/DEV_wiccdb';
In httpd.conf I have the line
PerlRequire "/www/httpd/conf/startup.pl"
I am currently connecting to an oracle database on a different machine
and everything is working fine. I would now like to connect to
another oracle database on another machine. My problem is how to
define my environment variables. ORACLE_HOME and TNS_ADMIN do not
seem to be a problem since I assume they can be the same. However,
how do I define ORACLE_SID and TWO_TASK so that they allow connecting
to 2 different databases on 2 different machines?
TWO_TASK and ORACLE_SID are defaults, and are not necessary if you can
specify the database name when you connect. Since you're using TNS, you
can just reference the TNS names in your connect string, e.g.:
my ($db,$user,$pass);
($db,$user,$pass) = ('asdb','user','pass');
my $dbh_1 = DBI->connect("dbi:Oracle:$db",$user,$pass)
|| die "can't connect: $DBI::errstr";
($db,$user,$pass) = ('other_db','user','pass');
my $dbh_2 = DBI->connect("dbi:Oracle:$db",$user,$pass)
|| die "can't connect: $DBI::errstr";
Regards,
Philip
.
- Prev by Date: MySQL do() memory leak?
- Next by Date: RE: Connecting to more than one oracle database
- Previous by thread: Test Message
- Next by thread: Re: Connecting to more than one Oracle database
- Index(es):
Relevant Pages
|