On Wed, Oct 28, 2009 at 12:38 PM, jeff <j...@roqc.no> wrote: > > 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 ). > > I see lots of help offered on solving this problem.
What I am curious about is why is it a problem? Why can you not use a username and password? Some may say the answers to that question are obvious, but that may not be the case. Jared Still Certifiable Oracle DBA and Part Time Perl Evangelist Oracle Blog: http://jkstill.blogspot.com Home Page: http://jaredstill.com > 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 > > > > > > > >