Hi all,

Hope someone can help.

I need to talk to both an oracle 8 and oracle 10 server in the same
script using their respective "external connections" capabilities (i.e.,
no user name or password  -- system authentication on 8 & wallet on
10 ).

Hacked up a version of DBD to get everything renamed from 'Oracle' to
'Oracle8' and built against Oracle 8 libs. The other is built against
Oracle 10 libs.  So I've 2 different builds in the same perl build:

./lib/site_perl/5.8.9/i686-linux/DBD/Oracle.pm
./lib/site_perl/5.8.9/i686-linux/DBD/Oracle8.pm
./lib/site_perl/5.8.9/i686-linux/auto/DBD/Oracle/Oracle.h
./lib/site_perl/5.8.9/i686-linux/auto/DBD/Oracle/Oracle.so
./lib/site_perl/5.8.9/i686-linux/auto/DBD/Oracle/Oracle.bs
./lib/site_perl/5.8.9/i686-linux/auto/DBD/Oracle8/Oracle8.so
./lib/site_perl/5.8.9/i686-linux/auto/DBD/Oracle8/Oracle8.bs
./lib/site_perl/5.8.9/i686-linux/auto/DBD/Oracle8/Oracle8.h

( Oracle.pm is oracle 10 & Oracle8.pm is oracle 8 )

I'm reading from a single tns_names.ora.
( SERV2 is Oracle 10 & SERV1 is Oracle 8 )
ORACLE_HOME is the same each time.
LD_LIBRARY_PATH includes 2 entries - 1 for Oracle 10 lib directory 
and 1 for Oracle 8.
So the environment is the same every time.


I can:
--------------------------------------------
use DBD::Oracle8;
my $db3=DBI->connect("dbi:Oracle8:SERV1",'','');
--------------------------------------------

Or I can:
--------------------------------------------
use DBD::Oracle;
my $db3=DBI->connect("dbi:Oracle:SERV2",'','');
--------------------------------------------

but:
--------------------------------------------
use DBD::Oracle8;
use DBD::Oracle;

my $db3=DBI->connect("dbi:Oracle8:SERV1",'','');
my $db3=DBI->connect("dbi:Oracle:SERV2",'','');
--------------------------------------------
Will make both connections successfully, but exits
with a segmentation fault

Or if I reverse the connections:
--------------------------------------------
use DBD::Oracle8;
use DBD::Oracle;

my $db3=DBI->connect("dbi:Oracle:SERV2",'','');
my $db3=DBI->connect("dbi:Oracle8:SERV1",'','');
--------------------------------------------
first connection succeeds and second fails.


Also, these obviously fail because of wrong Oracle version:
--------------------------------------------
use DBD::Oracle;
my $db3=DBI->connect("dbi:Oracle:SERV1",'','');
--------------------------------------------
--------------------------------------------
use DBD::Oracle8;
my $db3=DBI->connect("dbi:Oracle8:SERV2",'','');
--------------------------------------------

Any ideas as to why?  Thanks.

Jeff

 





Reply via email to