These perl apps run against internal databases where all users have
writeable access to data from multiple servers and , like it or not,
refuse to use a tool where they'd have to enter names/passwords - just
not an option.

The only oracle client that will handle the wallet on oracle 10 is the
10 client and it will NOT successfully connect to an 'external' defined
user on a remote Oracle 8 server. Again, security be darned, like it or
not, thats the just way it is.  [ 'If you don't like go work somewhere
else' ;-) ]

Anyway the solution looks like a DBI::Proxyserver running client 8 and
the apps themselves running client 10 - 2 different perl installations.
Looks like it will work so far.


On Fri, 2009-10-30 at 08:27 -0700, Jared Still wrote:
> 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
>         
>         
>         
>         
>         
>         
>         
> 

Reply via email to