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