mgibian has asked for the wisdom of the Perl Monks concerning the following question:

I am running on a Windows 2000 professional system with a local Oracle 9i developer database. I would like to use DBI to access my Oracle database on this system, and in the future access other Oracle databases not on this system and thus probably of different versions.

I have tried installing Active State Perl 5.8.1 only to find that DBD-Oracle is not available via PPM. I uninstalled and then install Active State Perl 5.6.1 and find that PPM is now not performing properly, and thus I now can install neither the Oracle DBI component nor DBD-Oracle. I also started seeing what appeared to be version conflicts so I uninstalled all Perl, deleted my c:\perl file tree and tried again. I continue to have the problems with PPM though the version conflicts appear to be resolved.

I have once again uninstalled all Perl components and removed my c:\perl file tree to start clean. (is this a clean start or are there other things I need to do?)

What version of Perl should I be using?

Given that version of Perl, which bits should I be using to access my Oracle database and how should I install them?

Any other suggestions for someone who, while quite familiar with Perl and databases, have only accessed databases through a former company's proprietary perl module and thus am unfamiliar with the standard database access modules?

Thank you Monks for your help with this seemingly mainstream Perl issue.

  • Comment on Oracle 9I DBI on windows install question

Replies are listed 'Best First'.
Re: Oracle 9I DBI on windows install question
by diotalevi (Canon) on Nov 15, 2003 at 05:37 UTC
    The way I hear it, ActiveState stopped providing a precompiled DBD::Oracle due to some concerns over Oracle's licencing. Your options (once you fix your perl installation) is to back up to a perl revision that AS still distributes D::O for, compile D::O yourself with Microsoft Visual C++ version whatever-AS-originally used or get a compiled version from someone else.
Re: Oracle 9I DBI on windows install question
by Itatsumaki (Friar) on Nov 15, 2003 at 05:52 UTC

    Try this:

    1. Remove 5.6.1
    2. Install 5.8.0
    3. at a DOS prompt type: ppm install ftp://ftp.esoftmatic.com/outgoing/DBI/DBD-Oracle.ppd
    -Tats
      It took a little variation on this theme, but I finally have attempted this approach. I discovered that my company requires ftp to go through a proxy and this was preventing ppm from reaching ftp.esoftmatic.com since that repository uses ftp rather than http, used by most repositories. I ended up manually ftp-ing to a local directory and declaring that as a local repository. ppm took it from there.

      With DBD-Oracle and DBI-Oracle loaded, I try my test program:

      #! use strict; use warnings; use DBI; my $dbh = DBI->connect('dbi:Oracle:adhoc', 'foo', 'bar', { RaiseError => 1, AutoCommit =>0} ) || die "Database connection not made: $DBI::er +rstr"; $dbh->disconnect;
      And get an error dialog box from the connect with:

      perl.exe - Entry Point Not Found

      The procedure entry point Perl_Glockhook_ptr could not be located in the dynamic link library perl58.dll.

      I am quite unsure where to go next with this?

      Thank you monks for your help.

Re: Oracle 9I DBI on windows install question
by meetraz (Hermit) on Nov 15, 2003 at 01:49 UTC
    For ActiveState perl, there is also registry data. So, if you resort to deleting the c:\perl tree, you should also clean any references to ActiveState from the registry.

    If you cannot get DBD-Oracle to work, you could also use DBD-ODBC. Does that meet your needs?

Re: Oracle 9I DBI on windows install question
by Anonymous Monk on Nov 15, 2003 at 05:48 UTC
    PPM::Repositories:
    esoft => { location => 'ftp://ftp.esoftmatic.com/outgoing/DBI', Type => 'Webpage', Active => 1, Notes => 'DBI, DBD-Oracle, DBD-ODBC for 5.8', PerlV => [ 5.8 ], PerlO => ['MSWin32'], },
Re: Oracle 9I DBI on windows install question
by mgibian (Acolyte) on Nov 20, 2003 at 00:18 UTC
    A quick follow up for future reference. The resolution was to compile DBD::Oracle myself, which by the way was not as straight forward as it should have been. But, once I got a good compile, things started working. This solution appears to be working like a champ.

    While I did, eventually, figure out how to load the precompiled DBD::Oracle as suggested, in spite of the company firewall and ftp proxy, that only resulted in runtime error dialogs.