RE: Maintaining simultaneous support for two Oracle versions in DBI

2011-12-05 Thread John Scoles


 

 From: b...@wards.net
 Date: Sun, 4 Dec 2011 19:15:20 -0800
 Subject: Re: Maintaining simultaneous support for two Oracle versions in DBI
 To: smi...@latfor.state.ny.us
 CC: dbi-users@perl.org
 
 Aren't the Oracle driver libraries backward compatible? If you link DBD to
 the Oracle 11 drivers, won't it still be able to connect to an Oracle 8
 server?
 
 
No they usually only go back one version. So 9 can connect to 8~10, 10 to 9~11 
ect at least that has been the trend with the last few clients at least with 
OCI.
 
They tend to change up the OCI packaging with each new version as well just to 
muck up us OCI coders.
 
cheers
John

 On Fri, Dec 2, 2011 at 10:27 AM, Scott Smith smi...@latfor.state.ny.uswrote:
 
  My workplace is transitioning from Oracle version 9 to version 11. I would
  like to build the DBD driver to support connecting to the Oracle 11
  database. However, until all the data are migrated from the old database to
  the new one, I would need to maintain connectivity to the old Oracle 9
  database. Since the driver and shared objects built for the new database
  would be incompatible, I would need to build separate objects for the
  Oracle 11 connection.
 
  Some of the items I can identify are:
 
  The module should be Oracle11.pm rather than Oracle.pm (called as
  DBI-connect(dbi:Oracle11:, ...) rather than DBI-connect(dbi:Oracle:,
  ...)).
  The shared object and bootstrap files as Oracle11.so and Oracle11.bs
  respectively. (Should these go in the same directory or should they be in
  the directory Oracle11 and does the package name in Oracle11.pm have to be
  changed to DBD::Oracle11 in order to find things there?)
 
  I have some idea of what I need to change in Makefile.PL in order to
  achieve at least part of this. What I have so far is changing references to
  Oracle.pm to Oracle11.pm and $opts{NAME} from DBD::Oracle to Oracle 11. Am
  I right about the second? Are there others I should have included?
 
  Thanks for any help,
  Scott Smith
 
 
 
 
 -- 
 Check out my LEGO blog at http://www.brickpile.com
 Follow/friend me: facebook.com/billward • flickr.com/photos/billward •
 twitter.com/williamward
  

Re: Maintaining simultaneous support for two Oracle versions in DBI

2011-12-05 Thread Peter J. Holzer
On 2011-12-05 07:08:01 -0500, John Scoles wrote:
  From: b...@wards.net
  Date: Sun, 4 Dec 2011 19:15:20 -0800
  Subject: Re: Maintaining simultaneous support for two Oracle versions in DBI
  To: smi...@latfor.state.ny.us
  CC: dbi-users@perl.org
  
  Aren't the Oracle driver libraries backward compatible? If you link DBD to
  the Oracle 11 drivers, won't it still be able to connect to an Oracle 8
  server?
  
  
 No they usually only go back one version. So 9 can connect to 8~10, 10
 to 9~11 ect at least that has been the trend with the last few clients
 at least with OCI.

We access an Oracle 8.1 database with 10.2 clients and a 10.2 database
with an 8.1 client, so that works at least for simple stuff (IIRC you
have to be careful about charsets and there are some problems with LOBs,
so YMMV). 

Accessing an 8.1 database with an 11g client definitely doesn't work.

I'm not sure whether an 11g client can access a 9i database.

For a transition from a 9i to an 11g database I would first try to use
an 11g client and fall back to a 10g client if that doesn't work.

hp

-- 
   _  | Peter J. Holzer| Auf jedem Computer sollte der Satz Ludwigs II
|_|_) | Sysadmin WSR   | eingeprägt stehen: Ein ewig Rätsel will ich
| |   | h...@wsr.ac.at  | bleiben, mir und andern.
__/   | http://www.hjp.at/ |-- Wolfram Heinrich in desd


signature.asc
Description: Digital signature


RE: Maintaining simultaneous support for two Oracle versions in DBI

2011-12-04 Thread John Scoles

I went through this about a year or so ago with another client his was 8 and 11 
so a real big differace.
 
It can be done but you have to reaname or at least alias some of the oracle 
files as well or else they will step on each other.  That is if you are usng 
linux. It is a little easer with windows (I am not joking) as the oracle files 
are in nice compact DLLs.
 
As well you have to reaname a good number of other files here and there in both 
XS and 'C' and try to get it to complie.
 
And even before you do that I did this a while ago and still have the code 
online here 'http://svn.perl.org/modules/dbd-oracle/branches/DBD-Oracle8' 
Renamed 8 but you can still complile it against 9 client.
 
 
But before you go though that I would just get the instanct client 10 which can 
connect to both 9 and and 11 and that should work for you.
 
Cheers
John
 

 Date: Fri, 2 Dec 2011 13:27:09 -0500
 From: smi...@latfor.state.ny.us
 To: dbi-users@perl.org
 Subject: Maintaining simultaneous support for two Oracle versions in DBI
 
 My workplace is transitioning from Oracle version 9 to version 11. I 
 would like to build the DBD driver to support connecting to the Oracle 
 11 database. However, until all the data are migrated from the old 
 database to the new one, I would need to maintain connectivity to the 
 old Oracle 9 database. Since the driver and shared objects built for the 
 new database would be incompatible, I would need to build separate 
 objects for the Oracle 11 connection.
 
 Some of the items I can identify are:
 
 The module should be Oracle11.pm rather than Oracle.pm (called as 
 DBI-connect(dbi:Oracle11:, ...) rather than 
 DBI-connect(dbi:Oracle:, ...)).
 The shared object and bootstrap files as Oracle11.so and Oracle11.bs 
 respectively. (Should these go in the same directory or should they be 
 in the directory Oracle11 and does the package name in Oracle11.pm have 
 to be changed to DBD::Oracle11 in order to find things there?)
 
 I have some idea of what I need to change in Makefile.PL in order to 
 achieve at least part of this. What I have so far is changing references 
 to Oracle.pm to Oracle11.pm and $opts{NAME} from DBD::Oracle to Oracle 
 11. Am I right about the second? Are there others I should have included?
 
 Thanks for any help,
 Scott Smith
  

Re: Maintaining simultaneous support for two Oracle versions in DBI

2011-12-04 Thread Richie
I might be overlooking something in your requirements, but this is a 
response that I had previously sent to someone on the list regarding 
migration concerns:


I'm going through a migration now and had to recompile DBD-Oracle 
against the new ORACLE_HOME.
I wanted to leave the old DBD-Oracle install in tact during my testing 
so I did not do a 'make install' after
compilation.  I took my test scripts, etc and used an appropriate 
PERL5LIB setting;
ie. 
PERL5LIB=/u99/testing/DBD-Oracle-1.23/blib/lib:/u99/testing/DBD-Oracle-1.23/blib/arch;
so it could would work while the old processes are able to use the 
current DBD-Oracle install.



On 12/2/2011 1:27 PM, Scott Smith wrote:
My workplace is transitioning from Oracle version 9 to version 11. I 
would like to build the DBD driver to support connecting to the Oracle 
11 database. However, until all the data are migrated from the old 
database to the new one, I would need to maintain connectivity to the 
old Oracle 9 database. Since the driver and shared objects built for 
the new database would be incompatible, I would need to build separate 
objects for the Oracle 11 connection.


Some of the items I can identify are:

The module should be Oracle11.pm rather than Oracle.pm (called as 
DBI-connect(dbi:Oracle11:, ...) rather than 
DBI-connect(dbi:Oracle:, ...)).
The shared object and bootstrap files as Oracle11.so and Oracle11.bs 
respectively. (Should these go in the same directory or should they be 
in the directory Oracle11 and does the package name in Oracle11.pm 
have to be changed to DBD::Oracle11 in order to find things there?)


I have some idea of what I need to change in Makefile.PL in order to 
achieve at least part of this. What I have so far is changing 
references to Oracle.pm to Oracle11.pm and $opts{NAME} from 
DBD::Oracle to Oracle 11. Am I right about the second? Are there 
others I should have included?


Thanks for any help,
Scott Smith




Re: Maintaining simultaneous support for two Oracle versions in DBI

2011-12-04 Thread Bill Ward
Aren't the Oracle driver libraries backward compatible? If you link DBD to
the Oracle 11 drivers, won't it still be able to connect to an Oracle 8
server?

On Fri, Dec 2, 2011 at 10:27 AM, Scott Smith smi...@latfor.state.ny.uswrote:

 My workplace is transitioning from Oracle version 9 to version 11. I would
 like to build the DBD driver to support connecting to the Oracle 11
 database. However, until all the data are migrated from the old database to
 the new one, I would need to maintain connectivity to the old Oracle 9
 database. Since the driver and shared objects built for the new database
 would be incompatible, I would need to build separate objects for the
 Oracle 11 connection.

 Some of the items I can identify are:

 The module should be Oracle11.pm rather than Oracle.pm (called as
 DBI-connect(dbi:Oracle11:, ...) rather than DBI-connect(dbi:Oracle:,
 ...)).
 The shared object and bootstrap files as Oracle11.so and Oracle11.bs
 respectively. (Should these go in the same directory or should they be in
 the directory Oracle11 and does the package name in Oracle11.pm have to be
 changed to DBD::Oracle11 in order to find things there?)

 I have some idea of what I need to change in Makefile.PL in order to
 achieve at least part of this. What I have so far is changing references to
 Oracle.pm to Oracle11.pm and $opts{NAME} from DBD::Oracle to Oracle 11. Am
 I right about the second? Are there others I should have included?

 Thanks for any help,
 Scott Smith




-- 
Check out my LEGO blog at http://www.brickpile.com
Follow/friend me: facebook.com/billward • flickr.com/photos/billward •
twitter.com/williamward


Maintaining simultaneous support for two Oracle versions in DBI

2011-12-03 Thread Scott Smith
My workplace is transitioning from Oracle version 9 to version 11. I 
would like to build the DBD driver to support connecting to the Oracle 
11 database. However, until all the data are migrated from the old 
database to the new one, I would need to maintain connectivity to the 
old Oracle 9 database. Since the driver and shared objects built for the 
new database would be incompatible, I would need to build separate 
objects for the Oracle 11 connection.


Some of the items I can identify are:

The module should be Oracle11.pm rather than Oracle.pm (called as 
DBI-connect(dbi:Oracle11:, ...) rather than 
DBI-connect(dbi:Oracle:, ...)).
The shared object and bootstrap files as Oracle11.so and Oracle11.bs 
respectively. (Should these go in the same directory or should they be 
in the directory Oracle11 and does the package name in Oracle11.pm have 
to be changed to DBD::Oracle11 in order to find things there?)


I have some idea of what I need to change in Makefile.PL in order to 
achieve at least part of this. What I have so far is changing references 
to Oracle.pm to Oracle11.pm and $opts{NAME} from DBD::Oracle to Oracle 
11. Am I right about the second? Are there others I should have included?


Thanks for any help,
Scott Smith